
    /* ========== Reset & Base ========== */
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    html { font-size: 16px; scroll-behavior: smooth; }
    body {
      font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', 'Meiryo', sans-serif;
      background-color: #f3e2ea;
      color: #4C2F3F;
      line-height: 1.7;
      padding-top: 54px;
    }
    img { max-width: 100%; display: block; }

    /* ========== Color Variables ========== */
    :root {
      --pink-bg:        #F7E2EB;
      --pink-section:   #E9CDDB;
      --pink-card:      #FFF6FB;
      --pink-border:    #E5C0D1;
      --pink-primary:   #D681A2;
      --pink-dark:      #9B5977;
      --pink-light:     #FDF4F8;
      --pink-accent:    #E9AAC3;
      --white:          #FFFFFF;
      --text-dark:      #4C2F3F;
      --text-mid:       #745065;
      --text-light:     #9A7488;
      --shadow:         0 8px 26px rgba(136,86,111,0.14);
      --radius:         18px;
      --radius-sm:      12px;
    }

    /* ========== Layout ========== */
    .container {
      max-width: 500px;
      margin: 0 auto;
      padding-bottom: 18px;
      background:
        radial-gradient(120% 86% at 9% 6%, rgba(255, 255, 255, 0.8) 0%, rgba(255, 255, 255, 0) 58%),
        radial-gradient(90% 70% at 88% 18%, rgba(246, 217, 233, 0.68) 0%, rgba(246, 217, 233, 0) 62%),
        radial-gradient(98% 90% at 16% 84%, rgba(233, 191, 215, 0.62) 0%, rgba(233, 191, 215, 0) 64%),
        radial-gradient(74% 62% at 86% 86%, rgba(214, 160, 190, 0.46) 0%, rgba(214, 160, 190, 0) 70%),
        linear-gradient(167deg, #fff8fc 0%, #f4dbe8 50%, #e6bfd5 100%);
      border-left: 1px solid rgba(229, 192, 209, 0.72);
      border-right: 1px solid rgba(229, 192, 209, 0.72);
      box-shadow: 0 0 40px rgba(141, 93, 118, 0.15);
      min-height: 100vh;
    }
    section { padding: 0; }

    /* ========== Decorative ========== */
    .deco-flower {
      display: inline-block;
      color: var(--pink-accent);
      font-size: 0.85em;
      margin: 0 2px;
    }

    /* ========== Header ========== */
    .header {
      display: block;
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      z-index: 1000;
      background: rgba(255, 250, 253, 0.96);
      backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px);
      border-bottom: 1px solid rgba(229, 192, 209, 0.7);
      box-shadow: 0 2px 14px rgba(136,86,111,0.13);
    }
    .header-inner {
      max-width: 500px;
      margin: 0 auto;
      padding: 0 16px;
      height: 54px;
      display: flex;
      align-items: center;
      justify-content: space-between;
    }
    .header-logo {
      display: flex;
      align-items: center;
      gap: 8px;
    }
    .header-logo-img {
      width: 30px;
      height: 30px;
      object-fit: contain;
    }
    .header-logo-text {
      display: block;
      width: 94px;
      height: auto;
      object-fit: contain;
    }
    .header-cta {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      padding: 8px 14px;
      background: linear-gradient(135deg, #E5ACC3, #D681A2);
      color: #fff;
      text-decoration: none;
      border-radius: 50px;
      font-size: 0.7rem;
      font-weight: 700;
      box-shadow: 0 4px 12px rgba(170,105,133,0.3);
      white-space: nowrap;
      letter-spacing: 0.02em;
      transition: transform 0.2s, box-shadow 0.2s;
    }
    .header-cta:hover {
      transform: translateY(-1px);
      box-shadow: 0 6px 16px rgba(170,105,133,0.38);
    }

    /* ========== Hero / First View ========== */
    .hero {
      margin: 0;
      border: none;
      border-radius: 0;
      background:
        linear-gradient(102deg, rgba(255, 249, 252, 0.98) 0%, rgba(253, 241, 247, 0.9) 42%, rgba(252, 236, 244, 0.34) 56%, rgba(250, 231, 240, 0.1) 68%, rgba(250, 230, 239, 0) 100%),
        url('../img/girl.png') right -128px top -52px / 122% auto no-repeat,
        url('../img/background.png') center center / cover no-repeat;
      padding: 26px 20px 92px;
      position: relative;
      overflow: visible;
      z-index: 2;
      box-shadow: none;
    }
    .hero::before {
      content: '';
      position: absolute;
      inset: 0;
      background:
        radial-gradient(circle at 13% 25%, rgba(255, 239, 247, 0.86), transparent 33%),
        radial-gradient(circle at 78% 16%, rgba(255, 231, 241, 0.07), transparent 34%);
      z-index: 0;
      pointer-events: none;
    }
    .hero::after { display: none; }
    .hero-wave {
      position: absolute;
      bottom: 80px;
      left: 0;
      right: 0;
      z-index: 3;
      pointer-events: none;
      line-height: 0;
    }
    .hero-wave svg {
      display: block;
      width: 100%;
      height: 60px;
    }
    .hero-inner {
      position: relative;
      z-index: 4;
      min-height: 220px;
    }
    .hero-copy {
      width: 60%;
      padding: 10px 0 20px 2px;
    }
    .hero-catch {
      font-size: 0.58rem;
      color: #8A6070;
      font-weight: 700;
      letter-spacing: 0.06em;
      margin-bottom: 8px;
      line-height: 1.5;
    }
    .hero-title {
      font-family: 'Hiragino Mincho ProN', 'Yu Mincho', 'HGS明朝E', serif;
      font-size: 1.92rem;
      font-weight: 600;
      color: #583747;
      line-height: 1.32;
      letter-spacing: 0;
      white-space: nowrap;
    }
    .hero-title .line2 {
      display: block;
      color: #583747;
      white-space: nowrap;
    }
    .hero-sub {
      margin-top: 8px;
      font-size: 0.9rem;
      color: #866A78;
      line-height: 1.75;
      letter-spacing: 0.02em;
    }
    .hero-features {
      display: flex;
      flex-wrap: wrap;
      gap: 5px;
      margin-top: 12px;
      margin-bottom: 2px;
    }
    .hero-features span {
      background: rgba(255,255,255,0.72);
      border: 1px solid rgba(205,155,175,0.45);
      border-radius: 50px;
      padding: 3px 10px;
      font-size: 0.58rem;
      color: #7A4E63;
      font-weight: 700;
      white-space: nowrap;
    }
    .hero-btn {
      margin-top: 14px;
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 10px 18px;
      border-radius: 999px;
      text-decoration: none;
      color: #fff;
      font-size: 0.83rem;
      font-weight: 700;
      letter-spacing: 0.02em;
      background: linear-gradient(135deg, #E5AFC4, #D98EAF);
      border: 1px solid rgba(255, 255, 255, 0.5);
      box-shadow: 0 4px 10px rgba(173, 112, 139, 0.24);
      transition: transform 0.2s ease, box-shadow 0.2s ease;
      position: relative;
      z-index: 5;
    }
    .hero-btn::before {
      content: '◇';
      font-size: 0.72rem;
      opacity: 0.92;
    }
    .hero-btn:hover {
      transform: translateY(-1px);
      box-shadow: 0 6px 12px rgba(173, 112, 139, 0.3);
    }
    .hero + .sec {
      margin-top: 8px;
      padding-top: 42px;
      position: relative;
      z-index: 1;
    }
    .hero + .ps-sec {
      margin-top: -95px;
      padding-top: 95px;
      z-index: 3;
    }

    /* ========== Section Common ========== */
    .sec {
      margin: 14px;
      padding: 34px 20px;
      border-radius: 22px;
      border: 1.5px solid var(--pink-border);
      box-shadow: var(--shadow);
      position: relative;
      overflow: hidden;
    }
    .sec::before {
      content: '';
      position: absolute;
      inset: 10px;
      border-radius: 16px;
      background: rgba(255, 248, 252, 0.68);
      pointer-events: none;
    }
    .sec > * {
      position: relative;
      z-index: 1;
    }
    .sec-bg-mid {
      background-color: rgba(230, 207, 219, 0.92);
    }
    .sec-bg-light {
      background-color: rgba(243, 224, 233, 0.9);
    }
    .sec-bg-white {
      background-color: rgba(248, 236, 243, 0.94);
    }
    .sec-title {
      text-align: center;
      font-size: 1.2rem;
      font-weight: 900;
      color: var(--text-dark);
      margin-bottom: 24px;
      line-height: 1.4;
    }
    .sec-title .accent { color: var(--pink-primary); }
    .sec-title-deco {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      margin-bottom: 24px;
    }
    .sec-title-deco::before,
    .sec-title-deco::after {
      content: '';
      flex: 1;
      height: 1px;
      background: linear-gradient(90deg, transparent, var(--pink-border));
    }
    .sec-title-deco::after {
      background: linear-gradient(90deg, var(--pink-border), transparent);
    }
    .sec-title-deco span {
      font-size: 1.15rem;
      font-weight: 900;
      color: var(--text-dark);
      white-space: nowrap;
    }

    /* ========== Card ========== */
    .card {
      background: rgba(255, 250, 253, 0.95);
      border: 1.5px solid var(--pink-border);
      border-radius: var(--radius);
      padding: 20px;
      box-shadow: var(--shadow);
    }
    .card + .card { margin-top: 16px; }

    /* ========== 悩み訴求 ========== */
    .pain-wrap { display: flex; flex-direction: column; gap: 14px; }
    .pain-card {
      background: rgba(255, 250, 253, 0.95);
      border-left: 4px solid var(--pink-accent);
      border: 1px solid rgba(229, 192, 209, 0.65);
      border-radius: var(--radius-sm);
      padding: 16px 18px;
      box-shadow: 0 4px 12px rgba(136,86,111,0.1);
    }
    .pain-card p {
      font-size: 0.9rem;
      color: var(--text-dark);
      line-height: 1.7;
    }
    .pain-card .pain-icon {
      font-size: 1.3rem;
      margin-bottom: 6px;
    }
    .pain-answer {
      margin-top: 28px;
      background: linear-gradient(135deg, var(--pink-primary), var(--pink-dark));
      border-radius: var(--radius);
      padding: 24px 20px;
      text-align: center;
      box-shadow: 0 6px 20px rgba(136,86,111,0.25);
    }
    .pain-answer .brand-name {
      font-size: 1.5rem;
      font-weight: 900;
      color: #fff;
      line-height: 1.3;
      margin-bottom: 4px;
    }
    .pain-answer .brand-sub {
      font-size: 0.8rem;
      color: rgba(255,255,255,0.85);
      letter-spacing: 0.1em;
      margin-bottom: 12px;
    }
    .pain-answer .fit-text {
      font-size: 1rem;
      color: #fff;
      font-weight: 700;
    }
    .pain-solve {
      margin-top: 20px;
      background: rgba(255, 250, 253, 0.95);
      border: 2px solid var(--pink-border);
      border-radius: var(--radius);
      padding: 20px;
      text-align: center;
    }
    .pain-solve p {
      font-size: 0.9rem;
      color: var(--text-dark);
      line-height: 1.7;
    }
    .pain-concern {
      margin-top: 20px;
    }
    .pain-concern .concern-title {
      font-size: 0.95rem;
      font-weight: 700;
      color: var(--text-mid);
      margin-bottom: 12px;
      text-align: center;
    }
    .concern-item {
      background: rgba(253, 244, 248, 0.95);
      border: 1px solid var(--pink-border);
      border-radius: var(--radius-sm);
      padding: 12px 16px;
      font-size: 0.88rem;
      color: var(--text-dark);
      margin-bottom: 8px;
    }
    .concern-item::before { content: '✔ '; color: var(--pink-primary); }

    /* ========== 解決訴求 ========== */
    .solution-badge {
      display: inline-block;
      background: linear-gradient(135deg, var(--pink-primary), var(--pink-dark));
      color: #fff;
      font-size: 1.1rem;
      font-weight: 900;
      padding: 10px 28px;
      border-radius: 50px;
      margin-bottom: 20px;
      box-shadow: 0 4px 14px rgba(136,86,111,0.3);
    }
    .solution-main {
      font-size: 1rem;
      font-weight: 700;
      color: var(--text-dark);
      text-align: center;
      line-height: 1.7;
      margin-bottom: 16px;
    }
    .solution-point {
      background: linear-gradient(135deg, rgba(255, 247, 251, 0.95), rgba(252, 240, 246, 0.95));
      border: 1.5px solid var(--pink-border);
      border-radius: var(--radius);
      padding: 18px 20px;
      text-align: center;
      font-size: 0.92rem;
      color: var(--text-dark);
      line-height: 1.7;
    }

    /* ========== 稼げる ========== */
    .earn-intro {
      font-size: 0.9rem;
      color: var(--text-mid);
      line-height: 1.7;
      margin-bottom: 16px;
      text-align: center;
    }
    .earn-highlight {
      background: linear-gradient(135deg, var(--pink-primary), var(--pink-dark));
      color: #fff;
      border-radius: var(--radius);
      padding: 20px;
      text-align: center;
      margin: 16px 0;
      box-shadow: 0 6px 18px rgba(136,86,111,0.22);
    }
    .earn-highlight .big-text {
      font-size: 1.1rem;
      font-weight: 700;
      line-height: 1.6;
    }
    .earn-card {
      background: rgba(255, 250, 253, 0.95);
      border: 1.5px solid var(--pink-border);
      border-radius: var(--radius);
      padding: 18px;
      margin-top: 16px;
      font-size: 0.88rem;
      color: var(--text-dark);
      line-height: 1.7;
    }

    /* ========== 比較表 ========== */
    .compare-title {
      font-size: 0.95rem;
      font-weight: 700;
      color: var(--text-dark);
      text-align: center;
      margin-bottom: 14px;
    }
    .compare-note {
      font-size: 0.8rem;
      color: var(--text-light);
      text-align: center;
      margin-bottom: 16px;
    }
    .compare-table-wrap {
      overflow-x: auto;
      border-radius: var(--radius);
      box-shadow: var(--shadow);
    }
    .compare-table {
      width: 100%;
      border-collapse: collapse;
      font-size: 0.78rem;
      background: rgba(255, 250, 253, 0.97);
      min-width: 340px;
    }
    .compare-table th {
      padding: 10px 8px;
      text-align: center;
      font-weight: 700;
      font-size: 0.8rem;
    }
    .compare-table th:first-child {
      background: #F8ECF2;
      color: var(--text-mid);
    }
    .compare-table th.hero-col {
      background: linear-gradient(135deg, var(--pink-primary), var(--pink-dark));
      color: #fff;
    }
    .compare-table th.other-col {
      background: #F0EDF1;
      color: #7A6B75;
    }
    .compare-table td {
      padding: 10px 8px;
      text-align: center;
      border-top: 1px solid #F1DCE5;
      vertical-align: middle;
      line-height: 1.4;
    }
    .compare-table td:first-child {
      background: #FDF6FA;
      font-weight: 600;
      color: var(--text-mid);
      font-size: 0.75rem;
    }
    .compare-table td.hero-val {
      background: #FCEFF5;
      font-weight: 700;
      color: var(--pink-dark);
    }
    .compare-table td.other-val {
      color: #8C7D87;
    }
    .compare-table tr:nth-child(even) td { background-color: #FCF4F9; }
    .compare-table tr:nth-child(even) td.hero-val { background: #FAEAF2; }

    /* ========== お仕事内容 ========== */
    .job-item {
      background: rgba(255, 250, 253, 0.95);
      border: 1.5px solid var(--pink-border);
      border-radius: var(--radius);
      padding: 20px;
      margin-bottom: 14px;
      box-shadow: var(--shadow);
      position: relative;
    }
    .job-num {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 32px; height: 32px;
      background: linear-gradient(135deg, var(--pink-primary), var(--pink-dark));
      color: #fff;
      font-weight: 900;
      font-size: 0.9rem;
      border-radius: 50%;
      margin-bottom: 10px;
    }
    .job-head {
      font-size: 0.95rem;
      font-weight: 700;
      color: var(--text-dark);
      margin-bottom: 8px;
      line-height: 1.5;
    }
    .job-body {
      font-size: 0.85rem;
      color: var(--text-mid);
      line-height: 1.7;
    }

    /* ========== ワークモデル ========== */
    .model-intro {
      text-align: center;
      font-size: 0.92rem;
      font-weight: 700;
      color: var(--text-dark);
      margin-bottom: 20px;
      line-height: 1.5;
    }
    .voice-card {
      background: rgba(255, 250, 253, 0.95);
      border: 1.5px solid var(--pink-border);
      border-radius: var(--radius);
      padding: 20px;
      margin-bottom: 14px;
      box-shadow: var(--shadow);
    }
    .voice-label {
      display: inline-block;
      background: linear-gradient(135deg, var(--pink-primary), var(--pink-dark));
      color: #fff;
      font-size: 0.7rem;
      font-weight: 700;
      padding: 3px 12px;
      border-radius: 50px;
      margin-bottom: 8px;
      letter-spacing: 0.05em;
    }
    .voice-head {
      font-size: 0.88rem;
      font-weight: 700;
      color: var(--text-dark);
      margin-bottom: 4px;
    }
    .voice-earn {
      font-size: 1rem;
      font-weight: 900;
      color: var(--pink-primary);
      margin-bottom: 10px;
    }
    .voice-earn span {
      font-size: 0.75rem;
      color: var(--text-light);
      font-weight: 400;
    }
    .voice-text {
      font-size: 0.82rem;
      color: var(--text-mid);
      line-height: 1.7;
      border-top: 1px solid #F1DCE5;
      padding-top: 10px;
    }
    .voice-text::before {
      content: '💬 ';
    }
    .model-cta-text {
      background: linear-gradient(135deg, rgba(255, 247, 251, 0.95), rgba(252, 240, 246, 0.95));
      border: 2px solid var(--pink-border);
      border-radius: var(--radius);
      padding: 18px;
      text-align: center;
      font-size: 0.9rem;
      font-weight: 700;
      color: var(--pink-dark);
      margin-top: 20px;
    }

    /* ========== 報酬 ========== */
    .reward-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 10px;
    }
    .reward-item {
      background: rgba(255, 250, 253, 0.95);
      border: 1.5px solid var(--pink-border);
      border-radius: var(--radius-sm);
      padding: 14px 12px;
      text-align: center;
      box-shadow: 0 2px 8px rgba(136,86,111,0.09);
    }
    .reward-item.full { grid-column: 1 / -1; }
    .reward-type {
      font-size: 0.72rem;
      color: var(--text-light);
      margin-bottom: 4px;
    }
    .reward-val {
      font-size: 1.1rem;
      font-weight: 900;
      color: var(--pink-dark);
    }
    .reward-val .unit {
      font-size: 0.7rem;
      font-weight: 400;
      color: var(--text-light);
    }
    .reward-note {
      font-size: 0.65rem;
      color: var(--text-light);
      margin-top: 3px;
      line-height: 1.4;
    }

    /* ========== FAQ ========== */
    .faq-item {
      background: rgba(255, 250, 253, 0.95);
      border: 1.5px solid var(--pink-border);
      border-radius: var(--radius);
      overflow: hidden;
      margin-bottom: 12px;
      box-shadow: var(--shadow);
    }
    .faq-q {
      padding: 16px 18px;
      font-size: 0.88rem;
      font-weight: 700;
      color: var(--text-dark);
      background: #FDF6FA;
      display: flex;
      align-items: flex-start;
      gap: 8px;
    }
    .faq-q::before {
      content: 'Q';
      flex-shrink: 0;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 22px; height: 22px;
      background: linear-gradient(135deg, var(--pink-primary), var(--pink-dark));
      color: #fff;
      font-size: 0.75rem;
      font-weight: 900;
      border-radius: 50%;
    }
    .faq-a {
      padding: 14px 18px;
      font-size: 0.85rem;
      color: var(--text-mid);
      line-height: 1.7;
      border-top: 1px solid #F1DCE5;
      display: flex;
      gap: 8px;
      align-items: flex-start;
    }
    .faq-a::before {
      content: 'A';
      flex-shrink: 0;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 22px; height: 22px;
      background: #F7E6EF;
      color: var(--pink-primary);
      font-size: 0.75rem;
      font-weight: 900;
      border-radius: 50%;
    }

    /* ========== CTA Button ========== */
    .cta-section {
      margin: 14px;
      border-radius: 22px;
      border: 1.5px solid var(--pink-border);
      background: linear-gradient(160deg, rgba(245, 220, 232, 0.95), rgba(252, 236, 244, 0.96));
      padding: 40px 24px;
      text-align: center;
      position: relative;
      overflow: hidden;
      box-shadow: var(--shadow);
    }
    .cta-section::before {
      content: '';
      position: absolute;
      inset: 10px;
      border-radius: 16px;
      background: rgba(255, 248, 252, 0.68);
      pointer-events: none;
    }
    .cta-section > * {
      position: relative;
      z-index: 1;
    }
    .cta-title {
      font-size: 1.1rem;
      font-weight: 900;
      color: var(--text-dark);
      margin-bottom: 6px;
    }
    .cta-sub {
      font-size: 0.8rem;
      color: var(--text-light);
      margin-bottom: 24px;
    }
    .btn-cta {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      background: linear-gradient(135deg, #E5ACC3, #D681A2);
      color: #fff;
      text-decoration: none;
      padding: 18px 28px;
      border-radius: 50px;
      font-size: 1.05rem;
      font-weight: 900;
      box-shadow: 0 8px 22px rgba(170,105,133,0.34);
      transition: transform 0.2s, box-shadow 0.2s;
      letter-spacing: 0.02em;
    }
    .btn-cta:hover {
      transform: translateY(-2px);
      box-shadow: 0 10px 28px rgba(170,105,133,0.4);
    }
    .btn-cta .line-icon {
      width: 26px; height: 26px;
      background: rgba(255,255,255,0.35);
      border-radius: 8px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 1.1rem;
      flex-shrink: 0;
    }
    .btn-cta-arrow {
      margin-left: 4px;
      font-size: 1rem;
    }
    .cta-note {
      font-size: 0.72rem;
      color: var(--text-light);
      margin-top: 12px;
    }

    /* ========== Footer ========== */
    .footer {
      margin: 14px 14px 0;
      border-radius: 18px;
      border: 1.5px solid rgba(136, 86, 111, 0.45);
      background: #8E5C74;
      color: rgba(255,255,255,0.8);
      text-align: center;
      padding: 20px;
      font-size: 0.72rem;
      line-height: 1.7;
    }
    .footer-logo {
      font-size: 0.9rem;
      font-weight: 700;
      color: #fff;
      margin-bottom: 6px;
    }

    /* ========== Section Title Pill ========== */
    .pill-title {
      display: inline-block;
      background: linear-gradient(135deg, var(--pink-primary), var(--pink-dark));
      color: #fff;
      font-size: 0.8rem;
      font-weight: 700;
      padding: 4px 18px;
      border-radius: 50px;
      margin-bottom: 10px;
      letter-spacing: 0.06em;
    }
    .section-heading {
      font-size: 1.15rem;
      font-weight: 900;
      color: var(--text-dark);
      line-height: 1.4;
      margin-bottom: 6px;
      text-align: center;
    }
    .section-heading .accent { color: var(--pink-primary); }

    /* ========== Pain Section (こんなお悩みありませんか) ========== */
    .ps-sec {
      margin: 0;
      border: none;
      border-radius: 0;
      background: linear-gradient(
        180deg,
        rgba(255, 248, 252, 0.99) 0%,
        rgba(249, 232, 242, 0.99) 48%,
        rgba(241, 214, 229, 0.99) 78%,
        rgba(232, 197, 217, 0.99) 100%
      );
      padding: 36px 18px 32px;
      position: relative;
      overflow: hidden;
      box-shadow: none;
    }
    .ps-sec::before { display: none; }
    .ps-sec-title {
      text-align: center;
      font-size: 1.15rem;
      font-weight: 900;
      color: var(--text-dark);
      margin-bottom: 30px;
      line-height: 1.4;
      transform: translateY(-10px);
      position: relative;
      z-index: 6;
    }
    .ps-sec-title .accent { color: var(--pink-primary); }
    .ps-problem-card {
      background: rgba(255, 255, 255, 0.95);
      border: 1px solid rgba(229, 192, 209, 0.55);
      border-radius: 14px;
      padding: 0;
      margin-bottom: 18px;
      box-shadow: 0 6px 22px rgba(136, 86, 111, 0.11);
      overflow: visible;
    }
    .ps-main-row {
      display: flex;
      align-items: stretch;
      gap: 0;
      min-height: 290px;
    }
    .ps-content {
      flex: 1;
      min-width: 0;
      padding: 18px 14px 16px 16px;
    }

    .ps-step-title {
      font-size: 1rem;
      font-weight: 900;
      color: var(--text-dark);
      line-height: 1.45;
      margin-bottom: 7px;
    }
    .ps-step-text {
      font-size: 0.8rem;
      color: var(--text-mid);
      line-height: 1.6;
      margin-bottom: 12px;
    }
    .ps-badges {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
      margin-top: 4px;
    }
    .ps-badge {
      background: rgba(247, 226, 235, 0.9);
      border: 1.5px solid var(--pink-accent);
      border-radius: 50px;
      flex: 0 0 auto;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      text-align: center;
      font-size: 0.68rem;
      font-weight: 700;
      color: var(--pink-dark);
      padding: 5px 10px;
      line-height: 1.3;
      white-space: nowrap;
    }
    .ps-girl-wrap {
      flex: 0 0 52%;
      width: 52%;
      align-self: stretch;
      border-radius: 0;
      display: flex;
      align-items: flex-end;
      justify-content: center;
      overflow: visible;
      margin-top: -28px;
    }
    .ps-girl {
      width: 100%;
      height: calc(100% + 28px);
      object-fit: cover;
      object-position: top center;
    }
    .ps-answer {
      background: linear-gradient(135deg, #E882B0, var(--pink-dark));
      border-top: none;
      padding: 20px 16px 14px;
      text-align: center;
      margin: 0;
      box-shadow: none;
      color: #fff;
    }
    .ps-answer-label {
      font-size: 0.84rem;
      font-weight: 700;
      color: rgba(255, 255, 255, 0.92);
      margin-bottom: 10px;
      letter-spacing: 0.04em;
    }
    .ps-answer-brand {
      font-size: 1.7rem;
      font-weight: 700;
      color: #fff;
      letter-spacing: 0.06em;
      margin-bottom: 4px;
      line-height: 1.2;
    }
    .ps-answer-sub {
      display: none;
    }
    .ps-answer-fit {
      font-size: 1.2rem;
      font-weight: 900;
      color: #fff;
      letter-spacing: 0.02em;
    }
    .ps-solve {
      background: #ffffff;
      border: none;
      border-radius: 0 0 14px 14px;
      padding: 14px 16px 16px;
      font-size: 0.96rem;
      font-weight: 900;
      color: var(--pink-dark);
      text-align: center;
      margin: 0;
      letter-spacing: 0.02em;
    }
    /* .ps-solve::before {
      content: '📱 ';
    } */

    /* ========== Doubt Bridge ========== */
    .doubt-sec {
      padding: 20px 16px 4px;
    }
    .doubt-row {
      display: flex;
      align-items: flex-end;
      gap: 10px;
    }
    .doubt-char {
      flex: 0 0 130px;
      width: 130px;
    }
    .doubt-girl {
      width: 100%;
      height: auto;
      display: block;
    }
    .doubt-bubble {
      flex: 1;
      background: #fff;
      border: 1.5px solid rgba(229, 192, 209, 0.75);
      border-radius: 14px;
      padding: 14px 16px 12px;
      position: relative;
      box-shadow: 0 4px 14px rgba(136, 86, 111, 0.1);
      margin-bottom: 10px;
    }
    .doubt-bubble::before {
      content: '';
      position: absolute;
      left: -11px;
      bottom: 16px;
      border-top: 9px solid transparent;
      border-bottom: 9px solid transparent;
      border-right: 11px solid rgba(229, 192, 209, 0.75);
    }
    .doubt-bubble::after {
      content: '';
      position: absolute;
      left: -9px;
      bottom: 17px;
      border-top: 8px solid transparent;
      border-bottom: 8px solid transparent;
      border-right: 10px solid #fff;
    }
    .doubt-title {
      font-size: 0.9rem;
      font-weight: 900;
      color: var(--text-dark);
      line-height: 1.5;
      margin-bottom: 10px;
    }
    .doubt-item {
      font-size: 0.8rem;
      color: var(--text-mid);
      line-height: 1.6;
      padding-left: 4px;
    }
    .doubt-item + .doubt-item {
      margin-top: 2px;
    }

    /* ========== Divider ========== */
    .wave-divider {
      width: 100%;
      overflow: hidden;
      line-height: 0;
    }
    .wave-divider svg {
      display: block;
      width: 100%;
    }

    @media (max-width: 420px) {
      .hero + .ps-sec {
        margin-top: -80px;
        padding-top: 80px;
        z-index: 3;
      }
      .ps-sec-title {
        margin-bottom: 22px;
        transform: translateY(-6px);
      }
      .ps-problem-card {
        border-radius: 12px;
      }
      .ps-main-row {
        gap: 0;
        align-items: stretch;
        min-height: 260px;
      }
      .ps-content {
        padding: 14px 12px 14px 14px;
      }
      .ps-girl-wrap {
        flex: 0 0 50%;
        width: 50%;
        margin-top: -20px;
      }
      .ps-girl {
        height: calc(100% + 20px);
      }
      .ps-step-num {
        width: 30px;
        height: 30px;
        font-size: 1rem;
      }
      .ps-step-title {
        font-size: 0.9rem;
      }
      .ps-step-text {
        font-size: 0.73rem;
        margin-bottom: 9px;
      }
      .ps-badges {
        gap: 5px;
      }
      .ps-badge {
        font-size: 0.62rem;
        padding: 4px 8px;
      }
      .ps-answer {
        padding: 16px 12px 12px;
      }
      .ps-answer-brand {
        font-size: 1.45rem;
      }
      .ps-answer-fit {
        font-size: 1.05rem;
      }
      .ps-solve {
        padding: 11px 12px 13px;
        font-size: 0.8rem;
      }
      .hero {
        background:
          linear-gradient(102deg, rgba(255, 249, 252, 0.98) 0%, rgba(253, 241, 247, 0.92) 44%, rgba(252, 236, 244, 0.38) 58%, rgba(250, 231, 240, 0.12) 72%, rgba(250, 230, 239, 0.02) 100%),
          url('../img/girl.png') right -92px top -36px / 136% auto no-repeat,
          url('../img/background.png') center center / cover no-repeat;
        padding: 20px 14px 84px;
      }
      .hero-inner {
        min-height: 200px;
      }
      .hero-copy {
        width: 58%;
      }
      .hero-title {
        font-size: 1.56rem;
      }
      .hero-sub {
        font-size: 0.70rem;
        line-height: 1.7;
      }
      .hero-btn {
        padding: 9px 14px;
        font-size: 0.75rem;
      }
      .hero-wave svg { height: 48px; }
    }

    @media (min-width: 768px) {
      .container {
        margin: 16px auto;
        border-radius: 24px;
        border: 1px solid rgba(229, 192, 209, 0.75);
      }
      .hero,
      .sec,
      .cta-section,
      .footer {
        margin-left: 18px;
        margin-right: 18px;
      }
      .hero {
        margin-left: 0;
        margin-right: 0;
      }
      .ps-sec {
        margin-left: 0;
        margin-right: 0;
      }
    }
	  /* ===== 途中CTA（応募するボタン） ===== */
/* ===== 途中CTA（目立つ版） ===== */
.mid-cta{
  margin: 16px 14px;
  text-align: center;
  position: relative;
}

.mid-cta::before{
  content:"";
  position:absolute;
  inset:-10px -6px;
  border-radius: 26px;
  background:
    radial-gradient(60% 70% at 50% 20%, rgba(255,255,255,.75), rgba(255,255,255,0) 60%),
    radial-gradient(70% 80% at 20% 70%, rgba(229,172,195,.45), rgba(229,172,195,0) 62%),
    radial-gradient(70% 80% at 80% 70%, rgba(214,129,162,.35), rgba(214,129,162,0) 62%);
  filter: blur(0px);
  pointer-events:none;
}

.mid-cta-btn{
  position: relative;
  z-index: 1;

  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;

  padding: 18px 24px;
  border-radius: 999px;
  text-decoration: none;

  background: linear-gradient(135deg, #E882B0 0%, #D681A2 45%, #9B5977 110%);
  color: #fff;

  font-size: 1.12rem;
  font-weight: 900;
  letter-spacing: 0.03em;

  border: 1px solid rgba(255,255,255,0.55);
  box-shadow:
    0 12px 26px rgba(155,89,119,.28),
    0 0 0 6px rgba(255,255,255,.28),
    0 0 24px rgba(232,130,176,.35);
  transform: translateZ(0);
  transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}

/* ほんのり脈打つ（目立つけど下品になりにくい） */
@keyframes ctaPulse {
  0%, 100% { transform: translateY(0) scale(1); }
  50%      { transform: translateY(-2px) scale(1.02); }
}
.mid-cta-btn{
  animation: ctaPulse 1.6s ease-in-out infinite;
	margin-top: 4vw;
	margin-bottom: 2vw;
}

.mid-cta-btn:hover{
  animation: none;
  transform: translateY(-3px) scale(1.03);
  box-shadow:
    0 14px 30px rgba(155,89,119,.34),
    0 0 0 7px rgba(255,255,255,.32),
    0 0 30px rgba(232,130,176,.45);
}

.mid-cta-arrow{
  font-size: 1.05rem;
  opacity: .95;
}

.mid-cta-note{
  margin-top: 10px;
  font-size: 0.74rem;
  color: var(--text-mid);
  font-weight: 700;
}
.mid-cta-btn{
  width: 50%;
  margin: 0 auto;
}

@media (max-width: 480px){
  .mid-cta-btn{
    width: 70%;
  }
}	
.mid-cta-btn{
  border: 2px solid #ffffff;
  box-shadow:
    0 0 0 6px rgba(255,255,255,0.85),
    0 12px 26px rgba(155,89,119,.28);
}

	/* ===== 解決訴求：テキストは“前のまま” + 右に背景イラスト ===== */
	.solution-sec{
	  position: relative;
	  padding: 60px 20px;
	  overflow: hidden; /* はみ出し防止 */
	}

	/* 右側のキャラを“背景として”置く（sec::beforeの上、テキストの下） */
	.solution-sec::after{
	  content: "";
	  position: absolute;
	  right: -45px;
	  bottom: 8px;
	  width: 64%;
	  height: 92%;
	  background: url("../img/character.png") right bottom / contain no-repeat;
	  opacity: 1;
	  pointer-events: none;
	  z-index: 1;
	}

	/* sec標準の内側ガラス（::before）は一番下に */
	.solution-sec::before{
	  z-index: 0;
	}

	/* テキストは一番上に */
	.solution-sec > *{
	  position: relative;
	  z-index: 2;
	}

	/* テキストの右側に余白を作って、画像と被らないようにする */
	.solution-inner{
	  padding-right: 44%;
	}

	/* スマホ：縦が狭いので余白を減らし、画像を薄く・小さく */
	@media (max-width: 768px){
	  .solution-inner{ padding-right: 0; }

	  .solution-sec::after{
		width: 64%;
		height: 60%;
		right: -10px;
		bottom: -6px;
		opacity: 0.22; /* 背景感 */
	  }
	}
	
		/* ===== 報酬テーブル（デザイン統一版） ===== */
		.reward-table-wrap{
		  max-width: 980px;
		  margin: 0 auto;
		  border-radius: var(--radius);
		  overflow: hidden;
		  border: 1.5px solid var(--pink-border);
		  box-shadow: var(--shadow);
		  background: rgba(255, 250, 253, 0.95); /* card系 */
		}

		.reward-table{
		  width: 100%;
		  border-collapse: collapse;
		  table-layout: fixed;
		  background: transparent;
		  font-size: 0.9rem;
		  color: var(--text-dark);
		}

		.reward-table th,
		.reward-table td{
		  border: 1px solid rgba(229, 192, 209, 0.85); /* pink-border寄せ */
		  padding: 18px 14px;
		  text-align: center;
		  vertical-align: middle;
		}

		.reward-table th{
		  width: 50%;
		  font-weight: 900;
		  color: var(--text-dark);
		  background: rgba(253, 244, 248, 0.95); /* 薄ピンク */
		}

		.reward-table td{
		  width: 50%;
		  font-weight: 700;
		  color: var(--text-mid);
		  background: rgba(255, 250, 253, 0.92);
		}

		/* 交互の薄い段差（添付表っぽさも維持しつつ、馴染ませる） */
		.reward-table tr:nth-child(even) th{
		  background: rgba(252, 240, 246, 0.95);
		}
		.reward-table tr:nth-child(even) td{
		  background: rgba(255, 246, 251, 0.95);
		}

		/* 注意書き（赤のまま、フォントだけ統一） */
		.reward-attn{
		  display: block;
		  margin-top: 8px;
		  font-size: 0.78rem;
		  font-weight: 700;
		  color: #E25555;
		  letter-spacing: 0.02em;
		}

		/* スマホ */
		@media (max-width: 768px){
		  .reward-table{
			font-size: 0.85rem;
		  }
		  .reward-table th,
		  .reward-table td{
			padding: 14px 10px;
		  }
		  .reward-attn{
			font-size: 0.72rem;
		  }
		}
		/* お問い合わせ（テキストだけ中央寄せ） */
		.contact{
		  padding: 28px 16px 44px;
		  text-align: center;
		  line-height: 1.8;
	/*      background: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,233,236,.60) 100%);*/
		}
		.contact p{
		  margin: 0 0 10px;
		  font-size: 14px;
		}
		.contact a{
		  color: inherit;
		  text-decoration: underline;
		  text-underline-offset: 3px;
		}	
		.company-link{
		  margin: 8px 0 0;
		  font-size: 13px;
		}
		.company-link a{
		  color: inherit;
		  text-decoration: underline;
		  text-underline-offset: 3px;
		}

		/* Modal */
		.modal-overlay{
		  position: fixed;
		  inset: 0;
		  display: none;
		  place-items: center;
		  background: rgba(0,0,0,.35);
		  padding: 18px;
		  z-index: 9999;
		}
		.modal-overlay.is-open{
		  display: grid;
		}
		.modal-panel{
		  width: min(420px, 100%);
		  background: #fff;
		  border-radius: 10px;
		  box-shadow: 0 18px 48px rgba(0,0,0,.18);
		  position: relative;
		  overflow: hidden;
		}
		.modal-title{
		  margin: 0;
		  padding: 14px 44px 12px 16px;
		  font-size: 16px;
		  font-weight: 700;
		  border-bottom: 1px solid rgba(0,0,0,.08);
		}
		.modal-body{
		  padding: 14px 16px 18px;
		}
		.modal-close{
		  position: absolute;
		  top: 8px;
		  right: 10px;
		  width: 34px;
		  height: 34px;
		  border: 0;
		  border-radius: 10px;
		  background: rgba(0,0,0,.06);
		  font-size: 20px;
		  line-height: 34px;
		  cursor: pointer;
		  color: var(--text);
		}

		.company-table{
		  width: 100%;
		  border-collapse: collapse;
		  font-size: 13px;
		}
		.company-table th,
		.company-table td{
		  border: 1px solid rgba(0,0,0,.12);
		  padding: 10px 10px;
		  vertical-align: middle;
		}
		.company-table th{
		  width: 34%;
		  font-weight: 700;
		  background: rgba(255,138,156,.10);
		}