/* ==========================================
   1. 全体共通・ベーススタイル
   ========================================== */

/* レスポンシブ表示切り替え */
@media screen and (max-width: 767px) {
    .pc { display: none !important; }
    .sp { display: block !important; }
}

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

/* 基本要素スタイル */

body {
    padding-top: 0;
}
img {
    display: block;
    margin: 0;
    vertical-align: middle;
    width: 100%;
    max-width: 100%;
    height: auto;
    font-style: italic;
    background-repeat: no-repeat;
    background-size: cover;
    shape-margin: 0.75rem;
}

picture img {
    width: 100%;
    height: auto;
    display: block;
}

section {
    position: relative;
}

em {
    font-style: normal;
}

/* 共通フォント設定 */
.mincho {
    font-family: "Noto Serif JP", serif;
    font-optical-sizing: auto;
    font-weight: 500;
    font-style: normal;
}

#lp-golf {
    font-family: yu-gothic-pr6n, "Yu Gothic Medium", "Yu Gothic", "YuGothic", "游ゴシック体", "游ゴシック", sans-serif !important;
    font-weight: 400;
    font-style: normal;
}

/* 強調文字・バッジ類 */
.em-red,
.price-red {
    color: #D90000;
    font-weight: 900;
}

.badge-red,
.badge-blue {
    display: inline-block;
    color: #ffffff;
    font-weight: 900;
    padding: 4px 12px;
    border-radius: 6px;
    font-size: calc(0.9em + 5px);
    line-height: 1.2;
}

.badge-red { background: #D90000; }
.badge-blue { background: #005BAC; }


/* 3つの丸バッジ：ゴールドリッチデザイン */
.mv-features .feature-item {
    background: radial-gradient(circle at 30% 30%, #FFE89C 0%, #D4AF37 50%, #A67C1E 100%) !important;
    border: 2px solid #FFF3B0 !important;
    outline: 1px solid #997116;
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.4), inset 0 2px 4px rgba(255, 255, 255, 0.8), inset 0 -2px 4px rgba(0, 0, 0, 0.3) !important;
    color: #333;
    flex-shrink: 0;
}

.mv-features .feature-title {
    font-size: clamp(13px, 1.4vw, 17px) !important;
    font-weight: 900;
    color: #2b1d00 !important;
    line-height: 1.15;
    text-shadow: 0 0 3px #ffffff, 0 0 5px #ffffff !important;
}

.mv-features .feature-sub {
    font-size: clamp(10px, 1.0vw, 12px) !important;
    font-weight: 800;
    color: #382700 !important;
    margin-top: 2px;
    white-space: nowrap;
    text-shadow: 0 0 3px #ffffff !important;
}

@media screen and (max-width: 767px) {
    .mv-features .feature-item {
        width: clamp(80px, 25vw, 95px) !important;
        height: clamp(80px, 25vw, 95px) !important;
    }

    .mv-features .feature-title {
        font-size: clamp(12px, 3.6vw, 15px) !important;
    }

    .mv-features .feature-sub {
        font-size: clamp(10px, 2.8vw, 11px) !important;
    }
    #mv1 .mv-box {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        gap: 14px !important;
    }

    #mv1 .mv-features {
        margin-bottom: 4px !important;
        flex-shrink: 0 !important;
    }

    #mv1 .mv-box .mv-txt1 {
        margin-top: 0 !important;
    }

}

    #comparison .comparison-wrap .comparison-table figure {
        margin: 0 !important;
        padding: 0 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        flex-shrink: 0;
        line-height: 1 !important;
    }

    #comparison .comparison-table div figure,
    #comparison .comparison-table div figure picture {
        margin: 0 !important;
        padding: 0 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        line-height: 1 !important;
        height: auto !important;
        flex-shrink: 0;
    }

#comparison .comparison-table div figure img {
    display: block !important;
    margin: 0 auto !important;
    vertical-align: middle !important;
}   

.logo-img {
    width: 100%;
}

/* ボタンパーツ */
.line-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0 0.2em;
    margin: 0 auto;
    padding: 0;
    width: 350px;
    height: auto;
    aspect-ratio: 350 / 68;
    color: #fff;
    font-size: 23px;
    font-weight: 700;
    text-align: center;
    line-height: 1.0;
    background: #00b900;
    border-radius: 4.0em;
    transition: all 0.2s;
    box-shadow: 0 4px 0 #009000;
}

.line-btn::before {
    content: "";
    width: 1.65em;
    height: auto;
    aspect-ratio: 38 / 36;
    background: url(../img/google-lp/icon-line.svg) no-repeat center / contain;
}
/* 訪問済み（クリック後）やホバー時も文字色を固定 */
.fixed-buttons a,
.fixed-buttons a:visited,
.fixed-buttons a:hover,
.fixed-buttons a:active,
.line-btn,
.line-btn:visited,
.custom-cta-btn,
.custom-cta-btn:visited {
    color: #ffffff !important; /* ★常に白文字に固定 */
}

/* ボタン内のテキスト要素（strong, small, span等）も強制固定 */
.fixed-buttons a *,
.fixed-buttons a:visited * {
    color: #ffffff !important;
}

.custom-cta-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 10px auto;
    width: 350px;
    height: auto;
    aspect-ratio: 350 / 68;
    color: #fff;
    font-size: 23px;
    font-weight: 700;
    text-decoration: none;
    background: #ff007b;
    border-radius: 4.0em;
    box-shadow: 0 4px 0 #c2005d;
    box-sizing: border-box;
    transition: all 0.2s;
}

body .btn-content-wrapper {
    display: flex;
    align-items: center;
    gap: 0px;
}

.btn-sub-text {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    color: #ff007b;
    width: 48px;
    height: 48px;
    font-size: 11px;
    line-height: 1.2;
    border-radius: 50%;
    font-weight: bold;
    flex-shrink: 0;
    margin: 0;
}

.btn-main-text {
    line-height: 1.0;
    margin-left: 5px;
}

.custom-cta-btn:hover,
.line-btn:hover {
    transform: translateY(2px);
    opacity: 0.9;
    color: #fff;
}

.custom-cta-btn:hover { box-shadow: 0 2px 0 #c2005d; }
.line-btn:hover { box-shadow: 0 2px 0 #009000; }


/* ==========================================
   2. PC・SP 共通パーツ
   ========================================== */

/* MV1 共通パーツ */
#mv1 .campaign-badge {
    display: inline-block;
    background: #D90000;
    color: #ffffff;
    font-weight: 900;
    padding: 10px 20px;
    border-radius: 8px;
    font-size: clamp(22px, 3vw, 34px);
    letter-spacing: 0.06em;
    box-shadow: 0 6px 18px rgba(0,0,0,.45);
    text-shadow: 0 2px 8px rgba(0,0,0,.35);
}

#mv1 .campaign-period {
    display: inline-block;
    padding: 6px 12px;
    border-radius: 6px;
    background: rgba(0,0,0,0.65);
    color: #ffffff;
    font-weight: 700;
    font-size: clamp(13px, 1.6vw, 16px);
    letter-spacing: 0.05em;
    text-shadow: 0 1px 6px rgba(0,0,0,.6);
}

#mv1 .campaign-price {
    display: block;
    margin-top: 6px;
    color: #FFD400;
    font-weight: 900;
    font-size: clamp(21px, 2.6vw, 31px);
    line-height: 1.2;
    letter-spacing: 0.06em;
    text-shadow: 0 2px 6px rgba(0,0,0,.75);
}

#mv1 .mv-txt1 {
    margin-bottom: 10px;
    width: 100%;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

#mv1 .mv-bg img {
    margin: 0;
    padding: 0;
    width: 100%;
    height: auto;
    filter: brightness(73%);
}
#mv2 .mv2-grid > div:nth-child(1) .txt2-flex .small {
        font-size: 0.7em;
    }

/* txt2-flex 全体を縦並び（2段）にする */
#mv2 .txt2-flex {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    width: 100%;
}

/* 上段：横一列（「今なら」「月会費」「0円」） */
#mv2 .txt2-flex .txt2-top {
    display: flex !important;
    flex-direction: row !important;
    align-items: baseline !important; /* 縦位置を「0円」のベースラインに揃える */
    justify-content: center !important;
    gap: 8px !important;
    white-space: nowrap !important;
}

/* 上段のテキスト基本スタイル */
#mv2 .txt2-flex .txt2-top > span {
    font-size: calc(23 * min(90vw, 820px) / 820);
    font-weight: 500;
    color: #fff;
}

/* 下段：「入会金33,000円...」 */
#mv2 .txt2-flex .txt2-bottom {
    font-size: calc(16 * min(90vw, 600px) / 600);
    font-weight: 500;
    color: #fff;
    text-align: center;
}
/* --- 
#mv2 .txt2-flex .txt2-bottom {
    font-size: calc(14 * min(90vw, 820px) / 820);
    font-weight: 500;
    color: #fff;
    text-align: center;
}
--- */

@media screen and (max-width: 767px) {
    #mv2 .txt2-flex .txt2-top > span {
        font-size: 20px;
        font-weight: 900;
}
    #mv2 .txt2-flex .txt2-bottom {
        font-size: 18px;
        
}
        }

/* --- 既存の「0円」装飾（スタイル保持） --- */
#mv2 .txt2-flex .price-zero {
    display: flex;
    align-items: flex-end;
    line-height: 1.0;
}

#mv2 .txt2-flex .price-zero > span:nth-child(1) {
    color: #fddb41;
    font-size: calc(100 * min(90vw, 600px) / 600);
    font-weight: 700;
}
/* --- 
    #mv2 .txt2-flex .price-zero > span:nth-child(1) {
    color: #fddb41;
    font-size: calc(102 * min(90vw, 820px) / 820);
    font-weight: 700;
} --- */

#mv2 .txt2-flex .price-zero > span:nth-child(2) {
    padding: 0 0 0.2em;
    color: #fddb41;
    font-size: calc(40 * min(90vw, 820px) / 820);
    font-weight: 700;
}
/* 料金表 (Price) 共通 */
#price .price-table2 > div:nth-child(3) span:nth-child(2), 
#price .price-table2 > div:nth-child(7) span:nth-child(2) {
    color: #fddb41;
    font-size: 82%;
}

#price .price-table2 > div .red {
    color: #bb0000;
}

#price .price-table2 > div:nth-child(25) .small {
    font-size: 75%;
    font-weight: 400;
}

/* ENTRY フォーム 共通 */
#entry {
    margin: 0 auto;
    padding: calc(70 * min(90vw, 980px) / 980) 0;
    width: 100%;
}

#entry h2 {
    margin: 0 auto;
    width: 90%;
    max-width: 980px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

#entry h2 > span:nth-child(1) {
    display: block;
    margin: 0 auto;
    padding: 0;
    color: #1a563233;
    font-size: calc(90 * min(90vw, 980px) / 980);
    font-weight: 500;
    text-align: center;
    line-height: 1.0;
}

#entry h2 > span:nth-child(2) {
    display: block;
    margin: -0.5em auto;
    padding: 0;
    color: #1a5632;
    font-size: calc(24 * min(90vw, 980px) / 980);
    font-weight: 700;
    text-align: center;
    line-height: 1.0;
}

.form-area {
    position: relative;
    margin: calc(60 * min(90vw, 980px) / 980) auto 0;
    width: 90%;
    max-width: 980px;
    border: 1px solid #1a563233;
    overflow: hidden;
    padding: 30px;
}

.wpcf7 br { display: none; }

.wpcf7 label {
    display: block;
    margin-bottom: 8px;
    font-weight: bold;
}

.form-submit-center {
    margin-top: 40px;
    margin-bottom: 20px;
    text-align: center;
}

.wpcf7-submit:hover {
    transition: all 0.5s ease;
    background-color: #FFD400;
}

/* YouTube セクション */
.youtube-section {
    padding: 40px 16px;
}

.youtube-wrap {
    max-width: 900px;
    margin: 0 auto;
    position: relative;
    aspect-ratio: 16 / 9;
}

.youtube-wrap iframe {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    border: 0;
}


/* ==========================================
   3. PC専用スタイル (768px以上)
   ========================================== */
@media screen and (min-width: 768px) {
    main {
        margin: 0 auto;
        width: 100%;
    }

    /* --- PC MV1 --- */
    #mv1 {
        margin: 0 auto;
        width: 100%;
        position: relative;
    }

    #mv1 .mv-bg {
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
    }

    .mv-header-info {
        position: absolute;
        top: 20px;
        left: 50%;
        transform: translateX(-50%);
        z-index: 3;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 16px;
        background: rgba(0, 0, 0, 0.75);
        border: 1px solid rgba(255, 255, 255, 0.25);
        padding: 8px 28px;
        border-radius: 50px;
        color: #fff;
        font-size: clamp(14px, 1.4vw, 18px);
        font-weight: 700;
        box-shadow: 0 4px 15px rgba(0,0,0,.4);
    }

    .mv-header-info .star {
        color: #FFD400;
        font-size: 1.1em;
    }

    .mv-header-info .info-divider {
        opacity: 0.4;
    }

    #mv1 .mv-box {
        position: absolute;
        margin: 0;
        padding: 0;
        width: min(90vw, 1366px);
        left: 50%;
        bottom: calc(30 * min(100vw, 1366px) / 1366);
        transform: translateX(-50%);
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 16px;
        z-index: 2;
    }

    .mv-features {
        display: flex;
        justify-content: center;
        gap: 16px;
        margin: 0;
        padding: 0;
        list-style: none;
    }

    .mv-features .feature-item {
        width: clamp(85px, 8.5vw, 115px);
        height: clamp(85px, 8.5vw, 115px);
        background: linear-gradient(135deg, #ffffff 0%, #f4f4f4 100%);
        border: 3px solid #D90000;
        border-radius: 50%;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        text-align: center;
        box-shadow: 0 6px 16px rgba(0, 0, 0, .4);
        color: #333;
    }

    .mv-features .feature-title {
        font-size: clamp(12px, 1.2vw, 15px);
        font-weight: 900;
        color: #D90000;
        line-height: 1.2;
    }

    .mv-features .feature-sub {
        font-size: clamp(9px, 0.75vw, 11px);
        font-weight: 700;
        color: #555;
        margin-top: 2px;
    }

    #mv1 .mv-box .mv-txt1 {
        font-size: calc(72 * min(90vw, 1366px) / 1366);
    }

    /* --- PC MV2 --- */
    #mv2 {
        margin: 0 auto;
        padding-bottom: 30px;
        padding-top: 10px;
        width: 100%;
        background-color: #1a5632;
    }
    /* --
    #mv2 {
        margin: 0 auto;
        padding: calc(30 * min(90vw, 820px) / 820) 0;
        width: 100%;
        background-color: #1a5632;
    }
     --- */

    #mv2 .mv2-grid {
        margin: 0 auto 20px;
        padding: 0;
        width: 90%;
        max-width: 600px;
        display: block;
        align-items: end;
        grid-template-columns: 50% 50%;
        gap: 0;
    }

    #mv2 .mv2-grid > div {
        margin: 0;
        padding: 0;
        color: #fff;
        line-height: 1.0;
        text-align: left;
        white-space: nowrap;
    }

    #mv2 .mv2-grid > div:nth-child(1) {
        padding-right: 30px;
        justify-content: center;
        align-items: center;
        display: flex;
        flex-direction: column;
        height: 100px;
    }

    #mv2 .mv2-grid > div:nth-child(1) .txt1 {
        margin: 0 0 -0.1em;
        font-size: calc(30 * min(90vw, 820px) / 820);
        font-weight: 700;
        margin-bottom: 10px;
    }

    #mv2 .mv2-grid > div:nth-child(1) .txt2-flex {
        display: flex;
        align-items: flex-end;
        justify-content: space-between;
    }

    #mv2 .mv2-grid > div:nth-child(1) .txt2-flex > div:nth-child(1) {
        padding: 0 0 0.5em;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
    }

    #mv2 .mv2-grid > div:nth-child(1) .txt2-flex > div:nth-child(1) > span:nth-child(1) {
        font-size: calc(23 * min(90vw, 820px) / 820);
        font-weight: 500;
    }

    #mv2 .mv2-grid > div:nth-child(1) .txt2-flex > div:nth-child(1) > span:nth-child(2) {
        font-size: calc(33 * min(90vw, 820px) / 820);
        font-weight: 500;
    }
    
    #mv2 .mv2-grid > div:nth-child(1) .txt2-flex > div:nth-child(2) {
        display: flex;
        align-items: flex-end;
        justify-content: flex-start;
    }

    #mv2 .mv2-grid > div:nth-child(1) .txt2-flex > div:nth-child(2) > span:nth-child(1) {
        color: #fddb41;
        font-size: calc(102 * min(90vw, 820px) / 820);
        font-weight: 700;
    }

    #mv2 .mv2-grid > div:nth-child(1) .txt2-flex > div:nth-child(2) > span:nth-child(2) {
        padding: 0 0 0.2em;
        color: #fddb41;
        font-size: calc(40 * min(90vw, 820px) / 820);
        font-weight: 700;
    }

    #mv2 .mv2-grid > div:nth-child(1) .txt3 {
        margin: 0.5em 0 0;
        padding: 0.6em 0;
        width: 100%;
        color: #333;
        font-size: calc(14 * min(90vw, 820px) / 820);
        text-align: center;
        background: #fff;
    }

    #mv2 .mv2-grid > div:nth-child(2) {
        padding-left: 30px;
        border-left: 1px solid #fff;
    }

    #mv2 .mv2-grid > div:nth-child(2) .txt1 {
        margin: 0 0 -0.2em;
        font-size: calc(30 * min(90vw, 820px) / 820);
        font-weight: 700;
    }

    #mv2 .mv2-grid > div:nth-child(2) .txt2-flex {
        display: flex;
        align-items: center;
        justify-content: space-between;
    }

    #mv2 .mv2-grid > div:nth-child(2) .txt2-flex > div:nth-child(1) {
        padding: 0 0 0.5em;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
    }

    #mv2 .mv2-grid > div:nth-child(2) .txt2-flex > div:nth-child(1) > span:nth-child(1) {
        font-size: calc(20 * min(90vw, 820px) / 820);
        font-weight: 500;
    }

    #mv2 .mv2-grid > div:nth-child(2) .txt2-flex > div:nth-child(1) > span:nth-child(2) {
        margin: 0.2em 0 0;
        font-size: calc(28 * min(90vw, 820px) / 820);
        font-weight: 500;
    }

    #mv2 .mv2-grid > div:nth-child(2) .txt2-flex > div:nth-child(1) > span:nth-child(2) .small {
        font-size: 42.8%;
    }

    #mv2 .mv2-grid > div:nth-child(2) .txt2-flex > div:nth-child(1) > span:nth-child(3) {
        margin: 0.5em 0 0;
        font-size: calc(14 * min(90vw, 820px) / 820);
        font-weight: 500;
    }

    #mv2 .mv2-grid > div:nth-child(2) .txt2-flex > div:nth-child(2) {
        display: flex;
        align-items: flex-end;
        justify-content: flex-start;
    }

    #mv2 .mv2-grid > div:nth-child(2) .txt2-flex > div:nth-child(2) > span:nth-child(1) {
        color: #fddb41;
        font-size: calc(106 * min(90vw, 820px) / 820);
        font-weight: 700;
    }

    #mv2 .mv2-grid > div:nth-child(2) .txt2-flex > div:nth-child(2) > span:nth-child(2) {
        padding: 0 0 0.2em;
        color: #fddb41;
        font-size: calc(41 * min(90vw, 820px) / 820);
        font-weight: 700;
    }

    #mv2 .line-btn {
        margin: calc(30 * min(90vw, 820px) / 820) auto 0;
        width: calc(350 * min(90vw, 820px) / 820);
        font-size: calc(23 * min(90vw, 820px) / 820);
        text-decoration: none;
    }

    /* --- PC MV3 --- */
    #mv3 {
        margin: 0 auto;
        padding: calc(36 * min(90vw, 1080px) / 1080) 0;
        width: 100%;
        background: #fff6f6;
    }

    #mv3 .mv3-grid {
        margin: 0 auto;
        width: 90%;
        max-width: 1080px;
        display: grid;
        align-items: center;
        grid-template-columns: 140px 1fr;
        gap: 0 calc(20 * min(90vw, 1080px) / 1080);
    }

    #mv3 .mv3-grid > div:nth-child(1) {
        margin: 0;
        padding: 0;
        width: 140px;
        height: 140px;
        color: #fff;
        font-size: 20px;
        font-weight: 700;
        text-align: center;
        line-height: calc(28 / 20);
        background: #bb0000;
        display: flex;
        align-items: center;
        justify-content: center;
        overflow: hidden;
        border-radius: 100%;
        rotate: -15deg;
    }

    #mv3 .mv3-grid > div:nth-child(2) {
        width: 100%;
    }

    #mv3 .mv3-grid > div:nth-child(2) .txt1 {
        margin: 0;
        color: #333;
        font-size: calc(20 * min(90vw, 1080px) / 1080);
        font-weight: 400;
        line-height: calc(34 / 20);
        text-align: justify;
    }

    #mv3 .mv3-grid > div:nth-child(2) .txt3 {
        margin: 0.8em 0 0;
        color: #777;
        font-size: calc(14 * min(90vw, 1080px) / 1080);
        font-weight: 400;
        text-align: justify;
        line-height: calc(20 / 14);
    }

    /* --- PC feature --- */
    #feature {
        margin: 0 auto;
        padding: calc(70 * min(90vw, 980px) / 980) 0;
        width: 100%;
    }

    #feature .feature-grid {
        margin: 0 auto;
        width: 90%;
        max-width: 980px;
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
        gap: 0 calc(40 * min(90vw, 980px) / 980);
    }

    #feature .feature-grid > div {
        width: 100%;
    }

    #feature .feature-grid > div figure {
        width: 100%;
        height: auto;
        aspect-ratio: 1 / 1;
    }

    #feature .feature-grid > div figure img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        border-radius: 100%;
        border: 3px solid #d4ccab;
    }

    #feature .feature-grid > div h3 {
        margin: 0.8em auto 0;
        width: 100%;
        color: #1a5632;
        font-size: calc(28 * min(90vw, 980px) / 980);
        font-weight: 700;
        text-align: center;
    }

    #feature .feature-grid > div p {
        margin: 1.0em auto 0;
        width: 100%;
        color: #333;
        font-size: calc(16 * min(90vw, 980px) / 980);
        font-weight: 400;
        text-align: justify;
        line-height: calc(25.6 / 16);
    }
    
    /* --- PC round --- */
    #round {
        margin: 0 auto;
        padding: calc(70 * min(90vw, 980px) / 980) 0;
        width: 100%;
        background: url(../img/google-lp/round-bg.webp) no-repeat center bottom / 100% auto #1a5632;
    }

    #round h2 {
        position: relative;
        margin: 0 auto;
        width: 90%;
        max-width: 980px;
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        z-index: 2;
    }

    #round h2 > span:nth-child(1) {
        display: flex;
        align-items: center;
        justify-content: center;
        margin: 0;
        padding: 0 0 0.5em;
        width: calc(130 * min(90vw, 980px) / 980);
        height: auto;
        aspect-ratio: 1 / 1;
        color: #333;
        font-size: calc(24 * min(90vw, 980px) / 980);
        font-weight: 900;
        text-align: center;
        line-height: calc(30 / 24);
        background: #fddb41;
        border-radius: 100%;
        overflow: hidden;
    }

    #round h2 > span:nth-child(2) {
        display: block;
        margin: 0;
        padding: 0.5em 0 0;
        width: calc(100% - (130 * min(90vw, 980px) / 980));
        color: #fddb41;
        font-size: calc(52 * min(90vw, 980px) / 980);
        font-weight: 900;
        text-align: center;
        line-height: 1.0;
        letter-spacing: 0.1em;
    }

    #round .round-box {
        position: relative;
        margin: calc(-16 * min(90vw, 980px) / 980) auto 0;
        padding: calc(40 * min(90vw, 980px) / 980);
        width: 90%;
        max-width: 980px;
        background: #fff;
        border-radius: calc(20 * min(90vw, 980px) / 980);
        z-index: 1;
    }

    #round .round-box h3 {
        margin: 0;
        padding: 0;
        color: #1a5632;
        font-size: calc(24 * min(90vw, 980px) / 980);
        font-weight: 700;
        text-align: center;
        line-height: calc(34 / 24);
    }

    #round .round-box p {
        margin: 1.5em 0 0;
        padding: 0;
        color: #333;
        font-size: calc(16 * min(90vw, 980px) / 980);
        font-weight: 400;
        text-align: justify;
        line-height: calc(25.6 / 16);
    }

    #round .round-box .line-btn {
        margin: 1.5em auto 0;
        width: calc(465 * min(90vw, 980px) / 980);
        max-width: 100%;
        aspect-ratio: 465 / 68;
        font-size: calc(23 * min(90vw, 980px) / 980);
    }

    /* --- PC worry --- */
    #worry {
        margin: 0 auto;
        padding: calc(70 * min(90vw, 980px) / 980) 0;
        width: 100%;
    }

    #worry h2 {
        margin: 0 auto;
        width: 90%;
        max-width: 980px;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }

    #worry h2 > span:nth-child(1) {
        display: block;
        margin: 0 auto;
        padding: 0;
        color: #1a563233;
        font-size: calc(90 * min(90vw, 980px) / 980);
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
    }

    #worry h2 > span:nth-child(2) {
        display: block;
        margin: -0.5em auto;
        padding: 0;
        color: #1a5632;
        font-size: calc(24 * min(90vw, 980px) / 980);
        font-weight: 700;
        text-align: center;
        line-height: 1.0;
    }

    #worry > p {
        margin: 2.0em auto 0;
        width: 90%;
        max-width: 980px;
        color: #333;
        font-size: calc(16 * min(90vw, 980px) / 980);
        font-weight: 500;
        text-align: center;
        line-height: calc(25.6 / 16);
    }

    #worry .worry-grid {
        margin: calc(30 * min(90vw, 980px) / 980) auto 0;
        width: 90%;
        max-width: 980px;
        display: grid;
        grid-template-columns: repeat(7, 1fr);
        gap: 0 calc(20 * min(90vw, 980px) / 980);
    }

    #worry .worry-grid > div {
        width: 100%;
        height: auto;
        aspect-ratio: 1 / 1;
        color: #333;
        font-size: calc(18 * min(90vw, 980px) / 980);
        font-weight: 700;
        text-align: center;
        line-height: calc(25.6 / 18);
        background: url(../img/google-lp/worry-bg.webp) no-repeat center / contain;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    #worry > h3 {
        margin: 1.0em auto 0;
        width: 90%;
        max-width: 980px;
        color: #333;
        font-size: calc(32 * min(90vw, 980px) / 980);
        font-weight: 700;
        text-align: center;
        line-height: 1.0;
    }

    /* --- PC equipment --- */
    #equipment {
        margin: 0 auto;
        padding: calc(70 * min(90vw, 980px) / 980) 0;
        width: 100%;
        background: #10723808;
    }

    #equipment h2 {
        margin: 0 auto;
        width: 90%;
        max-width: 980px;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }

    #equipment h2 > span:nth-child(1) {
        display: block;
        margin: 0 auto;
        padding: 0;
        color: #1a563233;
        font-size: calc(90 * min(90vw, 980px) / 980);
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
    }

    #equipment > p {
        margin: 2.0em auto 0;
        width: 90%;
        max-width: 980px;
        color: #333;
        font-size: calc(16 * min(90vw, 980px) / 980);
        font-weight: 500;
        text-align: center;
        line-height: calc(25.6 / 16);
    }

    #equipment > p + .equipment-box {
        margin-top: calc(40 * min(90vw, 980px) / 980);
    }

    #equipment > .equipment-box {
        position: relative;
        margin: 0 auto;
        width: 100%;
    }

    #equipment > .equipment-box .pic-l {
        margin: 0 auto 0 0;
        width: 50%;
        height: auto;
    }

    #equipment > .equipment-box .pic-r {
        margin: 0 0 0 auto;
        width: 50%;
        height: auto;
    }

    #equipment > .equipment-box .txt-r {
        position: absolute;
        top: 50%;
        right: calc(50% - min(45vw, 490px));
        margin: 0;
        width: calc(550 * min(90vw, 980px) / 980);
        transform: translateY(-50%);
    }

    #equipment > .equipment-box .txt-l {
        position: absolute;
        top: 50%;
        left: calc(50% - min(45vw, 490px));
        margin: 0;
        width: calc(550 * min(90vw, 980px) / 980);
        transform: translateY(-50%);
    }

    #equipment > .equipment-box h3 {
        margin: 0 0 0.5em;
        width: 100%;
        color: #1a5632;
        font-size: calc(24 * min(90vw, 980px) / 980);
        font-weight: 700;
        text-align: justify;
        line-height: 1.0;
    }

    #equipment > .equipment-box p {
        margin: 0;
        padding: 0 0 0 1.0em;
        width: 100%;
        color: #333;
        font-size: calc(16 * min(90vw, 980px) / 980);
        font-weight: 400;
        text-align: justify;
        text-indent: -1.0em;
        line-height: calc(25.6 / 16);
    }

    /* --- PC training --- */
    #training {
        margin: 0 auto;
        padding: calc(70 * min(90vw, 980px) / 980) 0;
        width: 100%;
    }

    #training h2 {
        margin: 0 auto;
        width: 90%;
        max-width: 980px;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }

    #training h2 > span:nth-child(1) {
        display: block;
        margin: 0 auto;
        padding: 0;
        color: #1a563233;
        font-size: calc(90 * min(90vw, 980px) / 980);
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
    }

    #training h2 > span:nth-child(2) {
        display: block;
        margin: -0.5em auto;
        padding: 0;
        color: #1a5632;
        font-size: calc(24 * min(90vw, 980px) / 980);
        font-weight: 700;
        text-align: center;
        line-height: 1.0;
    }

    #training > p {
        margin: 2.0em auto 0;
        width: 90%;
        max-width: 980px;
        color: #333;
        font-size: calc(16 * min(90vw, 980px) / 980);
        font-weight: 500;
        text-align: center;
        line-height: calc(25.6 / 16);
    }

    /* --- PC decipher --- */
    #decipher {
        margin: 0 auto;
        padding: calc(70 * min(90vw, 980px) / 980) 0;
        width: 100%;
        background: #10723808;
    }

    #decipher h2 {
        margin: 0 auto;
        width: 90%;
        max-width: 980px;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }

    #decipher h2 > span:nth-child(1) {
        display: block;
        margin: 0 auto;
        padding: 0;
        color: #1a563233;
        font-size: calc(90 * min(90vw, 980px) / 980);
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
    }

    #decipher h2 > span:nth-child(2) {
        display: block;
        margin: -0.5em auto;
        padding: 0;
        color: #1a5632;
        font-size: calc(24 * min(90vw, 980px) / 980);
        font-weight: 700;
        text-align: center;
        line-height: 1.0;
    }

    #decipher > p {
        margin: 2.0em auto 0;
        width: 90%;
        max-width: 980px;
        color: #333;
        font-size: calc(16 * min(90vw, 980px) / 980);
        font-weight: 500;
        text-align: center;
        line-height: calc(25.6 / 16);
    }

    #decipher > .pic {
        margin: calc(30 * min(90vw, 980px) / 980) auto 0;
        padding: 0;
        width: 90%;
        max-width: 959px;
        height: auto;
    }

    #decipher > .pic img {
        width: 100%;
        height: auto;
    }


    /* --- PC price (料金表セクション全統合) --- */
    #price {
        margin: 0 auto;
        padding: calc(70 * min(90vw, 980px) / 980) 0;
        width: 100%;
        background: #10723808;
    }

    #price h2 {
        margin: 0 auto;
        width: 90%;
        max-width: 980px;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }

    #price h2 > span:nth-child(1) {
        display: block;
        margin: 0 auto;
        padding: 0;
        color: #1a563233;
        font-size: calc(90 * min(90vw, 980px) / 980);
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
    }

    #price h2 > span:nth-child(2) {
        display: block;
        margin: -0.5em auto;
        padding: 0;
        color: #1a5632;
        font-size: calc(24 * min(90vw, 980px) / 980);
        font-weight: 700;
        text-align: center;
        line-height: 1.0;
    }

    /* 料金表 1 (レッスン無) */
    #price .price-table1 {
        margin: calc(40 * min(100vw, 980px) / 980) auto 0;
        width: 100%;
        max-width: 980px;
        display: grid;
        grid-template-columns: 16% 21% 21% 21% 21%;
        gap: 0;
    }

    #price .price-table1 > div {
        margin: 0;
        padding: calc(10 * min(100vw, 980px) / 980) 0;
        width: auto;
        color: #1a5632;
        font-weight: 900;
        text-align: center;
        white-space: nowrap;
        line-height: 1.5;
        background: #fff;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }

    #price .price-table1 > div:nth-child(1),
    #price .price-table1 > div:nth-child(6) {
        background: transparent;
    }
    
}/* 閉じタグが反応しないためいったんここで区切る */

@media screen and (min-width: 768px) {
    #price .price-table1 > div:nth-child(2),
#price .price-table1 > div:nth-child(3),
#price .price-table1 > div:nth-child(4),
#price .price-table1 > div:nth-child(5) {
    padding: 0.8em 0;
    color: #fff;
    font-size: calc(22 * min(100vw, 980px) / 980);
    font-weight: 700;
    background: #1a5632;
    border-top: 1px solid #5a876c;
    border-right: 1px solid #5a876c !important;
    border-bottom: 1px solid #5a876c;
}


    #price .price-table1 > div:nth-child(2) {
        border-left: 1px solid #5a876c;
    }

    #price .price-table1 > div:nth-child(7),
    #price .price-table1 > div:nth-child(8),
    #price .price-table1 > div:nth-child(9),
    #price .price-table1 > div:nth-child(10) {
        flex-direction: row;
        align-items: baseline;
        color: #fff;
        font-size: calc(32 * min(100vw, 980px) / 980);
        font-weight: 700;
        background: #31714b;
        border-right: 1px solid #5a876c;
    }

    #price .price-table1 > div:nth-child(7) {
        border-left: 1px solid #5a876c;
    }

    #price .price-table1 > div:nth-child(11) {
        font-size: calc(20 * min(100vw, 980px) / 980);
        border: 1px solid #1a5632;
    }

    #price .price-table1 > div:nth-child(12),
    #price .price-table1 > div:nth-child(13),
    #price .price-table1 > div:nth-child(14),
    #price .price-table1 > div:nth-child(15) {
        font-size: calc(40 * min(100vw, 980px) / 980);
        border-top: 1px solid #1a5632;
        border-right: 1px solid #1a5632 !important;
        border-bottom: 1px solid #1a5632;
    }

    #price .price-table1 > div:nth-child(17),
    #price .price-table1 > div:nth-child(18),
    #price .price-table1 > div:nth-child(19),
    #price .price-table1 > div:nth-child(20) {
        font-size: calc(24 * min(100vw, 980px) / 980);
        border-right: 1px solid #1a5632;
        border-bottom: 1px solid #1a5632;
    }

    #price .price-table1 > div:nth-child(18) span {
        display: block;
        margin: 0 auto;
        padding: 0.4em 0.8em;
        width: max-content;
        font-size: 117%;
        font-weight: 900;
        background: #fddb41;
    }

    #price .price-table1 > div:nth-child(16),
    #price .price-table1 > div:nth-child(21),
    #price .price-table1 > div:nth-child(26),
    #price .price-table1 > div:nth-child(31),
    #price .price-table1 > div:nth-child(33) {
        font-size: calc(20 * min(100vw, 980px) / 980);
        border-left: 1px solid #1a5632;
        border-right: 1px solid #1a5632;
        border-bottom: 1px solid #1a5632;
    }

    #price .price-table1 > div:nth-child(22),
    #price .price-table1 > div:nth-child(23),
    #price .price-table1 > div:nth-child(24),
    #price .price-table1 > div:nth-child(25),
    #price .price-table1 > div:nth-child(27),
    #price .price-table1 > div:nth-child(28),
    #price .price-table1 > div:nth-child(29),
    #price .price-table1 > div:nth-child(30) {
        font-size: calc(28 * min(100vw, 980px) / 980);
        border-right: 1px solid #1a5632;
        border-bottom: 1px solid #1a5632;
    }

    #price .price-table1 > div:nth-child(32) {
        grid-column: span 4;
        padding: 0.8em 0;
        font-size: calc(28 * min(100vw, 980px) / 980);
        border-right: 1px solid #1a5632;
        border-bottom: 1px solid #1a5632;
    }

    #price .price-table1 > div:nth-child(34) {
        grid-column: span 4;
        font-size: calc(28 * min(100vw, 980px) / 980);
        border-right: 1px solid #1a5632;
        border-bottom: 1px solid #1a5632;
    }

    #price .price-table1 > div:nth-child(34) span:nth-child(1) { color: #bb0000; }
    #price .price-table1 > div:nth-child(34) span:nth-child(2) { font-size: 57%; font-weight: 400; }

    /* 料金表 2 (レッスン有) */
    #price .price-table2 {
        margin: calc(40 * min(100vw, 980px) / 980) auto 0;
        width: 100%;
        max-width: 980px;
        display: grid;
        grid-template-columns: 13% 14.5% 14.5% 14.5% 14.5% 14.5% 14.5%;
        gap: 0;
    }

    #price .price-table2 > div {
        margin: 0;
        padding: calc(16 * min(100vw, 980px) / 980) 0;
        width: auto;
        color: #1a5632;
        font-weight: 900;
        text-align: center;
        white-space: nowrap;
        line-height: 1.5;
        background: #fff;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }

    #price .price-table2 > div:nth-child(2) {
        border-left: 1px solid #5a876c;
    }

    #price .price-table2 > div:nth-child(2),
    #price .price-table2 > div:nth-child(3),
    #price .price-table2 > div:nth-child(4),
    #price .price-table2 > div:nth-child(5),
    #price .price-table2 > div:nth-child(6),
    #price .price-table2 > div:nth-child(7) {
        padding: 0.4em 0;
        color: #fff;
        font-size: calc(22 * min(100vw, 980px) / 980);
        font-weight: 700;
        background: #1a5632;
        border-top: 1px solid #5a876c;
        border-right: 1px solid #5a876c;
        border-bottom: 1px solid #5a876c;
    }

    #price .price-table2 > div:nth-child(5) span:nth-child(1),
    #price .price-table2 > div:nth-child(6) span:nth-child(1) {
        font-size: 82%;
        font-weight: 400;
    }

    #price .price-table2 > div:nth-child(5) span:nth-child(1) img,
    #price .price-table2 > div:nth-child(6) span:nth-child(1) img {
        display: inline-block;
        margin: 0;
        width: 1.3em;
        height: 1.0em;
        object-fit: contain;
        transform: translateY(-20%);
    }

    #price .price-table2 > div:nth-child(6) span:nth-child(1) { color: #fddb41; }

    #price .price-table2 > div:nth-child(9),
    #price .price-table2 > div:nth-child(10),
    #price .price-table2 > div:nth-child(11),
    #price .price-table2 > div:nth-child(12),
    #price .price-table2 > div:nth-child(13),
    #price .price-table2 > div:nth-child(14) {
        flex-direction: row;
        align-items: baseline;
        color: #fff;
        font-size: calc(26 * min(100vw, 980px) / 980);
        font-weight: 700;
        background: #31714b;
        border-right: 1px solid #5a876c;
    }

    #price .price-table2 > div:nth-child(9)::after,
    #price .price-table2 > div:nth-child(10)::after,
    #price .price-table2 > div:nth-child(11)::after,
    #price .price-table2 > div:nth-child(12)::after,
    #price .price-table2 > div:nth-child(13)::after,
    #price .price-table2 > div:nth-child(14)::after {
        content: "円";
        font-size: 68.75%;
    }

    #price .price-table2 > div:nth-child(15) {
        font-size: calc(20 * min(100vw, 980px) / 980);
        border: 1px solid #1a5632;
    }

    #price .price-table2 > div:nth-child(16),
    #price .price-table2 > div:nth-child(17),
    #price .price-table2 > div:nth-child(18),
    #price .price-table2 > div:nth-child(19),
    #price .price-table2 > div:nth-child(20),
    #price .price-table2 > div:nth-child(21) {
        color: #bb0000;
        font-size: calc(40 * min(100vw, 980px) / 980);
        border-top: 1px solid #1a5632;
        border-right: 1px solid #1a5632;
        border-bottom: 1px solid #1a5632;
    }

    #price .price-table2 > div:nth-child(22),
    #price .price-table2 > div:nth-child(29),
    #price .price-table2 > div:nth-child(36),
    #price .price-table2 > div:nth-child(43),
    #price .price-table2 > div:nth-child(46) {
        font-size: calc(20 * min(100vw, 980px) / 980);
        border-left: 1px solid #1a5632;
        border-right: 1px solid #1a5632;
        border-bottom: 1px solid #1a5632;
    }

    #price .price-table2 > div:nth-child(23),
    #price .price-table2 > div:nth-child(24),
    #price .price-table2 > div:nth-child(25),
    #price .price-table2 > div:nth-child(26),
    #price .price-table2 > div:nth-child(27),
    #price .price-table2 > div:nth-child(28),
    #price .price-table2 > div:nth-child(30),
    #price .price-table2 > div:nth-child(31),
    #price .price-table2 > div:nth-child(32),
    #price .price-table2 > div:nth-child(33),
    #price .price-table2 > div:nth-child(34),
    #price .price-table2 > div:nth-child(35),
    #price .price-table2 > div:nth-child(37),
    #price .price-table2 > div:nth-child(38),
    #price .price-table2 > div:nth-child(39),
    #price .price-table2 > div:nth-child(40),
    #price .price-table2 > div:nth-child(41),
    #price .price-table2 > div:nth-child(42) {
        font-size: calc(24 * min(100vw, 980px) / 980);
        border-right: 1px solid #1a5632;
        border-bottom: 1px solid #1a5632;
    }

    #price .price-table2 > div:nth-child(44) {
        grid-column: span 5;
        padding: 0.8em 0;
        font-size: calc(28 * min(100vw, 980px) / 980);
        border-right: 1px solid #1a5632;
        border-bottom: 1px solid #1a5632;
    }

    #price .price-table2 > div:nth-child(45) {
        color: #bb0000;
        font-size: calc(24 * min(100vw, 980px) / 980);
        border-right: 1px solid #1a5632;
        border-bottom: 1px solid #1a5632;
    }

    #price .price-table2 > div:nth-child(47) {
        grid-column: span 6;
        font-size: calc(28 * min(100vw, 980px) / 980);
        border-right: 1px solid #1a5632;
        border-bottom: 1px solid #1a5632;
    }

    #price .price-table2 > div:nth-child(47) span:nth-child(1) { color: #bb0000; }
    #price .price-table2 > div:nth-child(47) span:nth-child(2) { font-size: 57%; font-weight: 400; }

    .anim-scroll { display: none; }

    /* 料金表の「月額」指定 */
    .price-table2 div small {
        font-size: 0.7em; /* 数字より少し小さく設定 */
        margin-right: 2px; /* 数字との間にわずかな隙間を作る */
        display: inline-block;
        vertical-align: baseline; /* 数字の下線と揃える */
    }

}
    /* SP表示時の調整 (必要に応じてサイズ変更) */
    @media screen and (max-width: 767px) {
        .price-table2 div small {
            font-size: 0.65em; /* SPの狭いセルでも収まるサイズ */
        }
}

@media screen and (min-width: 768px) {
    /* --- PC comparison --- */
    #comparison {
        margin: 0 auto;
        padding: calc(70 * min(100vw, 980px) / 980) 0;
        width: 100%;
    }

    #comparison::before {
        position: absolute;
        content: "";
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: #1a5632;
        z-index: -2;
    }

    #comparison h2 {
        margin: 0 auto;
        width: 90%;
        max-width: 980px;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }

    #comparison h2 > span:nth-child(1) {
        display: block;
        margin: 0 auto;
        padding: 0;
        color: #3c8258;
        font-size: calc(90 * min(100vw, 980px) / 980);
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
    }

    #comparison h2 > span:nth-child(2) {
        display: block;
        margin: -0.5em auto;
        padding: 0;
        color: #fff;
        font-size: calc(24 * min(100vw, 980px) / 980);
        font-weight: 700;
        text-align: center;
        line-height: 1.0;
    }

    #comparison .comparison-table {
        margin: calc(40 * min(100vw, 980px) / 980) auto 0;
        width: 100%;
        max-width: 980px;
        display: grid;
        grid-template-columns: 25% 40% 35%;
        gap: 0;
    }

    #comparison .comparison-table > div {
        margin: 0;
        width: auto;
        color: #1a5632;
        font-weight: 900;
        text-align: center;
        line-height: 1.5;
        white-space: nowrap;
        background: #fff;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    #comparison .comparison-table > div:nth-child(1) { background: transparent; }

    #comparison .comparison-table > div:nth-child(2) {
        padding: calc(16 * min(100vw, 980px) / 980) 0;
        border-top: 6px solid #a8e629;
        border-left: 6px solid #a8e629;
        border-right: 6px solid #a8e629;
        border-bottom: 1px solid #1a5632;
    }

    #comparison .comparison-table > div:nth-child(2) figure {
        margin: 0 auto;
        width: 90%;
        max-width: 310px;
        height: auto;
    }

    #comparison .comparison-table > div:nth-child(3) {
        color: #fff;
        font-size: calc(24 * min(100vw, 980px) / 980);
        font-weight: 700;
        background: #9db7a7;
        border-top: 1px solid #1a5632;
        border-right: 1px solid #1a5632;
        border-bottom: 1px solid #1a5632;
    }

    #comparison .comparison-table > div:nth-child(4) {
        border-top: 1px solid #1a5632;
        border-left: 1px solid #1a5632;
        border-bottom: 1px solid #1a5632;
    }

    #comparison .comparison-table > div:nth-child(n+4) {
        min-height: calc(120 * min(100vw, 980px) / 980);
    }

    #comparison .comparison-table > div:nth-child(5),
    #comparison .comparison-table > div:nth-child(8),
    #comparison .comparison-table > div:nth-child(11),
    #comparison .comparison-table > div:nth-child(14) {
        border-left: 6px solid #a8e629;
        border-right: 6px solid #a8e629;
        border-bottom: 1px solid #1a5632;
    }

    #comparison .comparison-table > div:nth-child(17) {
        border-left: 6px solid #a8e629;
        border-right: 6px solid #a8e629;
        border-bottom: 6px solid #a8e629;
    }

    #comparison .comparison-table > div:nth-child(3n+5),
    #comparison .comparison-table > div:nth-child(3n+6) {
        padding: 0 calc(20 * min(100vw, 980px) / 980);
        display: flex;
        align-items: center;
        justify-content: space-between;
        width: auto;
    }

    #comparison .comparison-table > div:nth-child(3n+5) > div:nth-child(2) {
        width: 80%;
        color: #1a5632;
        font-size: calc(22 * min(100vw, 980px) / 980);
        font-weight: 700;
        text-align: center;
    }

    #comparison .comparison-table > div:nth-child(6),
    #comparison .comparison-table > div:nth-child(9),
    #comparison .comparison-table > div:nth-child(12),
    #comparison .comparison-table > div:nth-child(15),
    #comparison .comparison-table > div:nth-child(18) {
        border-right: 1px solid #1a5632;
        border-bottom: 1px solid #1a5632;
    }

    #comparison .comparison-table > div:nth-child(3n+6) > div:nth-child(2) {
        width: 80%;
        color: #333;
        font-size: calc(18 * min(100vw, 980px) / 980);
        font-weight: 400;
        text-align: center;
    }

    #comparison .comparison-table > div:nth-child(3n+7) {
        border-left: 1px solid #1a5632;
        border-bottom: 1px solid #1a5632;
    }
    
    /* --- PC voice (会員様の声) --- */
    #voice {
        margin: 0 auto;
        padding: calc(70 * min(90vw, 980px) / 980) 0;
        width: 100%;
    }

    #voice h2 {
        margin: 0 auto;
        width: 90%;
        max-width: 980px;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }

    #voice h2 > span:nth-child(1) {
        display: block;
        margin: 0 auto;
        padding: 0;
        color: #1a563233;
        font-size: calc(90 * min(90vw, 980px) / 980);
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
    }

    #voice h2 > span:nth-child(2) {
        display: block;
        margin: -0.5em auto;
        padding: 0;
        color: #1a5632;
        font-size: calc(24 * min(90vw, 980px) / 980);
        font-weight: 700;
        text-align: center;
        line-height: 1.0;
    }

    #voice .voice-box {
        margin: calc(40 * min(90vw, 980px) / 980) auto 0;
        width: 90%;
        max-width: 980px;
        display: flex;
        align-items: center;
        justify-content: space-between;
    }

    #voice .voice-box figure {
        width: 18%;
    }

    #voice .voice-box .voice-wrap {
        width: 80%;
        filter: drop-shadow(1px 1px 6px rgba(0, 0, 0, 0.16));
    }

    #voice .voice-box .voice-balloon {
        position: relative;
        margin: 0 0 0 auto;
        padding: calc(30 * min(90vw, 980px) / 980);
        width: calc(100% - 40px);
        background: #fff;
        border-radius: calc(20 * min(90vw, 980px) / 980);
    }

    #voice .voice-box .voice-balloon::before {
        position: absolute;
        content: "";
        top: calc(50% - 20px);
        right: calc(100% - 1px);
        width: 40px;
        height: 40px;
        background: #fff;
        clip-path: polygon(100% 0, 0 50%, 100% 100%);
    }

    #voice .voice-box.right .voice-balloon::before {
        left: calc(100% - 1px);
        clip-path: polygon(0 0, 100% 50%, 0 100%);
    }

    #voice .voice-box .voice-balloon .name {
        margin: 0 0 0.4em;
        color: #333;
        font-size: calc(16 * min(90vw, 980px) / 980);
        font-weight: 500;
        text-align: left;
    }

    #voice .voice-box .voice-balloon .name span {
        padding: 0 0 0 0.5em;
        color: #777;
        font-size: calc(16 * min(90vw, 980px) / 980);
        font-weight: 400;
    }

    #voice .voice-box .voice-balloon p {
        margin: 0;
        color: #333;
        font-size: calc(16 * min(90vw, 980px) / 980);
        font-weight: 400;
        text-align: justify;
        line-height: calc(25.5 / 16);
    }

    /* --- PC pics (スライダー) --- */
    #pics {
        margin: 0 auto;
        width: 100%;
        overflow: hidden;
    }

    #pics .slider-wrap {
        margin: 0 auto;
        width: calc(25.0vw * 16);
        height: auto;
        aspect-ratio: calc(640 * 16) / 440;
        display: flex;
        align-items: center;
        justify-content: space-between;
        animation: anim-slider-pc 60.0s linear infinite;
    }

    #pics .slider-wrap figure {
        margin: 0 auto;
        width: 25.0vw;
        height: auto;
    }

    #pics .slider-wrap figure img {
        width: 100%;
        height: auto;
    }

    /* --- PC faq (よくある質問) --- */
    #faq {
        margin: 0 auto;
        padding: calc(70 * min(90vw, 980px) / 980) 0;
        width: 100%;
    }

    #faq h2 {
        margin: 0 auto;
        width: 90%;
        max-width: 980px;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }

    #faq h2 > span:nth-child(1) {
        display: block;
        margin: 0 auto;
        padding: 0;
        color: #1a563233;
        font-size: calc(90 * min(90vw, 980px) / 980);
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
    }

    #faq h2 > span:nth-child(2) {
        display: block;
        margin: -0.5em auto;
        padding: 0;
        color: #1a5632;
        font-size: calc(24 * min(90vw, 980px) / 980);
        font-weight: 700;
        text-align: center;
        line-height: 1.0;
    }

    #faq .faq-box {
        position: relative;
        margin: calc(60 * min(90vw, 980px) / 980) auto 0;
        width: 90%;
        max-width: 980px;
        border: 1px solid #1a5632;
        border-radius: calc(20 * min(90vw, 980px) / 980);
        overflow: hidden;
    }

    #faq .faq-box + .faq-box {
        margin-top: calc(20 * min(90vw, 980px) / 980);
    }

    #faq .faq-box input[type="checkbox"] {
        position: absolute;
        top: 0;
        right: 0;
        width: 1px;
        height: 1px;
        opacity: 0;
    }

    #faq .faq-box .faq-q {
        position: relative;
        margin: 0;
        padding: 0.8em;
        width: auto;
        color: #1a5632;
        font-size: calc(18 * min(90vw, 980px) / 980);
        font-weight: 400;
        text-align: left;
        display: flex;
        align-items: center;
        justify-content: flex-start;
        gap: 0 0.5em;
        background: linear-gradient(to bottom, #fff, #f6f6f6);
        cursor: pointer;
    }

    #faq .faq-box .faq-q::before {
        content: "Q.";
        font-size: 178%;
        line-height: 1.0;
    }

    #faq .faq-box .faq-q::after {
        position: absolute;
        content: "";
        top: calc(50% - 0.6em);
        right: 1.0em;
        width: 1.2em;
        height: 1.2em;
        background: #1a5632;
        clip-path: polygon(0% 44%, 44% 44%, 44% 0%, 56% 0%, 56% 44%, 100% 44%, 100% 56%, 56% 56%, 56% 100%, 44% 100%, 44% 56%, 0% 56%);
        transition: clip-path 0.25s ease-out;
    }

    #faq .faq-box .faq-a {
        display: grid;
        grid-template-rows: 0fr;
        transition: grid-template-rows 0.25s ease-out;
    }

    #faq .faq-box .faq-a > div {
        margin: 0;
        padding: 0 1.0em;
        width: 100%;
        color: #333;
        font-size: calc(16 * min(90vw, 980px) / 980);
        font-weight: 400;
        text-align: left;
        display: flex;
        align-items: center;
        justify-content: flex-start;
        gap: 0 0.8em;
        background: #fff;
        overflow: hidden;
        transition: padding 0.25s ease-out;
    }

    #faq .faq-box .faq-a > div::before {
        content: "A.";
        color: #999;
        font-size: 175%;
        line-height: 1.0;
    }

    #faq .faq-box input[type="checkbox"]:checked ~ .faq-a {
        grid-template-rows: 1fr;
    }

    #faq .faq-box input[type="checkbox"]:checked ~ .faq-a > div {
        padding: 0.8em 1.0em;
    }

    #faq .faq-box input[type="checkbox"]:checked ~ .faq-q::after {
        clip-path: polygon(0% 44%, 44% 44%, 44% 44%, 56% 44%, 56% 44%, 100% 44%, 100% 56%, 56% 56%, 56% 56%, 44% 56%, 44% 56%, 0% 56%);
    }

    /* --- PC MOVIE --- */
    #movie {
        margin: 0 auto;
        padding: calc(70 * min(90vw, 980px) / 980) 0;
        width: 100%;
        background: #10723808;
    }

    #movie h2 {
        margin: 0 auto;
        width: 90%;
        max-width: 980px;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }

    #movie h2 > span:nth-child(1) {
        display: block;
        margin: 0 auto;
        padding: 0;
        color: #1a563233;
        font-size: calc(90 * min(90vw, 980px) / 980);
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
    }

    #movie h2 > span:nth-child(2) {
        display: block;
        margin: -0.5em auto;
        padding: 0;
        color: #1a5632;
        font-size: calc(24 * min(90vw, 980px) / 980);
        font-weight: 700;
        text-align: center;
        line-height: 1.0;
    }

    #movie .movie-box {
        margin: calc(40 * min(90vw, 980px) / 980) auto 0;
        padding: 0;
        width: 100%;
    }

    #movie .movie-box .video-container {
    position: relative;
    margin-top: 30px;
    overflow: hidden;
    width: 100%;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
    aspect-ratio: 16 / 9;
    }
    /* 中の動画（iframe / video）のサイズ設定 */
    #movie .movie-box .video-container iframe,
    #movie .movie-box .video-container video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    }

    #movie .movie-box iframe {
        position: relative;
        top: auto;
        left: auto;
        display: block;
        margin: 0 auto;
        width: 100%;
        max-width: 720px;
        height: auto;
        aspect-ratio: 1537 / 797;
    }

    #movie .line-btn {
        margin: 2.0em auto 0;
        width: calc(465 * min(90vw, 980px) / 980);
        max-width: 100%;
        aspect-ratio: 465 / 68;
        font-size: calc(23 * min(90vw, 980px) / 980);
        text-decoration: none;
    }

    /* --- PC ENTRY --- */
    #entry {
        background: #10723808;
    }

    .form-area {
        position: relative;
        margin: calc(60 * min(90vw, 980px) / 980) auto 0;
        width: 90%;
        max-width: 980px;
        border: 1px solid #1a563233;
        overflow: hidden;
        padding: 30px;
    }

    .wpcf7 .screen-reader-response {
        position: absolute;
        overflow: hidden;
        clip: rect(1px, 1px, 1px, 1px);
        clip-path: inset(50%);
        height: 1px;
        width: 1px;
        margin: -1px;
        padding: 0;
        border: 0;
        word-wrap: normal !important;
    }

    .wpcf7 .hidden-fields-container { display: none; }

    .wpcf7 label {
        display: block;
        margin-bottom: 8px;
        font-weight: 700;
    }

    .wpcf7-form-control-wrap {
        display: block;
        margin-bottom: 24px;
        position: relative;
        width: 97%;
    }

    .must { background: #FF1A00; }
    .free { background: #999; }

    .must, .free {
        color: #FFF;
        border-radius: 3px;
        font-size: 12px;
        margin-right: 10px;
        padding: 5px 10px;
        letter-spacing: 0.2em;
    }

    .wpcf7 input[type="text"],
    .wpcf7 input[type="email"],
    .wpcf7 input[type="tel"],
    .wpcf7 textarea,
    select {
        padding: 11px;
        border: 1px solid #ccc;
        border-radius: 4px;
        font-size: inherit;
        width: 100%;
        box-sizing: border-box;
    }

    .form-submit-center {
        margin-top: 40px;
        margin-bottom: 20px;
        text-align: center;
    }

    input.wpcf7-submit {
        width: 50%;
        height: 58px;
        background: #fff;
        color: #949495;
        font-size: 16px;
        font-weight: bold;
        border: 2px solid #949495;
        border-radius: 99px;
        cursor: pointer;
    }

    span.wpcf7-spinner { display: none; }

    /* --- PC INFO --- */
    #info {
        margin: 0 auto;
        padding: calc(100 * min(90vw, 980px) / 980) 0;
        width: 100%;
    }

    #info .info-wrap {
        margin: 0 auto;
        width: 90%;
        max-width: 980px;
        display: flex;
        align-items: center;
        justify-content: space-between;
    }

    #info .info-wrap .attr {
        width: 32%;
    }

    #info .info-wrap .attr figure {
        width: 100%;
        max-width: 310px;
        height: auto;
    }

    #info .info-wrap .attr p {
        margin: 1.0em 0 0;
        color: var(--fg-color, #333);
        font-size: calc(16 * min(90vw, 980px) / 980);
        font-weight: 400;
        text-align: justify;
        line-height: calc(25.6 / 16);
    }

    #info .info-wrap .map {
        width: 63%;
    }

    #info .info-wrap .map iframe {
        display: block;
        width: 100%;
        height: auto;
        aspect-ratio: 620 / 320;
        border: 0;
    }

/* PCキーフレームアニメーション */
@keyframes anim-slider-pc {
    0%   { transform: translateX(0vw); }
    100% { transform: translateX(calc(-100.0vw / 4 * 12)); }
}    
}


/* ==========================================
   SP（767px以下）用 レスポンシブスタイル
   ========================================== */
@media screen and (max-width:767px) {

    /* --- メインコンテンツ・全体基本 --- */
    main {
        margin: 0 auto;
        width: 100%;
    }
  #mv1 {
    position: relative;
  }

    #mv1 .mv-header-info {
        position: absolute !important;
        top: 12px;
        left: 50%;
        transform: translateX(-50%);
        z-index: 10;
    
        display: flex !important;
        align-items: center;
        justify-content: center;
        gap: 8px;
        width: calc(100% - 24px);
        max-width: 360px;
        white-space: nowrap;
        background: rgba(0, 0, 0, 0.75) !important;
        border: 1px solid rgba(255, 255, 255, 0.25) !important;
        padding: 6px 14px !important;
        border-radius: 50px !important;
        color: #ffffff !important;
        font-size: 11px !important;
        font-weight: 700;
        box-shadow: 0 4px 15px rgba(0, 0, 0, 0.4) !important;
    }

    #mv1 .mv-header-info .star {
        color: #FFD400 !important;
        font-size: 1.1em;
    }

    #mv1 .mv-header-info .info-divider {
        opacity: 0.4;
        color: #ffffff;
    }
 
/* ==========================================
   スマホ用（767px以下）強み 3つの丸バッジ
   ========================================== */
    .mv-features {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 8px; /* スマホ用に横並びの間隔を狭く調整 */
        margin: 0;
        padding: 0;
        list-style: none;
        width: 100%;
    }

    .mv-features .feature-item {
        /* スマホ画面幅に合わせてサイズを最適化（約72px〜88px） */
        width: clamp(72px, 22vw, 88px);
        height: clamp(72px, 22vw, 88px);
        background: linear-gradient(135deg, #ffffff 0%, #f4f4f4 100%);
        border: 2px solid #D90000; /* スマホに合わせて枠線を少し細く */
        border-radius: 50%;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        text-align: center;
        box-shadow: 0 4px 10px rgba(0, 0, 0, 0.35);
        color: #333;
        flex-shrink: 0; /* 画面幅が狭くても丸が潰れないように設定 */
        box-sizing: border-radius;
    }

    .mv-features .feature-title {
        /* タイトル文字サイズを最適化 */
        font-size: clamp(11px, 3.2vw, 13px);
        font-weight: 900;
        color: #D90000;
        line-height: 1.1;
    }

    .mv-features .feature-sub {
        /* 補足文字サイズを最適化 */
        font-size: clamp(9px, 2.4vw, 10px);
        font-weight: 700;
        color: #555;
        margin-top: 2px;
        white-space: nowrap; /* 補足テキストの意図しない改行を防止 */
    }

    /* --- ボタン共通 (画面はみ出し防止対応) --- */
    .custom-cta-btn {
        display: flex;
        align-items: center;
        justify-content: center;
        margin: 10px auto;
        width: 90%;
        max-width: 350px;
        height: auto;
        aspect-ratio: 350 / 68;
        color: #fff;
        font-size: 23px;
        font-weight: 700;
        text-decoration: none;
        background: #ff007b;
        border-radius: 4.0em;
        box-shadow: 0 4px 0 #c2005d;
        box-sizing: border-box;
        transition: all 0.2s;
    }

    .line-btn {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 0 0.2em;
        margin: 0 auto;
        padding: 0;
        width: 90%;
        max-width: 350px;
        height: auto;
        aspect-ratio: 350 / 68;
        color: #fff;
        font-size: 23px;
        font-weight: 700;
        text-align: center;
        line-height: 1.0;
        background: #00b900;
        border-radius: 4.0em;
        transition: all 0.2s;
        box-shadow: 0 3px 0 #009000;
    }

    .line-btn::before {
        content: "";
        width: 1.65em;
        height: auto;
        aspect-ratio: 38 / 36;
        background: url(../img/google-lp/icon-line.svg) no-repeat center / contain;
    }

    /* 各セクションごとのボタンサイズ調整 */
    #round .round-box .custom-cta-btn,
    #movie .custom-cta-btn {
        margin: 1.5em auto 0;
        width: 90%;
        max-width: 100%;
        aspect-ratio: 465 / 68;
        font-size: 4.0vw;
        color: #fff;
    }

    #mv2 .line-btn {
        margin: 8.0vw auto 0;
        width: 80%;
        aspect-ratio: 350 / 50;
        font-size: 4.8vw;
        text-decoration: none;
    }

    #mv2 .custom-cta-btn {
        margin: 8.0vw auto 0;
        width: 80%;
        aspect-ratio: 350 / 50;
        font-size: 4.8vw;
    }

    #movie .line-btn {
        margin: 2.0em auto 0;
        width: 80%;
        max-width: 100%;
        aspect-ratio: 465 / 68;
        font-size: 4.0vw;
    }

    /* --- SP MV1 (メインビジュアル) --- */
    #mv1 {
        margin: 0 auto;
        width: 100%;
        position: relative;
    }

    #mv1 .mv-bg {
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
    }

    #mv1 .mv-bg img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
        filter: brightness(73%);
    }

    #mv1 .mv-box {
        position: absolute;
        margin: 0;
        padding: 0;
        width: 90%;
        left: 5%;
        bottom: 5%;
    }

    #mv1 .mv-txt1 {
        gap: 6px;
        margin: 0;
        padding: 0;
        color: #fff;
        font-size: 11.0vw;
        font-weight: 500;
        line-height: 1.0;
        width: 100%;
        text-align: center;
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    #mv1 .campaign-badge {
        font-size: 17px;
        padding: 5px 12px;
        display: inline-block;
        background: #D90000;
        color: #fff;
        font-weight: 900;
        border-radius: 8px;
        letter-spacing: .06em;
        box-shadow: 0 6px 18px rgba(0, 0, 0, .45);
        text-shadow: 0 2px 8px rgba(0, 0, 0, .35);
    }

    #mv1 .campaign-price {
        font-size: 21px;
        display: block;
        margin-top: 6px;
        color: #FFD400;
        font-weight: 900;
        line-height: 1.2;
        text-shadow: 0 2px 6px rgba(0, 0, 0, .75);
    }

    #mv1 .mv-box .mv-txt2 {
        margin: 0.5em 0 0;
        padding: 0;
        color: #fff;
        font-size: 3.0vw;
        font-weight: 600;
        line-height: 1.0;
    }

    #mv1 .mv-box .mv-txt3 {
        margin: 0.2em 0 0;
        padding: 0;
        color: #fff;
        font-size: 5.2vw;
        font-weight: 500;
        line-height: 1.0;
    }

    #mv1 .mv-icon {
        position: absolute;
        margin: 0;
        padding: 0;
        width: 40%;
        left: 5%;
        bottom: 25%;
    }

    /* --- YouTube セクション --- */
    .youtube-section {
        padding: 24px 12px;
    }

    .youtube-wrap {
        max-width: 100%;
    }

    /* --- SP MV2 --- */
    #mv2 {
        margin: 0 auto;
        padding: 4vw 0 8vw 0;
        width: 100%;
        background: #1a5632;
    }

    #mv2 .mv2-grid {
        margin: 0 auto;
        padding: 0;
        width: 80%;
        display: grid;
        align-items: end;
        grid-template-columns: 1fr;
        gap: 8.0vw 0;
    }

    #mv2 .mv2-grid > div {
        margin: 0;
        padding: 0;
        color: #fff;
        line-height: 1.0;
        text-align: left;
        white-space: nowrap;
    }

    #mv2 .mv2-grid > div:nth-child(1) .txt1 {
        margin: 0;
        font-size: 6.0vw;
        font-weight: 700;
    }

    #mv2 .mv2-grid > div:nth-child(1) .txt1 .small { font-size: 67%; }

    #mv2 .mv2-grid > div:nth-child(1) .txt2-flex {
        margin: 2.0vw 0 0;
        display: flex;
        align-items: flex-end;
        justify-content: space-between;
    }

    #mv2 .mv2-grid > div:nth-child(1) .txt2-flex > div:nth-child(1) {
        padding: 0 0 0.5em;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
    }

    #mv2 .mv2-grid > div:nth-child(1) .txt2-flex > div:nth-child(1) > span:nth-child(1) { font-size: 3.6vw; font-weight: 500; }
    #mv2 .mv2-grid > div:nth-child(1) .txt2-flex > div:nth-child(1) > span:nth-child(2) { font-size: 6.0vw; font-weight: 500; }

    #mv2 .mv2-grid > div:nth-child(1) .txt2-flex > div:nth-child(2) {
        display: flex;
        align-items: flex-end;
        justify-content: flex-start;
    }

    #mv2 .mv2-grid > div:nth-child(1) .txt2-flex > div:nth-child(2) > span:nth-child(1) { color: #fddb41; font-size: 16.0vw; font-weight: 700; }
    #mv2 .mv2-grid > div:nth-child(1) .txt2-flex > div:nth-child(2) > span:nth-child(2) { padding: 0 0 0.2em; color: #fddb41; font-size: 4.0vw; font-weight: 700; }

    #mv2 .mv2-grid > div:nth-child(1) .txt3 {
        margin: 0.5em 0 0;
        padding: 0.6em 0;
        width: 100%;
        color: #333;
        font-size: 3.2vw;
        text-align: center;
        background: #fff;
    }

    #mv2 .mv2-grid > div:nth-child(2) .txt1 { margin: 0; font-size: 6.0vw; font-weight: 700; }

    #mv2 .mv2-grid > div:nth-child(2) .txt2-flex {
        margin: 2.0vw 0 0;
        display: flex;
        align-items: flex-end;
        justify-content: space-between;
    }

    #mv2 .mv2-grid > div:nth-child(2) .txt2-flex > div:nth-child(1) {
        padding: 0 0 0.5em;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
    }

    #mv2 .mv2-grid > div:nth-child(2) .txt2-flex > div:nth-child(1) > span:nth-child(1) { font-size: 3.6vw; font-weight: 500; }
    #mv2 .mv2-grid > div:nth-child(2) .txt2-flex > div:nth-child(1) > span:nth-child(2) { margin: 0.2em 0 0; font-size: 6.0vw; font-weight: 500; }
    #mv2 .mv2-grid > div:nth-child(2) .txt2-flex > div:nth-child(1) > span:nth-child(2) .small { font-size: 42.8%; }
    #mv2 .mv2-grid > div:nth-child(2) .txt2-flex > div:nth-child(1) > span:nth-child(3) { margin: 0.5em 0 0; font-size: 2.8vw; font-weight: 500; }

    #mv2 .mv2-grid > div:nth-child(2) .txt2-flex > div:nth-child(2) {
        display: flex;
        align-items: flex-end;
        justify-content: flex-start;
    }

    #mv2 .mv2-grid > div:nth-child(2) .txt2-flex > div:nth-child(2) > span:nth-child(1) { color: #fddb41; font-size: 16.0vw; font-weight: 700; }
    #mv2 .mv2-grid > div:nth-child(2) .txt2-flex > div:nth-child(2) > span:nth-child(2) { padding: 0 0 0.2em; color: #fddb41; font-size: 4.8vw; font-weight: 700; }

    #mv2 .mv2-grid > div:nth-child(2) .txt3 {
        margin: 0.5em 0 0;
        padding: 0.6em 0;
        width: 100%;
        color: #333;
        font-size: 3.2vw;
        text-align: center;
        background: #fff;
    }
    #mv2 .mv2-grid > div .txt2-flex {
        display: flex !important;
        justify-content: center !important;
        align-items: flex-end !important;
        gap: 8px !important;
        width: 100% !important;
    }

    #mv2 .mv2-grid > div:nth-child(1) .txt2-flex > div:nth-child(1),
    #mv2 .mv2-grid > div:nth-child(2) .txt2-flex > div:nth-child(1) {
        padding: 0 0 0.2em 0 !important;
        align-items: flex-end !important;
    }

    #mv2 .mv2-grid > div:nth-child(1) .txt2-flex > div:nth-child(2),
    #mv2 .mv2-grid > div:nth-child(2) .txt2-flex > div:nth-child(2) {
        display: flex !important;
        align-items: flex-end !important;
    }

    /* --- SP MV3 --- */
    #mv3 {
        margin: 0 auto;
        padding: 6.0vw 0;
        width: 100%;
        background: #fff6f6;
    }

    #mv3 .mv3-grid {
        margin: 0 auto;
        width: 90%;
        display: grid;
        align-items: center;
        grid-template-columns: 1fr;
        gap: 4.0vw 0;
    }

    #mv3 .mv3-grid > div:nth-child(1) {
        margin: 0 auto;
        padding: 0;
        width: 30.0vw;
        height: 30.0vw;
        color: #fff;
        font-size: 4.0vw;
        font-weight: 700;
        text-align: center;
        line-height: calc(28 / 20);
        background: #bb0000;
        display: flex;
        align-items: center;
        justify-content: center;
        overflow: hidden;
        border-radius: 100%;
        transform: rotate(-15deg);
    }

    #mv3 .mv3-grid > div:nth-child(2) { width: 100%; }

    #mv3 .mv3-grid > div:nth-child(2) .txt1 {
        margin: 0;
        color: #333;
        font-size: 3.6vw;
        font-weight: 400;
        line-height: calc(34 / 20);
        text-align: justify;
    }

    #mv3 .mv3-grid > div:nth-child(2) .txt2 {
        margin: 0;
        color: #333;
        font-size: 4.0vw;
        font-weight: 400;
        line-height: calc(34 / 20);
        text-align: justify;
    }

    #mv3 .mv3-grid > div:nth-child(2) .txt2 em { color: #bb0000; font-weight: 700; }
    #mv3 .mv3-grid > div:nth-child(2) .txt2 em strong { font-size: 140%; }

    #mv3 .mv3-grid > div:nth-child(2) .txt3 {
        margin: 0.8em 0 0;
        color: #777;
        font-size: 3.2vw;
        font-weight: 400;
        text-align: justify;
        line-height: calc(20 / 14);
    }

    /* --- SP feature (特徴) --- */
    #feature {
        margin: 0 auto;
        padding: 8.0vw 0;
        width: 100%;
    }

    #feature .feature-grid {
        margin: 0 auto;
        width: 80%;
        display: grid;
        grid-template-columns: 1fr;
        gap: 8.0vw 0;
    }

    #feature .feature-grid > div { width: 100%; }

    #feature .feature-grid > div figure {
        margin: 0 auto;
        width: 80%;
        height: auto;
        aspect-ratio: 1 / 1;
    }

    #feature .feature-grid > div figure img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        border-radius: 100%;
        border: 3px solid #d4ccab;
    }

    #feature .feature-grid > div h3 {
        margin: 0.8em auto 0;
        width: 100%;
        color: var(--color-theme, #1a5632);
        font-size: 4.8vw;
        font-weight: 700;
        text-align: center;
    }

    #feature .feature-grid > div p {
        margin: 1.0em auto 0;
        width: 100%;
        color: var(--fg-color, #333);
        font-size: 3.6vw;
        font-weight: 400;
        text-align: justify;
        line-height: calc(25.6 / 16);
    }

    /* --- SP round --- */
    #round {
        margin: 0 auto;
        padding: 8.0vw 0;
        width: 100%;
        background: url(../img/google-lp/round-bg.webp) no-repeat center bottom / 100% auto, #1a5632;
    }

    #round h2 {
        position: relative;
        margin: 0 auto;
        width: 90%;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 0 4.0vw;
        z-index: 2;
    }

    #round h2 > span:nth-child(1) {
        display: flex;
        align-items: center;
        justify-content: center;
        margin: 0;
        padding: 0;
        width: 25.0vw;
        height: auto;
        aspect-ratio: 1 / 1;
        color: var(--fg-color, #333);
        font-size: 3.6vw;
        font-weight: 900;
        text-align: center;
        line-height: calc(30 / 24);
        background: #fddb41;
        border-radius: 100%;
        overflow: hidden;
    }

    #round h2 > span:nth-child(2) {
        display: block;
        margin: 0;
        padding: 0;
        width: max-content;
        color: #fddb41;
        font-size: 6.0vw;
        font-weight: 900;
        text-align: center;
        line-height: 1.5;
        letter-spacing: 0.1em;
    }

    #round .round-box {
        position: relative;
        margin: -2.0vw auto 0;
        padding: 4.0vw;
        width: 90%;
        background: #fff;
        border-radius: 2.0vw;
        z-index: 1;
    }

    #round .round-box h3 {
        margin: 0;
        padding: 0;
        color: #1a5632;
        font-size: 4.0vw;
        font-weight: 700;
        text-align: center;
        line-height: calc(34 / 24);
    }

    #round .round-box p {
        margin: 1.5em 0 0;
        padding: 0;
        color: #333;
        font-size: 3.2vw;
        font-weight: 400;
        text-align: justify;
        line-height: calc(25.6 / 16);
    }

    /* --- SP worry (悩み) --- */
    #worry {
        margin: 0 auto;
        padding: 8.0vw 0;
        width: 100%;
    }

    #worry h2 {
        margin: 0 auto;
        width: 90%;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }

    #worry h2 > span:nth-child(1) {
        display: block;
        margin: 0 auto;
        padding: 0;
        color: #1a563233;
        font-size: 12.0vw;
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
    }

    #worry h2 > span:nth-child(2) {
        display: block;
        margin: -0.5em auto;
        padding: 0;
        color: #1a5632;
        font-size: 3.6vw;
        font-weight: 700;
        text-align: center;
        line-height: 1.0;
    }

    #worry > p {
        margin: 2.0em auto 0;
        width: 90%;
        color: #333;
        font-size: 3.2vw;
        font-weight: 500;
        text-align: center;
        line-height: calc(25.6 / 16);
    }

    #worry .worry-grid {
        margin: 8.0vw auto 0;
        width: 90%;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: center;
        gap: 2.0vw 2.0vw;
    }

    #worry .worry-grid > div {
        width: 22%;
        height: auto;
        aspect-ratio: 1 / 1;
        color: #333;
        font-size: 3.2vw;
        font-weight: 700;
        text-align: center;
        line-height: calc(25.6 / 18);
        background: url(../img/google-lp/worry-bg.webp) no-repeat center / contain;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    #worry > h3 {
        margin: 1.0em auto 0;
        width: 90%;
        color: #333;
        font-size: 4.0vw;
        font-weight: 700;
        text-align: center;
        line-height: 1.0;
    }

    #worry > h3 em { color: #bb0000; }

    /* --- SP equipment --- */
    #equipment {
        margin: 0 auto;
        padding: 8.0vw 0;
        width: 100%;
        background: #10723808;
    }

    #equipment h2 {
        margin: 0 auto;
        width: 90%;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }

    #equipment h2 > span:nth-child(1) {
        display: block;
        margin: 0 auto;
        padding: 0;
        color: #1a563233;
        font-size: 12.0vw;
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
    }

    #equipment h2 > span:nth-child(2) {
        display: block;
        margin: -0.5em auto;
        padding: 0;
        color: #1a5632;
        font-size: 3.6vw;
        font-weight: 700;
        text-align: center;
        line-height: 1.0;
    }

    #equipment > p {
        margin: 2.0em auto 0;
        width: 90%;
        color: #333;
        font-size: 3.2vw;
        font-weight: 500;
        text-align: center;
        line-height: calc(25.6 / 16);
    }

    #equipment > .equipment-box {
        position: relative;
        margin: 8.0vw auto 0;
        width: 100%;
    }

    #equipment > .equipment-box .pic-l,
    #equipment > .equipment-box .pic-r {
        margin: 0 auto;
        width: 100%;
        height: auto;
    }

    #equipment > .equipment-box .pic-l img,
    #equipment > .equipment-box .pic-r img {
        width: 100%;
        height: auto;
    }

    #equipment > .equipment-box .txt-r,
    #equipment > .equipment-box .txt-l {
        margin: 0 auto;
        width: 90%;
    }

    #equipment > .equipment-box h3 {
        margin: 1.0em 0 0.5em;
        width: 100%;
        color: #1a5632;
        font-size: 3.2vw;
        font-weight: 700;
        text-align: justify;
        line-height: 1.5;
    }

    #equipment > .equipment-box p {
        margin: 0;
        padding: 0 0 0 1.0em;
        width: 100%;
        color: #333;
        font-size: 2.4vw;
        font-weight: 400;
        text-align: justify;
        text-indent: -1.0em;
        line-height: calc(25.6 / 16);
    }

    /* --- SP training --- */
    #training {
        margin: 0 auto;
        padding: 8.0vw 0;
        width: 100%;
    }

    #training h2 {
        margin: 0 auto;
        width: 90%;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }

    #training h2 > span:nth-child(1) { display: block; margin: 0 auto; padding: 0; color: #1a563233; font-size: 12.0vw; font-weight: 500; text-align: center; line-height: 1.0; }
    #training h2 > span:nth-child(2) { display: block; margin: -0.5em auto; padding: 0; color: #1a5632; font-size: 3.6vw; font-weight: 700; text-align: center; line-height: 1.0; }

    #training > p { margin: 2.0em auto 0; width: 90%; color: #333; font-size: 3.2vw; font-weight: 500; text-align: center; line-height: calc(25.6 / 16); }

    #training > .movie,
    #training > .pic {
        margin: 4.0vw auto 0;
        padding: 0;
        width: 100%;
        max-width: 300px;
        height: auto;
    }

    #training > .movie { aspect-ratio: 1080 / 1920; }
    #training > .pic img { width: 100%; height: auto; }

    /* --- SP decipher --- */
    #decipher {
        margin: 0 auto;
        padding: 8.0vw 0;
        width: 100%;
        background: #10723808;
    }

    #decipher h2 { margin: 0 auto; width: 90%; display: flex; flex-direction: column; align-items: center; justify-content: center; }
    #decipher h2 > span:nth-child(1) { display: block; margin: 0 auto; padding: 0; color: #1a563233; font-size: 12.0vw; font-weight: 500; text-align: center; line-height: 1.0; }
    #decipher h2 > span:nth-child(2) { display: block; margin: -0.5em auto; padding: 0; color: #1a5632; font-size: 3.6vw; font-weight: 700; text-align: center; line-height: 1.0; }

    #decipher > p { margin: 2.0em auto 0; width: 90%; color: #333; font-size: 3.2vw; font-weight: 500; text-align: center; line-height: calc(25.6 / 16); }
    #decipher > .pic { margin: 4.0vw auto 0; padding: 0; width: 90%; max-width: 959px; height: auto; }
    #decipher > .pic img { width: 100%; height: auto; }
}


/* --- staff共通 --- */
/* --- スタッフアコーディオン（続きを読む） --- */
.staff-more {
    margin-top: 6px;
    width: 100%;
}

.staff-more summary {
    list-style: none;
}

.staff-more summary::-webkit-details-marker {
    display: none;
}

.staff-more .more-btn {
    display: inline-block;
    color: #1a5632;
    font-weight: 700;
    font-size: 12px;
    cursor: pointer;
    padding: 4px 12px;
    background: #f0f7f2;
    border: 1px solid #1a5632;
    border-radius: 20px;
    text-align: center;
    margin-top: 4px;
}

.staff-more:not([open]) .more-btn::before {
    content: "続きを読む ▼";
}

.staff-more[open] .more-btn::before {
    content: "閉じる ▲";
}

.staff-more .more-content {
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px dashed #ddd;
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(-4px); }
    to { opacity: 1; transform: translateY(0); }
}

/* --- PC staff --- */
@media screen and (min-width:768px) {

    #staff {
        margin: 0 auto;
        padding: calc(70 * min(90vw, 980px) / 980) 0;
        width: 100%;
    }

    #staff h2 {
        margin: 0 auto;
        width: 90%;
        max-width: 980px;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }

    #staff h2 > span:nth-child(1) {
        display: block;
        margin: 0 auto;
        padding: 0;
        color: #1a563233;
        font-size: calc(90 * min(90vw, 980px) / 980);
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
    }

    #staff h2 > span:nth-child(2) {
        display: block;
        margin: -0.5em auto;
        padding: 0;
        color: #1a5632;
        font-size: calc(24 * min(90vw, 980px) / 980);
        font-weight: 700;
        text-align: center;
        line-height: 1.0;
    }

    #staff .staff-slider {
        margin: calc(40 * min(90vw, 980px) / 980) auto 0;
        width: 90%;
        max-width: 980px;
        display: flex;
        flex-wrap: wrap;
        align-items: stretch;
        justify-content: space-between;
    }

    #staff .staff-card.staff-main {
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
        border-bottom: 1px solid #ccc;
        padding-bottom: calc(30 * min(90vw, 980px) / 980);
        gap: 0 2%;
    }

    #staff .staff-card.staff-main > figure {
        width: 25%;
        height: auto;
        aspect-ratio: 1 / 1;
    }

    #staff .staff-card.staff-main .staff-info {
        width: 73%;
        display: flex;
        align-items: center;
        justify-content: space-between;
    }

    #staff .staff-card.staff-main .attr {
        width: 28%;
    }

    #staff .staff-card.staff-main .desc {
        width: 68%;
    }

    #staff .staff-card:not(.staff-main) {
        width: calc(100% / 3);
        padding: calc(30 * min(90vw, 980px) / 980) calc(10 * min(90vw, 980px) / 980) calc(10 * min(90vw, 980px) / 980);
        box-sizing: border-box;
        display: flex;
        flex-direction: column;
    }

    #staff .staff-card:not(.staff-main) + .staff-card:not(.staff-main) {
        border-left: 1px solid #ccc;
    }

    #staff .staff-card:not(.staff-main) figure {
        margin: 0 auto calc(10 * min(90vw, 980px) / 980);
        width: 75%;
        height: auto;
        aspect-ratio: 1 / 1;
    }

    #staff .staff-card:not(.staff-main) :where(.title, .name, .eng) {
        text-align: center;
    }

    #staff .staff-card:not(.staff-main) .desc {
        padding: 0 calc(10 * min(90vw, 980px) / 980);
    }

    #staff .title {
        margin: 0;
        padding: 0;
        color: #333;
        font-size: calc(14 * min(90vw, 980px) / 980);
        font-weight: 700;
        text-align: justify;
        line-height: calc(25.6 / 16);
    }

    #staff .name {
        margin: 0;
        padding: 0;
        color: #1a5632;
        font-size: calc(28 * min(90vw, 980px) / 980);
        font-weight: 700;
        text-align: justify;
        line-height: calc(22 / 14);
    }

    #staff .name span { font-size: 78.6%; }

    #staff .eng {
        margin: 0 auto calc(20 * min(90vw, 980px) / 980);
        padding: 0;
        color: #777;
        font-size: calc(12 * min(90vw, 980px) / 980);
        font-weight: 400;
        text-align: justify;
        line-height: 1.0;
    }

    #staff .desc {
        margin: 0;
        padding: 0;
        color: #333;
        font-size: calc(16 * min(90vw, 980px) / 980);
        font-weight: 400;
        text-align: justify;
        line-height: calc(25.6 / 16);
    }

    #staff figure img {
        width: 100%;
        height: 100%;
        object-fit: contain;
    }

}
/* --- SP staff --- */
@media screen and (max-width:767px) {

    #staff {
        margin: 0 auto;
        padding: 8.0vw 0;
        width: 100%;
        overflow: hidden;
    }

    #staff h2 {
        margin: 0 auto;
        width: 90%;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }

    #staff h2 > span:nth-child(1) { display: block; margin: 0 auto; padding: 0; color: #1a563233; font-size: 12.0vw; font-weight: 500; text-align: center; line-height: 1.0; }
    #staff h2 > span:nth-child(2) { display: block; margin: -0.5em auto; padding: 0; color: #1a5632; font-size: 3.6vw; font-weight: 700; text-align: center; line-height: 1.0; }

    #staff .staff-slider {
        margin: 6.0vw 0 0 !important;
        padding: 2vw 5vw 6vw !important;
        width: 100% !important;
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
        scroll-snap-type: x mandatory !important;
        -webkit-overflow-scrolling: touch;
        box-sizing: border-box !important;
        gap: 4vw !important;
    }

    #staff .staff-slider::-webkit-scrollbar { display: none !important; }
    #staff .staff-slider { -ms-overflow-style: none !important; scrollbar-width: none !important; }

    #staff .staff-card,
    #staff .staff-card.staff-main {
        flex: 0 0 82vw !important;
        width: 82vw !important;
        max-width: 320px !important;
        scroll-snap-align: center !important;
        background: #fff !important;
        border: 1px solid #eee !important;
        border-radius: 12px !important;
        padding: 6.0vw 4.0vw !important;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08) !important;
        box-sizing: border-box !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        border-left: 1px solid #eee !important;
        border-bottom: 1px solid #eee !important;
    }

    #staff .staff-card figure,
    #staff .staff-card.staff-main > figure {
        margin: 0 auto 3.0vw !important;
        width: 45% !important;
        height: auto !important;
        aspect-ratio: 1 / 1 !important;
    }

    #staff .staff-card figure img {
        width: 100% !important;
        height: 100% !important;
        object-fit: contain !important;
    }

    #staff .staff-card .staff-info {
        width: 100% !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
    }

    #staff .title {
        margin: 0 !important;
        padding: 0 !important;
        color: #333 !important;
        font-size: 3.2vw !important;
        font-weight: 700 !important;
        text-align: center !important;
        line-height: 1.4 !important;
    }

    #staff .name {
        margin: 1.0vw 0 0 !important;
        padding: 0 !important;
        color: #1a5632 !important;
        font-size: 5.2vw !important;
        font-weight: 700 !important;
        text-align: center !important;
        line-height: 1.2 !important;
    }

    #staff .name span { font-size: 78.6% !important; }

    #staff .eng {
        margin: 0.5vw auto 3.0vw !important;
        padding: 0 !important;
        color: #777 !important;
        font-size: 3.0vw !important;
        font-weight: 400 !important;
        text-align: center !important;
        line-height: 1.0 !important;
    }

    #staff .desc {
        margin: 0 !important;
        padding: 0 !important;
        color: #333 !important;
        font-size: 3.2vw !important;
        font-weight: 400 !important;
        text-align: justify !important;
        line-height: 1.6 !important;
        width: 100% !important;
    }
}

    /* --- SP price (料金表テーブル) --- */
    @media screen and (max-width:767px) {
    
    #price {
        margin: 0 auto;
        padding: 8.0vw 0;
        width: 100%;
        background: #10723808;
    }

    #price h2 { margin: 0 auto; width: 90%; display: flex; flex-direction: column; align-items: center; justify-content: center; }
    #price h2 > span:nth-child(1) { display: block; margin: 0 auto; padding: 0; color: #1a563233; font-size: 12.0vw; font-weight: 500; text-align: center; line-height: 1.0; }
    #price h2 > span:nth-child(2) { display: block; margin: -0.5em auto; padding: 0; color: var(--color-theme, #1a5632); font-size: 3.6vw; font-weight: 700; text-align: center; line-height: 1.0; }

    #price .price-wrap {
        margin: 8.0vw 1.0vw 0;
        padding: 0 0 2.0vw;
        overflow-x: auto;
    }

    #price .price-table1 {
        margin: 0 1.0vw;
        width: 150%;
        display: grid;
        grid-template-columns: 16% 21% 21% 21% 21%;
        gap: 0;
    }

    #price .price-table1 > div {
        margin: 0;
        padding: 2.0vw 0;
        width: auto;
        color: #1a5632;
        font-weight: 900;
        text-align: center;
        white-space: nowrap;
        line-height: 1.5;
        background: #fff;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }

    #price .price-table1 > div:nth-child(1),
    #price .price-table1 > div:nth-child(6) { background: transparent; }

    #price .price-table1 > div:nth-child(2),
    #price .price-table1 > div:nth-child(3),
    #price .price-table1 > div:nth-child(4),
    #price .price-table1 > div:nth-child(5) {
        padding: 0.8em 0;
        color: #fff;
        font-size: 3.6vw;
        font-weight: 700;
        background: #1a5632;
        border-top: 1px solid #5a876c;
        border-right: 1px solid #5a876c;
        border-bottom: 1px solid #5a876c;
    }

    #price .price-table1 > div:nth-child(2) { border-left: 1px solid #5a876c; }

    #price .price-table1 > div:nth-child(7),
    #price .price-table1 > div:nth-child(8),
    #price .price-table1 > div:nth-child(9),
    #price .price-table1 > div:nth-child(10) {
        flex-direction: row;
        align-items: baseline;
        color: #fff;
        font-size: 4.0vw;
        font-weight: 700;
        background: #31714b;
        border-right: 1px solid #5a876c;
    }

    #price .price-table1 > div:nth-child(7) { border-left: 1px solid #5a876c; }
    #price .price-table1 > div:nth-child(7)::after,
    #price .price-table1 > div:nth-child(8)::after,
    #price .price-table1 > div:nth-child(9)::after,
    #price .price-table1 > div:nth-child(10)::after { content: "円"; font-size: 68.75%; }

    #price .price-table1 > div:nth-child(11) { font-size: 3.6vw; border: 1px solid #1a5632; }

    #price .price-table1 > div:nth-child(16),
    #price .price-table1 > div:nth-child(21),
    #price .price-table1 > div:nth-child(26),
    #price .price-table1 > div:nth-child(31),
    #price .price-table1 > div:nth-child(33) {
        font-size: 3.6vw;
        border-left: 1px solid #1a5632;
        border-right: 1px solid #1a5632;
        border-bottom: 1px solid #1a5632;
    }
}/*閉じタグが反応しないので一旦区切る*/


@media screen and (max-width:767px) {
    #price .price-table1 > div:nth-child(12),
    #price .price-table1 > div:nth-child(13),
    #price .price-table1 > div:nth-child(14),
    #price .price-table1 > div:nth-child(15) {
        font-size: 6.0vw;
        border-top: 1px solid #1a5632;
        border-right: 1px solid #1a5632;
        border-bottom: 1px solid #1a5632;
    }

    #price .price-table1 > div:nth-child(17),
    #price .price-table1 > div:nth-child(18),
    #price .price-table1 > div:nth-child(19),
    #price .price-table1 > div:nth-child(20) {
        font-size: 4.0vw;
        border-right: 1px solid #1a5632;
        border-bottom: 1px solid #1a5632;
    }

    #price .price-table1 > div:nth-child(17) .small { font-size: 75%; }

    #price .price-table1 > div:nth-child(18) span {
        display: block;
        margin: 0 auto;
        padding: 0.4em 0.8em;
        width: max-content;
        font-size: 117%;
        font-weight: 900;
        background: #fddb41;
    }

    #price .price-table1 > div:nth-child(22),
    #price .price-table1 > div:nth-child(23),
    #price .price-table1 > div:nth-child(24),
    #price .price-table1 > div:nth-child(25),
    #price .price-table1 > div:nth-child(27),
    #price .price-table1 > div:nth-child(28),
    #price .price-table1 > div:nth-child(29),
    #price .price-table1 > div:nth-child(30) {
        font-size: 4.0vw;
        border-right: 1px solid #1a5632;
        border-bottom: 1px solid #1a5632;
    }

    #price .price-table1 > div:nth-child(32) {
        grid-column: span 4;
        padding: 0.8em 0;
        font-size: 4.0vw;
        border-right: 1px solid #1a5632;
        border-bottom: 1px solid #1a5632;
    }

    #price .price-table1 > div:nth-child(34) {
        grid-column: span 4;
        font-size: 3.6vw;
        border-right: 1px solid #1a5632;
        border-bottom: 1px solid #1a5632;
    }

    #price .price-table1 > div:nth-child(34) span:nth-child(1) { color: #bb0000; }
    #price .price-table1 > div:nth-child(34) span:nth-child(2) { font-size: 57%; font-weight: 400; }

    #price .price-table2 {
        margin: 0 1vw;
        width: 160%;
        display: grid;
        grid-template-columns: 13% 14.5% 14.5% 14.5% 14.5% 14.5% 14.5%;
        gap: 0;
    }

    #price .price-table2 > div {
        margin: 0;
        padding: 2.0vw 0;
        width: auto;
        color: var(--color-theme, #1a5632);
        font-weight: 900;
        text-align: center;
        white-space: nowrap;
        line-height: 1.5;
        background: #fff;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }
    #price .price-table2 > div:nth-child(1),
    #price .price-table2 > div:nth-child(8) { background: transparent; }

    #price .price-table2 > div:nth-child(2),
    #price .price-table2 > div:nth-child(3),
    #price .price-table2 > div:nth-child(4),
    #price .price-table2 > div:nth-child(5),
    #price .price-table2 > div:nth-child(6),
    #price .price-table2 > div:nth-child(7) {
        padding: 0.4em 0;
        color: #fff;
        font-size: 3.6vw;
        font-weight: 700;
        background: #1a5632;
        border-top: 1px solid #5a876c;
        border-right: 1px solid #5a876c;
        border-bottom: 1px solid #5a876c;
    }

    #price .price-table2 > div:nth-child(2) { border-left: 1px solid #5a876c; }
    #price .price-table2 > div:nth-child(3) span:nth-child(2),
    #price .price-table2 > div:nth-child(7) span:nth-child(2) { color: #fddb41; font-size: 82%; }

    #price .price-table2 > div:nth-child(5) span:nth-child(1),
    #price .price-table2 > div:nth-child(6) span:nth-child(1) { font-size: 82%; font-weight: 400; }

    #price .price-table2 > div:nth-child(5) span:nth-child(1) img,
    #price .price-table2 > div:nth-child(6) span:nth-child(1) img {
        display: inline-block;
        margin: 0;
        width: 1.3em;
        height: 1.0em;
        object-fit: contain;
        transform: translateY(-20%);
    }

    #price .price-table2 > div:nth-child(6) span:nth-child(1) { color: #fddb41; font-size: 82%; font-weight: 400; }

    #price .price-table2 > div:nth-child(9),
    #price .price-table2 > div:nth-child(10),
    #price .price-table2 > div:nth-child(11),
    #price .price-table2 > div:nth-child(12),
    #price .price-table2 > div:nth-child(13),
    #price .price-table2 > div:nth-child(14) {
        flex-direction: row;
        align-items: baseline;
        color: #fff;
        font-size: 4.0vw;
        font-weight: 700;
        background: #31714b;
        border-right: 1px solid #5a876c;
    }

    #price .price-table2 > div:nth-child(7) { border-left: 1px solid #5a876c; }
    #price .price-table2 > div:nth-child(9)::after,
    #price .price-table2 > div:nth-child(10)::after,
    #price .price-table2 > div:nth-child(11)::after,
    #price .price-table2 > div:nth-child(12)::after,
    #price .price-table2 > div:nth-child(13)::after,
    #price .price-table2 > div:nth-child(14)::after { content: "円"; font-size: 68.75%; }

    #price .price-table2 > div:nth-child(15) { font-size: 3.6vw; border: 1px solid #1a5632; }

    #price .price-table2 > div:nth-child(22),
    #price .price-table2 > div:nth-child(29),
    #price .price-table2 > div:nth-child(36),
    #price .price-table2 > div:nth-child(43),
    #price .price-table2 > div:nth-child(46) {
        font-size: 3.6vw;
        border-left: 1px solid #1a5632;
        border-right: 1px solid #1a5632;
        border-bottom: 1px solid #1a5632;
    }

    #price .price-table2 > div:nth-child(16),
    #price .price-table2 > div:nth-child(17),
    #price .price-table2 > div:nth-child(18),
    #price .price-table2 > div:nth-child(19),
    #price .price-table2 > div:nth-child(20),
    #price .price-table2 > div:nth-child(21) {
        color: #bb0000;
        font-size: 6.0vw;
        border-top: 1px solid #1a5632;
        border-right: 1px solid #1a5632;
        border-bottom: 1px solid #1a5632;
    }

    #price .price-table2 > div:nth-child(23),
    #price .price-table2 > div:nth-child(24),
    #price .price-table2 > div:nth-child(25),
    #price .price-table2 > div:nth-child(26),
    #price .price-table2 > div:nth-child(27),
    #price .price-table2 > div:nth-child(28) {
        font-size: 3.6vw;
        border-right: 1px solid #1a5632;
        border-bottom: 1px solid #1a5632;
    }

    #price .price-table2 > div:nth-child(25) .small { font-size: 75%; font-weight: 400; }
    #price .price-table2 > div .red { color: #bb0000; }

    #price .price-table2 > div:nth-child(30),
    #price .price-table2 > div:nth-child(31),
    #price .price-table2 > div:nth-child(32),
    #price .price-table2 > div:nth-child(33),
    #price .price-table2 > div:nth-child(34),
    #price .price-table2 > div:nth-child(35),
    #price .price-table2 > div:nth-child(37),
    #price .price-table2 > div:nth-child(38),
    #price .price-table2 > div:nth-child(39),
    #price .price-table2 > div:nth-child(40),
    #price .price-table2 > div:nth-child(41),
    #price .price-table2 > div:nth-child(42) {
        font-size: 3.6vw;
        border-right: 1px solid #1a5632;
        border-bottom: 1px solid #1a5632;
    }

    #price .price-table2 > div:nth-child(44) {
        grid-column: span 5;
        padding: 0.8em 0;
        font-size: 4.0vw;
        border-right: 1px solid #1a5632;
        border-bottom: 1px solid #1a5632;
    }

    #price .price-table2 > div:nth-child(45) {
        color: #bb0000;
        font-size: 3.6vw;
        border-right: 1px solid #1a5632;
        border-bottom: 1px solid #1a5632;
    }

    #price .price-table2 > div:nth-child(47) {
        grid-column: span 6;
        font-size: 4.0vw;
        border-right: 1px solid #1a5632;
        border-bottom: 1px solid #1a5632;
    }

    #price .price-table2 > div:nth-child(47) span:nth-child(1) { color: #bb0000; }
    #price .price-table2 > div:nth-child(47) span:nth-child(2) { font-size: 57%; font-weight: 400; }

    /* --- SP comparison (比較表) --- */
    #comparison {
        margin: 0 auto;
        padding: 8.0vw 0;
        width: 100%;
        position: relative;
    }

    #comparison::before {
        position: absolute;
        content: "";
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: #1a5632;
        z-index: -2;
    }

    #comparison::after {
        position: absolute;
        content: "";
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: url(../img/google-lp/comparison-bg.webp) repeat;
        opacity: 0.05;
        z-index: -1;
    }

    #comparison h2 {
        margin: 0 auto;
        width: 90%;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }

    #comparison h2 > span:nth-child(1) { display: block; margin: 0 auto; padding: 0; color: #3c8258; font-size: 12.0vw; font-weight: 500; text-align: center; line-height: 1.0; }
    #comparison h2 > span:nth-child(2) { display: block; margin: -0.5em auto; padding: 0; color: #fff; font-size: 3.6vw; font-weight: 700; text-align: center; line-height: 1.0; }

    #comparison .comparison-wrap {
        margin: 8.0vw 1.0vw 0;
        padding: 0 0 2.0vw;
        overflow-x: auto;
    }

    #comparison .comparison-table {
        margin: 0 auto;
        width: 150%;
        display: grid;
        grid-template-columns: 25% 40% 35%;
        gap: 0;
    }

    #comparison .comparison-table > div {
        margin: 0;
        width: auto;
        color: #1a5632;
        font-weight: 900;
        text-align: center;
        line-height: 1.5;
        white-space: nowrap;
        background: #fff;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    #comparison .comparison-table > div:nth-child(1) { 
        background: transparent;
    }

    #comparison .comparison-table > div:nth-child(2) {
        padding: 2.0vw 0;
        border-top: 6px solid #a8e629;
        border-left: 6px solid #a8e629;
        border-right: 6px solid #a8e629;
        border-bottom: 1px solid #1a5632;
    }

    #comparison .comparison-table > div:nth-child(2) figure { 
        margin: 0 auto; 
        width: 90%; 
        max-width: 310px; 
        height: auto; 
    }

    #comparison .comparison-table > div:nth-child(3) {
        color: #fff;
        font-size: 3.6vw;
        font-weight: 700;
        background: #9db7a7;
        border-top: 1px solid #1a5632;
        border-right: 1px solid #1a5632;
        border-bottom: 1px solid #1a5632;
    }

    #comparison .comparison-table > div:nth-child(n+4) { 
        min-height: 18.0vw; 
    }
    #comparison .comparison-table > div:nth-child(4) { 
        border-top: 1px solid #1a5632; 
        border-left: 1px solid #1a5632; 
        border-bottom: 1px solid #1a5632; 
        white-space: normal;
    }
    #comparison .comparison-table > div:nth-child(3n+7) { 
        border-left: 1px solid #1a5632; 
        border-bottom: 1px solid #1a5632; 
    }

    #comparison .comparison-table > div:nth-child(5),
    #comparison .comparison-table > div:nth-child(8),
    #comparison .comparison-table > div:nth-child(11),
    #comparison .comparison-table > div:nth-child(14) {
        border-left: 6px solid #a8e629;
        border-right: 6px solid #a8e629;
        border-bottom: 1px solid #1a5632;
    }

    #comparison .comparison-table > div:nth-child(17) {
        border-left: 6px solid #a8e629;
        border-right: 6px solid #a8e629;
        border-bottom: 6px solid #a8e629;
    }

    #comparison .comparison-table > div:nth-child(6),
    #comparison .comparison-table > div:nth-child(9),
    #comparison .comparison-table > div:nth-child(12),
    #comparison .comparison-table > div:nth-child(15),
    #comparison .comparison-table > div:nth-child(18) {
        border-right: 1px solid #1a5632;
        border-bottom: 1px solid #1a5632;
    }

    #comparison .comparison-table > div:nth-child(3n+5),
    #comparison .comparison-table > div:nth-child(3n+6) {
        padding: 0 2.0vw;
        display: flex;
        align-items: center;
        justify-content: space-between;
    }

    #comparison .comparison-table > div:nth-child(3n+5) > div:nth-child(1),
    #comparison .comparison-table > div:nth-child(3n+6) > div:nth-child(1) { width: 20%; }

    #comparison .comparison-table > div:nth-child(3n+5) > div:nth-child(1) figure { 
        width: 80%; 
    }
    #comparison .comparison-table > div:nth-child(3n+6) > div:nth-child(1) figure { 
        width: 70%; 
    }

    #comparison .comparison-table > div:nth-child(3n+5) > div:nth-child(2) {
        width: 80%;
        color: #1a5632;
        font-size: 3.2vw;
        font-weight: 700;
        text-align: center;
    }
    
    #comparison .comparison-table > div:nth-child(3n+6) > div:nth-child(2) {
        width: 80%;
        color: #333;
        font-size: 3.2vw;
        font-weight: 400;
        text-align: center;
        white-space: normal;
    }

    #comparison .anim-scroll { color: #fff; }

    /* --- SP voice (会員様の声) --- */
    #voice {
        margin: 0 auto;
        padding: 8.0vw 0;
        width: 100%;
    }

    #voice h2 { 
        margin: 0 auto; 
        width: 90%; 
        display: flex; 
        flex-direction: column; 
        align-items: center; 
        justify-content: center; 
    }
    #voice h2 > span:nth-child(1) { 
        display: block; 
        margin: 0 auto; 
        padding: 0; 
        color: #1a563233; 
        font-size: 12.0vw; 
        font-weight: 500; 
        text-align: center; 
        line-height: 1.0; 
    }
    #voice h2 > span:nth-child(2) { 
        display: block; 
        margin: -0.5em auto; 
        padding: 0; color: var(--color-theme, #1a5632); 
        font-size: 3.6vw; 
        font-weight: 700; 
        text-align: center; 
        line-height: 1.0; }

    #voice .voice-box {
        margin: 8.0vw auto 0;
        width: 90%;
        max-width: 980px;
        display: flex;
        align-items: center;
        justify-content: space-between;
    }

    #voice .voice-box figure { 
        width: 18%; 
    }
    #voice .voice-box .voice-wrap { 
        width: 80%; 
        filter: drop-shadow(1px 1px 6px rgba(0, 0, 0, 0.16)); 
    }

    #voice .voice-box .voice-balloon {
        position: relative;
        margin: 0 0 0 auto;
        padding: 4.0vw;
        width: calc(100% - 4.0vw);
        background: #fff;
        border-radius: 2.0vw;
    }

    #voice .voice-box .voice-balloon::before {
        position: absolute;
        content: "";
        top: calc(50% - 2.0vw);
        right: calc(100% - 1px);
        width: 4.0vw;
        height: 4.0vw;
        background: #fff;
        clip-path: polygon(100% 0, 0 50%, 100% 100%);
    }

    #voice .voice-box.right .voice-balloon { 
        margin: 0 auto 0 0; 
    }
    #voice .voice-box.right .voice-balloon::before { 
        left: calc(100% - 1px); 
        clip-path: polygon(0 0, 100% 50%, 0 100%); 
    }

    #voice .voice-box .voice-balloon .name { 
        margin: 0 0 0.4em; color: var(--fg-color, #333); 
        font-size: 3.2vw; 
        font-weight: 500; text-align: left; 
    }
    #voice .voice-box .voice-balloon .name span { 
        padding: 0 0 0 0.5em; color: #777; 
        font-size: 3.2vw; 
        font-weight: 400; 
    }
    #voice .voice-box .voice-balloon p { 
        margin: 0; 
        color: var(--fg-color, #333); 
        font-size: 3.2vw; 
        font-weight: 400; 
        text-align: justify; 
        line-height: calc(25.5 / 16); 
    }

    /* --- SP pics (スライダー) --- */
    #pics {
        margin: 0 auto;
        width: 100%;
        overflow: hidden;
    }

    #pics .slider-wrap {
        margin: 0 auto;
        width: calc(100.0vw / 3 * 15);
        height: auto;
        aspect-ratio: calc(640 * 15) / 440;
        display: flex;
        align-items: center;
        justify-content: space-between;
        animation: anim-slider-sp 60.0s linear infinite;
    }

    #pics .slider-wrap figure { margin: 0 auto; width: calc(100.0vw / 3); height: auto; }
    #pics .slider-wrap figure img { width: 100%; height: auto; }
    #pics .slider-wrap figure:nth-child(16) { display: none; }

    /* --- SP faq --- */
    #faq {
        margin: 0 auto;
        padding: 8.0vw 0;
        width: 100%;
    }

    #faq h2 { margin: 0 auto; width: 90%; display: flex; flex-direction: column; align-items: center; justify-content: center; }
    #faq h2 > span:nth-child(1) { display: block; margin: 0 auto; padding: 0; color: #1a563233; font-size: 12.0vw; font-weight: 500; text-align: center; line-height: 1.0; }
    #faq h2 > span:nth-child(2) { display: block; margin: -0.5em auto; padding: 0; color: var(--color-theme, #1a5632); font-size: 3.6vw; font-weight: 700; text-align: center; line-height: 1.0; }

    #faq .faq-box {
        position: relative;
        margin: 8.0vw auto 0;
        width: 90%;
        border: 1px solid #1a5632;
        border-radius: 2.0vw;
        overflow: hidden;
    }

    #faq .faq-box + .faq-box { margin-top: 2.0vw; }

    #faq .faq-box input[type="checkbox"] {
        position: absolute;
        top: 0;
        right: 0;
        width: 1px;
        height: 1px;
        opacity: 0;
    }

    #faq .faq-box .faq-q {
        position: relative;
        margin: 0;
        padding: 0.8em;
        width: auto;
        color: #1a5632;
        font-size: 3.2vw;
        font-weight: 400;
        text-align: left;
        display: flex;
        align-items: center;
        justify-content: flex-start;
        gap: 0 0.5em;
        background: linear-gradient(to bottom, #fff, #f6f6f6);
        cursor: pointer;
    }

    #faq .faq-box .faq-q::before { content: "Q."; font-size: 178%; line-height: 1.0; }
    #faq .faq-box .faq-q::after {
        position: absolute;
        content: "";
        top: calc(50% - 0.6em);
        right: 1.0em;
        width: 1.2em;
        height: 1.2em;
        background: #1a5632;
        clip-path: polygon(0% 44%, 44% 44%, 44% 0%, 56% 0%, 56% 44%, 100% 44%, 100% 56%, 56% 56%, 56% 100%, 44% 100%, 44% 56%, 0% 56%);
        transition: clip-path 0.25s ease-out;
    }

    #faq .faq-box .faq-a { display: grid; grid-template-rows: 0fr; transition: grid-template-rows 0.25s ease-out; }

    #faq .faq-box .faq-a > div {
        margin: 0;
        padding: 0 1.0em;
        width: 100%;
        color: #333;
        font-size: 3.2vw;
        font-weight: 400;
        text-align: left;
        display: flex;
        align-items: center;
        justify-content: flex-start;
        gap: 0 0.8em;
        background: #fff;
        overflow: hidden;
        transition: padding 0.25s ease-out;
    }

    #faq .faq-box .faq-a > div::before { content: "A."; color: #999; font-size: 175%; line-height: 1.0; }

    #faq .faq-box input[type="checkbox"]:checked ~ .faq-a { grid-template-rows: 1fr; }
    #faq .faq-box input[type="checkbox"]:checked ~ .faq-a > div { padding: 0.8em 1.0em; width: auto; }
    #faq .faq-box input[type="checkbox"]:checked ~ .faq-q::after {
        clip-path: polygon(0% 44%, 44% 44%, 44% 44%, 56% 44%, 56% 44%, 100% 44%, 100% 56%, 56% 56%, 56% 56%, 44% 56%, 44% 56%, 0% 56%);
    }

    /* --- SP movie --- */
    #movie {
        margin: 0 auto;
        padding: 8.0vw 0;
        width: 100%;
        background: #10723808;
    }

    #movie h2 { margin: 0 auto; width: 90%; display: flex; flex-direction: column; align-items: center; justify-content: center; }
    #movie h2 > span:nth-child(1) { display: block; margin: 0 auto; padding: 0; color: #1a563233; font-size: 12.0vw; font-weight: 500; text-align: center; line-height: 1.0; }
    #movie h2 > span:nth-child(2) { display: block; margin: -0.5em auto; padding: 0; color: var(--color-theme, #1a5632); font-size: 3.6vw; font-weight: 700; text-align: center; line-height: 1.0; }

    #movie .movie-box { margin: 8.0vw auto 0; padding: 0; width: 100%; }
    #movie .movie-box iframe { display: block; margin: 0 auto; width: 100%; max-width: 720px; height: auto; aspect-ratio: 1537 / 797; }
    #movie .movie-box .movie { margin: 0 auto; padding: 0; width: 90%; height: auto; }
    #movie .movie-box .movie img { width: 100%; height: auto; }

    /* --- SP entry --- */
    #entry h2 > span:nth-child(1) { display: block; margin: 0 auto; padding: 0; color: #1a563233; font-size: 12.0vw; font-weight: 500; text-align: center; line-height: 1.0; }
    #entry h2 > span:nth-child(2) { display: block; margin: -0.5em auto; padding: 0; color: #1a5632; font-size: 3.6vw; font-weight: 700; text-align: center; line-height: 1.0; }

    .form-area {
        position: relative;
        margin: 30px 20px;
        width: auto;
        max-width: 980px;
        border: 1px solid #1a563233;
        overflow: hidden;
        padding: 30px;
    }

    .wpcf7 .screen-reader-response {
        position: absolute;
        overflow: hidden;
        clip: rect(1px, 1px, 1px, 1px);
        clip-path: inset(50%);
        height: 1px;
        width: 1px;
        margin: -1px;
        padding: 0;
        border: 0;
        word-wrap: normal !important;
    }

    .wpcf7 .hidden-fields-container { display: none; }
    .wpcf7 label { display: block; margin-bottom: 8px; font-weight: 700; }
    .wpcf7-form-control-wrap { position: relative; display: block; margin-bottom: 24px; width: 90%; }

    .wpcf7 input[type="text"],
    .wpcf7 input[type="email"],
    .wpcf7 input[type="tel"],
    .wpcf7 textarea,
    select {
        width: 100%;
        padding: 11px;
        margin-top: 10px;
        border: 1px solid #ccc;
        border-radius: 4px;
        font-size: inherit;
        box-sizing: border-box;
    }

    .form-submit-center { margin-top: 40px; margin-bottom: 20px; text-align: center; }

    input.wpcf7-submit {
        width: 50% !important;
        height: 58px !important;
        background: #fff !important;
        color: #949495 !important;
        font-size: 16px !important;
        font-weight: 700 !important;
        border: 2px solid #949495 !important;
        border-radius: 99px !important;
        cursor: pointer;
    }

    /* --- SP info --- */
    #info {
        margin: 0 auto;
        padding: 12.0vw 0;
        width: 100%;
    }

    #info .info-wrap {
        margin: 0 auto;
        width: 90%;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 8.0vw 0;
    }

    #info .info-wrap .attr { margin: 0 auto; width: 80%; }
    #info .info-wrap .attr figure { width: 100%; max-width: 310px; height: auto; }
    #info .info-wrap .attr p { margin: 1.0em 0 0; color: var(--fg-color, #333); font-size: 3.2vw; font-weight: 400; text-align: justify; line-height: calc(25.6 / 16); }

    #info .info-wrap .map { width: 100%; }
    #info .info-wrap .map iframe { display: block; width: 100%; height: auto; aspect-ratio: 620 / 320; border: 0; }

    .anim-scroll {
        margin: 0.5em 0 1.0em auto;
        width: max-content;
        font-size: 3.6vw;
        text-align: right;
        animation: anim-scroll-right 2.0s infinite 0s ease-in-out;
    }

} /* ◀ @media screen and (max-width:767px) 閉じ

/* --- SP アニメーション定義 --- */
@keyframes anim-slider-sp {
    0%   { transform: translateX(0vw); }
    100% { transform: translateX(calc(-100.0vw / 3 * 12)); }
}