/* リセットCSS | SP完全版 整合済 v20260622 */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* SP専用要素 - PCでは非表示 */
br.sp-only,
.sp-only {
    display: none;
}

/* PC専用要素 - SPでは非表示 */
br.pc-only,
.pc-only {
    display: block;
}

body {
    font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic Pro', -apple-system, BlinkMacSystemFont, sans-serif;
    background-color: #FFFFFF;
    color: #2E2E2E;
    overflow-x: hidden;
    position: relative;
    width: 100%;
    margin: 0;
    padding: 0;
    padding-top: 0;
}

html {
    margin: 0;
    padding: 0;
    scroll-behavior: smooth;
    overflow-x: hidden;
}

/* ヘッダー */
.header {
    position: relative;
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
    height: 50px;
    padding: 17.28px 0 10.52px 58.28px;
    box-sizing: border-box;
    background: #FFFFFF;
    z-index: 10;
}

.header-logo {
    width: 70.72px;
    height: 22.2px;
    line-height: 0;
}

.logo-img {
    width: 70.72px;
    height: 22.2px;
    object-fit: contain;
    display: block;
    padding: 0;
    background: transparent;
    box-sizing: border-box;
}

/* MVラッパー */
.mv-wrapper {
    position: relative;
    width: 100%;
    overflow: visible;
}

/* 背景画像 */
.mv-wrapper::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: calc(100vw * 600 / 1400);
    max-height: calc(2000px * 600 / 1400);
    background: url('images/mv_bg.png') no-repeat center top;
    background-size: contain;
    background-position: center top;
    z-index: 0;
    pointer-events: none;
}

/* メインコンテンツ */
.main-content {
    position: relative;
    width: 100%;
    max-width: 2000px;
    height: auto;
    /*min-height: calc(100vw * 650 / 1400);*/
    margin: 0 auto;
    margin-top: 0;
    padding: 0;
    overflow: hidden;
    aspect-ratio: 1400 / 600;
    display: block;
    z-index: 10;
}

/* 左側画像 */
/* メインテキスト */
.main-text {
    position: absolute;
    left: 50%;
    top: calc(75 / 600 * 100%);
    width: calc(492 / 1400 * 100%);
    min-width: 280px;
    max-width: 90%;
    transform: translateX(-50%);
    z-index: 10;
    box-sizing: border-box;
}

.title-main {
    position: relative;
    width: calc(408 / 1400 * 100%);
    max-width: 100%;
    margin-left: calc(5 / 1400 * 100%);
    margin-bottom: calc(12 / 600 * 100%);
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 700;
    font-size: clamp(18px, calc(34 / 1400 * 100vw), calc(34 / 1400 * 2000px));
    line-height: clamp(22px, calc(41 / 1400 * 100vw), calc(41 / 1400 * 2000px));
    color: #2E2E2E;
    white-space: nowrap;
}

.title-sub {
    position: relative;
    width: auto;
    max-width: 100%;
    margin-bottom: calc(24 / 600 * 100%);
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 700;
    font-size: clamp(28px, calc(69.4674 / 1400 * 100vw), calc(69.4674 / 1400 * 2000px));
    line-height: clamp(34px, calc(83 / 1400 * 100vw), calc(83 / 1400 * 2000px));
    letter-spacing: -0.01em;
    color: #2E2E2E;
}

.green-line {
    position: relative;
    width: 100%;
    max-width: none;
    height: clamp(2px, calc(3 / 600 * 100%), 5px);
    min-height: 2px;
    margin-bottom: calc(27 / 600 * 100%);
    background: #06B41D;
    display: block;
}

.description {
    position: absolute;
    left: 49.2%;
    transform: translateX(-49.2%);
    top: calc(340 / 600 * 100%);
    width: calc(560 / 1400 * 100%);
    min-width: 260px;
    max-width: 90%;
    margin: 0;
    font-family: 'Hiragino Kaku Gothic Pro', sans-serif;
    font-style: normal;
    font-weight: 600;
    font-size: clamp(14px, calc(22 / 1400 * 100vw), calc(22 / 1400 * 2000px));
    line-height: clamp(21px, calc(33 / 1400 * 100vw), calc(33 / 1400 * 2000px));
    text-align: center;
    color: #2E2E2E;
    z-index: 10;
    box-sizing: border-box;
}

/* PC: 説明1行目を折り返さない */
@media (min-width: 1025px) {
    .description .description-line1 {
        white-space: nowrap;
    }
}

/* ボタン */
.btn-container {
    position: absolute;
    width: calc(476 / 1400 * 100%);
    min-width: 260px;
    max-width: 90%;
    height: calc(76 / 600 * 100%);
    min-height: 50px;
    left: 50%;
    top: calc(444 / 600 * 100%);
    transform: translateX(-50%);
    z-index: 10;
    box-sizing: border-box;
}

.btn-container .btn-contact {
    position: absolute;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    box-sizing: border-box;
}

.btn-contact {
    background: #FC5B2A;
    border-radius: clamp(12px, calc(20 / 1400 * 100vw), calc(20 / 1400 * 2000px));
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(6px, calc(10 / 1400 * 100vw), calc(10 / 1400 * 2000px));
    transition: all 0.3s;
    padding: 0;
    text-decoration: none;
    color: inherit;
}

.btn-contact:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(252, 91, 42, 0.4);
}

.btn-text {
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 700;
    font-size: clamp(16px, calc(24 / 1400 * 100vw), calc(24 / 1400 * 2000px));
    line-height: clamp(19px, calc(29 / 1400 * 100vw), calc(29 / 1400 * 2000px));
    text-align: center;
    letter-spacing: 0.05em;
    color: #FFFFFF;
}

.btn-arrow {
    width: clamp(14px, calc(20.4 / 1400 * 100vw), calc(20.4 / 1400 * 2000px));
    height: clamp(14px, calc(20.4 / 1400 * 100vw), calc(20.4 / 1400 * 2000px));
    color: #FFFFFF;
    font-size: clamp(10px, calc(14 / 1400 * 100vw), calc(14 / 1400 * 2000px));
    display: flex;
    align-items: center;
    justify-content: center;
}

/* 市場直結バッジ */
.market-badge {
    position: absolute;
    width: calc(163 / 1400 * 100%);
    min-width: 80px;
    height: auto;
    min-height: 80px;
    aspect-ratio: 1 / 1;
    left: calc(50% - (246 + 113 + 81.5 - 100) / 1400 * 100%);
    top: calc(128 / 600 * 100%);
    transform: translateX(-50%);
    z-index: 10;
    box-sizing: border-box;
}

.badge-circle {
    position: absolute;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    background: #3AB54A;
    border-radius: 50%;
    box-sizing: border-box;
}

.badge-text {
    position: absolute;
    width: calc(150 / 163 * 100%);
    height: calc(150 / 163 * 100%);
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    color: #FFFFFF;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0;
    padding: clamp(6px, calc(10 / 1400 * 100vw), calc(10 / 1400 * 2000px)) clamp(5px, calc(8 / 1400 * 100vw), calc(8 / 1400 * 2000px));
    box-sizing: border-box;
    overflow: hidden;
}

.badge-line1 {
    font-size: clamp(24px, calc(40 / 1400 * 100vw), calc(40 / 1400 * 2000px));
    line-height: 1.1;
    font-weight: 700;
    white-space: nowrap;
}

.badge-line2 {
    font-size: clamp(24px, calc(40 / 1400 * 100vw), calc(40 / 1400 * 2000px));
    line-height: 1.1;
    font-weight: 700;
    white-space: nowrap;
    margin-top: 0;
}

.badge-line3 {
    font-size: clamp(8px, calc(12 / 1400 * 100vw), calc(12 / 1400 * 2000px));
    line-height: 1.3;
    font-weight: 400;
    white-space: nowrap;
    margin-top: 3px;
}



/******************** 悩みセクション ********************/

.problem-section {
    width: 100%;
    margin: 0 auto;
    padding: 45px 0;
    background: #E1F2E4;
    overflow-x: hidden;
}

.problem-container {
    position: relative;
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
    padding: 0;
}

.problem-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 700;
    font-size: min(calc(32 / 1400 * 100vw), 32px);
    line-height: normal;
    letter-spacing: min(calc(0.96 / 1400 * 100vw), 0.96px);
    color: #333;
    text-align: center;
    margin: 0;
    margin-bottom: min(calc(40 / 1400 * 100vw), 40px);
}

.problem-card-wrapper-container {
    position: relative;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: min(calc(20 / 1400 * 100vw), 20px) min(calc(20 / 1400 * 100vw), 20px);
    max-width: min(calc(873 / 1400 * 100vw), 873px);
    margin: 0 auto;
    justify-items: start;
}

.problem-card-wrapper-3 {
    margin-top: min(calc(-20 / 1400 * 100vw), -45px);
}

.problem-card-wrapper {
    width: 100%;
    background: transparent;
    display: flex;
    align-items: center;
    gap: min(calc(10 / 1400 * 100vw), 20px);
}

.problem-card-wrapper-1,
.problem-card-wrapper-2 {
    align-items: flex-start;
}

.problem-person {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: min(calc(10 / 1400 * 100vw), 10px);
    flex-shrink: 0;
}

.problem-person-1,
.problem-person-3 {
    margin-right: min(calc(20 / 1400 * 100vw), 20px);
}

.problem-person-2,
.problem-person-4 {
    margin-left: min(calc(20 / 1400 * 100vw), 20px);
}

.problem-person-img {
    width: min(calc(90 / 1400 * 100vw), 90px);
    height: auto;
    object-fit: contain;
}

.problem-person-label {
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 400;
    font-size: min(calc(12 / 1400 * 100vw), 12px);
    line-height: min(calc(22 / 1400 * 100vw), 22px);
    color: #333;
    margin: 0;
}

.problem-speech-bubble {
    position: relative;
}

.speech-bubble-box {
    background: #FFFFFF;
    border-radius: min(calc(10 / 1400 * 100vw), 10px);
    padding: min(calc(21 / 1400 * 100vw), 21px) min(calc(23 / 1400 * 100vw), 20px);
    width: min(calc(302 / 1400 * 100vw), 302px);
    box-sizing: border-box;
}

.problem-card-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 700;
    font-size: min(calc(18 / 1400 * 100vw), 18px);
    line-height: min(calc(22 / 1400 * 100vw), 22px);
    color: #333;
    margin: 0;
    margin-bottom: min(calc(13 / 1400 * 100vw), 13px);
    white-space: nowrap;
}

.problem-card-text {
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 400;
    font-size: min(calc(16 / 1400 * 100vw), 16px);
    line-height: min(calc(24 / 1400 * 100vw), 24px);
    color: #333;
    margin: 0;
}

/* 吹き出しの三角 */
.speech-bubble-tail {
    position: absolute;
    width: 0;
    height: 0;
}

/* 左側の三角形 */
.speech-bubble-tail-left {
    left: 0;
    top: 50%;
    transform: translateX(-100%) translateY(-50%);
    border-top: min(calc(11 / 1400 * 100vw), 11px) solid transparent;
    border-bottom: min(calc(11 / 1400 * 100vw), 11px) solid transparent;
    border-right: min(calc(25 / 1400 * 100vw), 25px) solid #FFFFFF;
}

/* 上の段の左側の三角形 */
.problem-card-wrapper-1 .speech-bubble-tail-left {
    top: calc(50% - 30px);
}

/* 右側の三角形 */
.speech-bubble-tail-right {
    right: 0;
    top: 50%;
    transform: translateX(100%) translateY(-50%);
    border-top: min(calc(11 / 1400 * 100vw), 11px) solid transparent;
    border-bottom: min(calc(11 / 1400 * 100vw), 11px) solid transparent;
    border-left: min(calc(25 / 1400 * 100vw), 25px) solid #FFFFFF;
}

/* 上の段の右側の三角形 */
.problem-card-wrapper-2 .speech-bubble-tail-right {
    top: calc(50% - 30px);
}

/* 相談ボタン */
.problem-consult-btn {
    position: absolute;
    width: min(calc(110 / 1400 * 100vw), 110px);
    height: min(calc(110 / 1400 * 100vw), 110px);
    right: min(calc(-100 / 1400 * 100vw), -100px);
    top: min(calc(-30 / 1400 * 100vw), -30px);
    z-index: 10;
    text-decoration: none;
    display: block;
    opacity: 1;
    transition: opacity 0.3s ease;
}

.problem-consult-btn.fixed {
    position: fixed;
    right: min(calc(100 / 1400 * 100vw), 100px);
    top: min(calc(60 / 1400 * 100vw), 30px);
    z-index: 1000;
}

.consult-btn-circle {
    position: relative;
    width: min(calc(110 / 1400 * 100vw), 110px);
    height: min(calc(110 / 1400 * 100vw), 110px);
    background: #FC5B2A;
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s;
}

.consult-btn-circle:hover {
    transform: scale(1.05);
    box-shadow: 0 min(calc(4 / 1400 * 100vw), 4px) min(calc(12 / 1400 * 100vw), 12px) rgba(252, 91, 42, 0.4);
}

.consult-btn-text {
    position: relative;
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 700;
    font-size: min(calc(16 / 1400 * 100vw), 16px);
    line-height: min(calc(21 / 1400 * 100vw), 21px);
    text-align: center;
    letter-spacing: min(calc(0.8 / 1400 * 100vw), 0.8px);
    color: #FFFFFF;
    margin: 0;
}

.consult-btn-arrow {
    position: relative;
    width: min(calc(15 / 1400 * 100vw), 15px);
    height: min(calc(15 / 1400 * 100vw), 15px);
    color: #FFFFFF;
    font-size: min(calc(12 / 1400 * 100vw), 12px);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: min(calc(5 / 1400 * 100vw), 5px);
}

/* 強みセクション */
.strength-section {
    position: relative;
    width: 100%;
    background: #FFFFFF;
    padding: min(calc(60 / 1400 * 100vw), 60px) 0;
    overflow: hidden;
}

.strength-bg-top {
    position: absolute;
    left: 0;
    top: 0;
    width: min(calc(504 / 1400 * 100vw), 504px);
    height: auto;
    object-fit: contain;
    z-index: 1;
    pointer-events: none;
}

.strength-bg-bottom {
    position: absolute;
    right: 0;
    bottom: 0;
    width: min(calc(458 / 1400 * 100vw), 458px);
    height: auto;
    object-fit: contain;
    z-index: 1;
    pointer-events: none;
}

.strength-triangle {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: min(calc(80 / 1400 * 100vw), 80px);
    height: min(calc(50 / 1400 * 100vw), 50px);
    z-index: 2;
}

.strength-triangle::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-left: min(calc(40 / 1400 * 100vw), 40px) solid transparent;
    border-right: min(calc(40 / 1400 * 100vw), 40px) solid transparent;
    border-top: min(calc(50 / 1400 * 100vw), 50px) solid #E1F2E4;
}

.strength-container {
    position: relative;
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 min(calc(50 / 1400 * 100vw), 50px);
    z-index: 3;
}

/* タイトル */
.strength-title-wrapper {
    text-align: center;
    margin-bottom: min(calc(30 / 1400 * 100vw), 30px);
}

.strength-title-main {
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 700;
    font-size: min(calc(30 / 1400 * 100vw), 30px);
    line-height: normal;
    color: #333;
    margin: min(calc(15 / 1400 * 100vw), 15px) 0 min(calc(5 / 1400 * 100vw), 5px) 0;
}

.strength-title-sub {
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 700;
    font-size: min(calc(42 / 1400 * 100vw), 42px);
    line-height: normal;
    color: #333;
    margin: 0 0 min(calc(20 / 1400 * 100vw), 20px) 0;
}

.strength-description {
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 400;
    font-size: min(calc(16 / 1400 * 100vw), 16px);
    line-height: min(calc(28 / 1400 * 100vw), 28px);
    color: #333;
    margin: 0;
}

.strength-description strong {
    font-weight: 700;
}

/* まとめ */
.strength-summary {
    width: 100%;
    display: flex;
    justify-content: center;
    margin-top: min(calc(10 / 1400 * 100vw), 10px);
}

.summary-image {
    width: 100%;
    max-width: min(calc(800 / 1400 * 100vw), 800px);
    height: auto;
    object-fit: contain;
}

/* SP用画像はPCでは非表示 */
.summary-image-sp {
    display: none;
}

/* 仕入れハイライトセクション */
.strength-highlight-card {
    width: 100%;
    max-width: min(calc(900 / 1400 * 100vw), 900px);
    margin: min(calc(50 / 1400 * 100vw), 50px) auto 0;
    background: #3AB54A;
    border: min(calc(4 / 1400 * 100vw), 4px) solid #3AB54A;
    border-radius: min(calc(20 / 1400 * 100vw), 20px);
    padding: min(calc(20 / 1400 * 100vw), 20px) min(calc(20 / 1400 * 100vw), 20px) min(calc(20 / 1400 * 100vw), 20px) min(calc(20 / 1400 * 100vw), 20px);
    box-sizing: border-box;
}

.highlight-content {
    display: flex;
    gap: min(calc(20 / 1400 * 100vw), 20px);
    align-items: flex-start;
    justify-content: space-between;
}

.highlight-left {
    flex: 1;
    display: flex;
    gap: min(calc(20 / 1400 * 100vw), 20px);
    align-items: flex-start;
}

.highlight-point {
    width: min(calc(100 / 1400 * 100vw), 100px);
    height: min(calc(100 / 1400 * 100vw), 100px);
    background: #FFFFFF;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.point-label {
    font-family: 'Helvetica', sans-serif;
    font-style: normal;
    font-weight: 700;
    font-size: min(calc(26 / 1400 * 100vw), 26px);
    line-height: min(calc(42 / 1400 * 100vw), 42px);
    color: #3AB54A;
    letter-spacing: min(calc(0.52 / 1400 * 100vw), 0.52px);
}

.highlight-text {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: min(calc(10 / 1400 * 100vw), 10px);
}

.highlight-subtitle {
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 700;
    font-size: min(calc(16 / 1400 * 100vw), 16px);
    line-height: min(calc(42 / 1400 * 100vw), 42px);
    color: #FFFFFF;
    letter-spacing: min(calc(1.6 / 1400 * 100vw), 1.6px);
    margin: 0 0 -15px 0;
}

/* PCではSP用のsubtitleを非表示、PC用を表示 */
.highlight-subtitle-sp {
    display: none;
}

.highlight-subtitle-pc {
    display: block;
}

.highlight-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 700;
    font-size: min(calc(30 / 1400 * 100vw), 30px);
    line-height: min(calc(42 / 1400 * 100vw), 42px);
    color: #FFFFFF;
    letter-spacing: min(calc(3 / 1400 * 100vw), 3px);
    margin: 0;
    white-space: nowrap;
}

.highlight-description {
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 400;
    font-size: min(calc(14 / 1400 * 100vw), 14px);
    line-height: min(calc(30 / 1400 * 100vw), 30px);
    color: #FFFFFF;
    margin: 0;
}

.highlight-line {
    width: 100%;
    max-width: min(calc(450 / 1400 * 100vw), 450px);
    height: min(calc(2 / 1400 * 100vw), 2px);
    background: #FFFFFF;
    margin: min(calc(5 / 1400 * 100vw), 5px) 0 min(calc(10 / 1400 * 100vw), 10px);
}

.highlight-profile {
    display: flex;
    flex-direction: column;
    gap: min(calc(10 / 1400 * 100vw), 10px);
}

.profile-text {
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 400;
    font-size: min(calc(14 / 1400 * 100vw), 14px);
    line-height: min(calc(22 / 1400 * 100vw), 22px);
    color: #FFFFFF;
    letter-spacing: min(calc(0.7 / 1400 * 100vw), 0.7px);
    margin: 0;
}

    .highlight-right {
        flex-shrink: 0;
        display: flex;
        align-items: center;
        justify-content: flex-end;
    }

.highlight-image-right {
    width: auto;
    max-width: min(calc(260 / 1400 * 100vw), 260px);
    height: auto;
    object-fit: contain;
}

/* PCでは吹き出し画像を非表示 */
.highlight-speech-image {
    display: none;
}

/* 商品企画セクション */
.strength-card {
    width: 100%;
    max-width: min(calc(900 / 1400 * 100vw), 900px);
    margin: min(calc(50 / 1400 * 100vw), 50px) auto 0;
    background: #FFFFFF;
    border: min(calc(4 / 1400 * 100vw), 4px) solid #3AB54A;
    border-radius: min(calc(20 / 1400 * 100vw), 20px);
    padding: min(calc(40 / 1400 * 100vw), 40px);
    box-sizing: border-box;
}

.strength-card-header {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: min(calc(20 / 1400 * 100vw), 20px);
    margin-bottom: min(calc(20 / 1400 * 100vw), 20px);
}

.strength-card-icon {
    width: auto;
    height: min(calc(36 / 1400 * 100vw), 36px);
    object-fit: contain;
}

.strength-card-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 700;
    font-size: min(calc(36 / 1400 * 100vw), 36px);
    line-height: min(calc(42 / 1400 * 100vw), 42px);
    color: #06B41D;
    letter-spacing: min(calc(3.6 / 1400 * 100vw), 3.6px);
    margin: 0;
}

.strength-card-line {
    width: 100%;
    height: min(calc(2 / 1400 * 100vw), 2px);
    background: #3AB54A;
    margin: min(calc(20 / 1400 * 100vw), 20px) 0;
}

.strength-card-content {
    display: flex;
    gap: min(calc(30 / 1400 * 100vw), 30px);
    align-items: center;
}

.strength-card-content-top {
    align-items: flex-start;
}

.strength-card-image {
    flex-shrink: 0;
    width: min(calc(205 / 1400 * 100vw), 205px);
}

.card-illustration {
    width: 100%;
    height: auto;
    object-fit: contain;
}

/* SP用画像はPCでは非表示 */
.card-illustration-sp,
.strength-card-image-sp {
    display: none;
}

.strength-card-text {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: min(calc(15 / 1400 * 100vw), 15px);
}

.strength-card-item {
    display: flex;
    gap: min(calc(10 / 1400 * 100vw), 10px);
    align-items: flex-start;
}

.card-bullet {
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 700;
    font-size: min(calc(16 / 1400 * 100vw), 16px);
    line-height: min(calc(30 / 1400 * 100vw), 30px);
    color: #06B41D;
    margin: 0;
    flex-shrink: 0;
}

.card-item-content {
    flex: 1;
}

.card-item-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 700;
    font-size: min(calc(20 / 1400 * 100vw), 20px);
    line-height: min(calc(30 / 1400 * 100vw), 30px);
    color: #333;
    margin: 0 0 min(calc(5 / 1400 * 100vw), 5px) 0;
}

.card-item-description {
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 400;
    font-size: min(calc(16 / 1400 * 100vw), 16px);
    line-height: min(calc(27 / 1400 * 100vw), 27px);
    color: #333;
    margin: 0;
}

/* アフターフォローセクション */
.strength-after-section {
    width: 100%;
    max-width: min(calc(900 / 1400 * 100vw), 900px);
    margin: min(calc(50 / 1400 * 100vw), 50px) auto 0;
    background: url('images/point12.jpg') no-repeat center;
    background-size: contain;
    padding: min(calc(50 / 1400 * 100vw), 50px) min(calc(60 / 1400 * 100vw), 60px);
    box-sizing: border-box;
    min-height: min(calc(200 / 1400 * 100vw), 200px);
    display: flex;
    align-items: center;
    justify-content: center;
}

.after-content {
    text-align: center;
    max-width: min(calc(590 / 1400 * 100vw), 590px);
}

.after-bottom {
    width: 100%;
}

/* PCではSP用画像を非表示 */
.after-image-sp {
    display: none;
}

.after-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 700;
    font-size: min(calc(28 / 1400 * 100vw), 28px);
    line-height: min(calc(36 / 1400 * 100vw), 36px);
    color: #333;
    letter-spacing: min(calc(1.4 / 1400 * 100vw), 1.4px);
    margin: 0 0 min(calc(20 / 1400 * 100vw), 20px) 0;
}

.after-description {
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 400;
    font-size: min(calc(18 / 1400 * 100vw), 18px);
    line-height: min(calc(28 / 1400 * 100vw), 28px);
    color: #333;
    margin: 0;
}

/* お問い合わせボタン */
.strength-contact-btn {
    width: 100%;
    max-width: min(calc(900 / 1400 * 100vw), 900px);
    margin: min(calc(50 / 1400 * 100vw), 50px) auto 0;
    display: flex;
    justify-content: center;
}

.contact-btn-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: min(calc(15 / 1400 * 100vw), 15px);
    background: #FC5B2A;
    border-radius: min(calc(20 / 1400 * 100vw), 20px);
    padding: min(calc(19 / 1400 * 100vw), 19px) min(calc(50 / 1400 * 100vw), 50px);
    text-decoration: none;
    transition: all 0.3s;
    cursor: pointer;
}

.contact-btn-link:hover {
    transform: translateY(-2px);
    box-shadow: 0 min(calc(4 / 1400 * 100vw), 4px) min(calc(12 / 1400 * 100vw), 12px) rgba(252, 91, 42, 0.4);
}

.contact-btn-text {
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 700;
    font-size: min(calc(28 / 1400 * 100vw), 28px);
    line-height: min(calc(42 / 1400 * 100vw), 42px);
    color: #FFFFFF;
    letter-spacing: min(calc(1.4 / 1400 * 100vw), 1.4px);
    white-space: nowrap;
}

.contact-btn-arrow {
    font-size: min(calc(20 / 1400 * 100vw), 20px);
    color: #FFFFFF;
    line-height: 1;
    display: flex;
    align-items: center;
    margin-left: min(calc(5 / 1400 * 100vw), 5px);
}

/* 導入メリットセクション */
.benefit-section {
    width: 100%;
    background: rgba(225, 242, 228, 0.5);
    padding: min(calc(60 / 1400 * 100vw), 60px) 0 min(calc(100 / 1400 * 100vw), 100px);
    position: relative;
    overflow: hidden;
}

.benefit-bg-top {
    position: absolute;
    left: 0;
    top: 0;
    width: min(calc(504 / 1400 * 100vw), 504px);
    height: auto;
    object-fit: contain;
    z-index: 1;
    pointer-events: none;
}

.benefit-bg-bottom {
    position: absolute;
    right: 0;
    bottom: 0;
    width: min(calc(458 / 1400 * 100vw), 458px);
    height: auto;
    object-fit: contain;
    z-index: 1;
    pointer-events: none;
}

.benefit-container {
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 min(calc(50 / 1400 * 100vw), 50px);
    position: relative;
    z-index: 3;
}

/* タイトル */
.benefit-title-wrapper {
    text-align: center;
    margin-bottom: min(calc(50 / 1400 * 100vw), 50px);
}

.benefit-title-main {
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 700;
    font-size: min(calc(42 / 1400 * 100vw), 42px);
    line-height: normal;
    color: #333;
    margin: 0 0 min(calc(20 / 1400 * 100vw), 20px) 0;
}

.benefit-title-sub {
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 700;
    font-size: min(calc(24 / 1400 * 100vw), 24px);
    line-height: normal;
    color: #333;
    margin: 0 0 min(calc(20 / 1400 * 100vw), 20px) 0;
}

.benefit-intro {
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 400;
    font-size: min(calc(16 / 1400 * 100vw), 16px);
    line-height: min(calc(28 / 1400 * 100vw), 28px);
    color: #333;
    margin: 0;
}

/* 3つのメリットカード */
.benefit-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: min(calc(15 / 1400 * 100vw), 15px);
    max-width: min(calc(900 / 1400 * 100vw), 900px);
    margin: 0 auto min(calc(50 / 1400 * 100vw), 50px);
}

.benefit-card-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    position: relative;
}

.benefit-card {
    position: relative;
    background: #FFFFFF;
    border: min(calc(3 / 1400 * 100vw), 3px) solid #3AB54A;
    border-radius: min(calc(20 / 1400 * 100vw), 20px) min(calc(20 / 1400 * 100vw), 20px) 0 0;
    padding: min(calc(40 / 1400 * 100vw), 40px) 0 0;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    min-height: min(calc(300 / 1400 * 100vw), 300px);
    width: 100%;
}

.benefit-card-number-container {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    width: 100%;
    pointer-events: none;
    z-index: 10;
    transform: translateY(-50%);
}

.benefit-card-number {
    width: min(calc(50 / 1400 * 100vw), 50px);
    height: min(calc(50 / 1400 * 100vw), 50px);
    background: #06B41D;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 700;
    font-size: min(calc(30 / 1400 * 100vw), 30px);
    line-height: min(calc(50 / 1400 * 100vw), 50px);
    color: #FFFFFF;
    flex-shrink: 0;
}

.benefit-card-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 700;
    font-size: min(calc(22 / 1400 * 100vw), 22px);
    line-height: min(calc(34 / 1400 * 100vw), 34px);
    color: #06B41D;
    text-align: center;
    margin: 0 0 min(calc(30 / 1400 * 100vw), 30px) 0;
}

.benefit-card-image {
    width: 100%;
    margin-bottom: 0;
    display: block;
}

.card-img {
    width: 100%;
    display: block;
    margin: 0;
    padding: 0;
}

/* 売上拡大施策 */
.benefit-strategy {
    width: min(calc(900 / 1400 * 100vw), 900px);
    height: min(calc(217 / 1400 * 100vw), 217px);
    margin: 0 auto min(calc(50 / 1400 * 100vw), 50px);
    background: url('images/merit04.png') no-repeat center;
    background-size: contain;
    padding: min(calc(40 / 1400 * 100vw), 40px) min(calc(60 / 1400 * 100vw), 60px);
    box-sizing: border-box;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.strategy-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 700;
    font-size: min(calc(28 / 1400 * 100vw), 28px);
    line-height: min(calc(30 / 1400 * 100vw), 30px);
    color: #333;
    letter-spacing: min(calc(1.4 / 1400 * 100vw), 1.4px);
    margin: 0 0 min(calc(15 / 1400 * 100vw), 15px) 0;
}

.strategy-description {
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 400;
    font-size: min(calc(16 / 1400 * 100vw), 16px);
    line-height: min(calc(24 / 1400 * 100vw), 24px);
    color: #333;
    margin: 0;
}

/* 導入事例 */
.benefit-case {
    width: 100%;
    max-width: min(calc(900 / 1400 * 100vw), 900px);
    margin: 0 auto min(calc(50 / 1400 * 100vw), 50px);
}

.case-title-wrapper {
    text-align: center;
    margin-bottom: min(calc(40 / 1400 * 100vw), 40px);
}

.case-title-sub {
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 700;
    font-size: min(calc(24 / 1400 * 100vw), 24px);
    line-height: normal;
    color: #333;
    margin: 0 0 min(calc(5 / 1400 * 100vw), 5px) 0;
}

.case-title-main {
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 700;
    font-size: min(calc(42 / 1400 * 100vw), 42px);
    line-height: normal;
    color: #333;
    margin: 0 0 min(calc(15 / 1400 * 100vw), 15px) 0;
}

.case-intro {
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 400;
    font-size: min(calc(16 / 1400 * 100vw), 16px);
    line-height: min(calc(26 / 1400 * 100vw), 26px);
    color: #333;
    margin: 0;
}

.case-card {
    background: #FFFFFF;
    border: min(calc(3 / 1400 * 100vw), 3px) solid #3AB54A;
    border-radius: min(calc(20 / 1400 * 100vw), 20px);
    padding: min(calc(30 / 1400 * 100vw), 30px) min(calc(40 / 1400 * 100vw), 40px);
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 0;
}

.case-company {
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 700;
    font-size: min(calc(16 / 1400 * 100vw), 16px);
    line-height: min(calc(24 / 1400 * 100vw), 24px);
    color: #323232;
    margin: 0 0 min(calc(25 / 1400 * 100vw), 25px) 0;
    text-align: center;
}

.case-content-right .case-company {
    text-align: left;
    margin-bottom: min(calc(10 / 1400 * 100vw), 10px);
}

.case-top-section {
    display: flex;
    flex-direction: row;
    gap: min(calc(30 / 1400 * 100vw), 30px);
    align-items: center;
    margin-bottom: 0;
}

.case-person {
    flex-shrink: 0;
    width: min(calc(150 / 1400 * 100vw), 150px);
}

.case-person-img {
    width: 100%;
    height: auto;
    object-fit: contain;
}

.case-content-right {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.case-quote {
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 700;
    font-size: min(calc(19 / 1400 * 100vw), 19px);
    line-height: min(calc(28 / 1400 * 100vw), 28px);
    color: #3AB54A;
    margin: 0 0 min(calc(15 / 1400 * 100vw), 15px) 0;
}

.case-line {
    width: 100%;
    height: min(calc(2 / 1400 * 100vw), 2px);
    background: #3AB54A;
    margin: 0 0 min(calc(25 / 1400 * 100vw), 25px) 0;
}

.case-content-right .case-line {
    margin-bottom: min(calc(10 / 1400 * 100vw), 10px);
}

.case-line.pc-only {
    display: block;
}

.case-line.sp-only {
    display: none;
}

.case-details {
    display: flex;
    flex-direction: column;
}

.case-details.pc-only {
    display: flex;
}

.case-details.sp-only {
    display: none;
}

.case-details p {
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 400;
    font-size: min(calc(16 / 1400 * 100vw), 16px);
    line-height: min(calc(28 / 1400 * 100vw), 28px);
    color: #333;
    margin: 0;
    padding-left: min(calc(10 / 1400 * 100vw), 10px);
    text-indent: min(calc(-10 / 1400 * 100vw), -10px);
}

.benefit-contact-btn {
    width: 100%;
    max-width: min(calc(900 / 1400 * 100vw), 900px);
    margin: min(calc(50 / 1400 * 100vw), 50px) auto 0;
    display: flex;
    justify-content: center;
}

/* フォームセクション */
.form-section {
    width: 100%;
    background: #FFFFF5;
    padding: min(calc(60 / 1400 * 100vw), 60px) 0 min(calc(100 / 1400 * 100vw), 100px);
    position: relative;
    overflow: hidden;
}

.form-bg-top {
    display: none;
    position: absolute;
    left: 0;
    top: 0;
    width: min(calc(504 / 1400 * 100vw), 504px);
    height: auto;
    object-fit: contain;
    z-index: 1;
    pointer-events: none;
}

.form-bg-bottom {
    display: none;
    position: absolute;
    right: 0;
    bottom: 0;
    width: min(calc(458 / 1400 * 100vw), 458px);
    height: auto;
    object-fit: contain;
    z-index: 1;
    pointer-events: none;
}

.form-container {
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 min(calc(339 / 1400 * 100vw), 339px);
    position: relative;
    z-index: 3;
    box-sizing: border-box;
    overflow-x: hidden;
}

/* タイトル */
.form-title-wrapper {
    text-align: center;
    margin-bottom: min(calc(80 / 1400 * 100vw), 80px);
}

.form-title-sub {
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 700;
    font-size: min(calc(24 / 1400 * 100vw), 24px);
    line-height: normal;
    color: #333;
    margin: 0 0 min(calc(20 / 1400 * 100vw), 20px) 0;
}

.form-title-main {
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 700;
    font-size: min(calc(34 / 1400 * 100vw), 34px);
    line-height: 1.45;
    color: #333;
    margin: 0 0 min(calc(15 / 1400 * 100vw), 15px) 0;
}

.form-intro {
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 400;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: min(calc(18 / 1400 * 100vw), 18px);
    font-size: min(calc(16 / 1400 * 100vw), 16px);
    line-height: min(calc(28 / 1400 * 100vw), 28px);
    color: #333;
    margin: 0;
}

.form-intro__lead {
    font-weight: 700;
}

.form-intro__text {
    display: block;
    width: min(calc(700 / 1400 * 100vw), 700px);
    text-align: left;
}

/* 初回相談無料ボックス */
.form-consult-box {
    width: auto;
    max-width: min(calc(900 / 1400 * 100vw), 900px);
    height: auto;
    min-height: 0;
    margin: 0 auto;
    background: #FFFFFF;
    padding: 0;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    position: relative;
    gap: min(calc(20 / 1400 * 100vw), 20px);
}

.consult-text {
    flex: 1;
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 400;
    font-size: min(calc(16 / 1400 * 100vw), 16px);
    line-height: 1.6;
    color: #333;
    text-align: center;
    padding: min(calc(16 / 1400 * 100vw), 16px) min(calc(20 / 1400 * 100vw), 20px);
    box-sizing: border-box;
    min-width: 0;
    border: min(calc(2 / 1400 * 100vw), 2px) solid #06B41D;
    border-radius: min(calc(8 / 1400 * 100vw), 8px);
    overflow: hidden;
}

.consult-text p {
    margin: 0 0 0.5em 0;
    white-space: normal;
}

.consult-text p:last-child {
    margin-bottom: 0;
}

.consult-highlight {
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 700;
    color: #FC5B2A;
}

.consult-image {
    flex-shrink: 0;
    width: min(calc(160 / 1400 * 100vw), 160px);
    height: min(calc(147 / 1400 * 100vw), 147px);
    position: relative;
    align-self: center;
}

.consult-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* フォーム */
.contact-form {
    width: 100%;
    max-width: min(calc(900 / 1400 * 100vw), 900px);
    margin: 0 auto;
}

.form-row {
    display: flex;
    align-items: flex-start;
    margin-bottom: min(calc(20 / 1400 * 100vw), 20px);
    gap: min(calc(26 / 1400 * 100vw), 26px);
    flex-wrap: wrap;
}

.form-row--email-confirm {
    margin-bottom: min(calc(52 / 1400 * 100vw), 52px);
}

.form-row--purpose {
    margin-bottom: min(calc(32 / 1400 * 100vw), 32px);
}

.form-row-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: min(calc(5 / 1400 * 100vw), 5px);
    min-width: 0;
}

.form-label {
    flex-shrink: 0;
    width: min(calc(220 / 1400 * 100vw), 220px);
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 400;
    font-size: min(calc(24 / 1400 * 100vw), 24px);
    line-height: min(calc(30 / 1400 * 100vw), 30px);
    color: #333;
    text-align: left;
}

.required {
    color: #F50707;
    margin-left: min(calc(2 / 1400 * 100vw), 2px);
}

.form-label-note {
    font-size: min(calc(16 / 1400 * 100vw), 16px);
    margin-left: min(calc(5 / 1400 * 100vw), 5px);
    line-height: normal;
}

.form-input {
    flex: 1 1 min(calc(442 / 1400 * 100vw), 442px);
    width: 100%;
    max-width: min(calc(442 / 1400 * 100vw), 442px);
    min-width: min(calc(442 / 1400 * 100vw), 442px);
    height: min(calc(48 / 1400 * 100vw), 48px);
    min-height: min(calc(48 / 1400 * 100vw), 48px);
    max-height: min(calc(48 / 1400 * 100vw), 48px);
    background: #FFFFFF;
    border: min(calc(2 / 1400 * 100vw), 2px) solid #ADADAD;
    border-radius: min(calc(8 / 1400 * 100vw), 8px);
    padding: 0 min(calc(16 / 1400 * 100vw), 16px);
    box-sizing: border-box;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: min(calc(16 / 1400 * 100vw), 16px);
    line-height: min(calc(46 / 1400 * 100vw), 46px);
    color: #333;
    vertical-align: middle;
    resize: none;
    overflow: hidden;
}

.form-phone-group {
    flex: 1;
    display: flex;
    gap: min(calc(39 / 1400 * 100vw), 39px);
    max-width: min(calc(442 / 1400 * 100vw), 442px);
    min-width: min(calc(442 / 1400 * 100vw), 442px);
}

.form-input-phone {
    flex: 1;
    width: min(calc(120 / 1400 * 100vw), 120px);
    height: min(calc(48 / 1400 * 100vw), 48px);
    background: #FFFFFF;
    border: min(calc(2 / 1400 * 100vw), 2px) solid #ADADAD;
    border-radius: min(calc(8 / 1400 * 100vw), 8px);
    padding: 0 min(calc(12 / 1400 * 100vw), 12px);
    box-sizing: border-box;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: min(calc(16 / 1400 * 100vw), 16px);
    line-height: min(calc(46 / 1400 * 100vw), 46px);
    color: #333;
    vertical-align: middle;
}

.form-email-group {
    flex: 1;
    display: flex;
    align-items: center;
    gap: min(calc(20 / 1400 * 100vw), 20px);
    max-width: min(calc(442 / 1400 * 100vw), 442px);
    min-width: min(calc(442 / 1400 * 100vw), 442px);
}

.form-input-email-left {
    width: min(calc(190 / 1400 * 100vw), 190px);
    height: min(calc(48 / 1400 * 100vw), 48px);
    background: #FFFFFF;
    border: min(calc(2 / 1400 * 100vw), 2px) solid #ADADAD;
    border-radius: min(calc(8 / 1400 * 100vw), 8px);
    padding: 0 min(calc(12 / 1400 * 100vw), 12px);
    box-sizing: border-box;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: min(calc(16 / 1400 * 100vw), 16px);
    line-height: min(calc(46 / 1400 * 100vw), 46px);
    color: #333;
    vertical-align: middle;
}

.email-at {
    font-family: 'Hiragino Kaku Gothic Pro', sans-serif;
    font-style: normal;
    font-weight: 300;
    font-size: min(calc(18 / 1400 * 100vw), 18px);
    line-height: normal;
    color: #333;
    flex-shrink: 0;
}

.form-input-email-right {
    flex: 1;
    width: min(calc(190 / 1400 * 100vw), 190px);
    height: min(calc(48 / 1400 * 100vw), 48px);
    background: #FFFFFF;
    border: min(calc(2 / 1400 * 100vw), 2px) solid #ADADAD;
    border-radius: min(calc(8 / 1400 * 100vw), 8px);
    padding: 0 min(calc(12 / 1400 * 100vw), 12px);
    box-sizing: border-box;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: min(calc(16 / 1400 * 100vw), 16px);
    line-height: min(calc(46 / 1400 * 100vw), 46px);
    color: #333;
    vertical-align: middle;
}

.form-select-wrapper {
    flex: 1;
    position: relative;
    max-width: min(calc(442 / 1400 * 100vw), 442px);
    min-width: min(calc(442 / 1400 * 100vw), 442px);
}

.form-select {
    width: 100%;
    height: min(calc(48 / 1400 * 100vw), 48px);
    background: #FFFFFF;
    border: min(calc(2 / 1400 * 100vw), 2px) solid #ADADAD;
    border-radius: min(calc(8 / 1400 * 100vw), 8px);
    padding: 0 min(calc(16 / 1400 * 100vw), 16px);
    padding-right: min(calc(40 / 1400 * 100vw), 40px);
    box-sizing: border-box;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: min(calc(16 / 1400 * 100vw), 16px);
    line-height: min(calc(46 / 1400 * 100vw), 46px);
    color: #333;
    appearance: none;
    cursor: pointer;
    vertical-align: middle;
}

.form-select option {
    color: #333;
}

.form-select:invalid {
    color: #7D7E7D;
}

.select-arrow {
    position: absolute;
    right: min(calc(16 / 1400 * 100vw), 16px);
    top: 50%;
    transform: translateY(-50%);
    font-size: min(calc(18 / 1400 * 100vw), 18px);
    color: #7D7E7D;
    pointer-events: none;
    line-height: 1;
}

.form-textarea {
    flex: 1;
    width: 100%;
    max-width: min(calc(442 / 1400 * 100vw), 442px);
    min-width: min(calc(442 / 1400 * 100vw), 442px);
    height: min(calc(248 / 1400 * 100vw), 248px);
    min-height: min(calc(248 / 1400 * 100vw), 248px);
    max-height: min(calc(248 / 1400 * 100vw), 248px);
    background: #FFFFFF;
    border: min(calc(2 / 1400 * 100vw), 2px) solid #ADADAD;
    border-radius: min(calc(8 / 1400 * 100vw), 8px);
    padding: min(calc(16 / 1400 * 100vw), 16px);
    box-sizing: border-box;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: min(calc(16 / 1400 * 100vw), 16px);
    line-height: min(calc(24 / 1400 * 100vw), 24px);
    color: #333;
    resize: none;
}

.form-submit-wrapper {
    width: 100%;
    max-width: min(calc(900 / 1400 * 100vw), 900px);
    margin: min(calc(66 / 1400 * 100vw), 66px) auto 0;
    display: flex;
    justify-content: center;
}

.form-submit-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: min(calc(10 / 1400 * 100vw), 10px);
    background: #FC5B2A;
    border: none;
    border-radius: min(calc(20 / 1400 * 100vw), 20px);
    width: min(calc(300 / 1400 * 100vw), 300px);
    height: min(calc(75 / 1400 * 100vw), 75px);
    padding: 0 min(calc(20 / 1400 * 100vw), 20px);
    cursor: pointer;
    transition: all 0.3s;
    box-sizing: border-box;
    position: relative;
}

.form-submit-btn:hover {
    transform: translateY(-2px);
}

.submit-btn-text {
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 700;
    font-size: min(calc(24 / 1400 * 100vw), 24px);
    line-height: min(calc(33 / 1400 * 100vw), 33px);
    color: #FFFFFF;
    letter-spacing: min(calc(1.3 / 1400 * 100vw), 1.3px);
    margin: 0;
}

.submit-btn-arrow {
    position: absolute;
    right: min(calc(20 / 1400 * 100vw), 20px);
    font-size: min(calc(20 / 1400 * 100vw), 20px);
    color: #FFFFFF;
    line-height: 1;
    flex-shrink: 0;
}

/* メッセージセクション */
.message-section {
    width: 100%;
    height: min(calc(300 / 1400 * 100vw), 300px);
    position: relative;
    overflow: hidden;
    background: #FBFafa;
    background-image: url('images/news_bg.jpg');
    background-repeat: no-repeat;
    background-position: center top;
    background-size: 100% auto;
}

.message-bg-image {
    display: none;
}

.message-content {
    position: relative;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 3;
}

.message-text {
    font-family: 'Hiragino Kaku Gothic Pro', 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 700;
    text-align: center;
    color: #FFFFFF;
    margin: 0;
    line-height: min(calc(50 / 1400 * 100vw), 50px);
}

.message-line1 {
    font-size: min(calc(24 / 1400 * 100vw), 24px);
    letter-spacing: min(calc(1.2 / 1400 * 100vw), 1.2px);
}

.message-comma {
    font-size: min(calc(24 / 1400 * 100vw), 24px);
    letter-spacing: min(calc(-1.2 / 1400 * 100vw), -1.2px);
}

.message-line2 {
    font-size: min(calc(38 / 1400 * 100vw), 38px);
    letter-spacing: min(calc(0.76 / 1400 * 100vw), 0.76px);
}

/* お知らせセクション */
.news-section {
    width: 100%;
    background: #E1F2E4;
    padding: min(calc(30 / 1400 * 100vw), 30px) 0 min(calc(40 / 1400 * 100vw), 40px);
    position: relative;
}

.news-container {
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 min(calc(50 / 1400 * 100vw), 50px);
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.news-title {
    width: 100%;
    max-width: min(calc(1000 / 1400 * 100vw), 1000px);
    font-family: 'Hiragino Kaku Gothic Pro', sans-serif;
    font-style: normal;
    font-weight: 700;
    font-size: min(calc(24 / 1400 * 100vw), 24px);
    line-height: normal;
    color: #333;
    text-align: left;
    margin: 0 0 min(calc(10 / 1400 * 100vw), 10px) 0;
}

.news-box {
    width: 100%;
    max-width: min(calc(1000 / 1400 * 100vw), 1000px);
    margin: 0 auto min(calc(20 / 1400 * 100vw), 20px);
    background: #FFFFFF;
    border-radius: min(calc(10 / 1400 * 100vw), 10px);
    padding: min(calc(23 / 1400 * 100vw), 23px) min(calc(30 / 1400 * 100vw), 30px);
    box-sizing: border-box;
    height: min(calc(180 / 1400 * 100vw), 180px);
    overflow-y: auto;
}

.news-list {
    display: flex;
    flex-direction: column;
    gap: min(calc(5 / 1400 * 100vw), 5px);
}

.news-item {
    display: flex;
    align-items: flex-start;
    gap: min(calc(10 / 1400 * 100vw), 10px);
    font-family: 'Hiragino Kaku Gothic Pro', sans-serif;
    font-style: normal;
    font-weight: 300;
    font-size: min(calc(16 / 1400 * 100vw), 16px);
    line-height: min(calc(28 / 1400 * 100vw), 28px);
    color: #333;
    margin: 0;
}

.news-date {
    flex-shrink: 0;
}

.news-content {
    flex: 1;
}

.news-link {
    width: 100%;
    max-width: min(calc(1000 / 1400 * 100vw), 1000px);
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 400;
    font-size: min(calc(16 / 1400 * 100vw), 16px);
    line-height: normal;
    color: #333;
    text-align: right;
    margin: 0;
    text-decoration: none;
    display: block;
    transition: opacity 0.3s;
}

.news-link:hover {
    opacity: 0.7;
}

/* フッター */
.footer {
    width: 100%;
    background: #3AB54A;
    position: relative;
    padding: 0;
    box-sizing: border-box;
}

.footer-container {
    width: 100%;
    max-width: min(calc(1400 / 1400 * 100vw), 1400px);
    margin: 0 auto;
    height: min(calc(70 / 1400 * 100vw), 70px);
    position: relative;
    box-sizing: border-box;
}

.footer-logo {
    position: absolute;
    left: 0;
    top: 0;
    width: min(calc(151 / 1400 * 100vw), 151px);
    height: min(calc(70 / 1400 * 100vw), 70px);
    background: #FFFFFF;
    display: flex;
    align-items: center;
    justify-content: center;
}

.footer-logo-img {
    width: min(calc(100 / 1400 * 100vw), 100px);
    height: min(calc(31 / 1400 * 100vw), 31px);
    object-fit: contain;
    display: block;
}

.footer-text {
    position: absolute;
    left: min(calc(867 / 1400 * 100vw), 867px);
    top: min(calc(29 / 1400 * 100vw), 29px);
    transform: none;
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 400;
    font-size: min(calc(12 / 1400 * 100vw), 12px);
    line-height: normal;
    color: #FFFFFF;
    text-align: center;
    margin: 0;
    white-space: nowrap;
}

.footer-link {
    color: #FFFFFF;
    text-decoration: none;
    transition: opacity 0.3s;
    margin-right: min(calc(50 / 1400 * 100vw), 50px);
}

.footer-link:hover {
    opacity: 0.7;
}

.footer-copyright {
    display: inline;
}

/* フォームエラー・成功メッセージ */
.form-errors {
    width: 100%;
    max-width: min(calc(900 / 1400 * 100vw), 900px);
    margin: 0 auto min(calc(30 / 1400 * 100vw), 30px);
    padding: min(calc(20 / 1400 * 100vw), 20px);
    background: #FFF3F3;
    border: min(calc(2 / 1400 * 100vw), 2px) solid #FF6B6B;
    border-radius: min(calc(10 / 1400 * 100vw), 10px);
    box-sizing: border-box;
}

.error-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: min(calc(16 / 1400 * 100vw), 16px);
    font-weight: 700;
    color: #D32F2F;
    margin: 0 0 min(calc(10 / 1400 * 100vw), 10px) 0;
}

.error-list {
    margin: 0;
    padding-left: min(calc(20 / 1400 * 100vw), 20px);
    list-style: disc;
}

.error-list li {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: min(calc(14 / 1400 * 100vw), 14px);
    color: #D32F2F;
    margin-bottom: min(calc(5 / 1400 * 100vw), 5px);
}

.error-message {
    display: flex;
    align-items: center;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: min(calc(12 / 1400 * 100vw), 12px);
    color: #D32F2F;
    margin-top: min(calc(5 / 1400 * 100vw), 5px);
}

.error-message:empty {
    display: none;
}

.error-message i {
    color: #D32F2F;
    margin-right: min(calc(5 / 1400 * 100vw), 5px);
    font-size: min(calc(14 / 1400 * 100vw), 14px);
    flex-shrink: 0;
    animation: blink 1s infinite;
}

@keyframes blink {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: 0.3;
    }
}

.form-input.error,
.form-input-phone.error,
.form-input-email-left.error,
.form-input-email-right.error,
.form-select.error {
    border-color: #FF6B6B;
    background: #FFF3F3;
}

.form-success-message {
    width: 100%;
    max-width: min(calc(900 / 1400 * 100vw), 900px);
    margin: 0 auto;
    padding: min(calc(40 / 1400 * 100vw), 40px);
    background: #F0F9F4;
    border: min(calc(2 / 1400 * 100vw), 2px) solid #3AB54A;
    border-radius: min(calc(20 / 1400 * 100vw), 20px);
    box-sizing: border-box;
    text-align: center;
}

.form-success-message h3 {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: min(calc(24 / 1400 * 100vw), 24px);
    font-weight: 700;
    color: #2E2E2E;
    margin: 0 0 min(calc(20 / 1400 * 100vw), 20px) 0;
}

.form-success-message > p {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: min(calc(16 / 1400 * 100vw), 16px);
    color: #2E2E2E;
    margin: 0 0 min(calc(30 / 1400 * 100vw), 30px) 0;
    line-height: 1.8;
}

.form-success-details {
    text-align: left;
    background: #FFFFFF;
    padding: min(calc(30 / 1400 * 100vw), 30px);
    border-radius: min(calc(10 / 1400 * 100vw), 10px);
    margin-top: min(calc(30 / 1400 * 100vw), 30px);
}

.form-success-details p {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: min(calc(14 / 1400 * 100vw), 14px);
    color: #2E2E2E;
    margin: 0 0 min(calc(15 / 1400 * 100vw), 15px) 0;
    line-height: 1.8;
}

.form-success-details p:last-child {
    margin-bottom: 0;
}

.form-success-details strong {
    font-weight: 700;
    color: #333;
}

/* 確認モーダル（body直下・必ず最前面に表示） */
.confirm-modal {
    display: none;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    background: rgba(0, 0, 0, 0.5);
    z-index: 2147483647 !important;
    align-items: center;
    justify-content: center;
}

.confirm-modal-content {
    position: relative !important;
    z-index: 2147483647 !important;
    background: #FFFFFF;
    border-radius: min(calc(20 / 1400 * 100vw), 20px);
    padding: min(calc(40 / 1400 * 100vw), 40px);
    max-width: min(calc(600 / 1400 * 100vw), 600px);
    width: 90%;
    max-height: 80vh;
    overflow-y: auto;
    box-sizing: border-box;
}

.confirm-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: min(calc(24 / 1400 * 100vw), 24px);
    font-weight: 700;
    color: #2E2E2E;
    margin: 0 0 min(calc(30 / 1400 * 100vw), 30px) 0;
    text-align: center;
}

.confirm-body {
    margin-bottom: min(calc(30 / 1400 * 100vw), 30px);
}

.confirm-item {
    margin-bottom: min(calc(20 / 1400 * 100vw), 20px);
    padding-bottom: min(calc(15 / 1400 * 100vw), 15px);
    border-bottom: min(calc(1 / 1400 * 100vw), 1px) solid #E0E0E0;
}

.confirm-item:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

.confirm-item label {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: min(calc(14 / 1400 * 100vw), 14px);
    font-weight: 700;
    color: #333;
    display: block;
    margin-bottom: min(calc(5 / 1400 * 100vw), 5px);
}

.confirm-item span {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: min(calc(14 / 1400 * 100vw), 14px);
    color: #2E2E2E;
    display: block;
    white-space: pre-wrap;
    word-break: break-word;
}

.confirm-buttons {
    display: flex;
    gap: min(calc(20 / 1400 * 100vw), 20px);
    justify-content: center;
    margin-top: min(calc(30 / 1400 * 100vw), 30px);
}

.confirm-btn-cancel,
.confirm-btn-submit {
    padding: min(calc(15 / 1400 * 100vw), 15px) min(calc(40 / 1400 * 100vw), 40px);
    border-radius: min(calc(10 / 1400 * 100vw), 10px);
    font-family: 'Noto Sans JP', sans-serif;
    font-size: min(calc(16 / 1400 * 100vw), 16px);
    font-weight: 700;
    cursor: pointer;
    border: none;
    transition: all 0.3s;
    min-width: min(calc(120 / 1400 * 100vw), 120px);
}

.confirm-btn-cancel {
    background: #E0E0E0;
    color: #333;
}

.confirm-btn-cancel:hover {
    background: #D0D0D0;
}

.confirm-btn-submit {
    background: #FC5B2A;
    color: #FFFFFF;
}

.confirm-btn-submit:hover {
    background: #E04A1F;
    transform: translateY(-2px);
    box-shadow: 0 min(calc(4 / 1400 * 100vw), 4px) min(calc(12 / 1400 * 100vw), 12px) rgba(252, 91, 42, 0.4);
}

.footer-line {
    display: none;
}

/******************** SPレイアウト ********************/

/* MVセクション - SP */

@media (max-width: 1024.98px) {
    /* SP専用要素を表示 */
    br.sp-only {
        display: block;
    }
    .sp-only {
        display: block;
    }
    /* PC専用要素を非表示 */
    br.pc-only,
    .pc-only {
        display: none;
    }
    /* ヘッダー */
    .header {
        height: calc(41 / 375 * 100vw);
        padding: calc(12 / 375 * 100vw) 0 calc(7 / 375 * 100vw) calc(20 / 375 * 100vw);
    }

    .header-logo {
        width: 70.72px;
        height: 22.2px;
    }

    .logo-img {
        width: 70.72px;
        height: 22.2px;
        padding: 0;
    }

    /* MVラッパー - SP */
    .mv-wrapper::before {
        display: none;
    }

    /* メインコンテンツ */
    .main-content {
        aspect-ratio: 375 / 600;
        background-image: url('images/MV_bg_sp.jpg');
        background-size: 100% auto;
        background-position: center top;
        background-repeat: no-repeat;
        min-height: calc(600 / 375 * 100vw);
    }

    /* 左側画像 - SPでは非表示 */
    /* メインテキスト */
    .main-text {
        position: absolute;
        left: 50%;
        top: calc(145 / 375 * 100vw);
        width: calc(100% - 40 / 375 * 100vw);
        max-width: calc(335 / 375 * 100vw);
        transform: translateX(-50%);
        z-index: 10;
    }

    .title-main {
        width: 100%;
        margin-left: 0;
        margin-bottom: 0;
        font-size: calc(19.6503 / 375 * 100vw);
        line-height: calc(32 / 375 * 100vw);
        white-space: normal;
        text-align: center;
        font-weight: 700;
        color: #2E2E2E;
    }

    .title-sub {
        width: 100%;
        margin-bottom: 0;
        font-style: normal;
        font-weight: 700;
        font-size: calc(40.1487 / 375 * 100vw);
        line-height: calc(50 / 375 * 100vw);
        letter-spacing: -0.01em;
        text-align: center;
        color: #2E2E2E;
    }

    .green-line {
        display: none;
    }

    /* description - MV左下に配置 */
    .description {
        position: absolute;
        left: calc(20 / 375 * 100vw);
        top: auto;
        bottom: calc(80 / 375 * 100vw);
        transform: none;
        width: calc(100% - 40 / 375 * 100vw);
        max-width: calc(280 / 375 * 100vw);
        margin: 0;
        font-size: calc(13 / 375 * 100vw);
        line-height: calc(20 / 375 * 100vw);
        text-align: left;
        color: #2E2E2E;
        z-index: 10;
    }

    /* ボタン - SP */
    .btn-container {
        position: fixed !important;
        bottom: 0 !important;
        left: 50% !important;
        right: auto !important;
        width: 100vw !important;
        max-width: 100vw !important;
        min-width: 100% !important;
        height: calc(76 / 375 * 100vw) !important;
        padding: 10px calc(12 / 375 * 100vw) !important;
        padding-bottom: max(10px, env(safe-area-inset-bottom)) !important;
        margin: 0 !important;
        margin-left: -50vw !important;
        background: #D9D9D9 !important;
        z-index: 1000 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        box-sizing: border-box !important;
        transform: none !important;
        top: auto !important;
    }

    .btn-container .btn-contact {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        height: calc(60 / 375 * 100vw) !important;
        position: relative !important;
        left: auto !important;
        top: auto !important;
        transform: none !important;
        box-sizing: border-box !important;
        padding: 0 8px !important;
    }

    .btn-contact {
        border-radius: calc(12 / 375 * 100vw) !important;
        gap: calc(8 / 375 * 100vw) !important;
    }

    .btn-text {
        font-size: calc(18 / 375 * 100vw) !important;
        line-height: calc(17 / 375 * 100vw) !important;
        letter-spacing: 0.05em !important;
    }

    .btn-arrow {
        width: calc(18 / 375 * 100vw) !important;
        height: calc(18 / 375 * 100vw) !important;
        font-size: calc(12 / 375 * 100vw) !important;
    }

    /* 市場直結バッジ - SPでは背景画像に含まれているため非表示 */
    .market-badge {
        display: none;
    }

    /* 相談ボタン - SPでは非表示 */
    .problem-consult-btn {
        display: none !important;
    }

    /******************** 悩みセクション - SP ********************/
    
    .problem-section {
        padding: calc(30 / 375 * 100vw) 0;
    }

    .problem-container {
        padding: 0 calc(20 / 375 * 100vw);
    }

    .problem-title {
        font-size: calc(28 / 375 * 100vw);
        letter-spacing: calc(0.72 / 375 * 100vw);
        margin-bottom: calc(30 / 375 * 100vw);
        text-align: left;
        width: fit-content;
        max-width: 100%;
        margin-left: auto;
        margin-right: auto;
    }

    .problem-card-wrapper-container {
        display: flex;
        flex-direction: column;
        gap: calc(25 / 375 * 100vw);
        max-width: 100%;
    }

    .problem-card-wrapper-3 {
        margin-top: 0;
    }

    .problem-card-wrapper {
        display: flex;
        flex-direction: row;
        align-items: flex-start;
        gap: calc(12 / 375 * 100vw);
        width: 100%;
    }

    .problem-card-wrapper-1,
    .problem-card-wrapper-2,
    .problem-card-wrapper-3,
    .problem-card-wrapper-4 {
        align-items: flex-end;
    }

    /* カード1と3: 左にイラスト、右に吹き出し */
    .problem-card-wrapper-1,
    .problem-card-wrapper-3 {
        flex-direction: row;
    }

    .problem-card-wrapper-1 .problem-person,
    .problem-card-wrapper-3 .problem-person {
        margin-right: calc(12 / 375 * 100vw);
        margin-left: 0;
    }

    /* カード2と4: 右にイラスト、左に吹き出し */
    .problem-card-wrapper-2,
    .problem-card-wrapper-4 {
        flex-direction: row;
        justify-content: flex-end;
    }

    .problem-card-wrapper-2 .problem-person,
    .problem-card-wrapper-4 .problem-person {
        order: 2;
        margin-left: calc(12 / 375 * 100vw);
        margin-right: 0;
    }

    .problem-card-wrapper-2 .problem-speech-bubble,
    .problem-card-wrapper-4 .problem-speech-bubble {
        order: 1;
    }

    .problem-person {
        flex-shrink: 0;
        gap: calc(6 / 375 * 100vw);
    }

    .problem-person-img {
        width: calc(70 / 375 * 100vw);
    }

    .problem-person-label {
        font-size: calc(11 / 375 * 100vw);
        line-height: calc(16 / 375 * 100vw);
    }

    .speech-bubble-box {
        width: calc(248 / 375 * 100vw);
        flex: none;
        padding: calc(20 / 375 * 100vw);
        border-radius: calc(8 / 375 * 100vw);
        box-sizing: border-box;
    }

    .problem-card-title {
        font-size: calc(18 / 375 * 100vw);
        line-height: calc(22 / 375 * 100vw);
        margin-bottom: calc(10 / 375 * 100vw);
        white-space: normal;
    }

    .problem-card-text {
        font-size: calc(16 / 375 * 100vw);
        line-height: calc(20 / 375 * 100vw);
    }

    /* 吹き出しの三角 - SP用に調整 */
    .speech-bubble-tail-left {
        border-top-width: calc(8 / 375 * 100vw);
        border-bottom-width: calc(8 / 375 * 100vw);
        border-right-width: calc(18 / 375 * 100vw);
    }

    .speech-bubble-tail-right {
        border-top-width: calc(8 / 375 * 100vw);
        border-bottom-width: calc(8 / 375 * 100vw);
        border-left-width: calc(18 / 375 * 100vw);
    }

    .problem-card-wrapper-1 .speech-bubble-tail-left,
    .problem-card-wrapper-2 .speech-bubble-tail-right {
        top: 50%;
    }

    /******************** 強みセクション - SP ********************/
    
    .strength-section {
        padding: calc(30 / 375 * 100vw) 0 calc(80 / 375 * 100vw);
    }

    .strength-bg-top,
    .strength-bg-bottom {
        display: block;
        width: auto;
        max-width: calc(150 / 375 * 100vw);
    }

    .strength-bg-top {
        width: auto;
        max-width: calc(150 / 375 * 100vw);
    }

    .strength-bg-bottom {
        width: auto;
        max-width: calc(150 / 375 * 100vw);
    }

    .strength-triangle {
        width: calc(80 / 375 * 100vw);
        height: calc(60 / 375 * 100vw);
    }

    .strength-triangle::before {
        border-left-width: calc(30 / 375 * 100vw);
        border-right-width: calc(30 / 375 * 100vw);
        border-top-width: calc(35 / 375 * 100vw);
    }

    .strength-container {
        padding: 0 calc(20 / 375 * 100vw);
    }

    .strength-title-wrapper {
        margin-bottom: calc(25 / 375 * 100vw);
    }

    .strength-title-main {
        font-size: calc(24 / 375 * 100vw);
        margin: calc(40 / 375 * 100vw) 0 calc(5 / 375 * 100vw) 0;
    }

    .strength-title-sub {
        font-size: calc(30 / 375 * 100vw);
        margin: 0 0 calc(15 / 375 * 100vw) 0;
    }

    .strength-description {
        font-size: calc(16 / 375 * 100vw);
        line-height: calc(28 / 375 * 100vw);
    }

    .strength-summary {
        margin: calc(20 / 375 * 100vw) auto calc(50 / 375 * 100vw);
    }

    .summary-image {
        max-width: 100%;
    }

    .summary-image-pc {
        display: none;
    }

    .summary-image-sp {
        display: block;
    }

    /* カード */
    .strength-card {
        max-width: 100%;
        margin: calc(30 / 375 * 100vw) auto 0;
        padding: calc(25 / 375 * 100vw) calc(20 / 375 * 100vw);
        border-width: calc(3 / 375 * 100vw);
        border-radius: calc(20 / 375 * 100vw);
    }

    .strength-card-header {
        gap: calc(12 / 375 * 100vw);
        margin-bottom: calc(15 / 375 * 100vw);
    }

    .strength-card-icon {
        height: calc(30 / 375 * 100vw);
    }

    .strength-card-title {
        font-size: calc(28 / 375 * 100vw);
        line-height: calc(28 / 375 * 100vw);
        letter-spacing: calc(2.4 / 375 * 100vw);
    }

    .strength-card-line {
        height: calc(2 / 375 * 100vw);
        margin: calc(15 / 375 * 100vw) 0;
    }

    .strength-card-content {
        flex-direction: column;
        gap: calc(20 / 375 * 100vw);
        align-items: flex-start;
    }

    .strength-card-content-top {
        align-items: flex-start;
    }

    .strength-card:has(.strength-card-icon[alt="Order management icon"]) .strength-card-content {
        flex-direction: column;
    }

    .strength-card-image {
        width: 100%;
        max-width: calc(250 / 375 * 100vw);
        margin: auto;
    }

    .card-illustration-pc {
        display: none;
    }

    .card-illustration-sp {
        display: block;
    }

    .strength-card-image-sp {
        display: block;
        width: 100%;
        max-width: calc(250 / 375 * 100vw);
        margin: calc(15 / 375 * 100vw) auto 0;
    }

    .card-illustration-sp-only {
        width: 100%;
        height: auto;
        object-fit: contain;
    }

    .strength-card-text {
        width: 100%;
        gap: calc(12 / 375 * 100vw);
    }

    .strength-card-item {
        gap: calc(8 / 375 * 100vw);
    }

    .card-bullet {
        font-size: calc(19 / 375 * 100vw);
    line-height: calc(31 / 375 * 100vw);
    }

    .card-item-title {
        font-size: calc(20 / 375 * 100vw);
        line-height: calc(30 / 375 * 100vw);
        margin-bottom: calc(10 / 375 * 100vw);
    }

    .card-item-description {
        font-size: calc(16 / 375 * 100vw);
        line-height: calc(28 / 375 * 100vw);
        margin-bottom: calc(20 / 375 * 100vw);
    }

    /* ハイライトカード */
    .strength-highlight-card {
        max-width: 100%;
        margin: calc(30 / 375 * 100vw) auto 0;
        padding: calc(20 / 375 * 100vw) calc(10 / 375 * 100vw);
        border-width: calc(3 / 375 * 100vw);
        border-radius: calc(20 / 375 * 100vw);
        box-sizing: border-box;
        overflow: hidden;
    }

    .highlight-content {
        flex-direction: column;
        gap: calc(20 / 375 * 100vw);
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }

    .highlight-left {
        flex-direction: row;
        flex-wrap: wrap;
        gap: calc(12 / 375 * 100vw);
        width: 100%;
        max-width: 100%;
        align-items: flex-start;
        box-sizing: border-box;
        overflow: hidden;
    }

    .highlight-point {
        width: calc(70 / 375 * 100vw);
        height: calc(70 / 375 * 100vw);
        flex-shrink: 0;
        align-self: flex-start;
    }

    .point-label {
        font-size: calc(16 / 375 * 100vw);
        line-height: calc(22 / 375 * 100vw);
        letter-spacing: calc(0.32 / 375 * 100vw);
    }

    .highlight-subtitle-sp {
        display: block !important;
        flex: 1;
        min-width: 0;
        font-family: 'Noto Sans JP', sans-serif;
        font-style: normal;
        font-weight: 700;
        font-size: calc(16 / 375 * 100vw);
        line-height: calc(24 / 375 * 100vw);
        letter-spacing: calc(0.05 / 375 * 100vw);
        color: #FFFFFF;
        margin: 0;
        align-self: center;
    }

    /* PC用のsubtitleはSPでは非表示 */
    .highlight-subtitle-pc {
        display: none !important;
    }

    .highlight-text {
        width: 100%;
        flex: none;
        min-width: 0;
        gap: calc(10 / 375 * 100vw);
        box-sizing: border-box;
        margin-top: 0;
    }

    /* title以降をsubtitleの下に配置 */
    .highlight-title {
        margin-top: 0;
    }

    /* highlight-lineはSPでは非表示 */
    .highlight-line {
        display: none !important;
    }

    .highlight-title {
        font-size: calc(26 / 375 * 100vw);
        line-height: calc(30 / 375 * 100vw);
        letter-spacing: calc(2.2 / 375 * 100vw);
        white-space: normal;
        margin: 0;
        text-align: center;
    }

    .highlight-description {
        font-size: calc(16 / 375 * 100vw);
        line-height: calc(26 / 375 * 100vw);
        margin: 0;
        padding: 0 5px;
    }

    .highlight-line {
        display: none;
    }

    /* プロフィール */
    .highlight-profile {
        margin-top: calc(15 / 375 * 100vw);
        padding: 0 10px;
    }

    .profile-text {
        font-size: calc(14 / 375 * 100vw);
        line-height: calc(22 / 375 * 100vw);
        letter-spacing: calc(0.6 / 375 * 100vw);
    }

    /* PC用のhighlight-rightはSPでは非表示 */
    .highlight-right-pc {
        display: none !important;
    }

    /* 吹き出しとイラストの画像 */
    .highlight-speech-image {
        display: block !important;
        width: 100%;
        margin-top: calc(15 / 375 * 100vw);
    }

    .highlight-speech-img {
        width: 100%;
        max-width: 100%;
        height: auto;
        display: block;
    }

    /* アフターフォローセクション */
    .strength-after-section {
        max-width: 100%;
        margin: calc(30 / 375 * 100vw) auto 0;
        padding: calc(20 / 375 * 100vw) calc(16 / 375 * 100vw) calc(5 / 375 * 100vw);
        min-height: auto;
        background: #E1F2E4;
        border-radius: calc(20 / 375 * 100vw);
        background-image: none;
    }

    .after-content {
        max-width: 100%;
        display: flex;
        flex-direction: column;
        gap: calc(15 / 375 * 100vw);
        text-align: left;
    }

    .after-title {
        width: 100%;
        font-size: calc(18 / 375 * 100vw);
        line-height: calc(26 / 375 * 100vw);
        letter-spacing: calc(1 / 375 * 100vw);
        margin: 0;
        text-align: center;
    }

    .after-bottom {
        display: flex;
        flex-direction: row;
        align-items: flex-start;
        gap: calc(10 / 375 * 100vw);
    }

    .after-description {
        flex: 1;
        min-width: 0;
        font-size: calc(14 / 375 * 100vw);
        line-height: calc(22 / 375 * 100vw);
        text-align: left;
        margin: 0;
        letter-spacing: -0.05em;
    }

    /* SP用画像を表示 */
    .after-image-sp {
        display: block;
        flex-shrink: 0;
        width: auto;
        max-width: calc(120 / 375 * 100vw);
    }

    .after-image-sp-img {
        width: 100%;
        height: auto;
        object-fit: contain;
    }

    /* お問い合わせボタン */
    .strength-contact-btn {
        display: none !important;
    }

    .contact-btn-link {
        width: 100%;
        max-width: 335px;
        padding: 15px 30px;
        border-radius: 12px;
        gap: 10px;
    }

    .contact-btn-text {
        font-size: 16px;
        line-height: 24px;
        letter-spacing: 0.8px;
        white-space: normal;
    }

    .contact-btn-arrow {
        font-size: 14px;
    }

    /******************** 導入メリットセクション - SP ********************/
    
    .benefit-section {
        padding: calc(80 / 375 * 100vw) 0;
    }

    .benefit-bg-top,
    .benefit-bg-bottom {
        display: block;
        width: auto;
        max-width: calc(150 / 375 * 100vw);
    }

    .benefit-bg-top {
        max-width: calc(150 / 375 * 100vw);
    }

    .benefit-bg-bottom {
        max-width: calc(150 / 375 * 100vw);
    }

    .benefit-container {
        padding: 0 calc(20 / 375 * 100vw);
    }

    .benefit-title-wrapper {
        margin-bottom: calc(60 / 375 * 100vw);
    }

    .benefit-title-sub {
        font-size: calc(20 / 375 * 100vw);
        margin-bottom: calc(10 / 375 * 100vw);
    }

    .benefit-title-main {
        font-size: calc(30 / 375 * 100vw);
        margin-bottom: calc(15 / 375 * 100vw);
    }

    .benefit-intro {
        font-size: calc(16 / 375 * 100vw);
        line-height: calc(28 / 375 * 100vw);
    }

    /* 3つのメリットカード - SP */
    .benefit-cards {
        display: flex;
        flex-direction: column;
        gap: calc(60 / 375 * 100vw);
        max-width: 100%;
        margin: 0 auto calc(30 / 375 * 100vw);
    }

    .benefit-card-wrapper {
        position: relative;
        display: flex;
        flex-direction: column;
        align-items: center;
        width: 100%;
    }

    .benefit-card {
        position: relative;
        background: #FFFFFF;
        border: calc(3 / 375 * 100vw) solid #3AB54A;
        border-radius: calc(20 / 375 * 100vw) calc(20 / 375 * 100vw) 0 0;
        padding: calc(40 / 375 * 100vw) 0 0;
        box-sizing: border-box;
        display: flex;
        flex-direction: column;
        align-items: center;
        width: 100%;
        min-height: auto;
    }

    .benefit-card-number {
        position: absolute;
        top: calc(-25 / 375 * 100vw);
        left: 50%;
        transform: translateX(-50%);
        width: calc(50 / 375 * 100vw);
        height: calc(50 / 375 * 100vw);
        background: #3AB54A;
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: calc(30 / 375 * 100vw);
        line-height: calc(50 / 375 * 100vw);
        color: #FFFFFF;
        padding: 0 0 calc(5 / 375 * 100vw);
        margin: 0;
    }

    .benefit-card-title {
        font-size: calc(20 / 375 * 100vw);
        line-height: calc(30 / 375 * 100vw);
        color: #06B41D;
        text-align: center;
        margin: 0 0 calc(20 / 375 * 100vw) 0;
    }

    .benefit-card-image {
        width: 100%;
        margin-bottom: 0;
        display: block;
    }

    .card-img {
        width: 100%;
        display: block;
        margin: 0;
        padding: 0;
    }

    /* 売上拡大施策 - SP */
    .benefit-strategy {
        width: 100%;
        max-width: 100%;
        height: auto;
        min-height: calc(180 / 375 * 100vw);
        margin: 0 auto calc(30 / 375 * 100vw);
        background: #E1F2E4;
        padding: calc(25 / 375 * 100vw) calc(20 / 375 * 100vw) calc(25 / 375 * 100vw) calc(30 / 375 * 100vw);
        box-sizing: border-box;
        text-align: left;
        position: relative;
        display: flex;
        flex-direction: column;
        gap: calc(12 / 375 * 100vw);
        border-radius: calc(20 / 375 * 100vw);
        overflow: visible;
    }

    .strategy-image-left {
        position: absolute;
        top: calc(-10 / 375 * 100vw);
        left: calc(5 / 375 * 100vw);
        width: auto;
        height: auto;
        max-width: calc(55 / 375 * 100vw);
        z-index: 1;
    }

    .strategy-content {
        width: 100%;
        z-index: 2;
        position: relative;
        display: flex;
        flex-direction: column;
        gap: calc(12 / 375 * 100vw);
    }

    .strategy-title {
        font-size: calc(20 / 375 * 100vw);
        line-height: calc(28 / 375 * 100vw);
        letter-spacing: calc(0.5 / 375 * 100vw);
        margin-bottom: 0;
        text-align: left;
        font-weight: 700;
        color: #333;
        padding-left: calc(40 / 375 * 100vw);
    }

    .strategy-description-wrapper {
        display: flex;
        flex-direction: row;
        align-items: center;
        gap: calc(15 / 375 * 100vw);
    }

    .strategy-description {
        flex: 1;
        font-size: calc(14 / 375 * 100vw);
        line-height: calc(22 / 375 * 100vw);
        text-align: left;
        color: #333;
        margin: 0;
        min-width: 0;
    }

    .strategy-image-right {
        flex-shrink: 0;
        width: auto;
        max-width: calc(110 / 375 * 100vw);
        height: auto;
        z-index: 2;
    }

    /* 導入事例 - SP */
    .benefit-case {
        width: 100%;
        max-width: 100%;
        margin: 0 auto;
    }

    .case-title-wrapper {
        text-align: center;
        margin-bottom: calc(25 / 375 * 100vw);
    }

    .case-title-sub {
        font-size: calc(20 / 375 * 100vw);
        margin-bottom: calc(5 / 375 * 100vw);
    }

    .case-title-main {
        font-size: calc(30 / 375 * 100vw);
        margin-bottom: calc(10 / 375 * 100vw);
    }

    .case-intro {
        font-size: calc(16 / 375 * 100vw);
        line-height: calc(26 / 375 * 100vw);
    }

    .case-card {
        background: #FFFFFF;
        border: calc(3 / 375 * 100vw) solid #3AB54A;
        border-radius: calc(20 / 375 * 100vw);
        padding: calc(15 / 375 * 100vw) calc(20 / 375 * 100vw);
        box-sizing: border-box;
        display: flex;
        flex-direction: column;
        gap: calc(10 / 375 * 100vw);
    }

    .case-company {
        font-size: calc(14 / 375 * 100vw);
        line-height: calc(24 / 375 * 100vw);
        margin: 0;
        text-align: center;
    }

    .case-top-section {
        display: flex;
        flex-direction: row;
        gap: calc(0 / 375 * 100vw);
        align-items: flex-start;
    }

    .case-person {
        flex-shrink: 0;
        width: 100%;
        max-width: calc(90 / 375 * 100vw);
    }

    .case-person-img {
        width: 100%;
        height: auto;
        object-fit: contain;
    }

    .case-quote {
        font-size: calc(18 / 375 * 100vw);
        line-height: calc(26 / 375 * 100vw);
        margin: 0;
        flex: 1;
    }

    .case-line {
        width: 100%;
        height: calc(2 / 375 * 100vw);
        background: #3AB54A;
        margin: calc(5 / 375 * 100vw) 0;
    }

    .case-line.pc-only {
        display: none !important;
    }

    .case-line.sp-only {
        display: block !important;
    }

    .case-details {
        display: flex;
        flex-direction: column;
        gap: calc(10 / 375 * 100vw);
    }

    .case-details.pc-only {
        display: none !important;
    }

    .case-details.sp-only {
        display: flex !important;
    }

    .case-details p {
        font-size: calc(16 / 375 * 100vw);
        line-height: calc(24 / 375 * 100vw);
        margin: 0;
    }

    /* お問い合わせボタン - SP */
    .benefit-contact-btn {
        display: none;
    }

    /******************** フォームセクション - SP ********************/
    
    .form-section {
        padding: calc(40 / 375 * 100vw) 0 0;
        overflow: visible;
        background: #ffffff;
    }

    .form-bg-top,
    .form-bg-bottom {
        display: none;
        width: auto;
        max-width: calc(150 / 375 * 100vw);
    }

    .form-bg-top {
        max-width: calc(150 / 375 * 100vw);
    }

    .form-bg-bottom {
        max-width: calc(150 / 375 * 100vw);
    }

    .form-container {
        padding: 0 calc(20 / 375 * 100vw);
        overflow-x: hidden;
        overflow-y: visible;
    }
    
    .form-title-wrapper {
        overflow: visible;
    }

    .form-title-wrapper {
        margin-bottom: calc(30 / 375 * 100vw);
    }

    .form-title-sub {
        font-size: calc(20 / 375 * 100vw);
        margin-bottom: calc(10 / 375 * 100vw);
    }

    .form-title-main {
        font-size: calc(27 / 375 * 100vw);
        margin-bottom: calc(30 / 375 * 100vw);
    }

    .form-intro {
        font-size: calc(16 / 375 * 100vw);
        line-height: calc(22 / 375 * 100vw);
        margin-bottom: calc(20 / 375 * 100vw);
    }

    .form-intro__lead{
        font-size: calc(16 / 375 * 100vw);
        text-align: left;
        width: 85%;
        margin-bottom: 20px;
    }

    .form-intro__text {
        width: 100%;
        text-align: left;
        font-size: calc(16 / 375 * 100vw);
        line-height: 1.7;
    }

    .form-consult-box {
        width: 100%;
        max-width: 100%;
        height: auto;
        margin: 0 auto;
        background: transparent;
        border: none;
        padding: 0;
        box-sizing: border-box;
        display: flex;
        flex-direction: row;
        align-items: center;
        gap: calc(10 / 375 * 100vw);
        position: relative;
    }

    .consult-text {
        flex: 1;
        min-width: 0;
        font-family: 'Noto Sans JP', sans-serif;
        font-style: normal;
        font-weight: 400;
        font-size: calc(14 / 375 * 100vw);
        line-height: calc(22 / 375 * 100vw);
        color: #333;
        text-align: left;
        padding: calc(16 / 375 * 100vw) calc(15 / 375 * 100vw);
        background: #FFFFFF;
        border: calc(2 / 375 * 100vw) solid #06B41D;
        border-radius: calc(8 / 375 * 100vw);
        box-sizing: border-box;
    }

    .consult-text p {
        margin: 0 0 calc(4 / 375 * 100vw) 0;
        white-space: normal;
        font-size: calc(14 / 375 * 100vw);
        line-height: calc(22 / 375 * 100vw);
    }

    .consult-text p:last-child {
        margin-bottom: 0;
    }

    .consult-highlight {
        font-family: 'Noto Sans JP', sans-serif;
        font-style: normal;
        font-weight: 700;
        color: #FC5B2A;
    }

    .consult-image {
        flex-shrink: 0;
        width: calc(109 / 375 * 100vw);
        height: auto;
        position: relative;
        align-self: center;
        display: block;
    }

    .consult-img {
        width: 100%;
        height: auto;
        object-fit: contain;
        display: block;
    }

    .contact-form {
        max-width: 100%;
    }

    .form-row {
        flex-direction: column;
        gap: calc(10 / 375 * 100vw);
        margin-bottom: calc(25 / 375 * 100vw);
    }

    .form-label {
        width: 100%;
        font-size: calc(16 / 375 * 100vw);
        line-height: calc(24 / 375 * 100vw);
    }

    .form-row-content {
        width: 100%;
    }

    .form-input {
        max-width: 100%;
        min-width: 100%;
        height: calc(48 / 375 * 100vw);
        min-height: calc(48 / 375 * 100vw);
        max-height: calc(48 / 375 * 100vw);
        border-radius: calc(8 / 375 * 100vw);
        padding: 0 calc(16 / 375 * 100vw);
        line-height: calc(46 / 375 * 100vw);
        font-size: calc(16 / 375 * 100vw);
        resize: none;
        overflow: hidden;
    }

    .form-phone-group {
        max-width: 100%;
        min-width: 100%;
        gap: calc(8 / 375 * 100vw);
    }

    .form-input-phone {
        width: 100%;
        height: calc(48 / 375 * 100vw);
        border-radius: calc(8 / 375 * 100vw);
        padding: 0 calc(12 / 375 * 100vw);
        line-height: calc(46 / 375 * 100vw);
        font-size: calc(16 / 375 * 100vw);
    }

    .form-email-group {
        max-width: 100%;
        min-width: 100%;
        gap: calc(5 / 375 * 100vw);
    }

    .form-input-email-left {
        width: 100%;
        max-width: calc(140 / 375 * 100vw);
        height: calc(48 / 375 * 100vw);
        border-radius: calc(8 / 375 * 100vw);
        padding: 0 calc(12 / 375 * 100vw);
        line-height: calc(46 / 375 * 100vw);
        font-size: calc(16 / 375 * 100vw);
    }

    .form-input-email-right {
        width: 100%;
        height: calc(48 / 375 * 100vw);
        border-radius: calc(8 / 375 * 100vw);
        padding: 0 calc(12 / 375 * 100vw);
        line-height: calc(46 / 375 * 100vw);
        font-size: calc(16 / 375 * 100vw);
    }

    .form-select-wrapper {
        max-width: 100%;
        min-width: 100%;
    }

    .form-select {
        height: calc(48 / 375 * 100vw);
        border-radius: calc(8 / 375 * 100vw);
        padding: 0 calc(16 / 375 * 100vw);
        padding-right: calc(40 / 375 * 100vw);
        line-height: calc(46 / 375 * 100vw);
        font-size: calc(16 / 375 * 100vw);
    }

    .email-at {
        font-size: calc(20 / 375 * 100vw);
    }

    .form-label-note {
        font-size: calc(14 / 375 * 100vw);
    }

    .select-arrow {
        font-size: calc(16 / 375 * 100vw);
        right: calc(16 / 375 * 100vw);
        color: #7D7E7D;
    }

    .form-textarea {
        max-width: 100%;
        min-width: 100%;
        height: calc(180 / 375 * 100vw);
        border-radius: calc(8 / 375 * 100vw);
        padding: calc(16 / 375 * 100vw);
        line-height: calc(24 / 375 * 100vw);
        font-size: calc(16 / 375 * 100vw);
    }

    .form-submit-wrapper {
        max-width: 100%;
        margin: calc(40 / 375 * 100vw) auto calc(60 / 375 * 100vw);
    }

    .form-submit-btn {
        width: 90%;
        max-width: calc(335 / 375 * 100vw);
        height: calc(80 / 375 * 100vw);
        border-radius: calc(12 / 375 * 100vw);
    }

    .submit-btn-text {
        font-size: calc(26 / 375 * 100vw);
        line-height: calc(26 / 375 * 100vw);
        letter-spacing: calc(0.9 / 375 * 100vw);
    }

    .submit-btn-arrow {
        right: calc(15 / 375 * 100vw);
        font-size: calc(16 / 375 * 100vw);
    }

    .form-errors {
        max-width: 100%;
        padding: calc(15 / 375 * 100vw);
        margin-bottom: calc(20 / 375 * 100vw);
    }

    .error-title {
        font-size: calc(14 / 375 * 100vw);
        margin-bottom: calc(8 / 375 * 100vw);
    }

    .error-list {
        padding-left: calc(18 / 375 * 100vw);
    }

    .error-list li {
        font-size: calc(13 / 375 * 100vw);
        margin-bottom: calc(4 / 375 * 100vw);
    }

    .error-message {
        font-size: calc(12 / 375 * 100vw);
        margin-top: calc(4 / 375 * 100vw);
    }

    .error-message i {
        font-size: calc(16 / 375 * 100vw);
        margin-right: calc(6 / 375 * 100vw);
    }

    .form-success-message {
        max-width: 100%;
        padding: calc(30 / 375 * 100vw) calc(20 / 375 * 100vw);
    }

    .form-success-message h3 {
        font-size: calc(20 / 375 * 100vw);
        margin-bottom: calc(15 / 375 * 100vw);
    }

    .form-success-message > p {
        font-size: calc(14 / 375 * 100vw);
        line-height: calc(24 / 375 * 100vw);
        margin-bottom: calc(20 / 375 * 100vw);
    }

    .form-success-details {
        padding: calc(20 / 375 * 100vw);
        margin-top: calc(20 / 375 * 100vw);
    }

    .form-success-details p {
        font-size: calc(13 / 375 * 100vw);
        margin-bottom: calc(12 / 375 * 100vw);
    }

    .confirm-modal-content {
        padding: calc(30 / 375 * 100vw) calc(20 / 375 * 100vw);
        max-width: 90%;
    }

    .confirm-title {
        font-size: calc(20 / 375 * 100vw);
        margin-bottom: calc(20 / 375 * 100vw);
    }

    .confirm-item {
        margin-bottom: calc(15 / 375 * 100vw);
        padding-bottom: calc(12 / 375 * 100vw);
    }

    .confirm-item label {
        font-size: calc(13 / 375 * 100vw);
        margin-bottom: calc(4 / 375 * 100vw);
    }

    .confirm-item span {
        font-size: calc(13 / 375 * 100vw);
    }

    .confirm-buttons {
        gap: calc(15 / 375 * 100vw);
        margin-top: calc(20 / 375 * 100vw);
        flex-direction: column;
    }

    .confirm-btn-cancel,
    .confirm-btn-submit {
        width: 100%;
        padding: calc(15 / 375 * 100vw) calc(30 / 375 * 100vw);
        font-size: calc(16 / 375 * 100vw);
    }

    /******************** お知らせセクション - SP ********************/
    
    .news-section {
        padding: calc(40 / 375 * 100vw) 0;
    }

    .news-container {
        padding: 0 calc(20 / 375 * 100vw);
    }

    .news-title {
        width: 100%;
        max-width: none;
        font-size: calc(20 / 375 * 100vw);
        margin-bottom: calc(20 / 375 * 100vw);
    }

    .news-box {
        width: 100%;
        max-width: none;
        padding: calc(20 / 375 * 100vw);
        border-radius: calc(8 / 375 * 100vw);
        margin-bottom: calc(15 / 375 * 100vw);
        box-sizing: border-box;
        height: calc(180 / 375 * 100vw);
        overflow-y: auto;
    }

    .news-list {
        gap: calc(8 / 375 * 100vw);
    }

    .news-item {
        font-size: calc(14 / 375 * 100vw);
        line-height: calc(24 / 375 * 100vw);
        gap: calc(8 / 375 * 100vw);
        width: 100%;
    }

    .news-date {
        flex-shrink: 0;
    }

    .news-content {
        flex: 1;
        min-width: 0;
    }

    .news-link {
        width: 100%;
        max-width: none;
        font-size: calc(14 / 375 * 100vw);
        text-align: right;
    }

    /******************** メッセージセクション - SP ********************/
    
    .message-section {
        height: calc(200 / 375 * 100vw);
        background-size: cover;
        background-position: center;
    }

    .message-content {
        padding: 0 calc(20 / 375 * 100vw);
    }

    .message-text {
        line-height: calc(36 / 375 * 100vw);
    }

    .message-line1 {
        font-size: calc(20 / 375 * 100vw);
        letter-spacing: calc(0.9 / 375 * 100vw);
    }

    .message-comma {
        font-size: calc(24 / 375 * 100vw);
        letter-spacing: calc(-0.9 / 375 * 100vw);
    }

    .message-line2 {
        font-size: calc(28 / 375 * 100vw);
        letter-spacing: calc(0.56 / 375 * 100vw);
    }

    /******************** フッター - SP ********************/
    
    .footer {
        background: #FFFFFF;
        padding: calc(72 / 375 * 100vw) 0 0;
        margin-bottom: calc(76 / 375 * 100vw);
    }

    .footer-container {
        padding: 0;
        height: auto;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 0;
    }

    .footer-logo {
        position: relative;
        left: auto;
        top: auto;
        width: calc(108 / 375 * 100vw);
        height: calc(34 / 375 * 100vw);
        background: transparent;
        margin-bottom: calc(43 / 375 * 100vw);
        margin-top: calc(43 / 375 * 100vw);
    }

    .footer-logo-img {
        width: 100%;
        height: auto;
    }

    .footer-text {
        position: relative;
        left: auto;
        top: auto;
        transform: none;
        width: 100%;
        background: #3AB54A;
        color: #FFFFFF;
        font-size: calc(13 / 375 * 100vw);
        text-align: center;
        white-space: normal;
        padding: calc(24 / 375 * 100vw) 0 calc(28 / 375 * 100vw);
        box-sizing: border-box;
    }

    .footer-link {
        display: block;
        color: #FFFFFF;
        margin-right: 0;
        margin-bottom: calc(6 / 375 * 100vw);
    }

    .footer-copyright {
        display: block;
    }

    .footer-line {
        display: none;
    }
}

/* ============================================================
   FRUIT KNOT リニューアル 追加スタイル（2026.06）
   ============================================================ */
/* ===== FRUIT KNOT LP foundation ===== */
:root{
  --c-primary:#fc5b2a;
  --c-green:#01a116;
  --c-green-light:#6ec878;
  --c-beige:#f4f1e9;
  --c-gray:#f4f4f1;
  --c-text:#333333;
  --c-white:#ffffff;
  --curve-circle-size:180%;
  --curve-peek:15px;
}

/* 共通CTAバナー（オレンジ） */
.cta-banner__wrap{ display:flex; justify-content:center; padding:min(calc(60/1400*100vw),60px) 16px 0; }
.cta-banner{
  position:relative; display:flex; align-items:center; gap:min(calc(14/1400*100vw),14px);
  width:min(calc(565/1400*100vw),565px); min-height:min(calc(100/1400*100vw),100px);
  padding:min(calc(16/1400*100vw),16px) min(calc(28/1400*100vw),28px) min(calc(16/1400*100vw),16px) min(calc(78/1400*100vw),78px);
  background:var(--c-primary); border-radius:min(calc(30/1400*100vw),30px);
  text-decoration:none; transition:transform .2s, box-shadow .2s;
}
.cta-banner:hover{ transform:translateY(-2px); }
.cta-banner__free{
  position:absolute; left:min(calc(20/1400*100vw),20px); top:50%; transform:translateY(-50%);
  display:flex; align-items:center; justify-content:center;
  width:min(calc(57/1400*100vw),57px); height:min(calc(57/1400*100vw),57px);
  background:var(--c-white); color:var(--c-primary); border-radius:50%;
  font-size:min(calc(16/1400*100vw),16px); font-weight:600; letter-spacing:.1em;
}
.cta-banner__body{ display:flex; flex-direction:column; align-items:center; flex:1; color:var(--c-white); text-align:center; }
.cta-banner__sub{ font-size:min(calc(16/1400*100vw),16px); font-weight:700; letter-spacing:.05em; }
.cta-banner__main{ font-size:min(calc(22/1400*100vw),22px); font-weight:700; letter-spacing:.05em; }
.cta-banner__arrow{
  width:0; height:0; flex:none;
  border-left:min(calc(9/1400*100vw),9px) solid transparent;
  border-right:min(calc(9/1400*100vw),9px) solid transparent;
  border-top:min(calc(12/1400*100vw),12px) solid var(--c-white);
}

/* 共通セクション見出し（中央・水引き風オレンジライン） */
.sec-head{ text-align:center; }
.sec-head__title{
  font-size:min(calc(34/1400*100vw),34px); font-weight:700; color:var(--c-text);
  letter-spacing:.05em; line-height:1.4;
}
.sec-head__deco{
  display:flex; align-items:center; justify-content:center; gap:8px;
  margin-top:min(calc(14/1400*100vw),14px);
}
.sec-head__deco::before,.sec-head__deco::after{
  content:""; width:min(calc(56/1400*100vw),56px); height:2px; background:var(--c-primary);
}
.sec-head__knot{
  display:block;
  width:min(calc(120/1400*100vw),120px); height:min(calc(17/1400*100vw),17px);
  background:url(images/ribbon.png) center/contain no-repeat;
}

@media (max-width:1024.98px){
  .cta-banner__wrap{ display:none; padding:24px 0; }
  .cta-banner__wrap.pc-only{ display:none; }
  .cta-banner{
    width:100%; max-width:340px; min-height:84px; gap:10px; border-radius:18px;
    padding:14px 20px 14px 60px;
  }
  .cta-banner__free{ left:14px; width:44px; height:44px; font-size:13px; }
  .cta-banner__sub{ font-size:12px; letter-spacing:0; }
  .cta-banner__main{ font-size:15px; letter-spacing:0; white-space:nowrap; }
  .cta-banner__arrow{ border-left-width:7px; border-right-width:7px; border-top-width:10px; }
  .sec-head__title{ font-size:26px; margin: 10px auto 35px; }
  .sec-head__deco::before,.sec-head__deco::after{ width:40px; }
  .sec-head__knot{ width:88px; height:12px; }
}

/* ===== mv ===== */
.mv{
  position:relative; width:100%; max-width:none; margin:0 auto; overflow:hidden;
  background:
    url(images/MV_bg_pc.png) center top / 100% auto no-repeat,
    var(--c-beige) url(images/MV_bg_pc2.jpg) center top / 100% auto no-repeat;
  height:min(calc(580/1400*100vw),580px);
  display:flex; align-items:center; justify-content:center;
}
.mv::after{
  content:""; position:absolute; left:50%; bottom:max(calc(-225/1400*100vw),-225px);
  width:160%; height:min(calc(290/1400*100vw),290px);
  transform:translateX(-50%);
  background:var(--c-beige);
  border-radius:50% 50% 0 0/100% 100% 0 0;
  pointer-events:none; z-index:1;
}
.mv__topline{ position:absolute; top:0; left:0; width:100%; height:4px; background:var(--c-primary); z-index:3; }
.mv__photo{ display:none; } /* PC背景画像に含まれる */
.mv__inner{
  position:relative; z-index:2;
  width:min(calc(620/1400*100vw),620px);
  background:transparent;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center;
  padding:min(calc(14/1400*100vw),14px) min(calc(44/1400*100vw),44px) min(calc(42/1400*100vw),42px);
  box-sizing:border-box;
  transform:translateY(-18px);
}
.mv__catch{ font-size:min(calc(24/1400*100vw),24px); font-weight:700; color:var(--c-text); letter-spacing:.06em; line-height:1.6; }
.mv__logo{ margin-top:min(calc(18/1400*100vw),18px); display:flex; flex-direction:column; align-items:center; }
.mv__logo-img{ display:block; width:min(calc(410/1400*100vw),410px); height:auto; }
.mv__logo-knot{ display:inline-block; width:min(calc(60/1400*100vw),60px); height:min(calc(37/1400*100vw),37px);
  background:var(--c-primary); -webkit-mask:url(images/mv-ribbon.svg) center/contain no-repeat; mask:url(images/mv-ribbon.svg) center/contain no-repeat; }
.mv__logo-en{
  position:relative; display:inline-flex; align-items:center; justify-content:center; gap:min(calc(16/1400*100vw),16px);
  font-family:'Alegreya Sans SC','Noto Sans JP',serif; font-weight:500; font-size:min(calc(62/1400*100vw),62px);
  color:var(--c-primary); letter-spacing:.03em; line-height:1; margin-top:min(calc(4/1400*100vw),4px);
  text-transform:uppercase;
}
.mv__logo-en::before,.mv__logo-en::after{ content:""; width:min(calc(100/1400*100vw),100px); height:3px; background:var(--c-primary); }
.mv__logo-ja{ font-size:min(calc(14/1400*100vw),14px); font-weight:700; color:var(--c-primary); letter-spacing:.1em; margin-top:min(calc(6/1400*100vw),6px); }
.mv__title{ font-size:min(calc(42/1400*100vw),42px); font-weight:700; color:var(--c-green); letter-spacing:.02em; line-height:1.2; margin-top:min(calc(16/1400*100vw),16px); white-space:nowrap; }
.mv__cta.cta-banner__wrap{ margin-top:min(calc(30/1400*100vw),30px); padding:0; }
.mv__cta .cta-banner{
  width:min(calc(565/1400*100vw),565px);
  min-height:min(calc(100/1400*100vw),100px);
  border-radius:min(calc(30/1400*100vw),30px);
  padding:min(calc(16/1400*100vw),16px) min(calc(28/1400*100vw),28px) min(calc(16/1400*100vw),16px) min(calc(78/1400*100vw),78px);
  box-shadow:none;
}
.mv__cta .cta-banner:hover{ box-shadow:none; }
.mv__cta .cta-banner__free{
  left:min(calc(20/1400*100vw),20px);
  width:min(calc(57/1400*100vw),57px);
  height:min(calc(57/1400*100vw),57px);
  font-size:min(calc(16/1400*100vw),16px);
}
.mv__cta .cta-banner__sub{ font-size:min(calc(16/1400*100vw),16px); }
.mv__cta .cta-banner__main{ font-size:min(calc(22/1400*100vw),22px); }
.mv__badge{
  position:absolute; left:min(calc(24/1400*100vw),24px); top:min(calc(64/1400*100vw),64px); z-index:4;
  transform:translateX(-42%);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  width:min(calc(120/1400*100vw),120px); height:min(calc(120/1400*100vw),120px);
  background:var(--c-green); color:var(--c-white); border-radius:50%;
  font-size:min(calc(14/1400*100vw),14px); font-weight:700; line-height:1.5; text-align:center;
  box-shadow:0 4px 10px rgba(0,0,0,.15);
}

@media (max-width:1024.98px){
  .mv{
    display:block; background:var(--c-beige) url(images/MV_bg_sp.jpg) center top / cover no-repeat;
    aspect-ratio:750 / 1492;
    height:auto;
  }
  .mv::after{ content:none; }
  .mv__topline{ display:block; height:calc(3 / 375 * 100vw); }
  .mv__photo,.mv__badge{ display:none; }   /* 背景画像に焼き込み済 */
  .mv__inner{
    position:absolute; left:0; right:0; top:calc(240 / 375 * 100vw); bottom:auto;
    width:auto; aspect-ratio:auto; border-radius:0; background:transparent;
    max-width:100%; min-height:0; margin:0;
    transform:none;
    padding:0 24px; display:flex; flex-direction:column; align-items:center; justify-content:flex-start;
  }
  .mv__catch{ width:100%; margin-top:0; font-size:22px; line-height:1.45; }
  .mv__logo{ margin-top:28px; }
  .mv__logo-img{ width:309px; max-width:82.4vw; }
  .mv__logo-knot{ width:46px; height:28px; }
  .mv__logo-en{ font-size:36px; gap:8px; margin-top:2px; }
  .mv__logo-en::before,.mv__logo-en::after{ width:42px; height:2px; }
  .mv__logo-ja{ font-size:11px; }
  .mv__title{ font-size:26px; margin-top:24px; line-height:1.34; white-space:normal; }
  .mv__cta{ display:none; }
  .mv__cta .cta-banner{
    width:100%; max-width:340px; min-height:64px; border-radius:18px;
    padding:12px 18px 12px 58px;
  }
  .mv__cta .cta-banner__free{ left:12px; width:42px; height:42px; font-size:12px; }
  .mv__cta .cta-banner__sub{ font-size:10px; white-space:nowrap; }
  .mv__cta .cta-banner__main{ font-size:14px; white-space:nowrap; }
}

@media (min-width:401px) and (max-width:1024.98px){
  .mv__inner{ padding:0 calc(24 / 400 * 100vw); }
  .mv__catch{ font-size:calc(24 / 400 * 100vw); }
  .mv__logo{ margin-top:calc(28 / 400 * 100vw); }
  .mv__logo-img{ width:calc(309 / 400 * 100vw); max-width:none; }
  .mv__title{ font-size:calc(30 / 400 * 100vw); margin-top:calc(24 / 400 * 100vw); }
}

@media (max-width:400px){
    .mv__catch{ font-size:20px; }
}

/* ===== omoi ===== */
.omoi{ position:relative; z-index:2; background:var(--c-beige); padding:min(calc(40/1400*100vw),40px) 16px 0; }
.omoi__inner{ width:min(calc(980/1400*100vw),980px); margin-inline:auto; }
.omoi__title{
  width:min(calc(677/1400*100vw),677px);
  margin-left:min(calc(150/1400*100vw),150px);
  text-align:center; font-size:min(calc(34/1400*100vw),34px); font-weight:700; color:var(--c-text);
  letter-spacing:.05em; line-height:1.45;
  white-space:nowrap;
}
.omoi__sp-title{ display:none; }
.omoi__row{
  display:flex; align-items:flex-start; justify-content:flex-start; gap:min(calc(42/1400*100vw),42px);
  margin-top:min(calc(40/1400*100vw),40px);
  transform:translateX(min(calc(150/1400*100vw),150px));
}
.omoi__body{ flex:none; width:min(calc(680/1400*100vw),680px); }
.omoi__text{
  font-size:min(calc(16/1400*100vw),16px); color:var(--c-text); line-height:1.75; text-align:left;
}
.omoi__text + .omoi__text{ margin-top:min(calc(28/1400*100vw),28px); }
.omoi__text strong{ font-weight:700; }
.omoi__img{ flex:none; width:min(calc(270/1400*100vw),270px); height:auto; border-radius:8px; align-self:flex-end; transform:none; }
.omoi-consult-cta{ display:none; }

@media (max-width:1024.98px){
  .omoi{
    background:linear-gradient(to bottom, var(--c-beige) 0 calc(100% - 100px), var(--c-white) calc(100% - 100px) 100%);
    padding:10px 40px 0;
    overflow-x:clip;
  }
  .omoi::before{
    content:""; position:absolute; left:50%; top:-50px; z-index:-1;
    width:var(--curve-circle-size); aspect-ratio:1;
    transform:translateX(-50%) translateY(calc(-1 * var(--curve-peek)));
    background:var(--c-beige); border-radius:50%;height: 500px;
  }
  .omoi__inner{ width:100%; }
  .omoi__title{ width:315px; max-width:none; margin-left:50%; margin-right:0; transform:translateX(-50%); font-size:27px; line-height:1.5; white-space:normal; }
  .omoi__pc-title{ display:none; }
  .omoi__sp-title{ display:block; }
  .omoi__row{ flex-direction:column; gap:16px; margin-top:20px; transform:none; }
  .omoi__body{ width:100%; }
  .omoi__text{ font-size:17px; line-height:1.78; text-align:left; }
  .omoi__text + .omoi__text{ margin-top:18px; }
  .omoi__img{ width:58%; max-width:220px; align-self:center; transform:none; }
}

@media (min-width:1025px){
  .omoi{ z-index:3; background:var(--c-beige); padding:min(calc(30/1400*100vw),30px) 16px min(calc(80/1400*100vw),80px); }
  .omoi.has-fixed-consult{ z-index:10000; }
  .omoi::before{ content:none; }
  .omoi__img{
    width:min(calc(270/1400*100vw),270px); max-width:none; align-self:flex-end;
    transform:none;
  }
  .omoi-consult-cta{
    position:absolute;
    right:min(calc(250/1400*100vw),250px);
    top:min(calc(-10/1400*100vw),-10px);
    z-index:20;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    width:min(calc(88/1400*100vw),88px);
    height:min(calc(88/1400*100vw),88px);
    border-radius:50%;
    background:var(--c-primary);
    color:var(--c-white);
    text-decoration:none;
    font-size:min(calc(13/1400*100vw),13px);
    font-weight:700;
    line-height:1.25;
    letter-spacing:.03em;
    text-align:center;
    opacity:1;
    transition:opacity .28s ease, transform .2s, box-shadow .2s;
    z-index: 9999;
  }
  .omoi-consult-cta:hover{
    transform:translateY(-2px);
  }
  .omoi-consult-cta.is-switching{
    opacity:0;
    pointer-events:none;
  }
  .omoi-consult-cta.is-fixed{
    position:fixed;
    top:86px;
    right:60px;
    z-index: 9999;
  }
  .omoi-consult-cta__arrow{
    width:0;
    height:0;
    margin-top:min(calc(5/1400*100vw),5px);
    border-left:min(calc(5/1400*100vw),5px) solid transparent;
    border-right:min(calc(5/1400*100vw),5px) solid transparent;
    border-top:min(calc(7/1400*100vw),7px) solid var(--c-white);
  }
}

/* ===== osusume ===== */
.osusume{ background:var(--c-white); padding:min(calc(80/1400*100vw),80px) 16px; }
.osusume{ position:relative; z-index:2; }
.osusume__inner{ position:relative; z-index:1; width:min(calc(960/1400*100vw),960px); margin-inline:auto; }
.osusume__title{
  text-align:center; font-size:min(calc(34/1400*100vw),34px); font-weight:700;
  color:var(--c-text); letter-spacing:.05em; line-height:1.4;
  margin-bottom:min(calc(48/1400*100vw),48px);
}
.osusume__grid{
  display:grid; grid-template-columns:repeat(2,1fr); justify-content:center;
  row-gap:min(calc(50/1400*100vw),50px); column-gap:min(calc(60/1400*100vw),60px); justify-items:center;
}
.osusume__card{
  position:relative; box-sizing:border-box;
  display:flex; align-items:flex-start; gap:min(calc(23/1400*100vw),23px);
  width:min(calc(420/1400*100vw),420px); height:min(calc(180/1400*100vw),180px);
  padding:min(calc(30/1400*100vw),30px) min(calc(22/1400*100vw),22px) min(calc(16/1400*100vw),16px) min(calc(24/1400*100vw),24px);
  background:var(--c-beige); border-radius:8px;
}
.osusume__tab{
  position:absolute; left:-8px; top:-6px;
  display:flex; align-items:center; justify-content:center;
  width:min(calc(140/1400*100vw),140px); height:min(calc(40/1400*100vw),40px);
  background:var(--c-green); color:var(--c-white);
  font-size:min(calc(14/1400*100vw),14px); font-weight:700; letter-spacing:.03em;
  border-radius:20px 0 20px 0;
}
.osusume__icon{
  flex:none; width:min(calc(86/1400*100vw),86px); height:min(calc(86/1400*100vw),86px); margin-top: 15px;
}
.osusume__body{ width:min(calc(240/1400*100vw),240px); }
.osusume__text{
  font-size:min(calc(16/1400*100vw),16px); line-height:1.5; color:var(--c-text);
  margin:0;font-weight:700;
}
.osusume__text2{
    font-size:min(calc(16/1400*100vw),16px); line-height:1.5; color:var(--c-text);
    margin:20px 0 0;font-weight:700;
  }
  
.osusume__link{
  display:block; color:var(--c-primary);
  font-size:min(calc(14/1400*100vw),14px); line-height:min(calc(24/1400*100vw),24px); font-weight:700; text-decoration:none; letter-spacing:.03em;
  text-align:right; margin-top:min(calc(8/1400*100vw),8px);
  white-space:nowrap;
}
.osusume__link:hover{ text-decoration:underline; }
@media (min-width:1025px){
  .osusume__link{
    position:absolute;
    right:min(calc(25/1400*100vw),25px);
    bottom:min(calc(25/1400*100vw),25px);
    width:auto;
    margin-top:0;
  }
}

@media (max-width:1024.98px){
  .osusume{ padding:34px 16px 80px; }
  .osusume__inner{ width:90%; }
  .osusume__title{ font-size:26px; margin-bottom:48px; }
  .osusume__grid{ grid-template-columns:1fr; gap:40px; }
  .osusume__card{
    width:100%; height:auto; min-height:0; gap:0 18px;
    margin-inline:auto;
    padding:40px 25px 25px 20px;
    flex-wrap:wrap;
  }
  .osusume__tab{ left:-10px; top:-15px; width:140px; height:40px; font-size:14px; }
  .osusume__icon{ width:86px; height:86px; }
  .osusume__body{ flex:1; min-width:0; display:contents; }
  .osusume__text,.osusume__text2{ flex:1; min-width:0; font-size:16px; line-height:25px; font-weight:700; }
  .osusume__link{ flex-basis:100%; width:auto; font-size:16px; line-height:24px; text-align:center; margin-top:20px; margin-left:0; }
}

/* ===== service ===== */
.service{
  position:relative; z-index:3; overflow:visible;
  padding:min(calc(44/1400*100vw),44px) 16px min(calc(160/1400*100vw),160px);
  background:var(--c-white);
}
.service::before{
  content:"";
  position:absolute;
  left:50%; top:0;
  width:var(--curve-circle-size); aspect-ratio:1;
  transform:translateX(-50%) translateY(calc(-1 * var(--curve-peek)));
  background:var(--c-beige);
  border-radius:50%;
  z-index:0;
  pointer-events:none;
  height: 500px;
  width: 130%;
}
@media (max-width:1024.98px){
    .service::before{
        content:"";
        position:absolute;
        left:50%; top:0;
        width:var(--curve-circle-size); aspect-ratio:1;
        transform:translateX(-50%) translateY(calc(-1 * var(--curve-peek)));
        background:var(--c-beige);
        border-radius:50%;
        z-index:0;
        pointer-events:none;
        height: 500px;
        width: 180%;
      }
      }
.service::after{
  content:"";
  position:absolute;
  left:0; right:0; top:min(calc(140/1400*100vw),140px); bottom:0;
  background:var(--c-beige);
  z-index:0;
  pointer-events:none;
}
.service__inner{ position:relative; z-index:2; }
.service__head{ margin-bottom:min(calc(48/1400*100vw),48px); }
.service__head .sec-head__deco{ display:none; }

/* 装飾果物（左右端はみ出し・円形） */
.service__deco{ position:absolute; inset:0; z-index:1; pointer-events:none; overflow:visible; }
.service__fruit{
  position:absolute; object-fit:contain; object-position:center;
  width:min(calc(600/1400*100vw),600px); height:min(calc(600/1400*100vw),600px);
}
.service__fruit--peach{ left:max(calc(-142/1400*100vw),-142px); top:min(calc(128/1400*100vw),128px); }
.service__fruit--pineapple{ right:max(calc(-188/1400*100vw),-188px); top:min(calc(801/1400*100vw),801px); }
.service__fruit--cherry{ left:max(calc(-142/1400*100vw),-142px); top:min(calc(1538/1400*100vw),1538px); }
.service__fruit--grape{ right:max(calc(-188/1400*100vw),-188px); bottom:min(calc(260/1400*100vw),260px); }

/* カード */
.service__card{
  box-sizing:border-box;
  --service-card-px:min(calc(56/1400*100vw),56px);
  width:min(calc(1000/1400*100vw),1000px); margin-inline:auto;
  background:var(--c-white); border-radius:20px;
  padding:min(calc(56/1400*100vw),56px) var(--service-card-px) min(calc(48/1400*100vw),48px);
  box-shadow:0 4px 4px rgba(0,0,0,.25);
}
.service__card + .service__card{ margin-top:min(calc(50/1400*100vw),50px); }

.service__knot{
  display:flex; justify-content:center;
  width:300px;
  margin-inline:calc(-1 * var(--service-card-px));
  margin:20px auto;
}
.service__knot .sec-head__knot{
  width:100%; height:auto; aspect-ratio:300 / 37;
  background:url(images/ribbon.png) center/100% 100% no-repeat;
}

@media (max-width:1024.98px){
    .service__knot{
        display:flex; justify-content:center;
        width:calc(100% + var(--service-card-px) + var(--service-card-px));
        margin-inline:calc(-1 * var(--service-card-px));
        margin-top:min(calc(8/1400*100vw),8px);
        margin-bottom:min(calc(18/1400*100vw),18px);
      }
      .service__knot .sec-head__knot{
        width:100%; height:auto; aspect-ratio:300 / 37;
        background:url(images/ribbon.png) center/100% 100% no-repeat;
      }
}

.service__title{
  text-align:center; font-size:min(calc(32/1400*100vw),32px); font-weight:700;
  color:var(--c-text); letter-spacing:.05em; line-height:min(calc(46/1400*100vw),46px);
}
.service__sub{
  text-align:center; font-size:min(calc(16/1400*100vw),16px); font-weight:700;
  color:var(--c-text); line-height:min(calc(23/1400*100vw),23px);
}
.service__catch{
  text-align:center; font-size:min(calc(24/1400*100vw),24px); font-weight:700;
  color:var(--c-text); line-height:min(calc(36/1400*100vw),36px);
  margin-top:min(calc(16/1400*100vw),16px);
}

.service__block{
  width:min(calc(700/1400*100vw),700px);
  margin:min(calc(36/1400*100vw),36px) auto 0;
}
.service__lead{
  display:flex; align-items:center; gap:min(calc(12/1400*100vw),12px);
  font-size:min(calc(20/1400*100vw),20px); font-weight:700; color:var(--c-text);
  line-height:1.5;
}
.service__check{
  flex:none; display:inline-block;
  width:min(calc(20/1400*100vw),20px); height:min(calc(20/1400*100vw),20px);
  background:url(images/ico.png) center/contain no-repeat; border-radius:0; position:relative;
}
.service__check::after{ content:none; }
.service__text{
  font-size:min(calc(18/1400*100vw),18px);
  line-height:min(calc(30/1400*100vw),30px);
  color:var(--c-text);
  margin-top:min(calc(12/1400*100vw),12px);
  width:100%;
}

/* 小カード3枚 */
.service__minis{
  display:flex; justify-content:center; flex-wrap:nowrap;
  width:min(calc(710/1400*100vw),710px);
  gap:min(calc(22/1400*100vw),22px);
  margin:min(calc(20/1400*100vw),20px) auto 0;
  transform:translateX(min(calc(10/1400*100vw),10px));
}
.service__mini{
  box-sizing:border-box;
  width:min(calc(222/1400*100vw),222px); height:min(calc(277/1400*100vw),277px);
  background:var(--c-gray); border-radius:10px;
  padding:min(calc(19/1400*100vw),19px) min(calc(24/1400*100vw),24px) min(calc(22/1400*100vw),22px);
  display:flex; flex-direction:column; align-items:center; text-align:center;
}
.service__badge{
  display:flex; align-items:center; justify-content:center;
  width:min(calc(86/1400*100vw),86px); height:min(calc(83/1400*100vw),83px);
  background:transparent; border-radius:0;
  margin-top:min(calc(15/1400*100vw),15px);
}
.service__mini-illust{ width:100%; height:100%; object-fit:contain; }
.service__mini-title{
  display:flex; align-items:center; justify-content:center;
  min-height:min(calc(56/1400*100vw),56px);
  font-size:min(calc(18/1400*100vw),18px); font-weight:700; color:var(--c-text);
  line-height:min(calc(28/1400*100vw),28px);
}
.service__mini:nth-child(1) .service__mini-title{ width:min(calc(108/1400*100vw),108px); }
.service__mini:nth-child(2) .service__mini-title{
  width:min(calc(90/1400*100vw),90px);
  min-height:min(calc(28/1400*100vw),28px);
  margin-top:min(calc(13/1400*100vw),13px);
}
.service__mini:nth-child(3) .service__mini-title{
  width:min(calc(72/1400*100vw),72px);
  min-height:min(calc(28/1400*100vw),28px);
  margin-top:min(calc(13/1400*100vw),13px);
}
.service__mini:nth-child(2) .service__badge{
  width:min(calc(132.69/1400*100vw),132.69px);
  height:min(calc(93.07/1400*100vw),93.07px);
}
.service__mini:nth-child(3) .service__badge{
  width:min(calc(120/1400*100vw),120px);
  height:min(calc(118/1400*100vw),118px);
  margin-top:min(calc(4/1400*100vw),4px);
}
.service__mini-text{
  width:min(calc(173/1400*100vw),173px);
  font-size:min(calc(14/1400*100vw),14px); color:var(--c-text);
  line-height:min(calc(22/1400*100vw),22px);
  margin-top:min(calc(15/1400*100vw),15px);
  text-align:left;
}

/* 受取ステップ */
.service__steps{
  display:flex; justify-content:center; align-items:flex-start;
  gap:min(calc(80/1400*100vw),80px); margin-top:min(calc(22/1400*100vw),22px);
}
.service__step{
  position:relative; display:flex; flex-direction:column; align-items:center; text-align:left;
  width:min(calc(163/1400*100vw),163px);
}
.service__step + .service__step::before{
  content:""; position:absolute;
  left:max(calc(-55.5/1400*100vw),-55.5px); top:min(calc(56.5/1400*100vw),56.5px);
  width:min(calc(22/1400*100vw),22px); height:min(calc(22/1400*100vw),22px);
  background:#01A116;
  clip-path:polygon(0 0, 100% 50%, 0 100%);
}
.service__step-circle{
  position:relative; display:flex; align-items:center; justify-content:center;
  width:min(calc(144.14/1400*100vw),144.14px); height:min(calc(144.26/1400*100vw),144.26px);
  border-radius:0; overflow:visible;
  background:transparent;
}
.service__step:nth-child(1) .service__step-circle{ width:min(calc(163.15/1400*100vw),163.15px); }
.service__step-img{ width:100%; height:100%; object-fit:contain; }
.service__step-num{ display:none; }
.service__step-text{
  width:100%;
  font-size:min(calc(15/1400*100vw),15px); line-height:1.6; color:var(--c-text);
  margin-top:min(calc(14/1400*100vw),14px);
  text-align:left;
}

/* 活用シーン帯 */
@media (min-width:1000px){
  .service__steps{ width:649px; gap:80px; margin-left:50%; margin-right:0; transform:translateX(-50%); }
  .service__step{ width:163px; }
  .service__step + .service__step::before{ left:-51px; top:61px; width:22px; height:22px; }
  .service__step-circle{ width:144.14px; height:144.26px; }
  .service__step:nth-child(1) .service__step-circle{ width:163.15px; }
}

.service__scene{
  margin-top:min(calc(36/1400*100vw),36px);
  box-sizing:border-box;
  display:flex; align-items:center;
  width:min(calc(710/1400*100vw),710px);
  min-height:min(calc(90/1400*100vw),90px);
  margin-left:auto; margin-right:auto;
  transform:translateX(min(calc(14/1400*100vw),14px));
  background:#fcfcde; border-radius:10px;
  padding:0 min(calc(30/1400*100vw),30px);
  font-size:min(calc(16/1400*100vw),16px);
  line-height:min(calc(23/1400*100vw),23px);
  color:var(--c-text);
}
.service__scene-label{
  flex:0 0 min(calc(112/1400*100vw),112px);
  text-align:center; font-weight:700;
}
.service__scene-sep{
  flex:none; font-weight:700;
  margin:0 min(calc(29/1400*100vw),29px) 0 min(calc(28/1400*100vw),28px);
}

@media (max-width:1024.98px){
  .service{ padding:52px 16px 80px; }
  .service__head{ margin-bottom:32px; position:relative; z-index:1; }
  .service__card{
    --service-card-px:18px;
    width:85%; border-radius:20px;
    padding:32px 18px 28px;
    margin: 20px auto 40px;
  }
  .service__card + .service__card{ margin-top:24px; }
  .service__knot{ margin-top:15px; margin-bottom: 25px; }
  .service__title{ font-size:24px; line-height: 1.6; }
  .service__sub{ font-size:16px; line-height: inherit; }
  .service__catch{ font-size:20px; line-height:1.5; margin-top:18px; }
  .service__block{ width:100%; margin-top:28px; }
  .service__lead{
    display:block; position:relative;
    padding-left:30px;
    font-size:18px; line-height:1.5;
  }
  .service__text{ font-size:16px; line-height:1.8; margin-top: 20px; }
  .service__check{
    position:absolute; left:0; top:0;
    width:20px; height:20px; margin:0;
  }

  /* 小カード・ステップ縦1列 */
  .service__minis{ width:100%; flex-direction:column; align-items:center; flex-wrap:wrap; gap:16px; transform:none; }
  .service__mini{ width:100%; max-width:300px; height:auto; padding:24px 18px; }
  .service__badge{ width:86px; height:83px; }
  .service__mini-illust{ width:100%; height:100%; }

  .service__steps{ flex-direction:column; align-items:center; gap:34px; }
  .service__step{ width:100%; max-width:280px; }
  .service__step + .service__step::before{
    left:50%; top:-26px; transform:translateX(-50%);
    border-left:9px solid transparent; border-right:9px solid transparent;
    border-top:14px solid var(--c-green-light); border-bottom:0;
  }

  .service__scene{ width:100%; font-size:16px; transform: inherit; line-height:1.5; padding:16px 18px; margin: 40px auto 20px; display: grid; justify-items: flex-start; }
  .service__scene-sep{ display: none; }
  .service__scene-label{ font-weight: 400; margin-bottom: 5px; }

  /* 装飾果物はSPで小さく・間引き */
  .service__fruit{ width:300px; height:300px; bottom: -20px; }
  .service__fruit--cherry{ top:63%; }
  .service__fruit--pineapple{ top:37%; }
  .service__fruit--peach{ top:145px; }
}

/* ===== why ===== */
.why{
  position:relative; overflow:hidden;
  background:var(--c-white);
  padding:min(calc(108/1400*100vw),108px) 16px min(calc(180/1400*100vw),180px);
}
/* 上下の淡クリーム曲線 */
.why__bg-top,.why__bg-bottom{
  position:absolute; z-index:0; overflow-x:clip;
}
.why__bg-top{
  top:0; left:0; right:0; width:100%;
  height:min(calc(190/1400*100vw),190px);
  overflow:hidden;
}
.why__bg-top::after{
  content:""; position:absolute;
  left:50%; top:30%;
  width:var(--curve-circle-size); aspect-ratio:1;
  transform:translateX(-50%) translateY(calc(-1 * var(--curve-peek)));
  background:var(--c-white);
  border-radius:50%;height: 500px;
}
.why__bg-bottom{
  left:50%; right:auto; bottom:inherit;
  width:var(--curve-circle-size); aspect-ratio:1;
  transform:translateX(-50%) translateY(var(--curve-peek));
  background:var(--c-beige);
  border-radius:50% 50% 0 0/100% 100% 0 0; height:min(calc(500/1400*100vw),500px);
}
 
.why__inner{
  position:relative; z-index:1;
  width:min(calc(1000/1400*100vw),1000px); margin-inline:auto;
}
.why__head{ margin-top:0; }
.why__head .sec-head__title{
  font-size:min(calc(34/1400*100vw),34px);
  line-height:1.4;
  letter-spacing:.05em;
}
.why__head .sec-head__deco{ display:none; }
.why__lead{
  text-align:center; font-size:min(calc(18/1400*100vw),18px); color:var(--c-text);
  letter-spacing:.04em; line-height:1.7;
  margin:min(calc(42/1400*100vw),42px) 0 min(calc(60/1400*100vw),60px);
}

.why__cards{
  display:flex; flex-direction:column; gap:min(calc(34/1400*100vw),34px);
}
.why__card{
  box-sizing:border-box;
  display:flex; align-items:flex-start; gap:min(calc(40/1400*100vw),40px);
  width:min(calc(1000/1400*100vw),1000px); margin-inline:auto;
  min-height:min(calc(290/1400*100vw),290px);
  padding:min(calc(40/1400*100vw),40px) min(calc(44/1400*100vw),44px);
  background:var(--c-beige); border-radius:10px;
}
.why__photo-wrap{ flex:none; }
.why__photo{
  width:min(calc(210/1400*100vw),210px); height:min(calc(210/1400*100vw),210px);
  object-fit:cover; border-radius:10px; display:block;
}
.why__text{ flex:1; max-width:min(calc(660/1400*100vw),660px); }
.why__card-title{
  font-size:min(calc(24/1400*100vw),24px); font-weight:700; color:var(--c-text);
  letter-spacing:.04em; line-height:1.4; margin:0 0 min(calc(8/1400*100vw),8px);
}
.why__sub{
  font-size:min(calc(18/1400*100vw),18px); font-weight:700; color:var(--c-text);
  letter-spacing:.03em; line-height:1.6; margin:0 0 min(calc(12/1400*100vw),12px);
}
.why__body{
  font-size:min(calc(16/1400*100vw),16px); line-height:min(calc(28/1400*100vw),28px); color:var(--c-text);
  letter-spacing:.02em; margin:0;
}

@media (max-width:1024.98px){
  .why{
    position:relative; z-index:4;
    padding:0 16px 80px;
    overflow:visible;
  }
  .why__bg-top{
    display:block;
    height:96px;
    overflow:hidden;
    margin-top: -60px;
  }
 
  .why__inner{ width:100%; padding-top:20px; padding-bottom: 40px; }
  .why__head{ margin-top:0; }
  .why__head .sec-head__title{ font-size:26px; line-height:1.45; }
  .why__lead{ width: 85%; font-size:16px; line-height:1.8; margin:18px auto 50px; text-align: left; }
  .why__cards{ gap:40px; width: 85%; margin: auto; }
  .why__card{
    flex-direction:column; align-items:stretch; text-align:left; gap:20px;
    width:100%; padding:30px; border-radius:14px;
  }
  .why__photo{ width:100%; height:auto; aspect-ratio:260 / 160; }
  .why__text{ max-width:none; width:100%; }
  .why__card-title{ font-size:20px; margin-bottom:8px; }
  .why__sub{ font-size:18px; line-height:1.7; margin-bottom:30px; }
  .why__body{ font-size:16px; line-height:26px; text-align:left; }

  .why__bg-bottom{
    left:50%; right:auto; bottom:inherit;
    width:var(--curve-circle-size); aspect-ratio:1;
    transform:translateX(-50%) translateY(var(--curve-peek));
    background:var(--c-beige);
    border-radius:50% 50% 0 0/100% 100% 0 0; height:min(calc(500/1400*100vw),500px); width:130%;
  }
}

@media (min-width:1025px){
  .why{ overflow:visible; z-index:3; padding: min(calc(20/1400*100vw),20px) 16px min(calc(100/1400*100vw),100px); }
  .why::before{
    content:""; position:absolute; left:50%; top:min(calc(-65/1400*100vw),-65px);
    width:160%; height:min(calc(290/1400*100vw),290px);
    transform:translateX(-50%);
    background:var(--c-white);
    border-radius:50% 50% 0 0/100% 100% 0 0;
    pointer-events:none; z-index:0;
  }
  .why__bg-top{ display:none; }
  .why__inner{
    position:relative; z-index:1;
    width:min(calc(1000/1400*100vw),1000px); margin-inline:auto; margin-bottom: 80px;
  }
}

/* ===== product ===== */
.product{ background:var(--c-beige); padding:min(calc(30/1400*100vw),30px) 16px; z-index: 999999; position: inherit; }
.product__inner{ width:min(calc(1000/1400*100vw),1000px); margin-inline:auto; }
.product__head{ margin-bottom:min(calc(24/1400*100vw),24px); }
.product__head img{ max-width: 300px; margin:25px auto 0; }
.product__lead{
  width:min(calc(800/1400*100vw),800px); margin-inline:auto;
  text-align:left; font-size:min(calc(18/1400*100vw),18px); color:var(--c-text);
  line-height:30px;
}
.product__lead + .product__lead{ margin-top:4px; }

/* 商品カード4枚 */
.product__grid{
  display:grid; grid-template-columns:repeat(4,1fr); justify-content:center;
  gap:min(calc(20/1400*100vw),20px);
  max-width: 1000px;
  margin: min(calc(48/1400*100vw),48px) auto;
}
.product__card{
  box-sizing:border-box; overflow:hidden;
  background:var(--c-white); border-radius:20px;
}
.product__card-head{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  min-height:min(calc(82/1400*100vw),90px);
  padding:min(calc(8/1400*100vw),8px) min(calc(10/1400*100vw),10px);
  background:var(--c-green); color:var(--c-white);
  font-size:min(calc(16/1400*100vw),16px); font-weight:700; line-height:1.4; text-align:center;
  border-radius:20px 20px 0 0;
}
.product__photo{
  display:block; width:100%; height:min(calc(160/1400*100vw),160px);
  object-fit:cover;
}
.product__card-body{ padding:min(calc(10/1400*100vw),0); }
.product__meta{
  font-size:14px; font-weight:700; color:#000; margin: 10px 0;
  border-bottom: 1px solid #D9D9D9;
  padding: 5px 20px 15px;
}
.product__desc{
  font-size:14px; line-height:24px; color:#000; margin: 15px 20px 25px;
}

  @media (max-width:1024.98px){
    .product__head img{ display: none; }
    .product__photo{
        display:block; width:100%; height:min(calc(160/1400*100vw),160px);
        object-fit:cover;
      }
      .product__card-body{ padding:min(calc(16/1400*100vw),0); }
      .product__meta{
        font-size:16px; font-weight:700; color:#000; margin:10px 0;
      }
      .product__desc{
        font-size:16px; line-height:24px; color:#000; margin:10px 20px;
      }
}

/* ギフトセット例ボックス */
.product__gift{
  box-sizing:border-box;
  width:min(calc(1000/1400*100vw),1000px); margin:min(calc(60/1400*100vw),48px) auto 0;
  background:var(--c-white); border-radius:20px;
  padding:min(calc(40/1400*100vw),40px) min(calc(40/1400*100vw),40px) min(calc(40/1400*100vw),40px);
}
.product__gift-title{
  text-align:center; font-size:min(calc(24/1400*100vw),24px); font-weight:700;
  color:var(--c-text); letter-spacing:.05em; margin:0 0 min(calc(28/1400*100vw),28px);
}
.product__gift-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:min(calc(24/1400*100vw),24px);
}
.product__gift-photo{
  display:block; width:100%; height:min(calc(180/1400*100vw),180px);
  object-fit:cover;
}
.product__gift-name{
  font-size:14px; font-weight:700; line-height:1.6; color:var(--c-text);
  margin:min(calc(12/1400*100vw),12px) 0 0;
}
.product__gift-note{
  text-align:right; font-size:12px; color:var(--c-text);
  margin:min(calc(12/1400*100vw),12px) 0 0;
}

@media (max-width:1024.98px){
  .product{ padding:0 16px 80px; }
  .product__inner{ width:100%; z-index: 999; position: inherit; }
  .product__lead{ font-size:16px; line-height:1.7; text-align:left; width:85%; }
  .product__grid{ grid-template-columns:1fr; gap:40px; margin: 50px auto; width: 85%; }
  .product__card-head{ min-height:90px; font-size:20px; }
  .product__photo{ height:200px; }
  .product__gift{ width:85%; margin-top:60px; padding:30px 45px 35px; }
  .product__gift-title{ font-size:24px; margin-bottom:35px; }
  .product__gift-grid{ grid-template-columns:1fr; gap:20px; }
  .product__gift-photo{ height:200px; border-radius: 0; }
  .product__gift-name{ font-size: 16px; margin: 15px 0 40px; font-weight: 700; }
  .product__gift-note{ text-align:left; font-size:16px; margin: 0 -20px; }
}

@media (min-width:1025px){
  .product{ position:relative; overflow:visible; z-index:4; padding-top: 0; padding-bottom: 60px; }
  .product::before{
    content:""; position:absolute; left:50%; top:min(calc(-40/1400*100vw),-40px);
    width:160%; height:min(calc(280/1400*100vw),280px);
    transform:translateX(-50%);
    background:var(--c-beige);
    border-radius:50% 50% 0 0/100% 100% 0 0;
    pointer-events:none; z-index:0;
  }
  .product__inner{ position:relative; z-index:1; }
}

/* faq */
.faq{ padding-block:min(calc(80/1400*100vw),80px); }
.faq__inner{ width:min(calc(1000/1400*100vw),1000px); margin-inline:auto; }
.faq__list{ margin-top:min(calc(48/1400*100vw),48px); }
.faq__item{ border-bottom:1px solid #F4F4F1; }
.faq__item:first-child{ border-top:1px solid #e0e0e0; }
.faq__q{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  width:100%; padding:min(calc(22/1400*100vw),22px) 0;
  background:none; border:none; cursor:pointer; text-align:left;
  font-family:inherit; font-size:16px; font-weight:700; color:var(--c-text);
  line-height:26px; letter-spacing:.05em;
}
.faq__q-text{ flex:1; }
.faq__icon{ position:relative; flex-shrink:0; width:12px; height:12px; }
.faq__icon::before,.faq__icon::after{
  content:""; position:absolute; top:50%; left:50%;
  background:var(--c-text); transition:opacity .3s, transform .3s;
}
.faq__icon::before{ width:12px; height:1px; transform:translate(-50%,-50%); }
.faq__icon::after{ width:1px; height:12px; transform:translate(-50%,-50%); }
.faq__item.is-open .faq__icon::after{ opacity:0; transform:translate(-50%,-50%) scaleY(0); }
.faq__a{ max-height:0; overflow:hidden; transition:max-height .3s; }
.faq__item.is-open .faq__a{ max-height:600px; }
.faq__a-inner{
  background:var(--c-gray); padding:min(calc(24/1400*100vw),24px) min(calc(30/1400*100vw),30px);
  margin-bottom:min(calc(16/1400*100vw),16px); border-radius:0;
}
.faq__a-inner p{
  font-size:16px; font-weight:700; line-height:26px; letter-spacing:.05em; color:var(--c-text); margin:0;
  padding-left:1.45em; text-indent:-1.45em;
}
.faq__a-todo{ color:#999; }
.faq .cta-banner__wrap{ margin-top:min(calc(56/1400*100vw),56px); }
@media (max-width:1024.98px){
  .faq{ padding-block:90px; margin-top:20px; }
  .faq__inner{ width:100%; }
  .faq__list{ margin-top:28px; }
  .faq__q{ padding:16px 0; font-size:16px; line-height:24px; gap:12px; padding: 1.35em 1.7em 1.35em 2.7em; text-indent: -1.3em; }
  .faq__icon{ width:12px; height:12px; }
  .faq__icon::before{ width:12px; }
  .faq__icon::after{ height:12px; }
  .faq__a-inner{ padding:22px 20px; margin-bottom:0; border-radius:0; }
  .faq__a-inner p{ font-size:16px; font-weight:700; line-height:24px; letter-spacing:.05em; padding-left:1.45em; text-indent:-1.45em; }
  .faq .cta-banner__wrap{ margin-top:36px; }
}

.flow{
    position:relative;padding-bottom: 45px;
    background: #F4F1E9 url(images/flow_bg.jpg) center top/cover no-repeat;
    overflow:hidden; overflow-x:clip;
    border-radius: 100% 100% 0 0 / min(100vw,100px) min(100vw,100px) 0 0;
  }

.float-cta{ opacity:0; visibility:hidden; transition:opacity .3s, visibility .3s; }
.float-cta.is-visible{ opacity:1; visibility:visible; }
.float-cta__pc{
  position:fixed; right:24px; bottom:28px; z-index:1000;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  width:108px; height:108px; border-radius:50%;
  background:var(--c-primary); color:var(--c-white);
  font-size:15px; font-weight:700; line-height:1.35; letter-spacing:.04em; text-align:center; text-decoration:none;
  box-shadow:0 6px 18px rgba(252,91,42,.45); transition:transform .2s, box-shadow .2s;
}
.float-cta__pc:hover{ transform:translateY(-3px); box-shadow:0 10px 24px rgba(252,91,42,.55); }
.float-cta__pc .float-cta__arrow{
  width:0;height:0;margin-top:4px;
  border-left:6px solid transparent;border-right:6px solid transparent;border-top:8px solid var(--c-white);
}
.float-cta__sp{ display:none; }
@media (max-width:1024.98px){
  .float-cta{ opacity:1; visibility:visible; }
  .float-cta__pc{ display:none; }
  .float-cta__sp{
    position:fixed; left:0; bottom:0; z-index:1000000;
    display:flex; align-items:center; justify-content:center; gap:8px;
    width:100%; padding:10px 16px calc(10px + env(safe-area-inset-bottom));
    background:#d9d9d9; text-decoration: none;
  }
  .float-cta__sp-btn{
    display:flex; align-items:center; justify-content:center; gap:8px;
    width:100%; max-width:420px; height:56px; border-radius:50px; text-decoration: none;
    background:var(--c-primary); color:var(--c-white); font-size:16px; font-weight:700; letter-spacing:.03em;
  }
  .float-cta__sp .float-cta__arrow{
    width:0;height:0;
    border-left:6px solid transparent;border-right:6px solid transparent;border-top:8px solid var(--c-white);
  }
  .float-cta__free{
    flex:none;
    display:inline-flex; align-items:center; justify-content:center;
    width:36px; height:36px;
    background:#fff; color:var(--c-primary);
    border-radius:50%;
    font-size:13px; font-weight:700; letter-spacing:.02em;
  }
  .footer{ margin-bottom:78px; padding-top: 0; }

.flow{
    position:relative;padding-bottom: 45px;
    background: #F4F1E9 url(images/flow_bg_sp.jpg) center top/cover no-repeat;
    overflow:hidden; 
    border-radius: inherit;background-size: 100% auto;
  }
}

.flow__inner{ position:relative; z-index:1; width:min(calc(800/1400*100vw),800px); margin-inline:auto;
  padding:min(calc(88/1400*100vw),88px) 16px min(calc(70/1400*100vw),70px); }
.flow__title{ text-align:center; color:var(--c-text); font-size:min(calc(34/1400*100vw),34px); font-weight:700; letter-spacing:.05em;
  text-shadow:0 2px 2px #fff; margin-bottom:min(calc(48/1400*100vw),48px); }
.flow__list{ display:flex; flex-direction:column; gap:min(calc(20/1400*100vw),20px); }
.flow__item{ display:flex; align-items:center; gap:min(calc(20/1400*100vw),20px);
  background:#fff; border-radius:min(calc(16/1400*100vw),16px);
  min-height:min(calc(175/1400*100vw),175px);
  padding:min(calc(25/1400*100vw),25px) min(calc(39/1400*100vw),39px);}
.flow__num{ flex:none; display:flex; align-items:center; justify-content:center;
  width:min(calc(48/1400*100vw),48px); height:min(calc(48/1400*100vw),48px); border-radius:50%;
  background:var(--c-green); color:#fff; font-size:min(calc(22/1400*100vw),22px); font-weight:700; }
.flow__body{ flex:1; }
.flow__step-title{ font-size:min(calc(24/1400*100vw),24px); font-weight:700; color:var(--c-text); line-height:1.45; letter-spacing:.02em; }
.flow__step-desc{ width:min(calc(470/1400*100vw),470px); max-width:100%; font-size:min(calc(16/1400*100vw),16px); font-weight:300; letter-spacing:0; color:var(--c-text); line-height:min(calc(28/1400*100vw),28px); margin-top:6px; }
.flow__illust{ flex:none; width:min(calc(146/1400*100vw),146px); height:min(calc(125/1400*100vw),125px);
  object-fit:contain; object-position:center; }
.flow__item:nth-child(1) .flow__illust{ transform:translateX(max(calc(-26/1400*100vw),-26px)); }
.flow__item:nth-child(2) .flow__illust{ width:min(calc(116/1400*100vw),116px); height:min(calc(117/1400*100vw),117px); }
.flow__item:nth-child(3) .flow__illust{ width:min(calc(134/1400*100vw),134px); height:min(calc(84/1400*100vw),84px); }
.flow__item:nth-child(4) .flow__illust{ width:min(calc(102/1400*100vw),102px); height:min(calc(102/1400*100vw),102px); }
@media (max-width:1024.98px){
  .flow__inner{ width:100%; padding:56px 18px 48px; }
  .flow__title{ font-size:36px; margin:65px auto 80px; }
  .flow__item{ flex-wrap:wrap; gap:12px; padding:16px 18px; border-radius:12px; }
  .flow__num{ width:40px; height:40px; font-size:18px; }
  .flow__body{ flex:1 1 60%; }
  .flow__step-title{ font-size:16px; }
  .flow__step-desc{ font-size:13px; }
  .flow__illust{ width:64px; height:56px; order:-1; }
  .flow__item:nth-child(1) .flow__illust{ transform:translateX(-10px); }
  .flow__item:nth-child(2) .flow__illust{ width:56px; height:56px; }
  .flow__item:nth-child(3) .flow__illust{ width:64px; height:40px; }
}

/* ===== SP service 内部要素 設計準拠補正 v20260622b ===== */
@media (max-width:1024.98px){
  /* mini カード：イラスト・見出しを実寸化 */
  .service__minis{ gap:20px; margin-top: 30px; }
  .service__mini{ max-width:330px; padding:25px; }
  .service__mini-title,
  .service__mini:nth-child(1) .service__mini-title,
  .service__mini:nth-child(2) .service__mini-title,
  .service__mini:nth-child(3) .service__mini-title{
    width:auto; min-height:0; margin-top:14px; font-size:18px; line-height:1.5; white-space:normal;
  }
  .service__mini:nth-child(1) .service__badge{
    width:86px; height:83px; margin-top:15px;
  }
  .service__badge,
  .service__mini:nth-child(2) .service__badge{
    width:132px; height:93px; margin-top:10px;
  }
  .service__mini:nth-child(3) .service__badge{
    width:97px; height:106px; margin-top:0;
  }
  .service__mini-illust{ width:100%; height:100%; object-fit:contain; }
  .service__mini-text{ width:100%; margin-top:14px; font-size:16px; line-height:1.75; text-align:left; }

  /* 受取ステップ：画像に番号焼込み済→矢印無し・大きく縦積み */
  .service__steps{ gap:30px; }
  .service__step{ max-width:300px; }
  .service__step-circle{ width:210px; height:210px; }
  .service__step:nth-child(1) .service__step-circle{ width:70%; height:70%; margin-top:35px; }
  .service__step:nth-child(2) .service__step-circle{ width:60%; height:60%; }
  .service__step:nth-child(3) .service__step-circle{ width:60%; height:60%; }
  .service__step + .service__step::before{ content:none; }
  .service__step-text{ width:75%; margin-top:14px; font-size:16px; line-height:1.7; }
}

/* ===== SP flow 設計準拠（縦カード・番号上・大イラスト）v20260622b ===== */
@media (max-width:1024.98px){
  .flow__list{ gap: 40px; width: 90%; margin: auto;}
  .flow__item{ flex-direction:column; align-items:center; text-align:center; gap:12px; padding:26px 20px 30px; min-height:0; }
  .flow__num{ width:52px; height:52px; font-size:22px; margin-bottom: 10px; }
  .flow__body{ flex:none; width:100%; }
  .flow__step-title{ font-size:20px; line-height:1.5; }
  .flow__step-desc{ width:100%; font-size:16px; line-height:1.75; margin-top:20px; text-align: left; }
  .flow__illust,
  .flow__item:nth-child(1) .flow__illust,
  .flow__item:nth-child(2) .flow__illust,
  .flow__item:nth-child(3) .flow__illust,
  .flow__item:nth-child(4) .flow__illust{ width:150px; height:auto; order:0; transform:none; }
}
@media (max-width:1024.98px){
  .flow__illust,
  .flow__item:nth-child(1) .flow__illust,
  .flow__item:nth-child(2) .flow__illust,
  .flow__item:nth-child(3) .flow__illust,
  .flow__item:nth-child(4) .flow__illust{ width:50%; }
  .flow__item{ padding:30px 25px 15px; }
}

@media (max-width:1024.98px){
  .faq .cta-banner__wrap.pc-only{ display:none !important; }
}

@media (min-width:401px) and (max-width:1024.98px){
  .omoi__inner{
    width:100%;
    max-width:400px;
    margin-left:auto;
    margin-right:auto;
    box-sizing:border-box;
  }
  .omoi__body{ width:85%; margin-left:auto; margin-right:auto; }
  .osusume__inner,
  .service__inner,
  .why__inner,
  .product__inner{
    width:100%;
    /*max-width:368px;*/
    margin-left:auto;
    margin-right:auto;
    box-sizing:border-box;
  }
  .faq__inner,
  .flow__inner,
  .form-container{
    width:100%;
    max-width:400px;
    margin-left:auto;
    margin-right:auto;
    box-sizing:border-box;
  }
  .footer-container{
    width:100%;
    margin-left:auto;
    margin-right:auto;
    box-sizing:border-box;
  }
  .form-container{ padding:0 21.33px; }
  .form-section{ padding-top:42.67px; }
  .form-title-wrapper{ margin-bottom:32px; }
  .form-title-sub{ font-size:21.33px; margin-bottom:10.67px; }
  .form-title-main{ font-size:28.8px; margin-bottom:32px; }
  .form-intro,
  .form-intro__lead,
  .form-intro__text{ font-size:17.07px; }
  .form-intro{ line-height:23.47px; margin-bottom:21.33px; }
  .form-consult-box{ gap:10.67px; }
  .consult-text{
    font-size:14.93px;
    line-height:23.47px;
    padding:17.07px 16px;
    border-width:2.13px;
    border-radius:8.53px;
  }
  .consult-text p{ font-size:14.93px; line-height:23.47px; margin-bottom:4.27px; }
  .consult-image{ width:116.27px; }
  .form-row{ gap:10.67px; margin-bottom:26.67px; }
  .form-label{ font-size:17.07px; line-height:25.6px; }
  .form-input,
  .form-input-phone,
  .form-input-email-left,
  .form-input-email-right,
  .form-select{
    height:51.2px;
    border-radius:8.53px;
    line-height:49.07px;
    font-size:17.07px;
  }
  .form-input{ min-height:51.2px; max-height:51.2px; padding:0 17.07px; }
  .form-input-phone,
  .form-input-email-left,
  .form-input-email-right{ padding:0 12.8px; }
  .form-phone-group{ gap:8.53px; }
  .form-email-group{ gap:5.33px; }
  .form-input-email-left{ max-width:149.33px; }
  .form-select{ padding:0 17.07px; padding-right:42.67px; }
  .email-at{ font-size:21.33px; }
  .form-label-note{ font-size:14.93px; }
  .select-arrow{ font-size:17.07px; right:17.07px; }
  .form-textarea{
    height:192px;
    border-radius:8.53px;
    padding:17.07px;
    line-height:25.6px;
    font-size:17.07px;
  }
  .form-submit-wrapper{ margin:42.67px auto 64px; }
  .form-submit-btn{ max-width:357.33px; height:85.33px; border-radius:12.8px; }
  .submit-btn-text{ font-size:27.73px; line-height:27.73px; letter-spacing:.96px; }
  .submit-btn-arrow{ right:16px; font-size:17.07px; }
  .footer{ padding-top:76.8px; margin-bottom:81.07px; }
  .footer-logo{ width:115.2px; height:36.27px; margin-top:45.87px; margin-bottom:45.87px; }
  .footer-text{ font-size:13.87px; padding:25.6px 0 29.87px; }
  .footer-link{ margin-bottom:6.4px; }
}
