:root {
      /* ロゴの3色 */
      --navy-900:  #1B3A5F;
      --navy-800:  #1E4A70;
      --teal-500:  #2DB3A3;
      --teal-400:  #3DC5B5;
      --teal-100:  #CBF0EC;
      --teal-50:   #EDF9F8;
      --orange-500:#F07A3A;
      --orange-600:#D96A2C;
      /* Slate */
      --slate-900: #0F172A;
      --slate-700: #334155;
      --slate-500: #64748B;
      --slate-200: #E2E8F0;
      --slate-50:  #F8FAFC;
      --white:     #FFFFFF;

      --color-primary:      var(--teal-500);
      --color-primary-dark: var(--navy-900);
      --color-primary-light:var(--teal-100);
      --color-primary-bg:   var(--teal-50);
      --color-cta:          var(--orange-500);
      --color-cta-dark:     var(--orange-600);
      --color-text:         var(--slate-900);
      --color-text-muted:   var(--slate-500);
      --color-border:       var(--slate-200);

      --font-display: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
      --font-base:    'Noto Sans JP', sans-serif;
      --radius-sm:    6px;
      --radius:       12px;
      --radius-lg:    20px;
      --radius-xl:    32px;
      --shadow-sm:    0 2px 8px rgba(0,0,0,0.05);
      --shadow:       0 4px 24px rgba(0,0,0,0.07);
      --shadow-lg:    0 14px 44px rgba(0,0,0,0.10);
      --shadow-cta:   0 6px 24px rgba(240,122,58,0.35);
      --shadow-teal:  0 6px 24px rgba(45,179,163,0.25);
      /* 旧indigo変数を新ブランドカラーにマッピング */
      --indigo-950: var(--navy-900);
      --indigo-900: var(--navy-800);
      --indigo-700: var(--teal-500);
      --indigo-600: var(--teal-500);
      --indigo-500: var(--teal-400);
      --indigo-200: var(--teal-100);
      --indigo-100: var(--teal-100);
      --indigo-50:  var(--teal-50);
      --indigo-300: var(--teal-100);
      --amber-500:  var(--orange-500);
      --amber-600:  var(--orange-600);
    }

    /* ===== Reset (scoped to .lp-wrap) ===== */
    .lp-wrap *, .lp-wrap *::before, .lp-wrap *::after { box-sizing: border-box; margin: 0; padding: 0; }
    html { scroll-behavior: smooth; }
    .lp-wrap { font-family: var(--font-base); color: var(--color-text); background: var(--white); line-height: 1.7; -webkit-font-smoothing: antialiased; }
    .lp-wrap a { text-decoration: none; color: inherit; }
    .lp-wrap ul { list-style: none; }
    .lp-wrap button { cursor: pointer; border: none; background: none; font-family: var(--font-base); }

    /* ===== Animations ===== */
    @keyframes fadeInUp { from { opacity:0; transform:translateY(24px); } to { opacity:1; transform:translateY(0); } }
    @keyframes marquee  { 0% { transform:translateX(0); } 100% { transform:translateX(-50%); } }
    @keyframes pulse    { 0%,100% { transform:scale(1); } 50% { transform:scale(1.08); } }
    @keyframes float    { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-8px); } }

    .lp-wrap .fade-in { opacity:0; transform:translateY(24px); transition: opacity 0.65s ease, transform 0.65s ease; }
    .lp-wrap .fade-in.visible    { opacity:1; transform:translateY(0); }
    .lp-wrap .delay-1 { transition-delay:.1s; }
    .lp-wrap .delay-2 { transition-delay:.2s; }
    .lp-wrap .delay-3 { transition-delay:.3s; }
    .lp-wrap .delay-4 { transition-delay:.4s; }

    /* ===== Layout ===== */
    .lp-wrap .container { max-width:1100px; margin:0 auto; padding:0 24px; }
    .lp-wrap .section    { padding:88px 0; }
    .lp-wrap .section--bg     { background: var(--color-primary-bg); }
    .lp-wrap .section--dark   { background: linear-gradient(135deg, var(--indigo-950) 0%, var(--indigo-900) 100%); color: var(--white); }
    .lp-wrap .section--stripe { background: linear-gradient(180deg, var(--indigo-50) 0%, #F5F3FF 100%); }

    /* ===== Section headings ===== */
    .lp-wrap .eyebrow {
      display: block;
      text-align: center;
      font-size: .72rem;
      font-weight: 700;
      letter-spacing: .14em;
      text-transform: uppercase;
      color: var(--color-primary);
      margin-bottom: 12px;
    }
    .lp-wrap .section--dark .eyebrow { color: #7FDBCF; }
    .lp-wrap .section-title {
      font-family: var(--font-display);
      font-size: clamp(1.45rem,3vw,2.3rem);
      font-weight: 900;
      text-align: center;
      line-height: 1.45;
      letter-spacing: -.015em;
      margin-bottom: 16px;
      color: var(--slate-900);
      text-wrap: pretty;
    }
    .lp-wrap .section--dark .section-title { color: var(--white); }
    .lp-wrap .section-sub {
      text-align: center;
      color: var(--color-text-muted);
      font-size: .93rem;
      line-height: 1.9;
      max-width: 620px;
      margin: 0 auto 52px;
      letter-spacing: .01em;
      text-wrap: pretty;
    }
    .lp-wrap .section--dark .section-sub { color: #CBF0EC; }

    /* ===== Buttons ===== */
    .lp-wrap .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      font-family: var(--font-display);
      font-weight: 700;
      border-radius: 50px;
      transition: all .22s ease;
      cursor: pointer;
      white-space: nowrap;
    }
    .lp-wrap .btn--cta {
      padding: 17px 38px;
      background: var(--color-cta);
      color: var(--white);
      font-size: 1.02rem;
      letter-spacing: .03em;
      box-shadow: var(--shadow-cta);
      position: relative;
      overflow: hidden;
    }
    .lp-wrap .btn--cta::before {
      content: '';
      position: absolute; inset: 0;
      background: linear-gradient(135deg, rgba(255,255,255,.15) 0%, transparent 50%);
      pointer-events: none;
    }
    .lp-wrap .btn--cta:hover { background: var(--color-cta-dark); transform: translateY(-3px); box-shadow: 0 10px 32px rgba(240,122,58,.45); }
    .lp-wrap .btn--outline {
      padding: 15px 36px;
      background: transparent;
      color: var(--color-primary);
      border: 2px solid var(--color-primary);
      font-size: 1rem;
    }
    .lp-wrap .btn--outline:hover { background: var(--color-primary); color: var(--white); transform: translateY(-2px); }
    .lp-wrap .btn--white {
      padding: 17px 36px;
      background: var(--white);
      color: var(--color-primary);
      font-size: 1rem;
      box-shadow: var(--shadow);
    }
    .lp-wrap .btn--white:hover { background: var(--indigo-50); transform: translateY(-2px); }
    .lp-wrap .btn--sm { padding: 10px 22px; font-size: .82rem; }
    .lp-wrap .btn--full { width: 100% !important; max-width: 100% !important; }

    /* ===== Header (scoped to .lp-wrap) ===== */
    .lp-wrap .header {
      position: fixed; top:0; left:0; right:0; z-index:100;
      background: rgba(255,255,255,.92);
      backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
      border-bottom: 1px solid rgba(0,0,0,.05);
      box-shadow: 0 1px 8px rgba(0,0,0,.04);
      transition: box-shadow .3s ease;
    }
    .lp-wrap .header__inner {
      display: flex; align-items: center; justify-content: space-between;
      height: 64px; padding: 0 32px;
    }
    .lp-wrap .header__logo {
      display: flex; align-items: center;
    }
    .lp-wrap .header__logo img { height: 36px; width: auto; display: block; }
    .lp-wrap .header__nav { display: flex; gap: 10px; align-items: center; }

    /* ===== Hero ===== */
    .lp-wrap .hero {
      padding-top: 64px;
      background: var(--white);
      overflow: hidden;
      position: relative;
    }
    /* 右半分にティール薄背景 */
    .lp-wrap .hero::before {
      content: '';
      position: absolute; top:0; right:0;
      width: 52%; height: 100%;
      background: var(--teal-50);
      clip-path: polygon(6% 0, 100% 0, 100% 100%, 0% 100%);
      z-index: 0;
    }
    .lp-wrap .hero__grid {
      display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 0 48px;
      align-items: center;
      min-height: calc(100vh - 64px);
      padding: 72px 0 88px;
      position: relative; z-index: 1;
    }
    /* Desktop: text + cta in left column, visual in right */
    .lp-wrap .hero__text { grid-column: 1; grid-row: 1; align-self: end; }
    .lp-wrap .hero__cta { grid-column: 1; grid-row: 2; align-self: start; }
    .lp-wrap .hero__visual { grid-column: 2; grid-row: 1 / 3; align-self: center; }
    .lp-wrap .hero__label {
      display: inline-flex; align-items: center; gap: 8px;
      background: var(--teal-50); border-radius: 50px;
      border: 1px solid var(--teal-100);
      padding: 5px 14px; font-size: .75rem; font-weight: 700;
      color: var(--navy-900); margin-bottom: 18px;
      animation: fadeInUp .5s ease both;
    }
    .lp-wrap .hero__label-dot {
      width: 7px; height: 7px; background: var(--amber-500);
      border-radius: 50%; animation: pulse 2s ease infinite;
    }
    .lp-wrap .hero__eyebrow {
      font-size: .9rem; font-weight: 700; color: var(--indigo-700);
      margin-bottom: 12px;
      animation: fadeInUp .5s .08s ease both;
    }
    .lp-wrap .hero__title {
      font-family: var(--font-display); font-weight: 900;
      font-size: clamp(1.6rem,3vw,2.5rem); line-height: 1.4;
      letter-spacing: -.02em;
      color: var(--indigo-950); margin-bottom: 24px;
      animation: fadeInUp .55s .12s ease both;
    }
    .lp-wrap .hero__title em {
      font-style: normal;
      color: var(--teal-500);
      -webkit-text-fill-color: var(--teal-500);
    }
    .lp-wrap .hero__body {
      font-size: .93rem; color: #3D4B6B; line-height: 1.9;
      margin-bottom: 36px;
      letter-spacing: .015em;
      animation: fadeInUp .55s .18s ease both;
      text-align: left;
    }
    .lp-wrap .hero__cta { animation: fadeInUp .55s .25s ease both; }
    .lp-wrap .hero__btns { display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
    .lp-wrap .hero__assurance {
      display: flex; gap: 16px; flex-wrap: wrap; margin-top: 10px;
    }
    .lp-wrap .hero__assurance-item {
      font-size: .75rem; color: #3D4B6B; font-weight: 500;
      display: flex; align-items: center; gap: 5px;
    }
    .lp-wrap .hero__assurance-item::before {
      content: '';
      display: inline-block; width: 14px; height: 14px;
      background: var(--indigo-700); border-radius: 50%;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M2.5 6L5 8.5L9.5 4' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
      background-size: contain; flex-shrink:0;
    }

    /* Hero visual */
    .lp-wrap .hero__visual {
      position: relative;
      animation: fadeInUp .6s .3s ease both;
      overflow: visible;
    }
    .lp-wrap .hero__person-wrap {
      position: relative;
      width: 120%;
      margin-left: -10%;
      margin-top: -30px;
    }
    .lp-wrap .hero__person-wrap img {
      width: 100%;
      height: auto;
      border-radius: var(--radius-lg);
      object-fit: cover;
      filter: drop-shadow(0 8px 24px rgba(0,0,0,.08));
    }
    /* カードオーバーレイ（右下） */
    .lp-wrap .hero__overlay-cards {
      position: absolute;
      bottom: -18px; right: -14px;
      display: grid; grid-template-columns: 1fr 1fr; gap: 6px;
      width: 210px;
    }
    .lp-wrap .hero__mini-card {
      background: var(--white);
      border-radius: 10px;
      padding: 8px 10px; box-shadow: var(--shadow-lg);
    }
    .lp-wrap .hero__mini-icon {
      width: 22px; height: 22px; border-radius: 5px;
      background: var(--teal-50);
      display: flex; align-items: center; justify-content: center;
      margin-bottom: 4px;
    }
    .lp-wrap .hero__mini-icon svg { width: 12px; height: 12px; color: var(--teal-500); }
    .lp-wrap .hero__mini-label {
      font-size: .62rem; font-weight: 700; color: var(--slate-700); line-height: 1.35;
    }

    /* ===== Client Zone (Scrolling Logos) ===== */
    .lp-wrap .clients-section {
      padding: 40px 0 44px;
      background: var(--white);
      border-bottom: 1px solid var(--color-border);
      overflow: hidden;
    }
    .lp-wrap .clients-section__label {
      text-align: center; font-size: .78rem; font-weight: 600;
      color: var(--color-text-muted); letter-spacing: .08em;
      text-transform: uppercase; margin-bottom: 28px;
    }
    .lp-wrap .scroll-infinity__wrap {
      display: flex;
      overflow: hidden;
      margin-bottom: 8px;
      width: 100%;
    }
    .lp-wrap .scroll-infinity__list {
      display: flex;
      list-style: none;
      padding: 0; margin: 0;
      width: fit-content;
    }
    .lp-wrap .scroll-infinity__list--left { animation: marquee-left 80s linear infinite; }
    .lp-wrap .scroll-infinity__list--right { animation: marquee-right 80s linear infinite; }
    .lp-wrap .scroll-infinity__item {
      flex: 0 0 auto;
      width: 148px;
      margin: 0 24px;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .lp-wrap .scroll-infinity__item img {
      max-width: 100%; height: auto;
      max-height: 44px;
      opacity: 0.8;
    }
    @keyframes marquee-left {
      0% { transform: translateX(0); }
      100% { transform: translateX(-50%); }
    }
    @keyframes marquee-right {
      0% { transform: translateX(-50%); }
      100% { transform: translateX(0); }
    }

    /* ===== Problem ===== */
    .lp-wrap .problem__grid {
      display: grid; grid-template-columns: repeat(2,1fr); gap: 14px;
      max-width: 860px; margin: 0 auto;
    }
    .lp-wrap .problem__item {
      padding: 22px 24px;
      background: rgba(255,255,255,.04);
      border: 1px solid rgba(255,255,255,.08);
      border-left: 4px solid var(--teal-400);
      border-radius: 0 var(--radius) var(--radius) 0;
      color: rgba(255,255,255,.88);
      font-family: var(--font-display);
      font-size: .9rem; font-weight: 700; line-height: 1.75;
      backdrop-filter: blur(4px);
      display: flex; flex-direction: column; justify-content: center;
    }
    /* problem items are non-interactive — no hover */
    .lp-wrap .problem__item-text { display: block; margin-bottom: 2px; }
    .lp-wrap .problem__item strong { color: var(--teal-400); font-weight: 900; }
    .lp-wrap .problem__item-quote {
      display: block; font-size: .72rem; font-weight: 700; letter-spacing: .08em;
      color: var(--teal-400); margin-bottom: 6px; text-transform: uppercase;
    }
    .lp-wrap .problem__item-result {
      display: block; margin-top: 8px;
      font-size: .82rem; font-weight: 500; font-family: var(--font-base);
      color: rgba(255,255,255,.5);
      padding-left: 2px;
    }
    .lp-wrap .problem__cta-box {
      margin-top: 48px; padding: 32px 40px;
      background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.14);
      border-radius: var(--radius-lg); text-align: center;
    }
    .lp-wrap .problem__cta-text {
      font-size: 1.02rem; color: rgba(255,255,255,.9);
      line-height: 1.8; margin-bottom: 24px;
      text-wrap: pretty;
    }
    .lp-wrap .problem__cta-text em { color: #7FDBCF; font-style: normal; font-weight: 700; }

    /* ===== Phase Cards ===== */
    .lp-wrap .phase-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; align-items: stretch; }
    .lp-wrap .phase-card {
      background: var(--white); border-radius: var(--radius-lg);
      overflow: hidden; box-shadow: var(--shadow);
      transition: all .35s cubic-bezier(.25,.8,.25,1); display: flex; flex-direction: column;
      cursor: pointer;
      border: 2px solid transparent;
    }
    .lp-wrap .phase-card:hover {
      transform: translateY(-6px); box-shadow: var(--shadow-lg);
    }
    .lp-wrap .phase-card.active {
      transform: translateY(-6px); box-shadow: 0 14px 44px rgba(45,179,163,.18);
      border-color: var(--teal-400);
    }
    .lp-wrap .phase-card__head {
      background: linear-gradient(135deg, var(--navy-900), var(--teal-500));
      padding: 20px 22px; color: var(--white);
      display: flex; flex-direction: column; justify-content: center;
      min-height: 130px;
    }
    .lp-wrap .phase-card__num {
      font-size: .68rem; font-weight: 700; letter-spacing: .1em;
      opacity: .7; margin-bottom: 8px;
    }
    .lp-wrap .phase-card__situation {
      font-family: var(--font-display); font-size: .92rem;
      font-weight: 900; line-height: 1.55;
    }
    .lp-wrap .phase-card__body {
      padding: 18px 22px; flex: 1;
      display: flex; flex-direction: column; justify-content: center;
    }
    .lp-wrap .phase-card__service {
      font-family: var(--font-display); font-size: 1.15rem; font-weight: 900;
      color: var(--color-primary); margin-bottom: 12px;
      padding-bottom: 10px; border-bottom: 2px solid var(--indigo-100);
    }
    .lp-wrap .phase-card__detail-btn {
      display: inline-flex; align-items: center; gap: 6px;
      font-size: .82rem; font-weight: 700; color: var(--color-primary);
      background: var(--teal-50); border: 1.5px solid var(--teal-100);
      border-radius: 50px; padding: 8px 18px;
      transition: all .22s ease; cursor: pointer;
    }
    .lp-wrap .phase-card__detail-btn-arrow {
      transition: transform .22s ease; display: inline-block;
    }
    .lp-wrap .phase-card:hover .phase-card__detail-btn {
      background: var(--color-primary); color: var(--white); border-color: var(--color-primary);
    }
    .lp-wrap .phase-card:hover .phase-card__detail-btn-arrow { transform: translateX(3px); }
    .lp-wrap .phase-card.active .phase-card__detail-btn {
      background: var(--color-primary); color: var(--white); border-color: var(--color-primary);
    }

    /* ===== Service Detail Panel ===== */
    .lp-wrap .service-detail { margin-top: 24px; }
    .lp-wrap .service-detail__panels {
      background: var(--white); border-radius: var(--radius-lg);
      border: 1.5px solid var(--color-border);
      overflow: hidden;
      box-shadow: var(--shadow-sm);
    }
    .lp-wrap .service-detail__panel { display: none; }
    .lp-wrap .service-detail__panel.active { display: block; }
    .lp-wrap .service-detail__panel-inner {
      display: grid; grid-template-columns: 1.2fr .8fr; gap: 0;
    }
    .lp-wrap .service-detail__info { padding: 28px 32px; }
    .lp-wrap .service-detail__side {
      padding: 28px 28px;
      background: var(--teal-50);
      border-left: 1.5px solid var(--color-border);
      display: flex; flex-direction: column; justify-content: center;
    }
    .lp-wrap .service-detail__badge {
      display: inline-block; background: var(--indigo-100); color: var(--indigo-700);
      font-size: .72rem; font-weight: 700; letter-spacing: .06em;
      padding: 4px 12px; border-radius: 50px; margin-bottom: 14px;
    }
    .lp-wrap .service-detail__title {
      font-family: var(--font-display); font-size: 1.5rem; font-weight: 900;
      color: var(--indigo-950); margin-bottom: 14px; line-height: 1.35;
    }
    .lp-wrap .service-detail__desc {
      font-size: .93rem; color: var(--color-text-muted); line-height: 1.85;
      margin-bottom: 20px;
    }
    .lp-wrap .service-detail__list-title {
      font-size: .8rem; font-weight: 700; color: var(--color-primary);
      letter-spacing: .06em; text-transform: uppercase; margin-bottom: 10px;
    }
    .lp-wrap .service-detail__list { display: flex; flex-direction: column; gap: 8px; margin-bottom: 20px; }
    .lp-wrap .service-detail__list-item {
      display: flex; align-items: flex-start; gap: 10px;
      font-size: .9rem; color: var(--slate-700); line-height: 1.6;
    }
    .lp-wrap .service-detail__list-item-dot {
      width: 18px; height: 18px; flex-shrink: 0; margin-top: 3px;
      background: var(--indigo-100); border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
    }
    .lp-wrap .service-detail__list-item-dot svg { width: 10px; height: 10px; color: var(--color-primary); }
    .lp-wrap .service-detail__outcome {
      background: linear-gradient(135deg, var(--indigo-900), var(--indigo-700));
      border-radius: var(--radius); padding: 20px 24px; color: var(--white);
    }
    .lp-wrap .service-detail__outcome-label {
      font-size: .72rem; font-weight: 700; letter-spacing: .08em;
      color: #7FDBCF; margin-bottom: 8px;
    }
    .lp-wrap .service-detail__outcome-text {
      font-size: .92rem; line-height: 1.75; color: rgba(255,255,255,.9);
    }
    .lp-wrap .service-detail__who-title {
      font-size: .8rem; font-weight: 700; color: var(--color-primary);
      letter-spacing: .06em; text-transform: uppercase; margin-bottom: 10px;
    }
    .lp-wrap .service-detail__who-list { display: flex; flex-direction: column; gap: 6px; }
    .lp-wrap .service-detail__who-item {
      display: flex; align-items: center; gap: 10px;
      font-size: .84rem; color: var(--slate-700);
      background: var(--white); border-radius: var(--radius-sm);
      padding: 9px 12px; box-shadow: var(--shadow-sm);
    }
    .lp-wrap .service-detail__who-icon {
      width: 24px; height: 24px; border-radius: 5px;
      background: var(--indigo-100);
      display: flex; align-items: center; justify-content: center;
      flex-shrink: 0;
    }
    .lp-wrap .service-detail__who-icon svg { width: 14px; height: 14px; color: var(--color-primary); }
    /* 研修ティア */
    .lp-wrap .training-tiers { display: flex; flex-direction: column; gap: 12px; margin-top: 12px; }
    .lp-wrap .training-tier {
      border: 1.5px solid var(--color-border); border-radius: var(--radius);
      overflow: hidden;
    }
    .lp-wrap .training-tier__head {
      display: flex; align-items: center; gap: 12px;
      padding: 12px 16px;
    }
    .lp-wrap .training-tier__head--green { background: #ECFDF5; }
    .lp-wrap .training-tier__head--yellow { background: #FFFBEB; }
    .lp-wrap .training-tier__head--red { background: #FEF2F2; }
    .lp-wrap .training-tier__level {
      font-size: .7rem; font-weight: 700; letter-spacing: .06em;
      padding: 2px 8px; border-radius: 50px; white-space: nowrap;
    }
    .lp-wrap .training-tier__level--green { background: #D1FAE5; color: #065F46; }
    .lp-wrap .training-tier__level--yellow { background: #FDE68A; color: #92400E; }
    .lp-wrap .training-tier__level--red { background: #FEE2E2; color: #991B1B; }
    .lp-wrap .training-tier__title { font-family: var(--font-display); font-size: .92rem; font-weight: 900; color: var(--slate-900); }
    .lp-wrap .training-tier__body { padding: 12px 16px; }
    .lp-wrap .training-tier__row { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; font-size: .84rem; margin-bottom: 4px; color: var(--slate-700); }
    .lp-wrap .training-tier__row:last-child { margin-bottom: 0; }
    .lp-wrap .training-tier__label { font-weight: 700; color: var(--slate-500); font-size: .75rem; white-space: nowrap; }
    .lp-wrap .training-tier__val { font-weight: 700; color: var(--color-primary-dark); }
    /* コンサルSTEP */
    .lp-wrap .consult-steps { display: flex; flex-direction: column; gap: 0; margin-top: 12px; }
    .lp-wrap .consult-step {
      display: grid; grid-template-columns: 52px 1fr; gap: 0;
      position: relative;
    }
    .lp-wrap .consult-step:not(:last-child)::before {
      content: ''; position: absolute; left: 17px; top: 44px; bottom: 0;
      width: 2px; background: var(--teal-100); z-index: 0;
    }
    .lp-wrap .consult-step__num {
      width: 36px; height: 36px; border-radius: 50%;
      background: var(--teal-500); color: var(--white);
      font-family: var(--font-display); font-size: .78rem; font-weight: 900;
      display: flex; align-items: center; justify-content: center;
      flex-shrink: 0; margin-top: 8px; position: relative; z-index: 1;
    }
    .lp-wrap .consult-step__content { padding: 6px 0 20px 8px; }
    .lp-wrap .consult-step__title { font-family: var(--font-display); font-size: .9rem; font-weight: 900; color: var(--navy-900); margin-bottom: 3px; }
    .lp-wrap .consult-step__desc { font-size: .83rem; color: var(--slate-500); line-height: 1.65; }
    /* 構築メニューテーブル */
    .lp-wrap .build-table { width: 100%; border-collapse: collapse; margin-top: 12px; font-size: .83rem; }
    .lp-wrap .build-table th { background: var(--navy-900); color: var(--white); padding: 8px 12px; text-align: left; font-size: .72rem; font-weight: 700; letter-spacing: .04em; }
    .lp-wrap .build-table td { padding: 10px 12px; border-bottom: 1px solid var(--color-border); vertical-align: top; line-height: 1.55; }
    .lp-wrap .build-table tr:last-child td { border-bottom: none; }
    .lp-wrap .build-table tr:nth-child(even) td { background: var(--slate-50); }
    .lp-wrap .build-table__price { font-family: var(--font-display); font-weight: 900; color: var(--color-primary-dark); white-space: nowrap; }
    /* 金額感ボックス */
    .lp-wrap .service-detail__price-box {
      margin-top: 16px;
      background: var(--navy-900);
      border-radius: var(--radius);
      padding: 14px 16px;
    }
    .lp-wrap .service-detail__price-label {
      font-size: .72rem; font-weight: 700; letter-spacing: .08em;
      text-transform: uppercase; color: var(--teal-400); margin-bottom: 4px;
    }
    .lp-wrap .service-detail__price {
      font-family: var(--font-display); font-size: 1.6rem; font-weight: 900;
      color: var(--white); line-height: 1.2; margin-bottom: 6px;
    }
    .lp-wrap .service-detail__price-note {
      font-size: .76rem; line-height: 1.6; color: rgba(255,255,255,.6);
    }

    /* ===== Trust Section ===== */
    .lp-wrap .trust-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; align-items: stretch; }
    .lp-wrap .trust-card {
      background: var(--white); border-radius: var(--radius-lg);
      padding: 32px 28px;
      display: flex; flex-direction: column; align-items: center;
      text-align: center;
      border: 1px solid var(--color-border);
      box-shadow: var(--shadow);
      position: relative;
      overflow: hidden;
    }
    .lp-wrap .trust-card::before {
      content: '';
      position: absolute; top: 0; left: 0; right: 0;
      height: 3px;
      background: linear-gradient(90deg, var(--navy-900), var(--teal-500));
    }
    /* trust cards are non-interactive — no hover */
    .lp-wrap .trust-card__icon {
      width: 52px; height: 52px; border-radius: var(--radius);
      background: var(--indigo-50);
      display: flex; align-items: center; justify-content: center;
      margin: 0 auto 14px;
    }
    .lp-wrap .trust-card__icon img { width: 24px; height: 24px; }
    /* TPM badge variant — refined */
    .lp-wrap .trust-card__badge {
      background: linear-gradient(160deg, var(--navy-900) 0%, var(--navy-800) 60%, var(--teal-500) 140%);
      border-radius: var(--radius); padding: 14px 22px;
      display: inline-flex; flex-direction: column; align-items: center;
      margin: 0 auto 14px; color: var(--white);
      position: relative; overflow: hidden;
      box-shadow: 0 4px 16px rgba(27,58,95,.25);
    }
    .lp-wrap .trust-card__badge::before {
      content: '';
      position: absolute; top: 0; left: 0; right: 0;
      height: 2px;
      background: linear-gradient(90deg, var(--teal-400), var(--teal-100), var(--teal-400));
    }
    .lp-wrap .trust-card__badge-tpm {
      font-family: var(--font-display); font-weight: 900; font-size: 1.15rem; line-height: 1;
      letter-spacing: .18em; color: var(--white);
    }
    .lp-wrap .trust-card__badge-sub {
      font-size: .58rem; font-weight: 700; letter-spacing: .12em;
      color: var(--teal-400); margin-top: 5px; text-transform: uppercase;
    }
    .lp-wrap .trust-card__title {
      font-family: var(--font-display); font-size: 1rem; font-weight: 900;
      color: var(--slate-900); margin-bottom: 10px; line-height: 1.45;
    }
    .lp-wrap .trust-card__desc {
      font-size: .87rem; color: var(--color-text-muted); line-height: 1.8;
      text-align: center; flex: 1;
      text-wrap: pretty;
    }

    /* ===== Testimonials ===== */
    .lp-wrap .testimonials-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; align-items: stretch; }
    .lp-wrap .testimonial-card {
      background: var(--white); border-radius: var(--radius-lg);
      overflow: hidden; box-shadow: var(--shadow);
      border: 1px solid rgba(0,0,0,.04);
      display: flex; flex-direction: column;
    }
    /* testimonial cards are non-interactive — no hover */
    .lp-wrap .testimonial-card__photo {
      width: 100%; height: 160px;
      background: linear-gradient(135deg, var(--indigo-100), var(--indigo-50));
      position: relative;
      display: flex; align-items: center; justify-content: center;
      overflow: hidden;
    }
    /* Placeholder for actual photo */
    .lp-wrap .testimonial-card__photo-placeholder {
      width: 80px; height: 80px; border-radius: 50%;
      background: linear-gradient(135deg, var(--indigo-700), var(--indigo-500));
      display: flex; align-items: center; justify-content: center;
      font-family: var(--font-display); font-size: 1.8rem; font-weight: 900; color: var(--white);
      box-shadow: 0 4px 16px rgba(67,56,202,.3);
    }
    /* When real photo is inserted: .testimonial-card__photo img { width:100%; height:100%; object-fit:cover; } */
    .lp-wrap .testimonial-card__photo-tag {
      position: absolute; bottom: 10px; right: 10px;
      background: var(--color-primary); color: var(--white);
      font-size: .68rem; font-weight: 700; padding: 3px 10px; border-radius: 50px;
    }
    .lp-wrap .testimonial-card__body { padding: 22px 22px 24px; flex: 1; display: flex; flex-direction: column; justify-content: space-between; }
    .lp-wrap .testimonial-card__quote {
      font-size: .9rem; line-height: 1.85; color: var(--color-text);
      margin-bottom: 16px;
      padding-left: 16px;
      border-left: 3px solid var(--indigo-200, #CBF0EC);
    }
    .lp-wrap .testimonial-card__author { display: flex; gap: 10px; align-items: center; }
    .lp-wrap .testimonial-card__name { font-weight: 700; font-size: .88rem; color: var(--slate-900); }
    .lp-wrap .testimonial-card__role { font-size: .75rem; color: var(--color-text-muted); }

    /* ===== FAQ ===== */
    .lp-wrap .faq-list { max-width: 760px; margin: 0 auto; }
    .lp-wrap .faq-item {
      border: 1.5px solid var(--color-border); border-radius: var(--radius);
      margin-bottom: 10px; overflow: hidden; background: var(--white);
      transition: border-color .2s ease, box-shadow .2s ease;
    }
    .lp-wrap .faq-item:hover { border-color: var(--teal-100); }
    .lp-wrap .faq-item.open { border-color: var(--color-primary); box-shadow: 0 2px 12px rgba(45,179,163,.08); }
    .lp-wrap .faq-item__q {
      display: flex; align-items: center; gap: 14px;
      padding: 18px 22px; width: 100%; text-align: left;
      font-weight: 700; font-size: .93rem; color: var(--slate-900);
      transition: background .2s;
    }
    .lp-wrap .faq-item__q:hover { background: var(--color-primary-bg); }
    .lp-wrap .faq-item__q-mark {
      font-family: var(--font-display); font-size: .9rem; font-weight: 900;
      color: var(--color-primary); flex-shrink: 0; width: 22px;
    }
    .lp-wrap .faq-item__q-text { flex: 1; }
    .lp-wrap .faq-item__toggle {
      width: 26px; height: 26px; border-radius: 50%; flex-shrink: 0;
      background: var(--indigo-100); color: var(--color-primary);
      display: flex; align-items: center; justify-content: center;
      transition: transform .3s, background .2s;
      font-size: 1.1rem; font-weight: 700; line-height: 1;
    }
    .lp-wrap .faq-item.open .faq-item__toggle {
      transform: rotate(45deg);
      background: var(--color-primary); color: var(--white);
    }
    .lp-wrap .faq-item__a {
      display: grid;
      grid-template-rows: 0fr;
      transition: grid-template-rows .4s ease, padding .3s;
      padding: 0 22px; background: var(--color-primary-bg);
      font-size: .9rem; line-height: 1.85; color: var(--color-text-muted);
    }
    .lp-wrap .faq-item__a > * { overflow: hidden; }
    .lp-wrap .faq-item.open .faq-item__a { grid-template-rows: 1fr; padding: 18px 22px; }

    /* ===== CTA ===== */
    .lp-wrap .cta-section {
      background: linear-gradient(135deg, var(--indigo-950) 0%, var(--indigo-900) 100%);
      padding: 88px 0; text-align: center; position: relative; overflow: hidden;
    }
    .lp-wrap .cta-section::before {
      content:''; position:absolute; top:-80px; left:-80px;
      width:360px; height:360px;
      background: radial-gradient(circle, rgba(99,102,241,.15) 0%, transparent 70%);
      pointer-events:none;
    }
    .lp-wrap .cta-section::after {
      content:''; position:absolute; bottom:-60px; right:-60px;
      width:300px; height:300px;
      background: radial-gradient(circle, rgba(167,139,250,.1) 0%, transparent 70%);
      pointer-events:none;
    }
    .lp-wrap .cta-section__inner { position:relative; z-index:1; }
    .lp-wrap .cta-section__label {
      display:inline-block; background:rgba(255,255,255,.1);
      border:1px solid rgba(255,255,255,.2); border-radius:50px;
      padding: 5px 18px; font-size:.78rem; font-weight:700; color:var(--white);
      margin-bottom: 18px; letter-spacing:.06em;
    }
    .lp-wrap .cta-section__title {
      font-family:var(--font-display); font-size:clamp(1.7rem,3vw,2.5rem);
      font-weight:900; color:var(--white); line-height:1.4; margin-bottom:14px;
    }
    .lp-wrap .cta-section__sub {
      font-size:.95rem; color:rgba(255,255,255,.78); line-height:1.85;
      margin-bottom:40px; max-width:520px; margin-left:auto; margin-right:auto;
      text-wrap:balance;
    }
    .lp-wrap .cta-form {
      background:var(--white); border-radius:var(--radius-xl);
      padding:40px 44px; max-width:540px; margin:0 auto;
      box-shadow:0 24px 64px rgba(0,0,0,.20), 0 8px 20px rgba(0,0,0,.06); text-align:left;
      border: 1px solid rgba(255,255,255,.12);
    }

    /* ===== HubSpot Form Styles ===== */
    .lp-wrap #hubspot-form-container .hs-form-field { margin-bottom: 18px; }
    .lp-wrap #hubspot-form-container label:not(.hs-error-msg) {
      display: block; font-size: .85rem; font-weight: 700;
      color: var(--slate-700); margin-bottom: 6px;
    }
    /* WPテーマによるフォーム幅制約を打消し */
    .lp-wrap #hubspot-form-container .hs-form-field > .input,
    .lp-wrap #hubspot-form-container .hs-submit,
    .lp-wrap #hubspot-form-container .hs-submit .actions {
      width: 100% !important;
      max-width: 100% !important;
      box-sizing: border-box !important;
    }
    /* テキスト入力・テキストエリア・セレクト共通 */
    .lp-wrap #hubspot-form-container .hs-input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]) {
      width: 100% !important; padding: 12px 14px;
      border: 1.5px solid var(--color-border); border-radius: var(--radius-sm);
      font-size: .92rem; font-family: var(--font-base);
      color: var(--color-text); background: var(--slate-50);
      transition: border-color .2s, box-shadow .2s;
      box-sizing: border-box !important;
    }
    .lp-wrap #hubspot-form-container .hs-input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):focus {
      outline: none; border-color: var(--teal-500);
      box-shadow: 0 0 0 3px rgba(45,179,163,.15);
    }
    /* ドロップダウン：WPテーマの固定height打消し＋テキスト見切れ防止 */
    .lp-wrap #hubspot-form-container select.hs-input {
      appearance: auto;
      height: auto !important;
      min-height: 46px !important;
      line-height: 1.5 !important;
      padding: 12px 32px 12px 14px !important;
    }
    .lp-wrap #hubspot-form-container textarea.hs-input { min-height: 100px; resize: vertical; }
    /* 送信ボタン：WPテーマの疑似要素（>）除去 + 中央揃え */
    .lp-wrap #hubspot-form-container .hs-submit .actions::before,
    .lp-wrap #hubspot-form-container .hs-submit .actions::after,
    .lp-wrap #hubspot-form-container .hs-submit::before,
    .lp-wrap #hubspot-form-container .hs-submit::after {
      content: none !important;
      display: none !important;
    }
    .lp-wrap #hubspot-form-container .hs-button,
    .lp-wrap #hubspot-form-container input[type="submit"] {
      display: block !important; width: 100% !important;
      padding: 14px 24px !important;
      background: var(--color-cta); color: var(--white);
      font-size: 1rem; font-weight: 700; font-family: var(--font-base);
      border: none !important; border-radius: 60px; cursor: pointer;
      box-shadow: var(--shadow-cta);
      transition: background .2s, transform .15s;
      margin: 0 auto !important;
      float: none !important;
      box-sizing: border-box !important;
      text-align: center;
    }
    .lp-wrap #hubspot-form-container .hs-button:hover,
    .lp-wrap #hubspot-form-container input[type="submit"]:hover {
      background: var(--color-cta-dark); transform: translateY(-1px);
    }
    .lp-wrap #hubspot-form-container .hs-error-msgs {
      list-style: none; padding: 0; margin: 4px 0 0;
    }
    .lp-wrap #hubspot-form-container .hs-error-msg {
      font-size: .78rem; color: #e53e3e;
    }
    .lp-wrap #hubspot-form-container .hs-richtext { font-size: .82rem; color: var(--slate-500); line-height: 1.6; }
    .lp-wrap #hubspot-form-container .legal-consent-container { font-size: .78rem; color: var(--slate-500); }
    .lp-wrap #hubspot-form-container .legal-consent-container a { color: var(--teal-500); text-decoration: underline; }
    .lp-wrap #hubspot-form-container .hs-form-checkbox-display,
    .lp-wrap #hubspot-form-container .hs-form-booleancheckbox-display {
      display: flex; align-items: flex-start; gap: 8px;
    }
    .lp-wrap #hubspot-form-container .hs-form-checkbox-display input[type="checkbox"],
    .lp-wrap #hubspot-form-container .hs-form-booleancheckbox-display input[type="checkbox"] {
      order: -1; flex-shrink: 0; margin-top: 4px;
      width: 16px; height: 16px;
    }
    .lp-wrap #hubspot-form-container .hs-form-checkbox-display span,
    .lp-wrap #hubspot-form-container .hs-form-booleancheckbox-display span {
      order: 1;
    }
    .lp-wrap #hubspot-form-container .submitted-message {
      text-align: center; font-size: 1rem; font-weight: 700;
      color: var(--teal-500); padding: 24px 0;
    }

    /* ===== Company Info ===== */
    .lp-wrap .company-section {
      background: var(--slate-50); padding: 64px 0;
      border-top: 1px solid var(--color-border);
    }
    .lp-wrap .company-table {
      max-width: 720px; margin: 0 auto;
      border: 1.5px solid var(--color-border); border-radius: var(--radius-lg);
      overflow: hidden; background: var(--white);
    }
    .lp-wrap .company-table__row {
      display: grid; grid-template-columns: 180px 1fr;
      border-bottom: 1px solid var(--color-border);
    }
    .lp-wrap .company-table__row:last-child { border-bottom: none; }
    .lp-wrap .company-table__label {
      padding: 14px 20px; font-size: .82rem; font-weight: 700;
      color: var(--color-primary); background: var(--indigo-50);
      display: flex; align-items: center;
    }
    .lp-wrap .company-table__val {
      padding: 14px 20px; font-size: .88rem; color: var(--slate-700); line-height: 1.7;
    }

    /* ===== Footer ===== */
    .lp-wrap .footer { background: var(--indigo-950); color: rgba(255,255,255,.6); padding: 40px 0 24px; }
    .lp-wrap .footer__top { display:flex; justify-content:space-between; align-items:flex-start; gap:32px; margin-bottom:24px; }
    .lp-wrap .footer__logo {
      display:flex; align-items:center; gap:10px;
      font-family:var(--font-display); font-weight:900; font-size:1.1rem; color:var(--white);
    }
    .lp-wrap .footer__logo-mark {
      width:32px; height:32px; background:var(--indigo-700); border-radius:6px;
      display:flex; align-items:center; justify-content:center;
    }
    .lp-wrap .footer__logo-mark svg { width:18px; height:18px; }
    .lp-wrap .footer__tagline { font-size:.78rem; color:rgba(255,255,255,.45); margin-top:5px; }
    .lp-wrap .footer__links { display:flex; gap:22px; flex-wrap:wrap; }
    .lp-wrap .footer__links a { font-size:.8rem; color:rgba(255,255,255,.55); transition:color .2s; }
    .lp-wrap .footer__links a:hover { color:var(--white); }
    .lp-wrap .footer__divider { border:none; border-top:1px solid rgba(255,255,255,.08); margin-bottom:20px; }
    .lp-wrap .footer__bottom { display:flex; justify-content:space-between; align-items:center; font-size:.75rem; color:rgba(255,255,255,.35); }
    .lp-wrap .footer__sub { display:flex; gap:16px; }
    .lp-wrap .footer__sub a { color:rgba(255,255,255,.35); }
    .lp-wrap .footer__sub a:hover { color:rgba(255,255,255,.6); }

    /* Sticky CTA (old mobile bar — replaced by lp-sticky-bar) */

    /* ===== LP Sticky Bar (scroll-triggered) ===== */
    .lp-wrap .lp-sticky-bar {
      position: fixed;
      top: 0; left: 0; right: 0;
      z-index: 101;
      background: rgba(255,255,255,0.95);
      backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
      border-bottom: 1px solid rgba(0,0,0,0.06);
      box-shadow: 0 2px 12px rgba(0,0,0,0.08);
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 0 28px;
      height: 54px;
      transform: translateY(-100%);
      opacity: 0;
      transition: transform 0.35s ease, opacity 0.3s ease;
      pointer-events: none;
    }
    .lp-wrap .lp-sticky-bar.is-visible {
      transform: translateY(0);
      opacity: 1;
      pointer-events: auto;
    }
    .lp-wrap .lp-sticky-bar__logo {
      flex-shrink: 0;
      margin-right: 20px;
      display: flex;
      align-items: center;
    }
    .lp-wrap .lp-sticky-bar__nav {
      display: flex;
      gap: 20px;
      font-size: 0.82rem;
      font-weight: 600;
      overflow-x: auto;
      white-space: nowrap;
    }
    .lp-wrap .lp-sticky-bar__nav a {
      color: var(--slate-700);
      transition: color 0.2s;
      padding: 4px 0;
    }
    .lp-wrap .lp-sticky-bar__nav a:hover {
      color: var(--color-primary);
    }
    .lp-wrap .lp-sticky-bar__cta {
      display: flex;
      gap: 10px;
      flex-shrink: 0;
    }

    /* ===== WP Theme Override Fixes ===== */
    /* ボタンの横幅肥大を防止（WPテーマがwidth:100%やdisplay:blockを付与するのを上書き） */
    .lp-wrap .btn {
      width: auto !important;
      max-width: fit-content !important;
      display: inline-flex !important;
    }
    /* WPテーマが自動挿入する「>」疑似要素を非表示 */
    .lp-wrap a::after,
    .lp-wrap button::after {
      content: none !important;
    }
    /* problem__cta-boxのボタン中央揃え */
    .lp-wrap .problem__cta-box {
      display: flex;
      flex-direction: column;
      align-items: center;
    }

    /* ===== Desktop typography optimisation ===== */
    /* Wide desktop (1440+) */
    @media(min-width:1440px) {
      .lp-wrap .section-title { font-size:2.4rem; }
      .lp-wrap .section-sub { font-size:.96rem; max-width:660px; }
      .lp-wrap .hero__body { font-size:1rem; }
      .lp-wrap .phase-card__situation { font-size:1rem; }
      .lp-wrap .service-detail__title { font-size:1.6rem; }
      .lp-wrap .cta-section__title { font-size:2.6rem; }
    }
    /* Standard desktop (1280–1439) */
    @media(min-width:1280px) and (max-width:1439px) {
      .lp-wrap .section-title { font-size:2.1rem; }
      .lp-wrap .hero__body { font-size:.95rem; }
      .lp-wrap .cta-section__title { font-size:2.3rem; }
    }
    /* Compact desktop (1024–1279) */
    @media(min-width:1024px) and (max-width:1279px) {
      .lp-wrap .section-title { font-size:1.9rem; }
      .lp-wrap .hero__body { font-size:.92rem; }
      .lp-wrap .cta-section__title { font-size:2rem; }
    }

    /* ===== Responsive ===== */
    @media(max-width:1023px) {
      .lp-wrap .hero__grid { grid-template-columns:1fr; min-height:auto; padding:60px 0 80px; text-align:center; }
      .lp-wrap .hero__text { grid-column:1; grid-row:auto; order:1; }
      .lp-wrap .hero__visual { grid-column:1; grid-row:auto; order:2; }
      .lp-wrap .hero__cta { grid-column:1; grid-row:auto; order:3; }
      .lp-wrap .hero__body { text-align:center; }
      .lp-wrap .hero__btns { align-items:center; }
      .lp-wrap .hero__assurance { justify-content:center; }
      .lp-wrap .hero__person-wrap img { aspect-ratio:4/3; }
      .lp-wrap .hero__overlay-cards { width:220px; right:-8px; bottom:-12px; }
      .lp-wrap .phase-grid { grid-template-columns:repeat(3,1fr); gap:14px; }
      .lp-wrap .phase-card__head { min-height:120px; padding:16px 18px; }
      .lp-wrap .phase-card__situation { font-size:.85rem; }
      .lp-wrap .phase-card__body { padding:14px 18px; }
      .lp-wrap .phase-card__service { font-size:1.05rem; }
      .lp-wrap .phase-card__desc { font-size:.82rem; }
      .lp-wrap .service-detail__panel-inner { grid-template-columns:1fr; }
      .lp-wrap .service-detail__side { border-left:none; border-top:1.5px solid var(--color-border); }
      .lp-wrap .trust-grid { grid-template-columns:1fr; max-width:480px; margin:0 auto 48px; }
      .lp-wrap .testimonials-grid { grid-template-columns:1fr; max-width:480px; margin:0 auto; }
    }
    @media(max-width:860px) {
      .lp-wrap .phase-grid { grid-template-columns:1fr 1fr; gap:14px; }
      .lp-wrap .phase-grid .phase-card:last-child { grid-column:1 / -1; max-width:50%; justify-self:center; }
      .lp-wrap .phase-card__head { min-height:auto; }
    }
    @media(max-width:767px) {
      .lp-wrap .section { padding:60px 0; }
      .lp-wrap .header__inner { padding:0 16px; }
      .lp-wrap .header__nav .btn--outline { display:none; }
      .lp-wrap .hero__title { font-size:1.65rem; line-height:1.4; }
      .lp-wrap .hero__body { font-size:.88rem; text-align:left; }
      .lp-wrap .hero__grid { text-align:left; }
      .lp-wrap .hero__btns { align-items:stretch; }
      .lp-wrap .hero__assurance { justify-content:flex-start; }
      .lp-wrap .section-title { font-size:1.35rem; line-height:1.5; }
      .lp-wrap .section-sub { font-size:.87rem; }
      .lp-wrap .cta-form { padding:24px 18px; }
      .lp-wrap .cta-section__title { font-size:1.4rem; }
      .lp-wrap .footer__top { flex-direction:column; }
      .lp-wrap .footer__bottom { flex-direction:column; gap:8px; text-align:center; }
      /* LP sticky bar: モバイルではナビ非表示、CTAのみ */
      .lp-wrap .lp-sticky-bar { padding:0 16px; height:50px; }
      .lp-wrap .lp-sticky-bar__nav { display:none; }
      .lp-wrap .lp-sticky-bar__logo { display:none; }
      .lp-wrap .lp-sticky-bar__cta { width:100%; }
      .lp-wrap .lp-sticky-bar__cta .btn { flex:1; text-align:center; font-size:.82rem; padding:10px 12px; max-width:100% !important; }
      .lp-wrap .company-table__row { grid-template-columns:1fr; }
      .lp-wrap .service-detail__info, .lp-wrap .service-detail__side { padding:20px; }
      .lp-wrap .hero__overlay-cards { display:none; }
      .lp-wrap .hero__person-wrap img { aspect-ratio:4/3; }
      .lp-wrap .phase-grid { grid-template-columns:1fr; }
      .lp-wrap .phase-grid .phase-card:last-child { grid-column:span 1; max-width:100%; margin:0; }
      .lp-wrap .phase-card__head { min-height:auto; }
      .lp-wrap .problem__grid { grid-template-columns:1fr; }
      .lp-wrap .problem__item { font-size:.9rem; padding:20px 22px; }
    }
    @media(max-width:480px) {
      .lp-wrap .section { padding:48px 0; }
      .lp-wrap .container { padding:0 16px; }
      .lp-wrap .hero__grid { padding:40px 0 60px; }
      .lp-wrap .hero__title { font-size:1.4rem; }
      .lp-wrap .hero__eyebrow { font-size:.8rem; }
      .lp-wrap .hero__body { font-size:.84rem; line-height:1.85; }
      .lp-wrap .section-title { font-size:1.2rem; }
      .lp-wrap .section-sub { font-size:.82rem; line-height:1.8; }
      .lp-wrap .phase-card__service { font-size:1rem; }
      .lp-wrap .phase-card__desc { font-size:.82rem; }
      .lp-wrap .service-detail__title { font-size:1.2rem; }
      .lp-wrap .service-detail__desc { font-size:.87rem; }
      .lp-wrap .trust-card__title { font-size:.95rem; }
      .lp-wrap .trust-card__desc { font-size:.84rem; }
      .lp-wrap .cta-section__title { font-size:1.2rem; }
      .lp-wrap .cta-section__sub { font-size:.87rem; }
      .lp-wrap .btn--cta { padding:15px 28px; font-size:.93rem; }
    }