    /* リセット & ベース */
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    html { scroll-behavior: smooth; }
    body {
      font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', sans-serif;
      font-size: 18px;
      font-weight: 400;
      line-height: 1.75;
      color: #242424;
      background: #fff;
      overflow-x: hidden;
    }
    img { max-width: 100%; display: block; }
    a { text-decoration: none; color: inherit; }

    /* カラー変数 */
    :root {
      --y:       #E8B400;
      --y-light: #FFF8E0;
      --y-mid:   #F5CC40;
      --blue:    #1A6FA0;
      --blue-d:  #0D4F76;
      --pale:    #EDF5FB;
      --navy:    #152C47;
      --gray:    #5A5A5A;
      --g-light: #F3F5F7;
      --line:    #D8E5EE;
      --max:     1080px;
    }

    /* 共通パーツ */
    .wrap {
      max-width: var(--max);
      margin: 0 auto;
      padding: 0 40px;
    }

    /* セクション見出し */
    .sh {
      margin-bottom: 38px;
    }
    .sh--center { text-align: center; }
    .sh--center .sh__desc { margin: 16px auto 0; }

    .sh__en {
      font-family: 'Poppins', sans-serif;
      font-size: 10px;
      font-weight: 700;
      letter-spacing: 0.3em;
      color: var(--blue);
      display: flex;
      align-items: center;
      gap: 10px;
      margin-bottom: 14px;
    }
    .sh__en::after {
      content: '';
      flex: 1;
      max-width: 40px;
      height: 1px;
      background: var(--blue);
      opacity: 0.4;
    }
    .sh--center .sh__en {
      justify-content: center;
    }
    .sh--center .sh__en::after { display: none; }
    .sh--light .sh__en { color: var(--y); }
    .sh--light .sh__en::after { background: var(--y); opacity: 0.5; }

    .sh__title {
      font-size: 30px;
      font-weight: 800;
      line-height: 1.4;
      color: var(--navy);
    }
    .sh--light .sh__title { color: #fff; }
    .sh--center .sh__title { text-align: center; }

    .sh__desc {
      margin-top: 16px;
      font-size: 16px;
      line-height: 1.8;
      color: var(--gray);
      max-width: 560px;
    }
    .sh--light .sh__desc { color: rgba(255,255,255,0.6); }
    .sh--center .sh__desc { text-align: center; }

    /* 画像プレースホルダー */
    .ph {
      border-radius: 14px;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 12px;
    }
    .ph--light {
      background: rgba(255,255,255,0.07);
      border: 1px solid rgba(255,255,255,0.15);
      color: rgba(255,255,255,0.3);
    }
    .ph--blue {
      background: #D6EAF5;
      color: #7AAABB;
    }
    .ph--gray {
      background: var(--g-light);
      color: #AAB5BD;
    }
    .ph svg { opacity: 0.6; }
    .ph span {
      font-size: 13px;
      font-weight: 500;
      letter-spacing: 0.05em;
    }

    /* ボタン */
    .btn {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      font-size: 16px;
      font-weight: 700;
      padding: 16px 38px;
      border-radius: 6px;
      border: none;
      cursor: pointer;
      transition: transform .15s, box-shadow .15s, background .15s, color .15s;
      white-space: nowrap;
    }
    .btn:hover { transform: translateY(-2px); }
    .btn--y {
      background: var(--y);
      color: var(--navy);
      box-shadow: 0 4px 20px rgba(232,180,0,0.3);
    }
    .btn--y:hover { box-shadow: 0 8px 32px rgba(232,180,0,0.45); }
    .btn--wh-outline {
      background: transparent;
      color: #fff;
      border: 2px solid rgba(255,255,255,0.45);
    }
    .btn--wh-outline:hover { background: rgba(255,255,255,0.1); }
    .btn--bl-outline {
      background: transparent;
      color: var(--blue);
      border: 2px solid var(--blue);
    }
    .btn--bl-outline:hover { background: var(--blue); color: #fff; }

    /* ヘッダー */
    .header {
      position: sticky;
      top: 0;
      z-index: 200;
      background: rgba(255,255,255,0.96);
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
      border-bottom: 1px solid var(--line);
      padding: 15px 0;
    }
    .header__in {
      display: flex;
      align-items: center;
      justify-content: space-between;
    }
    .header__brand {
      display: flex;
      align-items: center;
      gap: 16px;
    }
    .header__logo {
      display: flex;
      align-items: center;
      text-decoration: none; /* リンク化してもアンダーライン非表示 */
    }
    .header__logo-img {
      height: 28px;
      width: auto;
      display: block;
    }
    .header__sep { width: 1px; height: 18px; background: #CCC; }
    .header__svc { font-size: 16px; font-weight: 700; color: var(--blue); }
    /* ヘッダー右側：テキストリンク＋ボタンをまとめるコンテナ */
    .header__nav {
      display: flex;
      align-items: center;
      gap: 20px;
    }
    /* 「AIソリューションへ」テキストリンク */
    .header__nav-link {
      font-size: 14px;
      font-weight: 600;
      color: var(--blue);
      white-space: nowrap;
      transition: opacity .2s;
    }
    .header__nav-link:hover { opacity: 0.7; }
    .header__btn {
      background: var(--y);
      color: var(--navy);
      font-size: 14px;
      font-weight: 700;
      padding: 10px 26px;
      border-radius: 4px;
      transition: opacity .2s;
      white-space: nowrap;
    }
    .header__btn:hover { opacity: 0.85; }

    /* ヒーロー */
    .hero {
      position: relative;
      background: linear-gradient(140deg, #D8EEF8 0%, #EAF4FB 40%, #F5FAFD 100%);
      padding: 80px 0 130px;
      overflow: hidden;
    }
    /* 装飾：上の大きな波紋 */
    .hero::before {
      content: '';
      position: absolute;
      top: -120px;
      right: -140px;
      width: 600px;
      height: 600px;
      border-radius: 50%;
      background: radial-gradient(circle, rgba(26,111,160,0.06) 0%, transparent 65%);
      pointer-events: none;
    }

    /* ヒーロー装飾：ドット・ストライプ円・シルエット */
    /* ドット・ストライプ円の共通スタイル */
    .hero__deco {
      position: absolute;
      inset: 0;
      pointer-events: none;
      z-index: 0;
    }
    .hd {
      position: absolute;
      left: var(--px);
      top: var(--pt);
      width: var(--ps);
      height: var(--ps);
      border-radius: 50%;
    }
    /* ソリッドドット */
    .hd--dot.hd--blue  { background: var(--blue);  opacity: 0.8;  }
    .hd--dot.hd--navy  { background: var(--navy);  opacity: 0.7;  }
    .hd--dot.hd--y     { background: var(--y);     opacity: 1.0;  }
    /* ストライプ円 */
    .hd--stripe.hd--blue {
      background: repeating-linear-gradient(
        45deg,
        var(--blue) 0px, var(--blue) 2px,
        transparent 2px, transparent 9px
      );
      opacity: 0.22;
    }
    .hd--stripe.hd--y {
      background: repeating-linear-gradient(
        45deg,
        var(--y) 0px, var(--y) 2px,
        transparent 2px, transparent 9px
      );
      opacity: 0.32;
    }

    /* ビルシルエット（下部） */
    .hero__city {
      position: absolute;
      bottom: 0;
      left: 0;
      width: 100%;
      pointer-events: none;
      z-index: 0;
    }
    .hero__city svg {
      display: block;
      width: 100%;
      height: auto;
    }
    .hero__in {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 60px;
      align-items: center;
      position: relative;
      z-index: 1;
    }
    .hero__tag {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      background: var(--navy);
      color: #fff;
      font-size: 16px;
      font-weight: 700;
      letter-spacing: 0.1em;
      padding: 6px 14px;
      border-radius: 3px;
      margin-bottom: 14px;
    }
    .hero__tag::before {
      content: '';
      width: 6px;
      height: 6px;
      border-radius: 50%;
      background: var(--y);
      flex-shrink: 0;
    }
    .hero__h1 {
      font-size: 56px;
      font-weight: 800;
      line-height: 1.3;
      color: var(--navy);
      margin-bottom: 22px;
    }
    .hero__h1 .ac {
      color: var(--blue);
      position: relative;
      display: inline-block;
    }
    /* アクセントテキストの色強調 */
    .hero__h1 .ac::after {
      content: '';
      position: absolute;
      left: 0;
      bottom: -2px;
      width: 100%;
      height: 3px;
      background: var(--y);
      border-radius: 2px;
    }
    .hero__lead {
      font-size: 18px;
      color: #555;
      line-height: 1.85;
      margin-bottom: 30px;
    }
    /* ヒーローの数値（アイコン的な役割） */
    .hero__kpi {
      display: flex;
      gap: 0;
      margin-bottom: 14px;
      border: 1px solid var(--line);
      border-radius: 12px;
      background: #fff;
      overflow: hidden;
      box-shadow: 0 4px 20px rgba(26,111,160,0.08);
    }
    .hero__kpi-item {
      flex: 1;
      padding: 18px 16px;
      text-align: center;
      position: relative;
    }
    .hero__kpi-item + .hero__kpi-item::before {
      content: '';
      position: absolute;
      left: 0; top: 12px; bottom: 12px;
      width: 1px;
      background: var(--line);
    }
    .hero__kpi-val {
      font-family: 'Poppins', sans-serif;
      font-size: 38px;
      font-weight: 800;
      color: var(--blue);
      line-height: 1;
      margin-bottom: 6px;
    }
    /* sup は単位用 */
    .hero__kpi-val sup { font-size: 14px; font-weight: 700; vertical-align: middle; }
    /* トライアル表記は文字が多いので小さめに */
    .hero__kpi-val--sm { font-size: 18px; line-height: 1.4; }
    .hero__kpi-lbl { font-size: 12px; color: var(--gray); letter-spacing: 0.02em; }
    .hero__actions { display: flex; gap: 14px; flex-wrap: wrap; align-items: center; }
    .hero__note { margin-top: 13px; font-size: 13px; color: var(--gray); }

    /* ヒーロー下バナー */
    .hero__banner {
      background: var(--navy);
      padding: 14px 0;
    }
    .hero__banner-text {
      text-align: center;
      font-size: 18px;
      font-weight: 700;
      color: #fff;
      letter-spacing: 0.04em;
    }
    /* 「4,000円」部分を黄色で目立たせたい場合はspanで囲む */
    .hero__banner-text .hl { color: var(--y); }

    /* ヒーロー画像 */
    /* ヒーロー画像コンテナ */
    .hero__img { aspect-ratio: 16/10; position: relative; z-index: 1; border-radius: 12px; overflow: hidden; box-shadow: 0 16px 48px rgba(21,44,71,0.18); }
    /* 画像を枠内に収める */
    .hero__img-el { width: 100%; height: 100%; object-fit: cover; display: block; }

    /* 課題セクション（グラフィカル） */
    .problem {
      background: var(--g-light);
      padding: 100px 0;
      position: relative;
      overflow: hidden;
    }
    /* 装飾：背景ドットグリッド */
    .problem::before {
      content: '';
      position: absolute;
      inset: 0;
      background-image: radial-gradient(circle, rgba(26,111,160,0.07) 1px, transparent 1px);
      background-size: 28px 28px;
      pointer-events: none;
    }
    .problem__in { position: relative; z-index: 1; }
    .problem__grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 24px;
    }
    /* カード本体 */
    .problem__card {
      background: #fff;
      border-radius: 16px;
      padding: 0;
      box-shadow: 0 4px 24px rgba(0,0,0,0.06);
      transition: transform .2s, box-shadow .2s;
      position: relative;
      overflow: hidden;
      display: flex;
      flex-direction: column;
    }
    .problem__card:hover {
      transform: translateY(-4px);
      box-shadow: 0 12px 36px rgba(0,0,0,0.1);
    }
    /* 上部カラーバー（カードごとに色を変える） */
    .problem__card-bar {
      height: 6px;
      flex-shrink: 0;
    }
    .problem__card:nth-child(1) .problem__card-bar { background: linear-gradient(to right, var(--blue), #52B2E8); }
    .problem__card:nth-child(2) .problem__card-bar { background: linear-gradient(to right, var(--y), #F5CC40); }
    .problem__card:nth-child(3) .problem__card-bar { background: linear-gradient(to right, var(--navy), var(--blue)); }
    .problem__card:nth-child(4) .problem__card-bar { background: linear-gradient(to right, var(--blue-d), var(--blue)); }
    /* カード内画像エリア */
    .problem__card-img {
      width: 100%;
      height: 210px;
      background: var(--pale);
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 10px;
      flex-shrink: 0;
      overflow: hidden;
    }
    /* 画像がある場合にフィットさせる */
    .problem__card-img img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }
    /* プレースホルダー表示用（imgがない場合） */
    .problem__card-img svg { opacity: 0.35; }
    .problem__card-img span {
      font-size: 12px;
      font-weight: 500;
      color: #9AAABB;
      letter-spacing: 0.04em;
    }

    /* カード内コンテンツエリア */
    .problem__card-body {
      padding: 8px 32px 36px;
      position: relative;
      overflow: hidden;
      flex: 1;
    }
    /* 背景ウォーターマーク数字 */
    .problem__card-body::after {
      content: attr(data-no);
      position: absolute;
      right: -10px; bottom: -30px;
      font-family: 'Poppins', sans-serif;
      font-size: 160px;
      font-weight: 900;
      color: rgba(21,44,71,0.045);
      line-height: 1;
      pointer-events: none;
      user-select: none;
    }
    /* 番号ラベル */
    .problem__no {
      font-family: 'Poppins', sans-serif;
      font-size: 10px;
      font-weight: 700;
      letter-spacing: 0.18em;
      color: var(--blue);
      margin-bottom: 18px;
      display: block;
    }
    .problem__card:nth-child(2) .problem__no { color: #B88A00; }
    .problem__card:nth-child(3) .problem__no,
    .problem__card:nth-child(4) .problem__no { color: var(--navy); }
    .problem__title {
      font-size: 20px;
      font-weight: 700;
      color: var(--navy);
      margin-bottom: 14px;
      line-height: 1.4;
      position: relative;
      z-index: 1;
    }
    .problem__body {
      font-size: 16px;
      color: var(--gray);
      line-height: 1.85;
      position: relative;
      z-index: 1;
    }

    /* 解決策セクション */
    .solution {
      background: var(--navy);
      padding: 100px 0;
      position: relative;
      overflow: hidden;
    }
    /* 装飾：右下に大きな斜めライン群 */
    .solution::before {
      content: '';
      position: absolute;
      bottom: -80px;
      right: -100px;
      width: 500px;
      height: 500px;
      border-radius: 50%;
      background: radial-gradient(circle, rgba(26,111,160,0.25) 0%, transparent 65%);
      pointer-events: none;
    }
    .solution::after {
      position: absolute;
      top: 20px;
      left: -30px;
      font-family: 'Poppins', sans-serif;
      font-size: 220px;
      font-weight: 900;
      color: rgba(255,255,255,0.03);
      line-height: 1;
      pointer-events: none;
      user-select: none;
    }
    .solution__in {
      position: relative;
      z-index: 1;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 72px;
      align-items: center;
    }
    .solution__img { aspect-ratio: 4/3; border-radius: 12px; overflow: hidden; }
    .solution__img-el { width: 100%; height: 100%; object-fit: cover; display: block; }
    .solution__list { display: flex; flex-direction: column; gap: 36px; }
    .solution__item { display: flex; gap: 22px; align-items: flex-start; }
    .solution__num {
      font-family: 'Poppins', sans-serif;
      font-size: 14px;
      font-weight: 700;
      color: var(--y);
      letter-spacing: 0.1em;
      padding-top: 2px;
      flex-shrink: 0;
      width: 28px;
    }
    .solution__item-body h4 {
      font-size: 18px;
      font-weight: 700;
      color: #fff;
      margin-bottom: 6px;
      line-height: 1.4;
    }
    .solution__item-body p { font-size: 15px; color: rgba(255,255,255,0.6); line-height: 1.8; }

    /* 機能セクション（選ばれる5つの理由） */
    .features {
      padding: 100px 0;
      background: #fff;
      position: relative;
      overflow: hidden;
    }
    /* 装飾：グラデーション縦線 */
    .features::before {
      content: '';
      position: absolute;
      top: 0; left: 0;
      width: 4px;
      height: 100%;
      background: linear-gradient(to bottom, var(--y) 0%, var(--blue) 50%, var(--navy) 100%);
    }

    /* カードグリッド */
    .features__grid {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: 20px;
    }

    .feature {
      flex: 0 0 calc((100% - 40px) / 3); /* 3列：gap×2=40px分を引いて3等分 */
      background: var(--pale);
      border-radius: 16px;
      padding: 36px 32px;
      transition: transform .2s, box-shadow .2s;
    }
    .feature:hover {
      transform: translateY(-4px);
      box-shadow: 0 12px 32px rgba(26,111,160,0.1);
    }

    /* アイコンラップ（全カード共通） */
    .feature__icon-wrap {
      width: 52px;
      height: 52px;
      background: var(--navy);
      border-radius: 14px;
      display: flex;
      align-items: center;
      justify-content: center;
      margin-bottom: 20px;
    }

    .feature h3 {
      font-size: 18px;
      font-weight: 700;
      color: var(--navy);
      margin-bottom: 12px;
      line-height: 1.4;
    }
    .feature p { font-size: 15px; color: var(--gray); line-height: 1.8; }

    /* メリットセクション */
    .merits {
      background: var(--g-light);
      padding: 100px 0;
      position: relative;
      overflow: hidden;
    }
    /* 装飾：右にドット */
    .merits::after {
      content: '';
      position: absolute;
      top: 0; right: 0;
      width: 240px;
      height: 100%;
      background: radial-gradient(circle at 80% 50%, rgba(232,180,0,0.08) 0%, transparent 60%);
      pointer-events: none;
    }
    .merits__list { display: flex; flex-direction: column; gap: 2px; }
    .merit {
      background: #fff;
      border-radius: 14px;
      display: grid;
      grid-template-columns: 200px 1fr;
      align-items: center;
      overflow: hidden;
      box-shadow: 0 2px 12px rgba(0,0,0,0.04);
      transition: transform .2s, box-shadow .2s;
    }
    .merit:hover {
      transform: translateX(4px);
      box-shadow: 0 6px 24px rgba(0,0,0,0.08);
    }
    .merit + .merit { margin-top: 20px; }
    /* 左：数値エリア */
    .merit__left {
      background: var(--navy);
      padding: 36px 28px;
      text-align: center;
      height: 100%;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
    }
    .merit__val {
      font-family: 'Poppins', sans-serif;
      font-size: 52px;
      font-weight: 900;
      color: var(--y);
      line-height: 1;
      margin-bottom: 6px;
    }
    /* sub は「万円〜」など単位用：数字より小さく、ベースラインに揃える */
    .merit__val sub { font-size: 18px; vertical-align: baseline; color: var(--y-mid); }
    /* フリートライアル表示：数字を大きく、単位を小さく */
    .merit__val--trial { font-size: 52px; line-height: 1; }
    .merit__val--trial sub { font-size: 16px; vertical-align: baseline; color: var(--y-mid); }
    .merit__sub { font-size: 12px; font-weight: 700; color: rgba(255,255,255,0.55); letter-spacing: 0.06em; }
    /* 右：テキストエリア */
    .merit__right { padding: 36px 40px; }
    .merit__title {
      font-size: 22px;
      font-weight: 700;
      color: var(--navy);
      margin-bottom: 10px;
    }
    .merit__body { font-size: 16px; color: var(--gray); line-height: 1.85; }

    /* 料金・導入セクション（まとめ形式） */
    .plan {
      padding: 100px 0;
      background: #fff;
      position: relative;
      overflow: hidden;
    }
    /* 装飾：斜めグラデーション線 */
    .plan::before {
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0;
      height: 4px;
      background: linear-gradient(to right, var(--y), var(--blue), var(--navy));
    }
    .plan__box {
      background: var(--navy);
      border-radius: 20px;
      overflow: hidden;
      display: grid;
      grid-template-columns: 1fr 1fr;
      position: relative;
    }
    /* 左：価格ハイライト */
    .plan__price-side {
      padding: 60px 5%; /* 水平5%×両側=コンテンツ幅90% */
      position: relative;
      overflow: hidden;
    }
    /* 装飾：円形 */
    .plan__price-side::after {
      content: '';
      position: absolute;
      bottom: -80px; left: -80px;
      width: 320px; height: 320px;
      border-radius: 50%;
      background: rgba(255,255,255,0.04);
      pointer-events: none;
    }
    .plan__price-label {
      font-family: 'Poppins', sans-serif;
      font-size: 10px;
      font-weight: 700;
      color: var(--y);
      letter-spacing: 0.3em;
      margin-bottom: 20px;
      display: block;
    }
    .plan__price-from { font-size: 16px; color: rgba(255,255,255,0.7); margin-bottom: 20px; font-weight: 600; }
    /* トライアル表示CSS（現在未使用） */
    /*
    .plan__trial-main { display: flex; flex-direction: row; align-items: flex-end; gap: 10px; margin-bottom: 28px; }
    .plan__trial-num { display: flex; align-items: flex-end; line-height: 1; }
    .plan__trial-num em { font-style: normal; font-size: 18px; color: #fff; font-weight: 700; line-height: 1; padding-bottom: 16px; }
    .plan__trial-num span { font-family: 'Poppins', sans-serif; font-size: 80px; font-weight: 900; color: var(--y); line-height: 1; }
    .plan__trial-num::after { content: '件'; font-size: 18px; font-weight: 700; color: #fff; padding-bottom: 16px; line-height: 1; }
    .plan__trial-sub { font-size: 22px; font-weight: 700; color: #fff; letter-spacing: 0.06em; line-height: 1; padding-bottom: 16px; margin-bottom: 0; }
    */
    .plan__price-intro {
      font-size: 15px;
      color: rgba(255,255,255,0.7);
      line-height: 1.8;
      position: relative;
      z-index: 1;
    }

    /* 導入ステップ */
    .plan__steps {
      display: flex;
      flex-direction: column;
      gap: 16px;
      margin-bottom: 8px;
    }
    .plan__step {
      display: flex;
      align-items: flex-start;
      gap: 16px;
    }
    /* ステップ番号 */
    .plan__step-num {
      font-family: 'Poppins', sans-serif;
      font-size: 28px;
      font-weight: 900;
      color: var(--y);
      line-height: 1;
      flex-shrink: 0;
      width: 44px;
    }
    /* ステップ本文 */
    .plan__step strong {
      display: block;
      font-size: 15px;
      font-weight: 700;
      color: #fff;
      margin-bottom: 2px;
    }
    .plan__step p {
      font-size: 13px;
      color: rgba(255,255,255,0.6);
      line-height: 1.6;
      margin: 0;
    }

    /* 料金説明ノート */
    .plan__pricing-note {
      background: rgba(255,255,255,0.08);
      border-left: 3px solid var(--y);
      border-radius: 0 8px 8px 0;
      padding: 16px 20px;
      margin-bottom: 28px;
      font-size: 14px;
      color: rgba(255,255,255,0.75);
      line-height: 1.8;
    }
    .plan__pricing-note strong { color: var(--y); }
    /* 区切り線 */
    .plan__divider {
      width: 1px;
      background: rgba(255,255,255,0.1);
      margin: 32px 0;
    }
    /* 右：特徴リスト */
    .plan__feat-side {
      padding: 60px 5%; /* 水平5%×両側=コンテンツ幅90% */
      background: rgba(255,255,255,0.04);
    }
    .plan__feat-title {
      font-size: 16px;
      font-weight: 700;
      color: rgba(255,255,255,0.5);
      letter-spacing: 0.06em;
      margin-bottom: 28px;
      font-family: 'Poppins', sans-serif;
    }
    .plan__feat-list { list-style: none; display: flex; flex-direction: column; gap: 20px; }
    .plan__feat-item {
      display: grid;
      grid-template-columns: auto 1fr;
      gap: 16px;
      align-items: start;
    }
    .plan__feat-dot {
      width: 8px;
      height: 8px;
      border-radius: 50%;
      background: var(--y);
      margin-top: 9px;
      flex-shrink: 0;
    }
    .plan__feat-item h4 {
      font-size: 16px;
      font-weight: 700;
      color: #fff;
      margin-bottom: 3px;
    }
    .plan__feat-item p { font-size: 14px; color: rgba(255,255,255,0.55); line-height: 1.7; }
    /* トライアル枠 */
    .plan__trial {
      margin-top: 28px;
      background: rgba(232,180,0,0.12);
      border: 1px solid rgba(232,180,0,0.25);
      border-radius: 10px;
      padding: 20px 24px;
    }
    .plan__trial p { font-size: 14px; color: rgba(255,255,255,0.7); line-height: 1.75; }
    .plan__trial strong { color: var(--y); }

    /* CTAセクション */
    .cta {
      background: linear-gradient(135deg, var(--blue-d) 0%, var(--navy) 60%);
      padding: 100px 0;
      position: relative;
      overflow: hidden;
    }
    /* 装飾：背景に大文字 */
    .cta::before {
      content: 'Contact';
      position: absolute;
      bottom: -30px;
      right: -20px;
      font-family: 'Poppins', sans-serif;
      font-size: 180px;
      font-weight: 900;
      color: rgba(255,255,255,0.03);
      line-height: 1;
      pointer-events: none;
      user-select: none;
    }
    .cta__in {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 72px;
      align-items: center;
      position: relative;
      z-index: 1;
    }
    .cta__checks {
      list-style: none;
      display: flex;
      flex-direction: column;
      gap: 16px;
      margin: 32px 0 40px;
    }
    .cta__check {
      display: flex;
      align-items: center;
      gap: 14px;
      font-size: 16px;
      color: rgba(255,255,255,0.85);
    }
    .cta__dot {
      width: 20px;
      height: 20px;
      border-radius: 50%;
      background: var(--y);
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
      color: var(--navy);
      font-size: 10px;
      font-weight: 800;
    }
    .cta__btns { display: flex; gap: 14px; flex-wrap: wrap; }
    .cta__aside {
      margin-top: 24px;
      padding: 20px 24px;
      background: rgba(255,255,255,0.07);
      border-radius: 10px;
      font-size: 14px;
      color: rgba(255,255,255,0.65);
      line-height: 1.8;
    }
    .cta__aside strong { color: var(--y); }
    .cta__img { aspect-ratio: 4/3; border-radius: 12px; overflow: hidden; }
    .cta__img-el { width: 100%; height: 100%; object-fit: cover; display: block; }

    /* 販売主体表記セクション */
    .provider {
      background: var(--g-light);
      border-top: 1px solid var(--line);
      padding: 40px 0;
    }
    .provider__label {
      display: inline-block;
      font-size: 14px;
      font-weight: 700;
      letter-spacing: 0.15em;
      color: var(--blue);
      text-transform: uppercase;
      border: 1.5px solid var(--blue);
      border-radius: 4px;
      padding: 6px 20px;
      margin-bottom: 36px;
      /* ブロック全体を中央に */
      display: flex;
      justify-content: center;
      width: fit-content;
      margin-left: auto;
      margin-right: auto;
    }
    /* ロゴ×ロゴの協業レイアウト */
    .provider__logos {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 40px;
      margin-bottom: 32px;
    }
    .provider__logo-item {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 12px;
    }
    .provider__logo-key {
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 0.12em;
      color: var(--blue);
      text-transform: uppercase;
    }
    /* ロゴ画像：大きめに */
    .provider__logo {
      height: 64px;
      width: auto;
      max-width: 260px;
      display: block;
      object-fit: contain;
    }
    /* × マーク */
    .provider__cross {
      font-size: 28px;
      font-weight: 300;
      color: var(--blue);
      line-height: 1;
      margin-top: 20px; /* ラベル分の高さに合わせて下げる */
    }
    /* 説明文 */
    .provider__note {
      font-size: 13px;
      color: #888;
      line-height: 1.8;
      border-left: 3px solid var(--line);
      padding-left: 14px;
    }
    /* 製品名リンク */
    .provider__link {
      color: var(--blue);
      text-decoration: underline;
      text-underline-offset: 2px;
    }
    .provider__link:hover { color: var(--blue-d); }

    /* フッター */
    .footer {
      background: var(--navy);
      border-top: 1px solid rgba(255,255,255,0.08);
      padding: 36px 0;
    }
    .footer__in {
      display: flex;
      align-items: center;
      justify-content: space-between;
    }
    .footer__logo {
      display: flex;
      align-items: center;
      text-decoration: none; /* リンク化してもアンダーライン非表示 */
    }
    .footer__logo-img {
      height: 28px;
      width: auto;
      display: block;
    }
    .footer__link { font-size: 13px; color: rgba(255,255,255,0.45); text-decoration: underline; text-underline-offset: 3px; }
    /* フッターナビ：中央揃えテキストリンク群 */
    .footer__nav {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      flex-wrap: wrap;
    }
    .footer__nav-link {
      font-size: 13px;
      color: rgba(255,255,255,0.55);
      transition: color .2s;
    }
    .footer__nav-link:hover { color: #fff; }
    .footer__nav-sep {
      color: rgba(255,255,255,0.25);
      font-size: 12px;
    }
    .footer__copy { font-size: 12px; color: rgba(255,255,255,0.3); }

    /* レスポンシブ */
    @media (max-width: 960px) {
      .hero__in, .solution__in, .cta__in { grid-template-columns: 1fr; gap: 44px; }
      .hero__h1 { font-size: 36px; }
      /* レスポンシブ：2列 */
      .features__grid { gap: 16px; }
      .feature { flex: 0 0 calc((100% - 16px) / 2); } /* 2列：gap×1=16px分 */
      .merit { grid-template-columns: 160px 1fr; }
      .merit__val { font-size: 40px; }
      .plan__box { grid-template-columns: 1fr; }
      .plan__divider { display: none; }
    }
    @media (max-width: 640px) {
      .wrap { padding: 0 20px; }

      /* ロゴを縦並び */
      .provider__logos { flex-direction: column; gap: 20px; }
      .provider__cross { margin-top: 0; font-size: 22px; }

      /* ヒーロー */
      .hero { padding: 64px 0; }
      .hero__h1 { font-size: 8.5vw; } /* 画面幅に近いサイズに */
      .sh__title { font-size: 26px; }

      /* 課題カード：1列縦積み */
      .problem__grid { grid-template-columns: 1fr; }

      /* 機能カード：1列 */
      .feature { flex: 0 0 100%; }

      /* メリット */
      .merit { grid-template-columns: 1fr; }
      .merit__left { padding: 24px 20px; flex-direction: row; justify-content: flex-start; gap: 16px; }
      .merit__right { padding: 24px 20px; }

      /* 料金 */
      .plan__price-main { font-size: 52px; }
      .plan__price-side, .plan__feat-side { padding: 40px 5%; } /* 横幅90%を維持 */
      /* トライアル表示スマホ上書き（現在未使用）
      .plan__trial-main { flex-direction: column; align-items: flex-start; gap: 4px; }
      .plan__trial-sub { padding-bottom: 0; margin-bottom: 24px; }
      */

      /* スマホ：ヘッダーはテキストリンク・ボタンをまとめて非表示 */
      .header__nav { display: none; }

      /* フッター */
      .footer__in { flex-direction: column; gap: 12px; text-align: center; }

      /* 主な機能：1列に（orderはファイル末尾のブロックで制御） */
      .func-item { grid-template-columns: 1fr; gap: 28px; }

      /* お問い合わせエリアの画像を非表示 */
      .cta__img { display: none; }
      .cta__in { grid-template-columns: 1fr; }
    }

    /* 機能詳細セクション */
    .func-detail {
      padding: 100px 0;
      background: var(--g-light);
      position: relative;
    }
    /* セクション内の区切り線 */
    .func-detail__list {
      display: flex;
      flex-direction: column;
      gap: 0;
    }

    /* 各機能アイテム */
    .func-item {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 72px;
      align-items: center;
      padding: 72px 0;
      border-top: 1px solid var(--line);
    }
    .func-item:first-child { border-top: none; padding-top: 0; }

    /* 偶数アイテム：画像を右に */
    .func-item--rev .func-item__img { order: 2; }
    .func-item--rev .func-item__body { order: 1; }

    /* 画像エリア */
    .func-item__img {
      border-radius: 14px;
      overflow: hidden;
      box-shadow: 0 8px 40px rgba(21,44,71,0.12);
      background: var(--pale);
    }
    .func-item__img img {
      width: 100%;
      height: auto;
      display: block;
    }
    /* 横長すぎる画像（承認フロー等）はトリミング */
    .func-item__img--crop img {
      height: 220px;
      object-fit: cover;
      object-position: top;
    }

    /* テキストエリア */
    .func-item__num {
      font-family: 'Poppins', sans-serif;
      font-size: 10px;
      font-weight: 700;
      letter-spacing: 0.22em;
      color: var(--blue);
      display: block;
      margin-bottom: 14px;
    }
    .func-item__title {
      font-size: 22px;
      font-weight: 800;
      color: var(--navy);
      line-height: 1.45;
      margin-bottom: 18px;
    }
    .func-item__desc {
      font-size: 16px;
      color: var(--gray);
      line-height: 1.85;
      margin-bottom: 24px;
    }
    /* POINTバッジ付きリスト */
    .func-item__points {
      list-style: none;
      display: flex;
      flex-direction: column;
      gap: 10px;
    }
    .func-item__point {
      display: flex;
      align-items: flex-start;
      gap: 12px;
      font-size: 15px;
      color: var(--navy);
      font-weight: 500;
      line-height: 1.5;
    }
    .func-item__point::before {
      content: 'POINT';
      font-family: 'Poppins', sans-serif;
      font-size: 9px;
      font-weight: 700;
      letter-spacing: 0.08em;
      color: var(--navy);
      background: var(--y);
      padding: 2px 7px;
      border-radius: 3px;
      flex-shrink: 0;
      margin-top: 2px;
    }

    /* セキュリティ：フルwidth + 3列カード */
    .func-item--security {
      grid-template-columns: 1fr;
      gap: 36px;
    }
    .func-security__cards {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 20px;
    }
    .func-security__card {
      background: #fff;
      border-radius: 14px;
      padding: 32px 28px;
      box-shadow: 0 2px 16px rgba(0,0,0,0.05);
      display: flex;
      flex-direction: column;
      gap: 14px;
    }
    .func-security__badge {
      font-family: 'Poppins', sans-serif;
      font-size: 9px;
      font-weight: 700;
      letter-spacing: 0.1em;
      color: var(--navy);
      background: var(--y);
      padding: 3px 10px;
      border-radius: 3px;
      display: inline-block;
      align-self: flex-start;
    }
    .func-security__card h4 {
      font-size: 16px;
      font-weight: 700;
      color: var(--navy);
      line-height: 1.5;
    }

    @media (max-width: 960px) {
      .func-item { grid-template-columns: 1fr; gap: 32px; }
      .func-item--rev .func-item__img,
      .func-item--rev .func-item__body { order: unset; }
      .func-security__cards { grid-template-columns: 1fr 1fr; }
    }

    /* 主な機能：スマホ専用レイアウト（このブロックはfunc-itemCSSより後に記述） */
    @media (max-width: 640px) {
      /* 全アイテム：テキスト上・画像・カード下に統一 */
      .func-item .func-item__body,
      .func-item--rev .func-item__body { order: 1; }
      .func-item .func-item__img,
      .func-item--rev .func-item__img  { order: 2; }
      /* セキュリティ：3ボックスも見出しの下に */
      .func-security__cards { order: 2; grid-template-columns: 1fr; }
    }