@charset "UTF-8";

/* ===========================
   CSS変数（カラー / フォント）
   =========================== */
:root {
  /* カラー */
  --color-navy:        #123E76; /* メインカラー（濃紺） */
  --color-blue:        #027CC2; /* サブカラー（明るい青） */
  --color-yellow:      #F3AE28; /* アクセント（黄） */
  --color-orange:      #F38D28; /* CTA（オレンジ） */
  --color-orange-dark: #C86400; /* CTAホバー（濃オレンジ） */
  --color-text:        #333333; /* 本文テキスト */
  --color-white:       #FFFFFF;

  /* フォントファミリー（用途別に独立） */
  /* 游ゴシック */
  --ff-yugothic:
    "Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体",
    "Yu Gothic", "游ゴシック",
    "Hiragino Sans", "ヒラギノ角ゴシック",
    sans-serif;

  /* 游明朝 */
  --ff-mincho:
    "YuMincho", "Yu Mincho", "游明朝体", "游明朝",
    serif;

  /* Noto Sans JP */
  --ff-noto:
    "Noto Sans JP", sans-serif;

  /* レスポンシブベース幅（1441px以上で固定） */
  --base: 100vw;
}

/* ===========================
   リセット / ベース
   =========================== */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

/* body直下のリセットは #lp（フロントページ）にスコープ限定。
   ヘッダー・フッターのスタイルは .lp-header / .lp-footer で個別に指定。
   コラムページ等のSWELLスタイルに干渉しないようにする。 */
body.is-lp #lp {
  font-family: var(--ff-yugothic);
  color: var(--color-text);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body.is-lp #lp {
  overflow-x: clip;
}

body.is-lp #lp img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

body.is-lp #lp a {
  text-decoration: none;
}

body.is-lp #lp h1,
body.is-lp #lp h2,
body.is-lp #lp h3,
body.is-lp #lp h4,
body.is-lp #lp p,
body.is-lp #lp ul,
body.is-lp #lp ol,
body.is-lp #lp figure {
  margin: 0;
  padding: 0;
}

body.is-lp #lp ul,
body.is-lp #lp ol {
  list-style: none;
}

body.is-lp #lp button {
  font-family: inherit;
  border: none;
  background: none;
  cursor: pointer;
  padding: 0;
}

/* ===========================
   レスポンシブルール
   SP: 〜768px     → calc(x / 375 * 100vw)
   PC: 769px〜     → calc(x / 1440 * var(--base))
   =========================== */

/* ===========================
   ヘッダー固定時のコンテンツオフセット
   （コラムページ等、SWELLテンプレート使用ページ用）
   SWELLは body_class() を #body_wrap に出力するため、
   .home は #body_wrap 上のクラスで判定する。
   =========================== */
body.is-lp #body_wrap:not(.home) {
  padding-top: calc(80 / 1440 * var(--base));
}

@media (min-width: 769px) {
  .pc-only {
    display: inline;
  }
  .sp-only {
    display: none;
  }
}
/* ===========================
   SP（〜768px）共通 + セクション別
   =========================== */
@media (max-width: 768px) {
.pc-only {
  display: none;
}
.sp-only {
  display: inline;
}
  /* ---------- Hamburger Button ---------- */
  body.is-lp .lp-header__hamburger-container {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    z-index: 200;
    background: var(--color-navy);
    width: calc(60 / 375 * 100vw);
    height: calc(60 / 375 * 100vw);
    display: flex;
    align-items: center;
    justify-content: center;
  }

  body.is-lp .lp-header__hamburger {
    width: calc(28 / 375 * 100vw);
    height: calc(24 / 375 * 100vw);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
  }

  body.is-lp .lp-header__hamburger span {
    display: block;
    width: 100%;
    height: calc(3 / 375 * 100vw);
    background: var(--color-white);
    transition: transform 0.3s, opacity 0.3s;
  }

  body.is-lp .lp-header__hamburger.is-open span:nth-child(1) {
    transform: translateY(calc(10.5 / 375 * 100vw)) rotate(45deg);
  }

  body.is-lp .lp-header__hamburger.is-open span:nth-child(2) {
    opacity: 0;
  }

  body.is-lp .lp-header__hamburger.is-open span:nth-child(3) {
    transform: translateY(calc(-10.5 / 375 * 100vw)) rotate(-45deg);
  }

  /* ---------- Mobile Menu Overlay ---------- */
  body.is-lp .lp-mobile-menu {
    position: fixed;
    top: calc(62 / 390 * 100vw);
    left: 0;
    width: 100%;
    height: calc(100vh - 62 / 390 * 100vw);
    background: var(--color-navy);
    z-index: 150;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(24 / 375 * 100vw);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s, visibility 0.3s;
    padding: calc(48 / 375 * 100vw) calc(39 / 375 * 100vw);
    overflow-y: auto;
  }

  body.is-lp .lp-mobile-menu.is-open {
    opacity: 1;
    visibility: visible;
  }

  body.is-lp .lp-mobile-menu__nav {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(24 / 375 * 100vw);
    width: calc(297 / 375 * 100vw);
    flex-shrink: 0;
  }
  
  body.is-lp .lp-mobile-menu__nav a {
    font-size: calc(20 / 375 * 100vw);
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-white);
    width: 100%;
    border-bottom: 1px solid #fff;
    padding-bottom: calc(24 / 375 * 100vw);
    position: relative;
  }
  body.is-lp .lp-mobile-menu__nav a::after{
    content: "";
    background-image: url("../images/ham-arrow.png");
    background-size: contain;
    background-repeat: no-repeat;
    width: calc(5 / 375 * 100vw);
    height: calc(10 / 375 * 100vw);
    position: absolute;
    right: 0;
    top: 30%;
    transform: translateY(-50%);
  }

  body.is-lp .lp-mobile-menu__cta {
    display: flex;
    align-items: center;
    justify-content: center;
    width: calc(240 / 375 * 100vw);
    height: calc(48 / 375 * 100vw);
    background: linear-gradient(to bottom, #F59f00 50%, #eb7700 50%);
    color: var(--color-white);
    font-size: calc(16 / 375 * 100vw);
    font-weight: 700;
    border-radius: calc(100 / 375 * 100vw);
    box-shadow: 0 calc(4 / 375 * 100vw) 0 #C86400;
    flex-shrink: 0;
  }

  /* ---------- Header (SP) ---------- */
  body.is-lp .lp-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: calc(60 / 375 * 100vw);
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(calc(4 / 375 * 100vw));
    -webkit-backdrop-filter: blur(calc(4 / 375 * 100vw));
    z-index: 100;
    padding: 0 calc(16 / 375 * 100vw);
    box-shadow: 0 calc(2 / 375 * 100vw) calc(8 / 375 * 100vw) rgba(0, 92, 145, 0.1);
  }

  body.is-lp .lp-header__inner {
    display: flex;
    align-items: center;
    width: 100%;
    height: 100%;
  }

  body.is-lp .lp-header__logo {
    display: block;
    width: calc(141 / 375 * 100vw);
  }

  body.is-lp .lp-header__logo img {
    width: 100%;
    height: auto;
  }

  body.is-lp .lp-header__nav {
    display: none;
  }

  body.is-lp .lp-header__cta {
    display: none;
  }

  body.is-lp #body_wrap:not(.home) {
    padding-top: calc(60 / 375 * 100vw);
  }

  /* ---------- Hero / FV (SP) ---------- */
  body.is-lp .lp-hero {
    position: relative;
    width: 100%;
    height: calc(403 / 375 * 100vw);
    background-image: url("../images/fv-sp.webp");
    background-size: cover;
    background-position: center top;
    background-repeat: no-repeat;
    padding-top: calc(80 / 375 * 100vw);
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: calc(60 / 375 * 100vw);
  }

  body.is-lp .lp-hero__catch {
    display: flex;
    flex-direction: column;
    gap: calc(8 / 375 * 100vw);
    font-family: var(--ff-mincho);
    font-weight: 400;
    line-height: 1;
    color: var(--color-navy);
    padding-left: calc(20 / 375 * 100vw);
    position: relative;
    top: calc(40 / 375 * 100vw);
  }

  body.is-lp .lp-hero__catch-line {
    display: flex;
    align-items: flex-end;
    height: calc(44 / 375 * 100vw);
    background: #FFF;
    font-size: calc(32 / 375 * 100vw);
    padding: 0 calc(16 / 375 * 100vw) calc(4 / 375 * 100vw) calc(13 / 375 * 100vw);
    white-space: nowrap;
  }

  body.is-lp .lp-hero__font-small {
    font-size: calc(28 / 375 * 100vw);
    font-feature-settings: "palt";
  }

  body.is-lp .lp-hero__catch-line--1 {
    width: calc(341 / 375 * 100vw);
    letter-spacing: 0;
    
  }

  body.is-lp .lp-hero__catch-line--2 {
    width: calc(216 / 375 * 100vw);
    padding: 0 0 calc(4 / 375 * 100vw) calc(16 / 375 * 100vw);
    font-feature-settings: "palt";

  }

  body.is-lp .lp-hero__mock {
    width: calc(273 / 375 * 100vw);
    height: calc(168 / 375 * 100vw);
    margin: calc(145 / 375 * 100vw) auto 0;
  }

  body.is-lp .lp-hero__mock img {
    width: 100%;
    height: auto;
  }

  body.is-lp .lp-hero__cta-container {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: calc(24 / 375 * 100vw) calc(16 / 375 * 100vw) calc(32 / 375 * 100vw);
    background: var(--color-white);
    gap: calc(20 / 375 * 100vw);
  }

  body.is-lp .lp-hero__cta-text {
    font-size: calc(18 / 375 * 100vw);
    font-weight: 400;
    font-family: var(--ff-yugothic);
    color: var(--color-text);
    letter-spacing: 0.08em;
    line-height: 1.6;
    text-align: start;
    order: 2;
    font-feature-settings: "palt";
  }

  body.is-lp .lp-hero__cta {
    font-size: calc(18 / 375 * 100vw);
    font-weight: 700;
    color: var(--color-white);
    background: linear-gradient(to bottom, #F59f00 50%, #eb7700 50%);
    width: calc(280 / 375 * 100vw);
    height: calc(56 / 375 * 100vw);
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: calc(100 / 375 * 100vw);
    box-shadow: 0 calc(4 / 375 * 100vw) 0 #C86400;
  }

  /* ---------- Features 1 (SP) ---------- */
  body.is-lp .lp-features1 {
    background-image: url("../images/features-1-bg.png");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: calc(400 / 375 * 100vw) calc(20 / 375 * 100vw) calc(24 / 375 * 100vw);
  }

  body.is-lp .lp-features1__subtitle,
  body.is-lp .lp-faq__subtitle {
    font-size: calc(18 / 375 * 100vw);
    letter-spacing: 0;
    line-height: 1;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-blue);
    margin-bottom: calc(4 / 375 * 100vw) !important;
    
  }

  body.is-lp .lp-features1__subtitle-dec,
  body.is-lp .lp-faq__subtitle-dec {
    width: calc(90 / 375 * 100vw);
    height: auto;
  }

  body.is-lp .lp-features1__title {
    font-size: calc(32 / 375 * 100vw);
    letter-spacing: 0;
    line-height: 1.4;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-navy);
    margin-bottom: calc(32 / 375 * 100vw) !important;
    margin-top: calc(6 / 375 * 100vw) !important;
    font-feature-settings: "palt";
    white-space: nowrap;
  }

  body.is-lp .lp-features1__circles-wrap {
    position: relative;
    width: 100%;
  }

  body.is-lp .lp-features1__circle-img {
    display: none;
  }

  body.is-lp .lp-features1__contents {
    position: static;
    transform: none;
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: calc(8 / 375 * 100vw);
  }

  body.is-lp .lp-features1__content {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    width: 100%;
    background: transparent;
    border-radius: 0;
    padding: calc(24 / 375 * 100vw) calc(16 / 375 * 100vw);
    color: var(--color-white);
    width: calc(343 / 375 * 100vw);
    height: calc(170 / 375 * 100vw);
    position: relative;
    background-repeat: no-repeat;
    background-size: cover;
  }

  body.is-lp .lp-features1__content--1 {
    background-image: url("../images/features-content-bg1.png");
  }
  body.is-lp .lp-features1__content--2 {
    background-image: url("../images/features-content-bg2.png");
  }
  body.is-lp .lp-features1__content--3 {
    background-image: url("../images/features-content-bg3.png");
  }

  body.is-lp .lp-features1__number {
    position: absolute;
    top: 8%;
    left: 4%;
    font-size: calc(32 / 375 * 100vw);
    letter-spacing: 0;
    line-height: 1;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    margin-bottom: calc(8 / 375 * 100vw) !important;
  }

  body.is-lp .lp-features1__icon {
    object-fit: contain;
  }

  body.is-lp #lp .lp-features1__icon--1 {
    width: calc(66 / 375 * 100vw);
    height: calc(45 / 375 * 100vw);
    top: 53%;
    left: 8%;
  }

  body.is-lp #lp .lp-features1__icon--2 {
    width: calc(82 / 375 * 100vw);
    height: calc(38 / 375 * 100vw);
    top: 53%;
    left: 4%;
  }

  body.is-lp #lp .lp-features1__icon--3 {
    width: calc(66 / 375 * 100vw);
    height: calc(51 / 375 * 100vw);
    top: 53%;
    left: 8%;
  }

  body.is-lp .lp-features1__content--1 .lp-features1__icon,
  body.is-lp .lp-features1__content--2 .lp-features1__icon,
  body.is-lp .lp-features1__content--3 .lp-features1__icon {
    margin-bottom: calc(12 / 375 * 100vw) !important;
    position: absolute;
  }

  body.is-lp .lp-features1__content-title {
    font-size: calc(28 / 375 * 100vw);
    letter-spacing: 0;
    line-height: 1.6;
    font-weight: 700;
    font-family: var(--ff-noto);
    position: absolute;
    top: 2%;
  }
  body.is-lp .lp-features1__content-title--1 {
    left: 26%;
  }
  body.is-lp .lp-features1__content-title--2 {
    left: 30%;
  }
  body.is-lp .lp-features1__content-title--3 {
    left: 32%;
  }

  body.is-lp #lp .lp-features1__content-dec {
    
    height: calc(19 / 375 * 100vw);
    margin-bottom: calc(12 / 375 * 100vw) !important;
    margin-top: calc(-9 / 375 * 100vw);
    transform: rotate(2deg);
    position: absolute;
    top: 29%;
  }

  body.is-lp .lp-features1__content-dec--1 {
    left: 26%;
    width: calc(229 / 375 * 100vw);
  }
  body.is-lp .lp-features1__content-dec--2 {
    left: 30%;
    width: calc(200 / 375 * 100vw);
  }
  body.is-lp .lp-features1__content-dec--3 {
    left: 32%;
    width: calc(195 / 375 * 100vw);
  }

  body.is-lp .lp-features1__content-text {
    font-size: calc(16 / 375 * 100vw);
    letter-spacing: 0;
    line-height: 1.6;
    font-weight: 400;
    font-family: var(--ff-noto);
    text-align: start;
    position: absolute;
    top: 42%;
    left: 33%;
  }

  body.is-lp .lp-features1__content-text--3 {
    left: 36%;
  }
  /* ---------- Features 2 (SP) ---------- */
  body.is-lp .lp-features2 {
    background-image: url("../images/features-2-bg-sp.jpg");
    background-size: 100%;
    background-position: 100% calc(54 / 375 * 100vw);
    background-repeat: no-repeat;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 0;
    height: calc(577 / 375 * 100vw);
  }

  body.is-lp .lp-features2__title-box {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: calc(10 / 375 * 100vw);
    width: 100%;
    height: calc(54 / 375 * 100vw);
    background-color: var(--color-text);
    margin-bottom: calc(24 / 375 * 100vw);
  }

  body.is-lp #lp .lp-features2__icon {
    width: calc(36 / 375 * 100vw);
    height: calc(33 / 375 * 100vw);
  }

  body.is-lp .lp-features2__title {
    font-size: calc(24 / 375 * 100vw);
    letter-spacing: 0;
    line-height: 1;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-white);
  }

  body.is-lp .lp-features2__lead {
    margin-bottom: calc(140 / 375 * 100vw);
  }

  body.is-lp .lp-features2__lead-sub {
    font-size: calc(18 / 375 * 100vw);
    letter-spacing: -0.05em;
    line-height: 2;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-navy);
  }

  body.is-lp .lp-features2__lead-main {
    font-size: calc(28 / 375 * 100vw);
    letter-spacing: 0;
    line-height: 1.3;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-navy);
  }

  body.is-lp .lp-features2__lead-main-1 {
    letter-spacing: -0.05em;
  }
  body.is-lp .lp-features2__desc {
    font-size: calc(18 / 375 * 100vw);
    letter-spacing: 0;
    line-height: 1.3;
    font-weight: 400;
    font-family: var(--ff-yugothic);
    color: var(--color-text);
  }

  body.is-lp .lp-features2__desc-bold {
    font-size: calc(22 / 375 * 100vw);
    font-weight: 700;
  }

  /* ---------- Features 3 (SP) ---------- */
  body.is-lp .lp-features3 {
    background-image: url("../images/features-3-bg-sp.png");
    background-size: 100% calc(1100 / 375 * 100vw);
    background-position: center;
    background-repeat: no-repeat;
    padding: calc(40 / 375 * 100vw) 0 calc(20 / 375 * 100vw);
  }

  body.is-lp .lp-features3__inner {
    display: flex;
    flex-direction: column;
    width: 100%;
  }

  body.is-lp .lp-features3__text {
    width: 100%;
    padding: 0 calc(16 / 375 * 100vw);
    margin-bottom: calc(12 / 375 * 100vw);
  }

  body.is-lp .lp-features3__subtitle {
    position: relative;
    font-size: calc(18 / 375 * 100vw);
    letter-spacing: 0;
    line-height: 1;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-blue);
    margin-bottom: calc(24 / 375 * 100vw) !important;
  }

  body.is-lp .lp-features3__subtitle::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: calc(-12 / 375 * 100vw);
    width: calc(80 / 375 * 100vw);
    height: calc(8 / 375 * 100vw);
    background: url("../images/features-3-title-dec.png") no-repeat center / contain;
  }

  body.is-lp .lp-features3__title {
    font-size: calc(30 / 375 * 100vw);
    letter-spacing: 0;
    line-height: 1.4;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-navy);
    margin-bottom: calc(24 / 375 * 100vw) !important;
  }

  body.is-lp .lp-features3__desc {
    font-size: calc(18 / 375 * 100vw);
    letter-spacing: 0;
    line-height: 1.6;
    font-weight: 400;
    font-family: var(--ff-yugothic);
    color: var(--color-text);
    margin-bottom: calc(16 / 375 * 100vw) !important;
  }

  body.is-lp .lp-features3__visual {
    width: 100%;
    padding: 0 calc(6 / 375 * 100vw);
  }

  body.is-lp #lp .lp-features3__mock {
    width: 100%;
    height: auto;
    object-fit: contain;
  }

  /* ---------- Feature Banner Scroll (SP) ---------- */
  body.is-lp .lp-feature-banner {
    background-image: none;
    background-color: #E3F5FF;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    overflow: hidden;
    height: auto;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: calc(12 / 375 * 100vw);
    padding-bottom: calc(20 / 375 * 100vw) !important;
  }

  body.is-lp .lp-feature-banner__logo-track {
    width: 100%;
    background-color: #FFF;
  }

  body.is-lp .lp-feature-banner__logo-inner {
    display: flex;
    height: 100%;
    animation: marquee-ltr 20s linear infinite;
  }

  body.is-lp .lp-feature-banner__logo-set {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    width: calc(1719 / 375 * 100vw);
    gap: calc(14 / 375 * 100vw);
    padding-right: calc(14 / 375 * 100vw);
  }

  body.is-lp #lp .lp-feature-banner__logo {
    flex-shrink: 0;
    width: calc(116 / 375 * 100vw);
    height: calc(80 / 375 * 100vw);
    object-fit: contain;
  }

  body.is-lp #lp .lp-feature-banner__logo--1,
  body.is-lp #lp .lp-feature-banner__logo--3,
  body.is-lp #lp .lp-feature-banner__logo--5,
  body.is-lp #lp .lp-feature-banner__logo--6,
  body.is-lp #lp .lp-feature-banner__logo--8 {
    height: calc(40 / 375 * 100vw);
  }

  body.is-lp #lp .lp-feature-banner__logo--2,
  body.is-lp #lp .lp-feature-banner__logo--4,
  body.is-lp #lp .lp-feature-banner__logo--7,
  body.is-lp #lp .lp-feature-banner__logo--9 {
    height: calc(80 / 375 * 100vw);
  }

  body.is-lp .lp-feature-banner__proposal-track {
    
    width: 100%;
    height: calc(139 / 375 * 100vw);
  }

  body.is-lp .lp-feature-banner__proposal-inner {
    display: flex;
    height: 100%;
    animation: marquee-rtl 25s linear infinite;
  }

  body.is-lp .lp-feature-banner__proposal-set {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    width: calc(1644 / 375 * 100vw);
    gap: calc(8 / 375 * 100vw);
    padding-right: calc(8 / 375 * 100vw);
  }

  body.is-lp #lp .lp-feature-banner__proposal {
    flex-shrink: 0;
    width: calc(184 / 375 * 100vw);
    height: calc(139 / 375 * 100vw);
    object-fit: cover;
  }

  /* ---------- Industries (SP) ---------- */
  body.is-lp .lp-industries {
    background: linear-gradient(to bottom, #E3F5FF 50%, #027CC2 50%);
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0 calc(16 / 375 * 100vw) calc(40 / 375 * 100vw);
  }

  body.is-lp .lp-industries__inner {
    background: #FFF;
    border-radius: calc(10 / 375 * 100vw);
    padding: calc(40 / 375 * 100vw) calc(20 / 375 * 100vw);
    width: 100%;
    text-align: center;
  }

  body.is-lp .lp-industries__subtitle {
    position: relative;
    font-size: calc(18 / 375 * 100vw);
    letter-spacing: 0;
    line-height: 1;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-blue);
    margin-bottom: calc(16 / 375 * 100vw) !important;
  }

  body.is-lp .lp-industries__subtitle::after {
    content: "";
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    bottom: calc(-10 / 375 * 100vw);
    width: calc(90 / 375 * 100vw);
    height: calc(8 / 375 * 100vw);
    background: url("../images/features-1-title-dec.png") no-repeat center / contain;
  }

  body.is-lp .lp-industries__title {
    font-size: calc(28 / 375 * 100vw);
    letter-spacing: 0.016em;
    line-height: 1.4;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-navy);
    margin-top: calc(6 / 375 * 100vw) !important;
    margin-bottom: calc(12 / 375 * 100vw) !important;
  }

  body.is-lp .lp-industries__desc {
    font-size: calc(16 / 375 * 100vw);
    font-weight: 400;
    font-family: var(--ff-yugothic);
    color: var(--color-text);
    line-height: 1.6;
    margin-bottom: calc(24 / 375 * 100vw) !important;
    font-feature-settings: "palt";
  }

  body.is-lp .lp-industries__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: calc(16 / 375 * 100vw);
    justify-content: center;
  }

  body.is-lp .lp-industries__item {
    width: 100%;
    text-align: center;
  }

  body.is-lp #lp .lp-industries__img {
    width: 100%;
    height: calc(100 / 375 * 100vw);
    object-fit: cover;
    border-radius: calc(6 / 375 * 100vw);
  }

  body.is-lp .lp-industries__label {
    font-size: calc(14 / 375 * 100vw);
    letter-spacing: 0;
    line-height: 1;
    font-weight: 400;
    font-family: var(--ff-yugothic);
    color: var(--color-navy);
    margin-top: calc(6 / 375 * 100vw) !important;
  }

  body.is-lp .lp-industries__item--note {
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    height: auto;
    min-height: calc(100 / 375 * 100vw);
    padding: calc(8 / 375 * 100vw);
    position: relative;
  }

  body.is-lp .lp-industries__note {
    font-size: calc(14 / 375 * 100vw);
    font-weight: 400;
    font-family: var(--ff-yugothic);
    color: var(--color-text);
    line-height: 1.6;
    text-align: left;
    background: #F7F7F7;
    border-radius: calc(6 / 375 * 100vw);
    position: absolute;
    top: 0%;
    left: 0%;
    width: calc(300 / 375 * 100vw);
    height: calc(100 / 375 * 100vw);
    padding: calc(8 / 375 * 100vw) !important;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  /* ---------- CTA 1 (SP) ---------- */
  body.is-lp .lp-cta1 {
    background-image: url("../images/cta-1-bg-sp.png");
    background-size: 100% 100%;
    background-position: center;
    background-repeat: no-repeat;
    height: auto;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: calc(40 / 375 * 100vw) calc(16 / 375 * 100vw);
  }

  body.is-lp .lp-cta1__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  body.is-lp .lp-cta1__subcopy {
    font-size: calc(18 / 375 * 100vw);
    letter-spacing: 0;
    line-height: 1.6;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-white);
    margin-bottom: calc(16 / 375 * 100vw) !important;
  }

  body.is-lp .lp-cta1__title {
    font-size: calc(27 / 375 * 100vw);
    letter-spacing: 0;
    line-height: 1.6;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-white);
    margin-bottom: calc(20 / 375 * 100vw) !important;
  }

  body.is-lp .lp-cta1-title-sm {
    font-size: calc(23 / 375 * 100vw);
  }

  body.is-lp .lp-cta1__desc {
    font-size: calc(16 / 375 * 100vw);
    letter-spacing: 0;
    line-height: 1.6;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-white);
    margin-bottom: calc(40 / 375 * 100vw) !important;
  }

  body.is-lp .lp-cta1__btn {
    font-size: calc(18 / 375 * 100vw);
    font-weight: 700;
    color: var(--color-white);
    background: linear-gradient(to bottom, #F59f00 50%, #eb7700 50%);
    width: calc(280 / 375 * 100vw);
    height: calc(56 / 375 * 100vw);
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: calc(100 / 375 * 100vw);
    box-shadow: 0 calc(4 / 375 * 100vw) 0 #C86400;
  }

  /* ---------- Solution (SP) ---------- */
  body.is-lp .lp-solution {
    background: url("../images/solution-bg.png") no-repeat;
    background-size: 100% auto;
    background-position: top center;
    background-color: #FFF;
    padding: calc(60 / 375 * 100vw) calc(16 / 375 * 100vw) calc(40 / 375 * 100vw);
  }

  body.is-lp .lp-solution__inner {
    width: 100%;
    margin: 0 auto;
  }

  body.is-lp .lp-solution__subtitle {
    position: relative;
    font-size: calc(18 / 375 * 100vw);
    letter-spacing: 0;
    line-height: 1.6;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-blue);
    margin-bottom: calc(16 / 375 * 100vw) !important;
  }

  body.is-lp .lp-solution__subtitle::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: calc(-6 / 375 * 100vw);
    width: calc(80 / 375 * 100vw);
    height: calc(8 / 375 * 100vw);
    background: url("../images/features-3-title-dec.png") no-repeat center / contain;
  }

  body.is-lp .lp-solution__title {
    font-size: calc(28 / 375 * 100vw);
    letter-spacing: 0;
    line-height: 1.4;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-navy);
    margin-bottom: calc(32 / 375 * 100vw) !important;
    font-feature-settings: "palt";
  }

  body.is-lp .lp-solution__cards {
    display: flex;
    flex-direction: column;
    gap: calc(24 / 375 * 100vw);
  }

  body.is-lp .lp-solution__card {
    position: relative;
    width: 100%;
    min-height: auto;
  }

  body.is-lp .lp-solution__card-visual {
    position: relative;
    width: 100%;
    height: calc(240 / 375 * 100vw);
    overflow: hidden;
  }

  body.is-lp #lp .lp-solution__card-img {
    width: 100%;
    height: calc(240 / 375 * 100vw);
    object-fit: cover;
  }

  body.is-lp .lp-solution__card-tags {
    position: absolute;
    right: calc(16 / 375 * 100vw);
    top: calc(-16 / 375 * 100vw);
    z-index: 2;
    display: flex;
    gap: calc(0 / 375 * 100vw);
  }

  body.is-lp .lp-solution__card-tag {
    writing-mode: vertical-rl;
    text-orientation: upright;
    background: var(--color-blue);
    color: var(--color-white);
    font-size: calc(14 / 375 * 100vw);
    font-weight: 700;
    font-family: var(--ff-yugothic);
    padding: calc(6 / 375 * 100vw) calc(4 / 375 * 100vw);
    line-height: 1.6;
    font-feature-settings: "palt";
  }

  body.is-lp .lp-solution__card-tag--step1,
  body.is-lp .lp-solution__card-tag--step2 {
    height: calc(170 / 375 * 100vw);
    font-feature-settings: "palt";
  }

  body.is-lp .lp-solution__card--step2 .lp-solution__card-tag {
    background: var(--color-navy);
  }

  body.is-lp .lp-solution__card-body {
    position: relative;
    z-index: 1;
    margin-top: calc(-100 / 375 * 100vw);
    background: linear-gradient(to bottom, rgba(2, 124, 194, 0) 0%, rgba(2, 124, 194, 1) calc(70 / 375 * 100vw));
    padding: calc(40 / 375 * 100vw) calc(20 / 375 * 100vw) calc(24 / 375 * 100vw);
    color: var(--color-white);
  }

  body.is-lp .lp-solution__card--step2 .lp-solution__card-body {
    background: linear-gradient(to bottom, rgba(18, 62, 118, 0) 0%, rgba(18, 62, 118, 1) calc(70 / 375 * 100vw));
  }

  body.is-lp .lp-solution__step {
    font-size: calc(14 / 375 * 100vw);
    font-weight: 700;
    font-family: var(--ff-yugothic);
    letter-spacing: 0;
    line-height: 1.6;
    margin-bottom: calc(12 / 375 * 100vw) !important;
  }

  body.is-lp .lp-solution__card-heading {
    font-size: calc(24 / 375 * 100vw);
    font-weight: 700;
    font-family: "Noto Sans JP", sans-serif;
    letter-spacing: 0;
    line-height: 1;
    margin-bottom: calc(3 / 375 * 100vw) !important;
  }

  body.is-lp .lp-solution__card-tax {
    font-size: calc(12 / 375 * 100vw);
    font-weight: 700;
    font-family: "Noto Sans JP", sans-serif;
    letter-spacing: 0;
    line-height: 1;
    margin-bottom: calc(20 / 375 * 100vw) !important;
    text-align: end;
    width: calc(274 / 375 * 100vw);
  }

  body.is-lp .lp-solution__card-tax--step2 {
    width: calc(169 / 375 * 100vw);
  }

  body.is-lp .lp-solution__card-desc {
    font-size: calc(16 / 375 * 100vw);
    font-weight: 700;
    font-family: var(--ff-yugothic);
    letter-spacing: 0;
    line-height: 1.6;
    margin-bottom: calc(16 / 375 * 100vw) !important;
    font-feature-settings: "palt";
  }

  body.is-lp .lp-solution__accordion-trigger {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: calc(8 / 375 * 100vw);
    font-size: calc(18 / 375 * 100vw);
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-white);
    padding: calc(16 / 375 * 100vw) 0;
    cursor: pointer;
    list-style: none;
  }

  body.is-lp .lp-solution__accordion-trigger::-webkit-details-marker {
    display: none;
  }

  body.is-lp .lp-solution__accordion-trigger::after {
    content: "▼";
    font-size: calc(14 / 375 * 100vw);
    transition: transform 0.3s;
  }

  body.is-lp .lp-solution__accordion[open] .lp-solution__accordion-trigger::after {
    transform: rotate(180deg);
  }

  body.is-lp .lp-solution__accordion {
    border-top: 1px solid rgba(255, 255, 255, 0.4);
    border-bottom: 1px solid rgba(255, 255, 255, 0.4);
  }

  body.is-lp .lp-solution__accordion-content {
    padding: calc(12 / 375 * 100vw) 0;
    transition: height 0.4s ease;
  }

  body.is-lp .lp-solution__accordion-content ul {
    list-style: none;
    padding-left: 0;
    margin-bottom: calc(12 / 375 * 100vw) !important;
  }

  body.is-lp .lp-solution__accordion-content li::before {
    content: "・";
    font-size: calc(14 / 375 * 100vw);
    margin-right: calc(4 / 375 * 100vw);
    
  }

  body.is-lp .lp-solution__accordion-content li {
    font-size: calc(16 / 375 * 100vw);
    font-weight: 300;
    font-family: var(--ff-yugothic);
    letter-spacing: 0;
    line-height: 1.6;
    color: var(--color-white);
    font-feature-settings: "palt";
    letter-spacing: -0.04em;
  }

  body.is-lp .lp-solution__accordion-note {
    font-size: calc(14 / 375 * 100vw);
    font-weight: 400;
    font-family: var(--ff-yugothic);
    color: var(--color-white);
    line-height: 1.6;
    margin-bottom: calc(12 / 375 * 100vw) !important;
  }

  body.is-lp .lp-solution__accordion-text {
    font-size: calc(16 / 375 * 100vw);
    font-weight: 300;
    font-family: var(--ff-yugothic);
    color: var(--color-white);
    line-height: 1.6;
    margin-bottom: calc(12 / 375 * 100vw) !important;
  }

  body.is-lp .lp-solution__accordion-highlight {
    font-size: calc(16 / 375 * 100vw);
    font-weight: 400;
    font-family: var(--ff-yugothic);
    color: var(--color-white);
    line-height: 1.6;
    margin-bottom: calc(12 / 375 * 100vw) !important;
  }

  body.is-lp .lp-solution__accordion-highlight span {
    color: var(--color-yellow);
  }

  body.is-lp p.lp-solution__accordion-link {
    margin-bottom: calc(8 / 375 * 100vw) !important;
  }

  body.is-lp .lp-solution__accordion-link a {
    font-size: calc(13 / 375 * 100vw);
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-white);
    text-decoration: underline;
  }

  /* ---------- Solution Marquee (SP) ---------- */
  body.is-lp .lp-solution-marquee {
    overflow: hidden;
    height: calc(48 / 375 * 100vw);
    display: flex;
    align-items: center;
    margin-bottom: calc(20 / 375 * 100vw) !important;
  }

  body.is-lp .lp-solution-marquee__inner {
    display: flex;
    align-items: center;
    white-space: nowrap;
    animation: marquee-solution 30s linear infinite;
  }

  body.is-lp .lp-solution-marquee__group {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    gap: calc(12 / 375 * 100vw);
    padding-right: calc(12 / 375 * 100vw);
  }

  body.is-lp #lp .lp-solution-marquee__icon {
    flex-shrink: 0;
    object-fit: contain;
  }

  body.is-lp #lp .lp-solution-marquee__icon--1 {
    width: calc(32 / 375 * 100vw);
    height: calc(32 / 375 * 100vw);
  }

  body.is-lp #lp .lp-solution-marquee__icon--2 {
    width: calc(32 / 375 * 100vw);
    height: calc(40 / 375 * 100vw);
  }

  body.is-lp .lp-solution-marquee__text {
    font-size: calc(24 / 375 * 100vw);
    letter-spacing: 0;
    line-height: 1.4;
    font-weight: 400;
    font-family: var(--ff-mincho);
    color: var(--color-navy);
    flex-shrink: 0;
  }

  /* ---------- FLOW (SP) ---------- */
  body.is-lp .lp-flow {
    background-image: url("../images/flow-bg.png");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    padding: calc(40 / 375 * 100vw) calc(20 / 375 * 100vw);
  }

  body.is-lp .lp-flow__inner {
    display: flex;
    flex-direction: column;
  }

  body.is-lp .lp-flow__left {
    width: 100%;
    margin-bottom: calc(32 / 375 * 100vw);
  }

  body.is-lp .lp-flow__subtitle {
    position: relative;
    font-size: calc(16 / 375 * 100vw);
    letter-spacing: 0;
    line-height: 1.6;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-blue);
    margin-bottom: calc(16 / 375 * 100vw) !important;
    margin-left: 0 !important;
  }

  body.is-lp .lp-flow__subtitle::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -18%;
    width: calc(80 / 375 * 100vw);
    height: calc(8 / 375 * 100vw);
    background: url("../images/features-3-title-dec.png") no-repeat center / contain;
  }

  body.is-lp .lp-flow__title {
    font-size: calc(24 / 375 * 100vw);
    letter-spacing: 0;
    line-height: 1.4;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-navy);
    margin-bottom: calc(20 / 375 * 100vw) !important;
    margin-left: 0 !important;
  }

  body.is-lp .lp-flow__desc {
    font-size: calc(16 / 375 * 100vw);
    letter-spacing: 0;
    line-height: 1.6;
    font-weight: 400;
    font-family: var(--ff-yugothic);
    color: var(--color-text);
    margin-bottom: calc(24 / 375 * 100vw) !important;
    margin-left: 0 !important;
  }

  body.is-lp #lp .lp-flow__main-img {
    width: 100%;
    height: auto;
    object-fit: cover;
  }

  body.is-lp .lp-flow__right {
    position: static;
    overflow: visible;
    display: flex;
    flex-direction: column;
    gap: calc(20 / 375 * 100vw);
  }

  body.is-lp .lp-flow__card {
    flex-shrink: 0;
    width: 100%;
    background: var(--color-white);
    border-radius: calc(16 / 375 * 100vw);
    box-shadow: 0 calc(4 / 375 * 100vw) calc(16 / 375 * 100vw) rgba(0, 92, 145, 0.1);
    padding: calc(20 / 375 * 100vw);
  }

  body.is-lp .lp-flow__card-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: calc(12 / 375 * 100vw) !important;
  }

  body.is-lp .lp-flow__card-head-text {
    flex: 1;
  }

  body.is-lp .lp-flow__card-number {
    font-size: calc(36 / 375 * 100vw);
    letter-spacing: 0;
    line-height: 1;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-blue);
    margin-bottom: calc(6 / 375 * 100vw) !important;
  }

  body.is-lp .lp-flow__card-title {
    font-size: calc(18 / 375 * 100vw);
    letter-spacing: 0;
    line-height: 1.3;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-navy);
  }

  body.is-lp #lp .lp-flow__card-icon {
    width: calc(100 / 375 * 100vw);
    height: calc(67 / 375 * 100vw);
    object-fit: contain;
    flex-shrink: 0;
  }

  body.is-lp .lp-flow__card-period {
    font-size: calc(14 / 375 * 100vw);
    letter-spacing: 0;
    line-height: 1;
    font-weight: 400;
    font-family: var(--ff-yugothic);
    color: var(--color-text);
    margin-bottom: calc(16 / 375 * 100vw) !important;
  }

  body.is-lp .lp-flow__card-desc {
    font-size: calc(16 / 375 * 100vw);
    letter-spacing: 0;
    line-height: 1.4;
    font-weight: 400;
    font-family: var(--ff-yugothic);
    color: var(--color-text);
  }

  body.is-lp .lp-flow__card-note {
    font-size: calc(14 / 375 * 100vw);
    letter-spacing: 0;
    line-height: 1.6;
    font-weight: 400;
    font-family: var(--ff-yugothic);
    color: #777;
    margin-top: calc(12 / 375 * 100vw) !important;
  }

  body.is-lp .lp-flow__accordion {
    border-top: 1px solid var(--color-blue);
    border-bottom: 1px solid var(--color-blue);
    margin-top: calc(16 / 375 * 100vw) !important;
    padding: calc(12 / 375 * 100vw) 0;
  }

  body.is-lp .lp-flow__accordion-trigger {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: calc(8 / 375 * 100vw);
    font-size: calc(16 / 375 * 100vw);
    letter-spacing: 0;
    line-height: 2.1;
    font-weight: 400;
    font-family: var(--ff-yugothic);
    color: var(--color-blue);
    cursor: pointer;
    list-style: none;
  }

  body.is-lp .lp-flow__accordion-trigger::-webkit-details-marker {
    display: none;
  }

  body.is-lp .lp-flow__accordion-trigger::after {
    content: "▼";
    font-size: calc(10 / 375 * 100vw);
    color: var(--color-blue);
    transition: transform 0.3s;
  }

  body.is-lp .lp-flow__accordion[open] .lp-flow__accordion-trigger::after {
    transform: rotate(180deg);
  }

  body.is-lp .lp-flow__accordion-content {
    padding: calc(20 / 375 * 100vw) 0 0;
    transition: height 0.4s ease;
  }

  body.is-lp .lp-flow__accordion-steps {
    list-style: none;
    padding-left: 0;
    position: relative;
  }

  body.is-lp .lp-flow__accordion-steps::before {
    content: "";
    position: absolute;
    left: calc(24 / 375 * 100vw);
    top: calc(12 / 375 * 100vw);
    bottom: calc(12 / 375 * 100vw);
    width: 1px;
    height: auto;
    background-color: var(--color-blue);
  }

  body.is-lp .lp-flow__card:nth-child(3) .lp-flow__accordion-steps::before,
  body.is-lp .lp-flow__card:nth-child(4) .lp-flow__accordion-steps::before,
  body.is-lp .lp-flow__card:nth-child(5) .lp-flow__accordion-steps::before {
    height: auto;
  }

  body.is-lp .lp-flow__accordion-step {
    display: flex;
    align-items: flex-start;
    gap: calc(12 / 375 * 100vw);
  }

  body.is-lp .lp-flow__accordion-step-num {
    flex-shrink: 0;
    width: calc(50 / 375 * 100vw);
    height: calc(36 / 375 * 100vw);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: calc(14 / 375 * 100vw);
    font-weight: 400;
    font-family: var(--ff-yugothic);
    color: var(--color-blue);
    border: 1px solid var(--color-blue);
    background: var(--color-white);
    position: relative;
    z-index: 1;
  }

  body.is-lp .lp-flow__accordion-step-body {
    flex: 1;
  }

  body.is-lp .lp-flow__accordion-step-title {
    font-size: calc(16 / 375 * 100vw);
    letter-spacing: 0;
    line-height: 1.4;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-text);
    margin-bottom: calc(6 / 375 * 100vw) !important;
  }

  body.is-lp .lp-flow__accordion-step-label {
    display: inline-block;
    font-size: calc(14 / 375 * 100vw);
    letter-spacing: 0;
    line-height: 1.4;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-white);
    background: var(--color-orange);
    padding: calc(2 / 375 * 100vw) calc(6 / 375 * 100vw);
    margin-right: calc(6 / 375 * 100vw);
    vertical-align: middle;
  }

  body.is-lp .lp-flow__accordion-step-text {
    font-size: calc(14 / 375 * 100vw);
    letter-spacing: 0;
    line-height: 1.4;
    font-weight: 400;
    font-family: var(--ff-yugothic);
    color: var(--color-text);
    margin-bottom: calc(16 / 375 * 100vw) !important;
  }

  /* ---------- WORKS (SP) ---------- */
  body.is-lp .lp-works {
    padding: calc(40 / 375 * 100vw) 0;
    background: var(--color-white);
  }

  body.is-lp .lp-works__inner {
    display: flex;
    flex-direction: column;
    padding: 0 calc(16 / 375 * 100vw);
  }

  body.is-lp .lp-works__left {
    display: contents;
  }

  body.is-lp .lp-works__right {
    display: contents;
  }

  body.is-lp .lp-works__heading {
    order: 1;
    margin-bottom: calc(24 / 375 * 100vw);
  }

  body.is-lp .lp-works__main-img-wrap {
    order: 2;
    position: relative;
  }

  body.is-lp .lp-works__detail {
    order: 3;
  }

  body.is-lp .lp-works__thumbs-wrap,
  body.is-lp .lp-works__scrollbar {
    display: none;
  }

  body.is-lp .lp-works__nav-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: calc(40 / 375 * 100vw);
    height: calc(40 / 375 * 100vw);
    border-radius: 50%;
    border: none;
    background: rgba(255, 255, 255, 0.7);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: calc(30 / 375 * 100vw);
    color: var(--color-navy);
    z-index: 2;
    transition: background 0.2s;
    touch-action: manipulation;
  }

  body.is-lp .lp-works__nav-btn:active {
    background: rgba(255, 255, 255, 0.9);
  }

  body.is-lp .lp-works__nav-prev {
    left: calc(-15 / 375 * 100vw);
  }

  body.is-lp .lp-works__nav-next {
    right: calc(-15 / 375 * 100vw);
  }

  body.is-lp .lp-works__subtitle {
    position: relative;
    font-size: calc(18 / 375 * 100vw);
    letter-spacing: 0;
    line-height: 1.6;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-blue);
    margin-bottom: calc(16 / 375 * 100vw) !important;
  }

  body.is-lp .lp-works__subtitle::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -18%;
    width: calc(80 / 375 * 100vw);
    height: calc(8 / 375 * 100vw);
    background: url("../images/features-3-title-dec.png") no-repeat center / contain;
  }

  body.is-lp .lp-works__title {
    font-size: calc(28 / 375 * 100vw);
    letter-spacing: 0;
    line-height: 1.4;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-navy);
    margin-bottom: calc(24 / 375 * 100vw) !important;
  }

  body.is-lp .lp-works__main-img-wrap {
    margin-bottom: calc(16 / 375 * 100vw) !important;
  }

  body.is-lp #lp .lp-works__main-img {
    width: 100%;
    height: calc(250 / 375 * 100vw);
    object-fit: cover;
  }

  body.is-lp .lp-works__scrollbar {
    width: 100%;
    height: calc(4 / 375 * 100vw);
    background: #EFEFEF;
    border-radius: 0;
    margin-bottom: calc(16 / 375 * 100vw) !important;
    position: relative;
    overflow: hidden;
  }

  body.is-lp .lp-works__scrollbar::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    background: var(--color-navy);
    border-radius: 0;
    transition: width 0.3s ease, left 0.3s ease;
  }

  body.is-lp .lp-works__thumbs-wrap {
    overflow-x: scroll;
    overflow-y: hidden;
    -ms-overflow-style: none;
    scrollbar-width: none;
  }

  body.is-lp .lp-works__thumbs-wrap::-webkit-scrollbar {
    display: none;
  }

  body.is-lp .lp-works__thumbs {
    display: flex;
    gap: calc(8 / 375 * 100vw);
    width: max-content;
  }

  body.is-lp .lp-works__thumb {
    flex-shrink: 0;
    width: calc(120 / 375 * 100vw);
    height: calc(90 / 375 * 100vw);
    border: 2px solid transparent;
    border-radius: calc(4 / 375 * 100vw);
    overflow: hidden;
    cursor: pointer;
    opacity: 0.5;
    transition: opacity 0.3s, border-color 0.3s;
    padding: 0;
    background: none;
  }

  body.is-lp .lp-works__thumb.is-active {
    opacity: 1;
    border-color: var(--color-blue);
  }

  body.is-lp #lp .lp-works__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  body.is-lp .lp-works__industry {
    font-size: calc(14 / 375 * 100vw);
    letter-spacing: 0;
    line-height: 1;
    font-weight: 400;
    font-family: var(--ff-yugothic);
    color: var(--color-text);
    margin-bottom: calc(16 / 375 * 100vw) !important;
  }

  body.is-lp .lp-works__name {
    font-size: calc(22 / 375 * 100vw);
    letter-spacing: 0;
    line-height: 1.3;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-blue);
    margin-bottom: calc(12 / 375 * 100vw) !important;
  }

  body.is-lp .lp-works__url {
    font-size: calc(18 / 375 * 100vw);
    letter-spacing: 0;
    line-height: 1.6;
    font-weight: 400;
    font-family: var(--ff-yugothic);
    margin-bottom: calc(16 / 375 * 100vw) !important;
  }

  body.is-lp .lp-works__url a {
    color: var(--color-text);
    text-decoration: underline;
  }

  body.is-lp .lp-works__text {
    font-size: calc(16 / 375 * 100vw);
    letter-spacing: 0;
    line-height: 1.6;
    font-weight: 400;
    font-family: var(--ff-yugothic);
    color: var(--color-text);
    margin-bottom: calc(16 / 375 * 100vw) !important;
  }

  body.is-lp #lp .lp-works__proposal {
    width: 100%;
    height: auto;
    object-fit: contain;
    object-position: left;
  }

  /* ---------- CTA 2 (SP) ---------- */
  body.is-lp .lp-cta2 {
    position: relative;
    overflow: hidden;
    background-image: url("../images/cta-2-bg-sp.png");
    background-size: 100% 99%;
    background-position: center;
    background-repeat: no-repeat;
  }

  body.is-lp .lp-cta2__inner {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(24 / 375 * 100vw);
    padding: calc(40 / 375 * 100vw) calc(16 / 375 * 100vw) 0;
    box-sizing: border-box;
    min-height: auto;
  }

  body.is-lp .lp-cta2__left {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  body.is-lp .lp-cta2__tag {
    display: flex;
    align-items: center;
    justify-content: center;
    width: calc(327 / 375 * 100vw);
    height: calc(62 / 375 * 100vw);
    margin: 0 0 calc(20 / 375 * 100vw) 0 !important;
    padding: 0 calc(16 / 375 * 100vw);
    box-sizing: border-box;
    font-size: calc(18 / 375 * 100vw);
    letter-spacing: 0;
    line-height: 1.6;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-navy);
    text-align: center;
    background-color: var(--color-white);
    clip-path: polygon(
      calc(12 / 375 * 100vw) 0,
      calc(100% - calc(12 / 375 * 100vw)) 0,
      100% 50%,
      calc(100% - calc(12 / 375 * 100vw)) 100%,
      calc(12 / 375 * 100vw) 100%,
      0 50%
    );
  }

  body.is-lp .lp-cta2__title {
    font-size: calc(22 / 375 * 100vw);
    letter-spacing: 0;
    line-height: 1.6;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-white);
    margin: 0 0 calc(32 / 375 * 100vw) 0 !important;
  }

  body.is-lp .lp-cta2__desc {
    font-size: calc(16 / 375 * 100vw);
    letter-spacing: 0;
    line-height: 1.9;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-white);
    margin: 0 0 calc(40 / 375 * 100vw) 0 !important;
  }

  body.is-lp .lp-cta2__btn {
    font-size: calc(18 / 375 * 100vw);
    font-weight: 700;
    color: var(--color-white);
    background: linear-gradient(to bottom, #F59f00 50%, #eb7700 50%);
    width: calc(280 / 375 * 100vw);
    height: calc(56 / 375 * 100vw);
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: calc(100 / 375 * 100vw);
    box-shadow: 0 calc(4 / 375 * 100vw) 0 #C86400;
  }

  body.is-lp .lp-cta2__right {
    position: static;
    width: calc(200 / 375 * 100vw);
    height: calc(186 / 375 * 100vw);
    line-height: 0;
  }

  body.is-lp #lp .lp-cta2__illustration {
    display: block;
    width: 100%;
    height: auto;
  }

  /* ---------- FAQ (SP) ---------- */
  body.is-lp .lp-faq {
    background-color: #F7F7F7;
    padding: calc(40 / 375 * 100vw) calc(20 / 375 * 100vw);
  }

  body.is-lp .lp-faq__head {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
  }

  body.is-lp .lp-faq__title {
    font-size: calc(28 / 375 * 100vw);
    letter-spacing: 0.016em;
    line-height: 1.4;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-navy);
    margin-top: calc(6 / 375 * 100vw) !important;
    margin-bottom: calc(24 / 375 * 100vw) !important;
  }

  body.is-lp .lp-faq__list {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
  }

  body.is-lp .lp-faq__item {
    width: 100%;
    margin-bottom: calc(16 / 375 * 100vw);
    background-color: var(--color-white);
  }

  body.is-lp .lp-faq__question {
    display: flex;
    flex-direction: row;
    align-items: center;
    box-sizing: border-box;
    min-height: calc(60 / 375 * 100vw);
    padding: calc(12 / 375 * 100vw) calc(8 / 375 * 100vw);
    cursor: pointer;
    list-style: none;
  }

  body.is-lp .lp-faq__question::-webkit-details-marker {
    display: none;
  }

  body.is-lp #lp .lp-faq__q-icon {
    flex-shrink: 0;
    width: calc(20 / 375 * 100vw);
    height: calc(32 / 375 * 100vw);
    margin-right: calc(12 / 375 * 100vw);
    object-fit: contain;
  }

  body.is-lp .lp-faq__q-text {
    flex: 1;
    width: auto;
    margin-right: calc(4 / 375 * 100vw);
    font-size: calc(16 / 375 * 100vw);
    letter-spacing: -0.04em;
    line-height: 1.6;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-text);
  }

  body.is-lp .lp-faq__toggle {
    flex-shrink: 0;
    position: relative;
    width: calc(20 / 375 * 100vw);
    height: calc(20 / 375 * 100vw);
    color: var(--color-blue);
  }

  body.is-lp .lp-faq__toggle::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: calc(20 / 375 * 100vw);
    height: calc(3 / 375 * 100vw);
    transform: translate(-50%, -50%);
    background-color: var(--color-blue);
  }

  body.is-lp .lp-faq__toggle::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: calc(3 / 375 * 100vw);
    height: calc(20 / 375 * 100vw);
    transform: translate(-50%, -50%);
    background-color: var(--color-blue);
  }

  body.is-lp .lp-faq__item[open] .lp-faq__toggle::after {
    display: none;
  }

  body.is-lp .lp-faq__answer {
    transition: height 0.4s ease;
  }

  body.is-lp .lp-faq__item[open] > .lp-faq__answer {
    border-top: 1px solid #D2D2D2;
  }

  body.is-lp .lp-faq__answer-inner {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    box-sizing: border-box;
    padding: calc(12 / 375 * 100vw) calc(8 / 375 * 100vw);
  }

  body.is-lp #lp .lp-faq__a-icon {
    flex-shrink: 0;
    width: calc(20 / 375 * 100vw);
    height: calc(32 / 375 * 100vw);
    margin-right: calc(12 / 375 * 100vw);
    object-fit: contain;
  }

  body.is-lp .lp-faq__a-text {
    flex: 1 1 auto;
    min-width: 0;
    font-size: calc(16 / 375 * 100vw);
    letter-spacing: -0.04em;
    line-height: 1.6;
    font-weight: 400;
    font-family: var(--ff-yugothic);
    color: var(--color-text);
    margin: 0 !important;
    font-feature-settings: "palt";
  }

  /* ---------- CONTACT (SP) ---------- */
  body.is-lp .lp-contact {
    background-image: url("../images/contact-bg.png");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-color: var(--color-blue);
    min-height: auto;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: calc(40 / 375 * 100vw) calc(16 / 375 * 100vw);
  }

  body.is-lp .lp-contact__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
  }

  body.is-lp .lp-contact__title {
    font-size: calc(28 / 375 * 100vw);
    letter-spacing: 0.016em;
    line-height: 1.4;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-white);
    margin-bottom: calc(16 / 375 * 100vw) !important;
  }

  body.is-lp .lp-contact__lead {
    font-size: calc(16 / 375 * 100vw);
    letter-spacing: 0;
    line-height: 1.6;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-white);
    text-align: center;
    margin-bottom: calc(24 / 375 * 100vw) !important;
  }

  body.is-lp .lp-contact__form-area {
    width: 100%;
    min-height: auto;
  }

  body.is-lp .lp-contact__form-area table.contact {
    width: 100%;
    border-collapse: collapse;
    border-spacing: 0;
    border: none;
  }

  body.is-lp .lp-contact__form-area table.contact tr {
    border: none;
    display: flex;
    flex-direction: column;
    margin-bottom: calc(16 / 375 * 100vw);
  }

  body.is-lp .lp-contact__form-area table.contact th,
  body.is-lp .lp-contact__form-area table.contact td {
    border: none;
    padding: 0;
    vertical-align: middle;
    background: transparent;
    width: 100%;
    display: block;
  }

  body.is-lp .lp-contact__form-area table.contact th {
    font-size: calc(16 / 375 * 100vw);
    letter-spacing: 0;
    line-height: 1.6;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-white);
    text-align: left;
    white-space: normal;
    padding-right: 0;
    margin-bottom: calc(8 / 375 * 100vw);
  }

  body.is-lp .lp-contact__form-area table.contact td {
    width: 100%;
    padding-bottom: 0;
  }

  body.is-lp .lp-contact__form-area .must {
    display: inline-block;
    font-size: calc(12 / 375 * 100vw);
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-white);
    background: var(--color-orange);
    padding: calc(2 / 375 * 100vw) calc(6 / 375 * 100vw);
    border-radius: calc(3 / 375 * 100vw);
    line-height: 1.4;
    vertical-align: middle;
    margin-left: calc(6 / 375 * 100vw);
  }

  body.is-lp .lp-contact__form-area .wpcf7-form-control:not(.wpcf7-submit):not(textarea) {
    width: 100%;
    height: calc(48 / 375 * 100vw);
    padding: 0 calc(12 / 375 * 100vw);
    border: none;
    border-radius: calc(4 / 375 * 100vw);
    background: var(--color-white);
    font-size: calc(14 / 375 * 100vw);
    font-family: var(--ff-yugothic);
    color: var(--color-text);
    outline: none;
    box-sizing: border-box;
  }

  body.is-lp .lp-contact__form-area textarea.wpcf7-form-control {
    width: 100%;
    height: calc(160 / 375 * 100vw);
    padding: calc(12 / 375 * 100vw);
    border: none;
    border-radius: calc(4 / 375 * 100vw);
    background: var(--color-white);
    font-size: calc(14 / 375 * 100vw);
    font-family: var(--ff-yugothic);
    color: var(--color-text);
    outline: none;
    box-sizing: border-box;
    resize: vertical;
  }

  body.is-lp .lp-contact__form-area .privacy {
    text-align: center;
    margin-top: calc(24 / 375 * 100vw) !important;
  }

  body.is-lp #lp .lp-contact__form-area .privacy a {
    font-size: calc(16 / 375 * 100vw);
    line-height: 1.6;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-white);
    text-decoration: underline;
    font-feature-settings: "palt";
  }

  body.is-lp .lp-contact__form-area .privacy p {
    font-size: calc(16 / 375 * 100vw);
    font-weight: 400;
    font-family: var(--ff-yugothic);
    color: var(--color-white);
    line-height: 1.6;
    margin-top: calc(12 / 375 * 100vw) !important;
  }

  body.is-lp .lp-contact__form-area .submit_btn {
    text-align: center;
    margin-top: calc(20 / 375 * 100vw) !important;
  }

  body.is-lp .lp-contact__form-area .wpcf7-submit {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
    width: calc(335 / 375 * 100vw);
    height: calc(56 / 375 * 100vw);
    font-size: calc(18 / 375 * 100vw);
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-white);
    background: linear-gradient(to bottom, #F59f00 50%, #eb7700 50%);
    border: none;
    border-radius: calc(100 / 375 * 100vw);
    box-shadow: 0 calc(4 / 375 * 100vw) 0 #C86400;
    cursor: pointer;
  }

  body.is-lp .lp-contact__form-area .wpcf7-not-valid-tip {
    font-size: calc(12 / 375 * 100vw);
    color: #FFFFFF;
    background: #FF0000;
    margin-top: calc(4 / 375 * 100vw) !important;
    padding: calc(4 / 375 * 100vw) calc(8 / 375 * 100vw);
    border-radius: 4px;
    display: inline-block;
  }

  body.is-lp .lp-contact__form-area .wpcf7-response-output {
    font-size: calc(13 / 375 * 100vw);
    color: var(--color-white);
    text-align: center;
    margin-top: calc(12 / 375 * 100vw) !important;
    border-color: rgba(255, 255, 255, 0.4);
    padding: calc(8 / 375 * 100vw);
  }

  /* ---------- Footer (SP) ---------- */
  body.is-lp .lp-footer {
    background-color: var(--color-navy);
    padding: calc(24 / 375 * 100vw) calc(20 / 375 * 100vw);
    padding-bottom: max(calc(100 / 375 * 100vw), calc(24 / 375 * 100vw + env(safe-area-inset-bottom) + calc(80 / 375 * 100vw)));
  }

  body.is-lp .lp-footer__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(16 / 375 * 100vw);
  }

  body.is-lp .lp-footer__logo {
    display: block;
    width: calc(100 / 375 * 100vw);
  }

  body.is-lp #lp .lp-footer__logo img {
    width: 100%;
    height: auto;
  }

  body.is-lp .lp-footer__info {
    font-size: calc(11 / 375 * 100vw);
    line-height: 1.4;
    font-weight: 400;
    font-family: var(--ff-yugothic);
    color: var(--color-white);
    text-align: center;
  }

} /* end @media (max-width: 768px) */

/* --- PC: hide SP-only elements --- */
@media (min-width: 769px) {
  body.is-lp .lp-header__hamburger {
    display: none;
  }
  body.is-lp .lp-mobile-menu {
    display: none;
  }
}

/* ===========================
   Marquee Keyframes
   =========================== */
@keyframes marquee-ltr {
  from { transform: translateX(calc(-1719 / 1440 * var(--base))); }
  to   { transform: translateX(0); }
}

@keyframes marquee-rtl {
  from { transform: translateX(0); }
  to   { transform: translateX(calc(-1644 / 1440 * var(--base))); }
}

@keyframes marquee-solution {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}


/* ===========================
   PC (769px〜)
   =========================== */
@media (min-width: 769px) {

  /* ---------- Header ---------- */
  body.is-lp .lp-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: calc(80 / 1440 * var(--base));
    background: rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(calc(8 / 1440 * var(--base)));
    -webkit-backdrop-filter: blur(calc(8 / 1440 * var(--base)));
    z-index: 100;
    padding-left: calc(40 / 1440 * var(--base));
    border-radius: 0 0 0 calc(40 / 1440 * var(--base));
    box-shadow:
      0 calc(6 / 1440 * var(--base)) calc(15 / 1440 * var(--base)) rgba(0, 92, 145, 0.1),
      inset 0 calc(-1 / 1440 * var(--base)) 0 rgba(255, 255, 255, 0.3);
  }

  body.is-lp .lp-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    height: 100%;
    position: relative;
  }

  body.is-lp .lp-header__logo {
    display: block;
    width: calc(141 / 1440 * var(--base));
  }

  body.is-lp .lp-header__logo img {
    width: 100%;
    height: auto;
  }

  body.is-lp .lp-header__nav {
    display: flex;
    align-items: center;
    gap: calc(32 / 1440 * var(--base));
    margin-left: auto;
    margin-right: calc(474 / 1440 * var(--base));
    width: calc(512 / 1440 * var(--base));
  }

  body.is-lp .lp-header__nav a {
    font-family: var(--ff-yugothic);
    font-size: calc(16 / 1440 * var(--base));
    font-weight: 700;
    color: var(--color-text);
    transition: opacity 0.2s;
    white-space: nowrap;
  }

  body.is-lp .lp-header__nav a:hover {
    opacity: 0.7;
  }

  body.is-lp .lp-header__cta {
    display: flex;
    align-items: center;
    justify-content: center;
    width: calc(200 / 1440 * var(--base));
    height: calc(96 / 1440 * var(--base));
    padding: 0 calc(40 / 1440 * var(--base));
    background: linear-gradient(to bottom, #F59f00 50%, #eb7700 50%);
    color: var(--color-white);
    font-size: calc(20 / 1440 * var(--base));
    font-weight: 700;
    transition: opacity 0.2s;
    position: absolute;
    right: 0;
    top: 0;
    white-space: nowrap;
    border-radius: 0 0 0 calc(40 / 1440 * var(--base));
  }

  body.is-lp .lp-header__cta:hover {
    opacity: 0.85;
  }

  /* ---------- Hero（FV） ---------- */
  body.is-lp .lp-hero {
    position: relative;
    width: 100%;
    height: calc(940 / 1440 * var(--base));
    background-image: url("../images/fv.jpg");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
  }

  body.is-lp .lp-hero__catch {
    position: absolute;
    top: 50%;
    left: calc(40 / 1440 * var(--base));
    transform: translateY(-50%);
    display: flex;
    flex-direction: column;
    gap: calc(16 / 1440 * var(--base));
    font-family: var(--ff-mincho);
    font-weight: 400;
    line-height: 1;
    color: var(--color-navy);
  }

  body.is-lp .lp-hero__catch-line {
    display: flex;
    align-items: flex-end;
    height: calc(77 / 1440 * var(--base));
    background: #FFF;
    font-size: calc(64 / 1440 * var(--base));
    padding: 0 calc(8 / 1440 * var(--base)) calc(8 / 1440 * var(--base));
    white-space: nowrap;
  }

  body.is-lp .lp-hero__font-small {
    font-size: calc(56 / 1440 * var(--base));
  }

  body.is-lp .lp-hero__catch-line--1 {
    width: calc(701 / 1440 * var(--base));
  }

  body.is-lp .lp-hero__catch-line--2 {
    width: calc(432 / 1440 * var(--base));
  }

  body.is-lp .lp-hero__mock {
    position: absolute;
    left: calc(76 / 1440 * var(--base));
    bottom: calc(-40 / 1440 * var(--base)); /* 下にはみ出す量（仮） */
    width: calc(588 / 1440 * var(--base));
    height: calc(363 / 1440 * var(--base));
    z-index: 2;
  }

  body.is-lp .lp-hero__mock img {
    width: 100%;
    height: auto;
  }

  body.is-lp .lp-hero__cta-container {
    position: absolute;
    right: 0;
    bottom: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    width: calc(659 / 1440 * var(--base));
    height: calc(284 / 1440 * var(--base));
    padding: calc(40 / 1440 * var(--base));
    background: var(--color-white);
    z-index: 1;
    transition: opacity 0.2s;
    gap: calc(40 / 1440 * var(--base));
  }

  body.is-lp .lp-hero__cta-text {
    font-size: calc(18 / 1440 * var(--base));
    font-weight: 400;
    font-family: var(--ff-yugothic);
    color: var(--color-text);
    letter-spacing: -0.06em;
    line-height: 1.6;
  }
  body.is-lp .lp-hero__cta {
    font-size: calc(28 / 1440 * var(--base));
    font-weight: 700;
    color: var(--color-white);
    background: linear-gradient(to bottom, #F59f00 50%, #eb7700 50%);
    width: calc(491 / 1440 * var(--base));
    height: calc(77 / 1440 * var(--base));
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: calc(100 / 1440 * var(--base));
    box-shadow: 0 calc(6 / 1440 * var(--base)) 0 #C86400;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
  }

  body.is-lp .lp-hero__cta:hover {
    transform: translateY(calc(6 / 1440 * var(--base)));
    box-shadow: 0 0 0 #C86400;
  }

  /* ---------- Features 1 ---------- */
  body.is-lp .lp-features1 {
    background-image: url("../images/features-1-bg.png");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: calc(160 / 1440 * var(--base)) 0 calc(80 / 1440 * var(--base));
  }

  body.is-lp .lp-features1__subtitle,
  body.is-lp .lp-faq__subtitle {
    font-size: calc(20 / 1440 * var(--base));
    letter-spacing: 0.05em;
    line-height: 1;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-blue);
    margin-bottom: calc(6 / 1440 * var(--base)) !important;
  }

  body.is-lp .lp-features1__subtitle-dec,
  body.is-lp .lp-faq__subtitle-dec {
    width: calc(120 / 1440 * var(--base));
    height: auto;
  }

  body.is-lp .lp-features1__title {
    font-size: calc(48 / 1440 * var(--base));
    letter-spacing: 0.016em;
    line-height: 1.4;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-navy);
    margin-bottom: calc(64 / 1440 * var(--base)) !important;
    margin-top: calc(8 / 1440 * var(--base)) !important;
  }

  body.is-lp .lp-features1__circles-wrap {
    position: relative;
    width: calc(1154 / 1440 * var(--base));
  }

  body.is-lp .lp-features1__circle-img {
    width: 100%;
    height: auto;
  }

  body.is-lp .lp-features1__contents {
    position: absolute;
    top: 0;
    left: 51%;
    transform: translateX(-50%);
    width: 100%;
    height: 100%;
    display: flex;
  }

  body.is-lp .lp-features1__content {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-top: calc(25 / 1440 * var(--base));
    color: var(--color-white);
    text-align: center;
    width: calc(376 / 1440 * var(--base));
  }

  body.is-lp .lp-features1__number {
    font-size: calc(40 / 1440 * var(--base));
    letter-spacing: 0;
    line-height: 1;
    font-weight: 700;
    font-family: var(--ff-yugothic);
  }

  body.is-lp .lp-features1__icon {
    object-fit: contain;
  }

  body.is-lp #lp .lp-features1__icon--1 {
    width: calc(81 / 1440 * var(--base));
    height: calc(56 / 1440 * var(--base));
  }

  body.is-lp #lp .lp-features1__icon--2 {
    width: calc(101 / 1440 * var(--base));
    height: calc(47 / 1440 * var(--base));
  }

  body.is-lp #lp .lp-features1__icon--3 {
    width: calc(81 / 1440 * var(--base));
    height: calc(63 / 1440 * var(--base));
  }

  body.is-lp .lp-features1__content--1 .lp-features1__number {
    margin-bottom: calc(7 / 1440 * var(--base)) !important;
  }

  body.is-lp .lp-features1__content--1 .lp-features1__icon {
    margin-bottom: calc(17 / 1440 * var(--base)) !important;
  }

  body.is-lp .lp-features1__content--2 .lp-features1__number {
    margin-bottom: calc(14 / 1440 * var(--base)) !important;
  }

  body.is-lp .lp-features1__content--2 .lp-features1__icon {
    margin-bottom: calc(19 / 1440 * var(--base)) !important;
  }

  body.is-lp .lp-features1__content--3 .lp-features1__number {
    margin-bottom: calc(7 / 1440 * var(--base)) !important;
  }

  body.is-lp .lp-features1__content--3 .lp-features1__icon {
    margin-bottom: calc(9 / 1440 * var(--base));
  }

  body.is-lp .lp-features1__content-title {
    font-size: calc(36 / 1440 * var(--base));
    letter-spacing: 0;
    line-height: 1.6;
    font-weight: 700;
    font-family: var(--ff-noto);
  }

  body.is-lp #lp .lp-features1__content-dec {
    width: calc(246 / 1440 * var(--base));
    height: calc(19 / 1440 * var(--base));
    margin-bottom: calc(24 / 1440 * var(--base)) !important;
    margin-top: calc(-6 / 1440 * var(--base));
  }

  body.is-lp .lp-features1__content-text {
    font-size: calc(20 / 1440 * var(--base));
    letter-spacing: 0;
    line-height: 1.6;
    font-weight: 500;
    font-family: var(--ff-noto);
  }

  /* ---------- Features 2 ---------- */
  body.is-lp .lp-features2 {
    background-image: url("../images/features-2-bg.png");
    background-size: 100% calc(610 / 1440 * var(--base));
    background-position: center;
    background-repeat: no-repeat;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: calc(115 / 1440 * var(--base)) 0;
  }

  body.is-lp .lp-features2__title-box {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: calc(8 / 1440 * var(--base));
    width: calc(498 / 1440 * var(--base));
    height: calc(62 / 1440 * var(--base));
    background-color: var(--color-text);
    margin-bottom: calc(40 / 1440 * var(--base));
  }

  body.is-lp #lp .lp-features2__icon {
    width: calc(45 / 1440 * var(--base));
    height: calc(40 / 1440 * var(--base));
  }

  body.is-lp .lp-features2__title {
    font-size: calc(32 / 1440 * var(--base));
    letter-spacing: 0;
    line-height: 1;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-white);
  }

  body.is-lp .lp-features2__lead {
    margin-bottom: calc(40 / 1440 * var(--base));
  }

  body.is-lp .lp-features2__lead-sub {
    font-size: calc(24 / 1440 * var(--base));
    letter-spacing: -0.03em;
    line-height: 1.4;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-navy);
  }

  body.is-lp .lp-features2__lead-main {
    font-size: calc(36 / 1440 * var(--base));
    letter-spacing: 0;
    line-height: 1.4;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-navy);
  }

  body.is-lp .lp-features2__desc {
    font-size: calc(20 / 1440 * var(--base));
    letter-spacing: 0;
    line-height: 1.6;
    font-weight: 500;
    font-family: var(--ff-yugothic);
    color: var(--color-text);
  }

  body.is-lp .lp-features2__desc-bold {
    font-size: calc(24 / 1440 * var(--base));
    font-weight: 700;
  }

  /* ---------- Features 3 ---------- */
  body.is-lp .lp-features3 {
    background-image: url("../images/features-3-bg.png");
    background-size: 100% calc(835 / 1440 * var(--base));
    background-position: center;
    background-repeat: no-repeat;
    padding: 0;
  }

  body.is-lp .lp-features3__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
  }

  body.is-lp .lp-features3__text {
    width: calc(748 / 1440 * var(--base));
    padding-left: calc(120 / 1440 * var(--base));
  }

  body.is-lp .lp-features3__subtitle {
    position: relative;
    font-size: calc(24 / 1440 * var(--base));
    letter-spacing: 0;
    line-height: 1.6;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-blue);
    margin-bottom: calc(20 / 1440 * var(--base)) !important;
  }

  body.is-lp .lp-features3__subtitle::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -18%;
    width: calc(112 / 1440 * var(--base));
    height: calc(12 / 1440 * var(--base));
    background: url("../images/features-3-title-dec.png") no-repeat center / contain;
  }

  body.is-lp .lp-features3__title {
    font-size: calc(48 / 1440 * var(--base));
    letter-spacing: 0;
    line-height: 1.4;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-navy);
    margin-bottom: calc(40 / 1440 * var(--base)) !important;
  }

  body.is-lp .lp-features3__desc {
    font-size: calc(18 / 1440 * var(--base));
    letter-spacing: 0;
    line-height: 1.6;
    font-weight: 500;
    font-family: var(--ff-yugothic);
    color: var(--color-text);
    margin-bottom: calc(24 / 1440 * var(--base)) !important;
  }

  body.is-lp .lp-features3__visual {
    display: flex;
    justify-content: center;
    padding-right: calc(36 / 1440 * var(--base));
  }

  body.is-lp #lp .lp-features3__mock {
    width: calc(548 / 1440 * var(--base));
    height: calc(835 / 1440 * var(--base));
    object-fit: contain;
  }

  /* ---------- Feature Banner Scroll (Marquee) ---------- */
  body.is-lp .lp-feature-banner {
    background-image: url("../images/feature-banner-scroll-bg.png");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    overflow: hidden;
    height: calc(389 / 1440 * var(--base));
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: calc(24 / 1440 * var(--base));
    padding-bottom: calc(40 / 1440 * var(--base)) !important;
  }

  body.is-lp .lp-feature-banner__logo-track {
    overflow: hidden;
    width: 100%;
    height: calc(113 / 1440 * var(--base));
    background-color: #FFF;
  }

  body.is-lp .lp-feature-banner__logo-inner {
    display: flex;
    height: 100%;
    animation: marquee-ltr 25s linear infinite;
  }

  body.is-lp .lp-feature-banner__logo-set {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    width: calc(1719 / 1440 * var(--base));
    gap: calc(28 / 1440 * var(--base));
    padding-right: calc(28 / 1440 * var(--base));
  }

  body.is-lp #lp .lp-feature-banner__logo {
    flex-shrink: 0;
    width: calc(163 / 1440 * var(--base));
    object-fit: contain;
  }

  body.is-lp #lp .lp-feature-banner__logo--1,
  body.is-lp #lp .lp-feature-banner__logo--3,
  body.is-lp #lp .lp-feature-banner__logo--5,
  body.is-lp #lp .lp-feature-banner__logo--6,
  body.is-lp #lp .lp-feature-banner__logo--8 {
    height: calc(56 / 1440 * var(--base));
  }

  body.is-lp #lp .lp-feature-banner__logo--2,
  body.is-lp #lp .lp-feature-banner__logo--4,
  body.is-lp #lp .lp-feature-banner__logo--7,
  body.is-lp #lp .lp-feature-banner__logo--9 {
    height: calc(113 / 1440 * var(--base));
  }

  body.is-lp .lp-feature-banner__proposal-track {
    overflow: hidden;
    width: 100%;
    height: calc(196 / 1440 * var(--base));
  }

  body.is-lp .lp-feature-banner__proposal-inner {
    display: flex;
    height: 100%;
    animation: marquee-rtl 30s linear infinite;
  }

  body.is-lp .lp-feature-banner__proposal-set {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    width: calc(1644 / 1440 * var(--base));
    gap: calc(14 / 1440 * var(--base));
    padding-right: calc(14 / 1440 * var(--base));
  }

  body.is-lp #lp .lp-feature-banner__proposal {
    flex-shrink: 0;
    width: calc(260 / 1440 * var(--base));
    height: calc(196 / 1440 * var(--base));
    object-fit: cover;
  }

  /* ---------- Industries ---------- */
  body.is-lp .lp-industries {
    background: linear-gradient(to bottom, #E3F5FF 50%, #027CC2 50%);
    display: flex;
    justify-content: center;
    align-items: center;
  }

  body.is-lp .lp-industries__inner {
    background: #FFF;
    border-radius: calc(40 / 1440 * var(--base));
    padding: calc(80 / 1440 * var(--base)) calc(120 / 1440 * var(--base));
    width: calc(1440 / 1440 * var(--base));
    text-align: center;
  }

  body.is-lp .lp-industries__subtitle {
    position: relative;
    font-size: calc(20 / 1440 * var(--base));
    letter-spacing: 0;
    line-height: 1;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-blue);
    margin-bottom: calc(20 / 1440 * var(--base)) !important;
  }

  body.is-lp .lp-industries__subtitle::after {
    content: "";
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    bottom: calc(-14 / 1440 * var(--base));
    width: calc(130 / 1440 * var(--base));
    height: calc(12 / 1440 * var(--base));
    background: url("../images/features-1-title-dec.png") no-repeat center / contain;
  }

  body.is-lp .lp-industries__title {
    font-size: calc(48 / 1440 * var(--base));
    letter-spacing: 0.016em;
    line-height: 1.4;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-navy);
    margin-top: calc(8 / 1440 * var(--base)) !important;
    margin-bottom: calc(16 / 1440 * var(--base)) !important;
  }

  body.is-lp .lp-industries__desc {
    font-size: calc(18 / 1440 * var(--base));
    font-weight: 500;
    font-family: var(--ff-yugothic);
    color: var(--color-text);
    line-height: 1.6;
    margin-bottom: calc(40 / 1440 * var(--base)) !important;
  }

  body.is-lp .lp-industries__grid {
    display: grid;
    grid-template-columns: repeat(5, calc(220 / 1440 * var(--base)));
    gap: calc(25 / 1440 * var(--base));
    justify-content: center;
  }

  body.is-lp .lp-industries__item {
    width: calc(220 / 1440 * var(--base));
    text-align: center;
  }

  body.is-lp #lp .lp-industries__img {
    width: calc(220 / 1440 * var(--base));
    height: calc(146 / 1440 * var(--base));
    object-fit: cover;
    border-radius: calc(8 / 1440 * var(--base));
  }

  body.is-lp .lp-industries__label {
    font-size: calc(20 / 1440 * var(--base));
    letter-spacing: 0;
    line-height: 1;
    font-weight: 500;
    font-family: var(--ff-yugothic);
    color: var(--color-navy);
    margin-top: calc(8 / 1440 * var(--base)) !important;
  }

  body.is-lp .lp-industries__item--note {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #F7F7F7;
    height: calc(175 / 1440 * var(--base));
    padding: calc(10 / 1440 * var(--base));
  }

  body.is-lp .lp-industries__note {
    font-size: calc(18 / 1440 * var(--base));
    font-weight: 500;
    font-family: var(--ff-yugothic);
    color: var(--color-text);
    line-height: 1.6;
    text-align: left;
  }

  /* ---------- Solution Marquee ---------- */
  body.is-lp .lp-solution-marquee {
    overflow: hidden;
    height: calc(76 / 1440 * var(--base));
    display: flex;
    align-items: center;
    margin-bottom: calc(84 / 1440 * var(--base)) !important;
  }

  body.is-lp .lp-solution-marquee__inner {
    display: flex;
    align-items: center;
    white-space: nowrap;
    animation: marquee-solution 40s linear infinite;
  }

  body.is-lp .lp-solution-marquee__group {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    gap: calc(24 / 1440 * var(--base));
    padding-right: calc(24 / 1440 * var(--base));
  }

  body.is-lp #lp .lp-solution-marquee__icon {
    flex-shrink: 0;
    object-fit: contain;
  }

  body.is-lp #lp .lp-solution-marquee__icon--1 {
    width: calc(62 / 1440 * var(--base));
    height: calc(62 / 1440 * var(--base));
  }

  body.is-lp #lp .lp-solution-marquee__icon--2 {
    width: calc(62 / 1440 * var(--base));
    height: calc(76 / 1440 * var(--base));
  }

  body.is-lp .lp-solution-marquee__text {
    font-size: calc(48 / 1440 * var(--base));
    letter-spacing: 0;
    line-height: 1.4;
    font-weight: 400;
    font-family: var(--ff-mincho);
    color: var(--color-navy);
    flex-shrink: 0;
  }

  /* ---------- Solution ---------- */
  body.is-lp .lp-solution {
    background: url("../images/solution-bg.png") no-repeat;
    background-size: 100% auto;
    background-position: top center;
    background-color: #FFF;
    padding: calc(160 / 1440 * var(--base)) calc(120 / 1440 * var(--base));
  }

  body.is-lp .lp-solution__inner {
    width: calc(1200 / 1440 * var(--base));
    margin: 0 auto;
  }

  body.is-lp .lp-solution__subtitle {
    position: relative;
    font-size: calc(24 / 1440 * var(--base));
    letter-spacing: 0;
    line-height: 1.6;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-blue);
    margin-bottom: calc(20 / 1440 * var(--base)) !important;
  }

  body.is-lp .lp-solution__subtitle::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: calc(-8 / 1440 * var(--base));
    width: calc(112 / 1440 * var(--base));
    height: calc(12 / 1440 * var(--base));
    background: url("../images/features-3-title-dec.png") no-repeat center / contain;
  }

  body.is-lp .lp-solution__title {
    font-size: calc(48 / 1440 * var(--base));
    letter-spacing: 0;
    line-height: 1.4;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-navy);
    margin-bottom: calc(40 / 1440 * var(--base)) !important;
  }

  body.is-lp .lp-solution__cards {
    display: flex;
    align-items: flex-start;
  }

  body.is-lp .lp-solution__card {
    position: relative;
    width: calc(600 / 1440 * var(--base));
    min-height: calc(690 / 1440 * var(--base));
  }

  body.is-lp .lp-solution__card-visual {
    position: relative;
    width: 100%;
    height: calc(443 / 1440 * var(--base));
    overflow: hidden;
  }

  body.is-lp #lp .lp-solution__card-img {
    width: 100%;
    height: calc(443 / 1440 * var(--base));
    object-fit: cover;
  }

  body.is-lp .lp-solution__card-tags {
    position: absolute;
    right: calc(28 / 1440 * var(--base));
    top: calc(-22 / 1440 * var(--base));
    z-index: 2;
    display: flex;
    gap: calc(0 / 1440 * var(--base));
  }

  body.is-lp .lp-solution__card-tag {
    writing-mode: vertical-rl;
    text-orientation: upright;
    background: var(--color-blue);
    color: var(--color-white);
    font-size: calc(21 / 1440 * var(--base));
    font-weight: 700;
    font-family: var(--ff-yugothic);
    padding: calc(9 / 1440 * var(--base)) calc(4 / 1440 * var(--base));
    line-height: 1.6;
    font-feature-settings: "palt";
  }

  body.is-lp .lp-solution__card--step2 .lp-solution__card-tag {
    background: var(--color-navy);
  }

  body.is-lp .lp-solution__card-tag--step1 {
    height: calc(250 / 1440 * var(--base));
  }

  body.is-lp .lp-solution__card-tag--step2 {
    height: calc(250 / 1440 * var(--base));
  }

  body.is-lp .lp-solution__card-body {
    position: relative;
    z-index: 1;
    margin-top: calc(-185 / 1440 * var(--base));
    min-height: calc(432 / 1440 * var(--base));
    background: linear-gradient(to bottom, rgba(2, 124, 194, 0) 0%, rgba(2, 124, 194, 1) calc(86 / 1440 * var(--base)));
    padding: calc(64 / 1440 * var(--base)) calc(40 / 1440 * var(--base)) calc(40 / 1440 * var(--base));
    color: var(--color-white);
  }

  body.is-lp .lp-solution__card--step2 .lp-solution__card-body {
    background: linear-gradient(to bottom, rgba(18, 62, 118, 0) 0%, rgba(18, 62, 118, 1) calc(86 / 1440 * var(--base)));
  }

  body.is-lp .lp-solution__step {
    font-size: calc(22 / 1440 * var(--base));
    font-weight: 700;
    font-family: var(--ff-yugothic);
    letter-spacing: 0;
    line-height: 1.6;
    margin-bottom: calc(21 / 1440 * var(--base)) !important;
  }

  body.is-lp .lp-solution__card-heading {
    font-size: calc(42 / 1440 * var(--base));
    font-weight: 700;
    font-family: "Noto Sans JP", sans-serif;
    letter-spacing: 0;
    line-height: 1;
    margin-bottom: calc(3 / 1440 * var(--base)) !important;
  }

  body.is-lp .lp-solution__card-tax {
    font-size: calc(17 / 1440 * var(--base));
    font-weight: 700;
    font-family: "Noto Sans JP", sans-serif;
    letter-spacing: 0;
    line-height: 1.6;
    margin-bottom: calc(35 / 1440 * var(--base)) !important;
    text-align: end;
    width: calc(476 / 1440 * var(--base));
  }

  body.is-lp .lp-solution__card-tax--step2 {
    width: calc(285 / 1440 * var(--base));
  }

  body.is-lp .lp-solution__card-desc {
    font-size: calc(16 / 1440 * var(--base));
    font-weight: 700;
    font-family: var(--ff-yugothic);
    letter-spacing: 0;
    line-height: 1.6;
    margin-bottom: calc(24 / 1440 * var(--base)) !important;
  }

  /* --- Accordion --- */
  body.is-lp .lp-solution__accordion {
    border-top: 1px solid rgba(255, 255, 255, 0.4);
    border-bottom: 1px solid rgba(255, 255, 255, 0.4);
  }

  body.is-lp .lp-solution__accordion-trigger {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: calc(12 / 1440 * var(--base));
    font-size: calc(24 / 1440 * var(--base));
    font-weight: 700;
    font-family: var(--ff-yugothic);
    letter-spacing: 0;
    line-height: 1;
    color: var(--color-white);
    padding: calc(24 / 1440 * var(--base)) 0;
    cursor: pointer;
    list-style: none;
  }

  body.is-lp .lp-solution__accordion-trigger::-webkit-details-marker {
    display: none;
  }

  body.is-lp .lp-solution__accordion-trigger::after {
    content: "▼";
    font-size: calc(23 / 1440 * var(--base));
    width: calc(23 / 1440 * var(--base));
    height: calc(23 / 1440 * var(--base));
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.3s;
  }

  body.is-lp .lp-solution__accordion[open] .lp-solution__accordion-trigger::after {
    transform: rotate(180deg);
  }

  body.is-lp .lp-solution__accordion-content {
    padding: calc(16 / 1440 * var(--base)) 0 calc(8 / 1440 * var(--base));
    transition: height 0.4s ease;
  }

  body.is-lp .lp-solution__accordion-content ul {
    list-style: none;
    padding-left: 0;
    margin-bottom: calc(16 / 1440 * var(--base)) !important;
  }

  body.is-lp .lp-solution__accordion-content li::before {
    content: "・";
    font-size: calc(20 / 1440 * var(--base));
  }

  body.is-lp .lp-solution__accordion-content li {
    font-size: calc(18 / 1440 * var(--base));
    font-weight: 400;
    font-family: var(--ff-yugothic);
    letter-spacing: 0;
    line-height: 1.6;
    color: var(--color-white);
  }

  body.is-lp .lp-solution__accordion-note {
    font-size: calc(14 / 1440 * var(--base));
    font-weight: 400;
    font-family: var(--ff-yugothic);
    letter-spacing: 0;
    color: var(--color-white);
    line-height: 1.6;
    margin-bottom: calc(16 / 1440 * var(--base)) !important;
  }

  body.is-lp .lp-solution__accordion-text {
    font-size: calc(18 / 1440 * var(--base));
    font-weight: 400;
    font-family: var(--ff-yugothic);
    letter-spacing: 0;
    line-height: 1.6;
    color: var(--color-white);
    margin-bottom: calc(16 / 1440 * var(--base)) !important;
  }

  body.is-lp .lp-solution__accordion-highlight {
    font-size: calc(18 / 1440 * var(--base));
    font-weight: 400;
    font-family: var(--ff-yugothic);
    letter-spacing: 0;
    line-height: 1.6;
    color: var(--color-white);
    margin-bottom: calc(16 / 1440 * var(--base)) !important;
  }

  body.is-lp .lp-solution__accordion-highlight span {
    color: var(--color-yellow);
  }

  body.is-lp p.lp-solution__accordion-link {
    margin-bottom: calc(8 / 1440 * var(--base)) !important;
  }

  body.is-lp .lp-solution__accordion-link a {
    font-size: calc(16 / 1440 * var(--base));
    font-weight: 700;
    font-family: var(--ff-yugothic);
    letter-spacing: 0;
    line-height: 1.6;
    color: var(--color-white);
    text-decoration: underline;
  }

  /* ---------- FLOW ---------- */
  body.is-lp .lp-flow {
    background-image: url("../images/flow-bg.png");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    padding: calc(75 / 1440 * var(--base)) calc(120 / 1440 * var(--base)) calc(88 / 1440 * var(--base)) calc(40 / 1440 * var(--base));
  }

  body.is-lp .lp-flow__inner {
    display: flex;
    align-items: flex-start;
    position: relative;
  }

  body.is-lp .lp-flow__left {
    width: calc(624 / 1440 * var(--base));
    flex-shrink: 0;
  }

  body.is-lp .lp-flow__subtitle {
    position: relative;
    font-size: calc(24 / 1440 * var(--base));
    letter-spacing: 0;
    line-height: 1.6;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-blue);
    margin-bottom: calc(20 / 1440 * var(--base)) !important;
    margin-left: calc(80 / 1440 * var(--base)) !important;
  }

  body.is-lp .lp-flow__subtitle::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -18%;
    width: calc(112 / 1440 * var(--base));
    height: calc(12 / 1440 * var(--base));
    background: url("../images/features-3-title-dec.png") no-repeat center / contain;
  }

  body.is-lp .lp-flow__title {
    font-size: calc(48 / 1440 * var(--base));
    letter-spacing: 0;
    line-height: 1.4;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-navy);
    margin-bottom: calc(40 / 1440 * var(--base)) !important;
    margin-left: calc(80 / 1440 * var(--base)) !important;
  }

  body.is-lp .lp-flow__desc {
    font-size: calc(18 / 1440 * var(--base));
    letter-spacing: 0;
    line-height: 1.6;
    font-weight: 500;
    font-family: var(--ff-yugothic);
    color: var(--color-text);
    margin-bottom: calc(85 / 1440 * var(--base)) !important;
    margin-left: calc(80 / 1440 * var(--base)) !important;
  }

  body.is-lp #lp .lp-flow__main-img {
    width: calc(585 / 1440 * var(--base));
    height: calc(390 / 1440 * var(--base));
    object-fit: cover;
  }

  body.is-lp .lp-flow__right {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    gap: calc(40 / 1440 * var(--base));
  }

  body.is-lp .lp-flow__card {
    flex-shrink: 0;
    width: calc(576 / 1440 * var(--base));
    min-height: auto;
    background: var(--color-white);
    border-radius: calc(24 / 1440 * var(--base));
    box-shadow: 0 calc(8 / 1440 * var(--base)) calc(30 / 1440 * var(--base)) rgba(0, 92, 145, 0.1);
    padding: calc(24 / 1440 * var(--base));
  }

  body.is-lp .lp-flow__card-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: calc(16 / 1440 * var(--base)) !important;
  }

  body.is-lp .lp-flow__card-head-text {
    flex: 1;
  }

  body.is-lp .lp-flow__card-number {
    font-size: calc(64 / 1440 * var(--base));
    letter-spacing: 0;
    line-height: 1;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-blue);
    margin-bottom: calc(8 / 1440 * var(--base)) !important;
  }

  body.is-lp .lp-flow__card-title {
    font-size: calc(24 / 1440 * var(--base));
    letter-spacing: 0;
    line-height: 1.3;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-navy);
  }

  body.is-lp #lp .lp-flow__card-icon {
    width: calc(203 / 1440 * var(--base));
    height: calc(135 / 1440 * var(--base));
    object-fit: contain;
    flex-shrink: 0;
  }

  body.is-lp .lp-flow__card-period {
    font-size: calc(16 / 1440 * var(--base));
    letter-spacing: 0;
    line-height: 1;
    font-weight: 500;
    font-family: var(--ff-yugothic);
    color: var(--color-text);
    margin-bottom: calc(24 / 1440 * var(--base)) !important;
  }

  body.is-lp .lp-flow__card-desc {
    font-size: calc(18 / 1440 * var(--base));
    letter-spacing: 0;
    line-height: 1.4;
    font-weight: 500;
    font-family: var(--ff-yugothic);
    color: var(--color-text);
  }

  body.is-lp .lp-flow__card-note {
    font-size: calc(14 / 1440 * var(--base));
    letter-spacing: 0;
    line-height: 1.6;
    font-weight: 500;
    font-family: var(--ff-yugothic);
    color: #777;
    margin-top: calc(16 / 1440 * var(--base)) !important;
  }

  /* --- Flow Accordion --- */
  body.is-lp .lp-flow__accordion {
    border-top: 1px solid var(--color-blue);
    border-bottom: 1px solid var(--color-blue);
    margin-top: calc(24 / 1440 * var(--base)) !important;
    padding: calc(16 / 1440 * var(--base)) 0;
  }

  body.is-lp .lp-flow__accordion-trigger {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: calc(12 / 1440 * var(--base));
    font-size: calc(24 / 1440 * var(--base));
    letter-spacing: 0;
    line-height: 2.1;
    font-weight: 500;
    font-family: var(--ff-yugothic);
    color: var(--color-blue);
    cursor: pointer;
    list-style: none;
  }

  body.is-lp .lp-flow__accordion-trigger::-webkit-details-marker {
    display: none;
  }

  body.is-lp .lp-flow__accordion-trigger::after {
    content: "▼";
    font-size: calc(14 / 1440 * var(--base));
    width: calc(26 / 1440 * var(--base));
    height: calc(26 / 1440 * var(--base));
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-blue);
    transition: transform 0.3s;
  }

  body.is-lp .lp-flow__accordion[open] .lp-flow__accordion-trigger::after {
    transform: rotate(180deg);
  }

  body.is-lp .lp-flow__accordion-content {
    padding: calc(40 / 1440 * var(--base)) 0 0;
    transition: height 0.4s ease;
  }

  body.is-lp .lp-flow__accordion-steps {
    list-style: none;
    padding-left: 0;
    position: relative;
  }

  body.is-lp .lp-flow__accordion-steps::before {
    content: "";
    position: absolute;
    left: calc(38 / 1440 * var(--base));
    top: calc(16 / 1440 * var(--base));
    bottom: calc(16 / 1440 * var(--base));
    width: calc(1 / 1440 * var(--base));
    height: calc(380 / 1440 * var(--base));
    background-color: var(--color-blue);
  }

  body.is-lp .lp-flow__card:nth-child(3) .lp-flow__accordion-steps::before {
    height: calc(250 / 1440 * var(--base));
  }

  body.is-lp .lp-flow__card:nth-child(4) .lp-flow__accordion-steps::before {
    height: calc(320 / 1440 * var(--base));
  }

  body.is-lp .lp-flow__card:nth-child(5) .lp-flow__accordion-steps::before {
    height: calc(350 / 1440 * var(--base));
  }

  body.is-lp .lp-flow__accordion-step {
    display: flex;
    align-items: flex-start;
    gap: calc(16 / 1440 * var(--base));
  }

  body.is-lp .lp-flow__accordion-step:last-child {
    margin-bottom: 0 !important;
  }

  body.is-lp .lp-flow__accordion-step-num {
    flex-shrink: 0;
    width: calc(76 / 1440 * var(--base));
    height: calc(52 / 1440 * var(--base));
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: calc(14 / 1440 * var(--base));
    font-weight: 500;
    font-family: var(--ff-yugothic);
    color: var(--color-blue);
    border: calc(1 / 1440 * var(--base)) solid var(--color-blue);
    background: var(--color-white);
    position: relative;
    z-index: 1;
  }

  body.is-lp .lp-flow__accordion-step-body {
    flex: 1;
  }

  body.is-lp .lp-flow__accordion-step-title {
    font-size: calc(18 / 1440 * var(--base));
    letter-spacing: 0;
    line-height: 1.4;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-text);
    margin-bottom: calc(8 / 1440 * var(--base)) !important;
  }

  body.is-lp .lp-flow__accordion-step-label {
    display: inline-block;
    font-size: calc(16 / 1440 * var(--base));
    letter-spacing: 0;
    line-height: 1.4;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-white);
    background: var(--color-orange);
    padding: calc(2 / 1440 * var(--base)) calc(8 / 1440 * var(--base));
    margin-right: calc(8 / 1440 * var(--base));
    vertical-align: middle;
  }

  body.is-lp .lp-flow__accordion-step-text {
    font-size: calc(16 / 1440 * var(--base));
    letter-spacing: 0;
    line-height: 1.4;
    font-weight: 500;
    font-family: var(--ff-yugothic);
    color: var(--color-text);
    margin-bottom: calc(24 / 1440 * var(--base)) !important;
  }

  /* ---------- WORKS ---------- */
  body.is-lp .lp-works {
    padding: calc(160 / 1440 * var(--base)) 0;
    background: var(--color-white);
  }

  body.is-lp .lp-works__inner {
    display: flex;
    align-items: flex-start;
    padding: 0 0 0 calc(120 / 1440 * var(--base));
  }

  body.is-lp .lp-works__left {
    flex-shrink: 0;
    width: calc(544 / 1440 * var(--base));
    margin-right: calc(72 / 1440 * var(--base));
  }

  body.is-lp .lp-works__subtitle {
    position: relative;
    font-size: calc(24 / 1440 * var(--base));
    letter-spacing: 0;
    line-height: 1.6;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-blue);
    margin-bottom: calc(20 / 1440 * var(--base)) !important;
  }

  body.is-lp .lp-works__subtitle::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -18%;
    width: calc(112 / 1440 * var(--base));
    height: calc(12 / 1440 * var(--base));
    background: url("../images/features-3-title-dec.png") no-repeat center / contain;
  }

  body.is-lp .lp-works__title {
    font-size: calc(48 / 1440 * var(--base));
    letter-spacing: 0;
    line-height: 1.4;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-navy);
    margin-bottom: calc(80 / 1440 * var(--base)) !important;
  }

  body.is-lp .lp-works__industry {
    font-size: calc(16 / 1440 * var(--base));
    letter-spacing: 0;
    line-height: 1;
    font-weight: 500;
    font-family: var(--ff-yugothic);
    color: var(--color-text);
    margin-bottom: calc(32 / 1440 * var(--base)) !important;
  }

  body.is-lp .lp-works__name {
    font-size: calc(24 / 1440 * var(--base));
    letter-spacing: 0;
    line-height: 1.3;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-blue);
    margin-bottom: calc(16 / 1440 * var(--base)) !important;
  }

  body.is-lp .lp-works__url {
    font-size: calc(16 / 1440 * var(--base));
    letter-spacing: 0;
    line-height: 1;
    font-weight: 500;
    font-family: var(--ff-yugothic);
    margin-bottom: calc(32 / 1440 * var(--base)) !important;
  }

  body.is-lp .lp-works__url a {
    color: var(--color-text);
    text-decoration: underline;
  }

  body.is-lp .lp-works__text {
    font-size: calc(18 / 1440 * var(--base));
    letter-spacing: 0;
    line-height: 1.6;
    font-weight: 500;
    font-family: var(--ff-yugothic);
    color: var(--color-text);
    margin-bottom: calc(32 / 1440 * var(--base)) !important;
  }

  body.is-lp #lp .lp-works__proposal {
    width: 100%;
    height: auto;
    object-fit: contain;
    object-position: left;
  }

  body.is-lp .lp-works__right {
    min-width: 0;
    margin-top: calc(161 / 1440 * var(--base)) !important;
  }

  body.is-lp .lp-works__main-img-wrap {
    margin-bottom: calc(32 / 1440 * var(--base)) !important;
  }

  body.is-lp #lp .lp-works__main-img {
    width: calc(664 / 1440 * var(--base));
    height: calc(498 / 1440 * var(--base));
    object-fit: cover;
  }

  body.is-lp .lp-works__scrollbar {
    width: calc(664 / 1440 * var(--base));
    height: calc(8 / 1440 * var(--base));
    background: #EFEFEF;
    border-radius: 0;
    margin-bottom: calc(32 / 1440 * var(--base)) !important;
    position: relative;
    overflow: hidden;
  }

  body.is-lp .lp-works__scrollbar::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    background: var(--color-navy);
    border-radius: 0;
    transition: width 0.3s ease, left 0.3s ease;
  }

  body.is-lp .lp-works__thumbs-wrap {
    overflow-x: scroll;
    overflow-y: hidden;
    -ms-overflow-style: none;
    scrollbar-width: none;
  }

  body.is-lp .lp-works__thumbs-wrap::-webkit-scrollbar {
    display: none;
  }

  body.is-lp .lp-works__thumbs {
    display: flex;
    gap: calc(16 / 1440 * var(--base));
    width: max-content;
  }

  body.is-lp .lp-works__thumb {
    flex-shrink: 0;
    width: calc(120 / 1440 * var(--base));
    height: calc(90 / 1440 * var(--base));
    border: calc(2 / 1440 * var(--base)) solid transparent;
    border-radius: calc(4 / 1440 * var(--base));
    overflow: hidden;
    cursor: pointer;
    opacity: 0.5;
    transition: opacity 0.3s, border-color 0.3s;
    padding: 0;
    background: none;
  }

  body.is-lp .lp-works__thumb.is-active {
    opacity: 1;
    border-color: var(--color-blue);
  }

  body.is-lp .lp-works__thumb:hover {
    opacity: 0.8;
  }

  body.is-lp #lp .lp-works__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  body.is-lp .lp-works__nav-btn {
    display: none;
  }

  /* ---------- FAQ ---------- */
  body.is-lp .lp-faq {
    background-color: #F7F7F7;
    padding: calc(80 / 1440 * var(--base)) calc(240 / 1440 * var(--base));
  }

  body.is-lp .lp-faq__head {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
  }

  body.is-lp .lp-faq__title {
    font-size: calc(48 / 1440 * var(--base));
    letter-spacing: 0.016em;
    line-height: 1.4;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-navy);
    margin-top: calc(8 / 1440 * var(--base)) !important;
    margin-bottom: calc(40 / 1440 * var(--base)) !important;
  }

  body.is-lp .lp-faq__list {
    width: 100%;
    max-width: calc(960 / 1440 * var(--base));
    margin: 0 auto;
  }

  body.is-lp .lp-faq__item {
    width: 100%;
    margin-bottom: calc(24 / 1440 * var(--base));
    background-color: var(--color-white);
  }

  body.is-lp .lp-faq__item:last-child {
    margin-bottom: 0 !important;
  }

  body.is-lp .lp-faq__question {
    display: flex;
    flex-direction: row;
    align-items: center;
    box-sizing: border-box;
    min-height: calc(80 / 1440 * var(--base));
    padding: 0 calc(40 / 1440 * var(--base));
    cursor: pointer;
    list-style: none;
  }

  body.is-lp .lp-faq__question::-webkit-details-marker {
    display: none;
  }

  body.is-lp #lp .lp-faq__q-icon {
    flex-shrink: 0;
    width: calc(30 / 1440 * var(--base));
    height: calc(48 / 1440 * var(--base));
    margin-right: calc(27 / 1440 * var(--base));
    object-fit: contain;
  }

  body.is-lp .lp-faq__q-text {
    flex-shrink: 0;
    width: calc(783 / 1440 * var(--base));
    margin-right: calc(16 / 1440 * var(--base));
    font-size: calc(24 / 1440 * var(--base));
    letter-spacing: 0;
    line-height: 1.6;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-text);
  }

  body.is-lp .lp-faq__toggle {
    flex-shrink: 0;
    position: relative;
    width: calc(24 / 1440 * var(--base));
    height: calc(24 / 1440 * var(--base));
    color: var(--color-blue);
  }

  body.is-lp .lp-faq__toggle::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: calc(24 / 1440 * var(--base));
    height: calc(4 / 1440 * var(--base));
    transform: translate(-50%, -50%);
    background-color: var(--color-blue);
  }

  body.is-lp .lp-faq__toggle::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: calc(4 / 1440 * var(--base));
    height: calc(24 / 1440 * var(--base));
    transform: translate(-50%, -50%);
    background-color: var(--color-blue);
  }

  body.is-lp .lp-faq__item[open] .lp-faq__toggle::after {
    display: none;
  }

  body.is-lp .lp-faq__answer {
    transition: height 0.4s ease;
  }

  body.is-lp .lp-faq__item[open] > .lp-faq__answer {
    border-top: 1px solid #D2D2D2;
  }

  body.is-lp .lp-faq__answer-inner {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    box-sizing: border-box;
    padding: calc(16 / 1440 * var(--base)) calc(40 / 1440 * var(--base));
  }

  body.is-lp #lp .lp-faq__a-icon {
    flex-shrink: 0;
    width: calc(30 / 1440 * var(--base));
    height: calc(48 / 1440 * var(--base));
    margin-right: calc(27 / 1440 * var(--base));
    object-fit: contain;
  }

  body.is-lp .lp-faq__a-text {
    flex: 1 1 auto;
    min-width: 0;
    font-size: calc(24 / 1440 * var(--base));
    letter-spacing: 0;
    line-height: 1.6;
    font-weight: 500;
    font-family: var(--ff-yugothic);
    color: var(--color-text);
    margin: 0 !important;
  }

  /* ---------- CTA 1 ---------- */
  body.is-lp .lp-cta1 {
    background-image: url("../images/cta-1-bg.png");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    height: calc(751 / 1440 * var(--base));
    display: flex;
    align-items: center;
    justify-content: center;
    padding: calc(160 / 1440 * var(--base)) 0;
    margin-top: calc(-1 / 1440 * var(--base));

  }

  body.is-lp .lp-cta1__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  body.is-lp .lp-cta1__subcopy {
    font-size: calc(24 / 1440 * var(--base));
    letter-spacing: 0;
    line-height: 1.6;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-white);
    margin-bottom: calc(40 / 1440 * var(--base)) !important;
  }

  body.is-lp .lp-cta1__title {
    font-size: calc(40 / 1440 * var(--base));
    letter-spacing: 0;
    line-height: 1.6;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-white);
    margin-bottom: calc(40 / 1440 * var(--base)) !important;
  }

  body.is-lp .lp-cta1__desc {
    font-size: calc(18 / 1440 * var(--base));
    letter-spacing: 0;
    line-height: 1.9;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-white);
    margin-bottom: calc(40 / 1440 * var(--base)) !important;
  }

  body.is-lp .lp-cta1__btn {
    font-size: calc(28 / 1440 * var(--base));
    font-weight: 700;
    color: var(--color-white);
    background: linear-gradient(to bottom, #F59f00 50%, #eb7700 50%);
    width: calc(491 / 1440 * var(--base));
    height: calc(77 / 1440 * var(--base));
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: calc(100 / 1440 * var(--base));
    box-shadow: 0 calc(6 / 1440 * var(--base)) 0 #C86400;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
  }

  body.is-lp .lp-cta1__btn:hover {
    transform: translateY(calc(6 / 1440 * var(--base)));
    box-shadow: 0 0 0 #C86400;
  }

  /* ---------- CTA 2 ---------- */
  body.is-lp .lp-cta2 {
    position: relative;
    overflow: hidden;
    background-color: var(--color-blue);
    background-image: url("../images/cta-2-bg.png");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    min-height: calc(608 / 1440 * var(--base));
  }

  body.is-lp .lp-cta2__inner {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    gap: calc(48 / 1440 * var(--base));
    min-height: calc(608 / 1440 * var(--base));
    margin: 0 auto;
    padding: calc(80 / 1440 * var(--base)) calc(120 / 1440 * var(--base)) 0;
    box-sizing: border-box;
  }

  body.is-lp .lp-cta2__left {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
  }

  body.is-lp .lp-cta2__tag {
    display: flex;
    align-items: center;
    justify-content: center;
    width: calc(710 / 1440 * var(--base));
    height: calc(47 / 1440 * var(--base));
    margin: 0 0 calc(43 / 1440 * var(--base)) 0 !important;
    padding: 0 calc(24 / 1440 * var(--base));
    box-sizing: border-box;
    font-size: calc(24 / 1440 * var(--base));
    letter-spacing: 0;
    line-height: 1.6;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-navy);
    text-align: center;
    background-color: var(--color-white);
    clip-path: polygon(
      calc(20 / 1440 * var(--base)) 0,
      calc(100% - calc(20 / 1440 * var(--base))) 0,
      100% 50%,
      calc(100% - calc(20 / 1440 * var(--base))) 100%,
      calc(20 / 1440 * var(--base)) 100%,
      0 50%
    );
  }

  body.is-lp .lp-cta2__title {
    font-size: calc(40 / 1440 * var(--base));
    letter-spacing: 0;
    line-height: 1.6;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-white);
    margin: 0 0 calc(16 / 1440 * var(--base)) 0 !important;
  }

  body.is-lp .lp-cta2__desc {
    font-size: calc(18 / 1440 * var(--base));
    letter-spacing: 0;
    line-height: 1.9;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-white);
    margin: 0 0 calc(40 / 1440 * var(--base)) 0 !important;
  }

  body.is-lp .lp-cta2__btn {
    font-size: calc(28 / 1440 * var(--base));
    font-weight: 700;
    color: var(--color-white);
    background: linear-gradient(to bottom, #F59f00 50%, #eb7700 50%);
    width: calc(491 / 1440 * var(--base));
    height: calc(77 / 1440 * var(--base));
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: calc(100 / 1440 * var(--base));
    box-shadow: 0 calc(6 / 1440 * var(--base)) 0 #C86400;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
  }

  body.is-lp .lp-cta2__btn:hover {
    transform: translateY(calc(6 / 1440 * var(--base)));
    box-shadow: 0 0 0 #C86400;
  }

  body.is-lp .lp-cta2__right {
    position: absolute;
    top: 113px;
    right: 92px;
    width: calc(591 / 1440 * var(--base));
    line-height: 0;
  }

  body.is-lp #lp .lp-cta2__illustration {
    display: block;
    width: 100%;
    height: auto;
  }

  /* ---------- CONTACT ---------- */
  body.is-lp .lp-contact {
    background-image: url("../images/contact-bg.png");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-color: var(--color-blue);
    min-height: calc(1184 / 1440 * var(--base));
    display: flex;
    align-items: center;
    justify-content: center;
    padding: calc(80 / 1440 * var(--base)) calc(220 / 1440 * var(--base));
  }

  body.is-lp .lp-contact__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
  }

  body.is-lp .lp-contact__title {
    font-size: calc(48 / 1440 * var(--base));
    letter-spacing: 0.016em;
    line-height: 1.4;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-white);
    margin-bottom: calc(24 / 1440 * var(--base)) !important;
  }

  body.is-lp .lp-contact__lead {
    font-size: calc(20 / 1440 * var(--base));
    letter-spacing: 0;
    line-height: 1.6;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-white);
    text-align: center;
    margin-bottom: calc(40 / 1440 * var(--base)) !important;
  }

  body.is-lp .lp-contact__form-area {
    width: calc(1000 / 1440 * var(--base));
    min-height: calc(576 / 1440 * var(--base));
  }

  /* --- CF7 テーブルレイアウト上書き --- */
  body.is-lp .lp-contact__form-area table.contact {
    width: 100%;
    border-collapse: collapse;
    border-spacing: 0;
    border: none;
  }

  body.is-lp .lp-contact__form-area table.contact tr {
    border: none;
  }

  body.is-lp .lp-contact__form-area table.contact th,
  body.is-lp .lp-contact__form-area table.contact td {
    border: none;
    padding: calc(8 / 1440 * var(--base)) 0;
    vertical-align: middle;
    background: transparent;
  }

  body.is-lp .lp-contact__form-area table.contact th {
    width: calc(220 / 1440 * var(--base));
    font-size: calc(24 / 1440 * var(--base));
    letter-spacing: 0;
    line-height: 1.6;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-white);
    text-align: left;
    white-space: nowrap;
    padding-right: calc(16 / 1440 * var(--base));
  }

  body.is-lp .lp-contact__form-area table.contact td {
    width: auto;
  }

  /* --- 必須バッジ (.must) --- */
  body.is-lp .lp-contact__form-area .must {
    display: inline-block;
    font-size: calc(16 / 1440 * var(--base));
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-white);
    background: var(--color-orange);
    padding: calc(2 / 1440 * var(--base)) calc(8 / 1440 * var(--base));
    border-radius: calc(4 / 1440 * var(--base));
    line-height: 1.4;
    vertical-align: middle;
    margin-left: calc(8 / 1440 * var(--base));
  }

  /* --- 入力欄 --- */
  body.is-lp .lp-contact__form-area .wpcf7-form-control:not(.wpcf7-submit):not(textarea) {
    width: calc(640 / 1440 * var(--base));
    height: calc(60 / 1440 * var(--base));
    padding: 0 calc(20 / 1440 * var(--base));
    border: none;
    border-radius: calc(4 / 1440 * var(--base));
    background: var(--color-white);
    font-size: calc(16 / 1440 * var(--base));
    font-family: var(--ff-yugothic);
    color: var(--color-text);
    outline: none;
    box-sizing: border-box;
  }

  body.is-lp .lp-contact__form-area textarea.wpcf7-form-control {
    width: calc(640 / 1440 * var(--base));
    height: calc(240 / 1440 * var(--base));
    padding: calc(16 / 1440 * var(--base)) calc(20 / 1440 * var(--base));
    border: none;
    border-radius: calc(4 / 1440 * var(--base));
    background: var(--color-white);
    font-size: calc(16 / 1440 * var(--base));
    font-family: var(--ff-yugothic);
    color: var(--color-text);
    outline: none;
    box-sizing: border-box;
    resize: vertical;
  }

  body.is-lp .lp-contact__form-area table.contact tr {
    margin-bottom: calc(24 / 1440 * var(--base));
  }

  body.is-lp .lp-contact__form-area table.contact th,
  body.is-lp .lp-contact__form-area table.contact td {
    padding-bottom: calc(24 / 1440 * var(--base));
    width: calc(640 / 1440 * var(--base));
  }

  /* --- プライバシーポリシー (.privacy) --- */
  body.is-lp .lp-contact__form-area .privacy {
    text-align: center;
    margin-top: calc(40 / 1440 * var(--base)) !important;
    
  }

  body.is-lp #lp .lp-contact__form-area .privacy a {
    font-size: calc(20 / 1440 * var(--base));
    line-height: 1.6;
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-white);
    text-decoration: underline;
    text-underline-offset: calc(4 / 1440 * var(--base));
  }

  body.is-lp .lp-contact__form-area .privacy p {
    font-size: calc(20 / 1440 * var(--base));
    font-weight: 400;
    font-family: var(--ff-yugothic);
    color: var(--color-white);
    line-height: 1.6;
    margin-top: calc(16 / 1440 * var(--base)) !important;
  }

  /* --- 送信ボタン (.submit_btn) --- */
  body.is-lp .lp-contact__form-area .submit_btn {
    text-align: center;
    margin-top: calc(24 / 1440 * var(--base)) !important;
  }

  body.is-lp .lp-contact__form-area .wpcf7-submit {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
    width: calc(491 / 1440 * var(--base));
    height: calc(77 / 1440 * var(--base));
    font-size: calc(28 / 1440 * var(--base));
    font-weight: 700;
    font-family: var(--ff-yugothic);
    color: var(--color-white);
    background: linear-gradient(to bottom, #F59f00 50%, #eb7700 50%);
    border: none;
    border-radius: calc(100 / 1440 * var(--base));
    box-shadow: 0 calc(6 / 1440 * var(--base)) 0 #C86400;
    cursor: pointer;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
  }

  body.is-lp .lp-contact__form-area .wpcf7-submit:hover {
    transform: translateY(calc(6 / 1440 * var(--base)));
    box-shadow: 0 0 0 #C86400;
  }

  /* --- CF7 バリデーションエラー --- */
  body.is-lp .lp-contact__form-area .wpcf7-not-valid-tip {
    font-size: calc(14 / 1440 * var(--base));
    color: #FFFFFF;
    background: #FF0000;
    margin-top: calc(4 / 1440 * var(--base)) !important;
    padding: calc(4 / 1440 * var(--base)) calc(8 / 1440 * var(--base));
    border-radius: 4px;
    display: inline-block;
  }

  body.is-lp .lp-contact__form-area .wpcf7-response-output {
    font-size: calc(16 / 1440 * var(--base));
    color: var(--color-white);
    text-align: center;
    margin-top: calc(16 / 1440 * var(--base)) !important;
    border-color: rgba(255, 255, 255, 0.4);
    padding: calc(12 / 1440 * var(--base));
  }

  /* ---------- Footer ---------- */
  body.is-lp .lp-footer {
    background-color: var(--color-navy);
    padding: calc(24 / 1440 * var(--base)) calc(40 / 1440 * var(--base));
  }

  body.is-lp .lp-footer__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
  }

  body.is-lp .lp-footer__logo {
    display: block;
    width: calc(141 / 1440 * var(--base));
  }

  body.is-lp #lp .lp-footer__logo img {
    width: 100%;
    height: auto;
  }

  body.is-lp .lp-footer__info {
    font-size: calc(20 / 1440 * var(--base));
    line-height: 1;
    font-weight: 500;
    font-family: var(--ff-yugothic);
    color: var(--color-white);
  }

}

/* ===========================
   1441px以上: コンテンツ固定 + 背景フルブリード
   =========================== */
@media (min-width: 1441px) {
  :root {
    --base: 1440px;
  }

  /* 横スクロールバー防止 */
  body.is-lp {
    overflow-x: clip;
  }

  body.is-lp #lp {
    max-width: 1440px;
    margin-left: auto;
    margin-right: auto;
    overflow-x: visible;
  }

  body.is-lp .lp-header {
    left: 0;
    transform: none;
    width: 100%;
    padding-left: 0;
    border-radius: 0 0 calc(40 / 1440 * 1440px) calc(40 / 1440 * 1440px);
    background: rgba(255, 255, 255, 1);
  }

  body.is-lp .lp-header__inner {
    width: 1440px;
    margin: 0 auto;
    position: relative;
    padding-left: 40px;
  }

  body.is-lp .lp-header__cta {
    border-radius: 0 0 calc(40 / 1440 * 1440px) calc(40 / 1440 * 1440px);
  }

  /* --- FV: 全体を100vwスケーリング --- */
  body.is-lp .lp-hero {
    --base: 100vw;
    width: 100vw;
    margin-left: calc(50% - 50vw);
  }

  /* --- 各セクション: 背景のみフルブリード --- */

  /* Features 1 (flex center, padding LR: 0) */
  body.is-lp .lp-features1 {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    padding-left: calc(50vw - 720px);
    padding-right: calc(50vw - 720px);
  }

  /* Features 2 (flex center, padding LR: 0, bg-size override) */
  body.is-lp .lp-features2 {
    height: 41vw;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    padding-left: calc(50vw - 720px);
    padding-right: calc(50vw - 720px);
    background-size: 100% auto;
    background-position: center bottom;
    padding-top: calc(220 / 1440 * 100vw);
  }

  /* Features 3 (flex space-between, padding: 0, bg-size override) */
  body.is-lp .lp-features3 {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    padding-left: calc(50vw - 720px);
    padding-right: calc(50vw - 720px);
    background-size: 100% auto;
    background-position: center top;
    padding-top: calc(80 / 1440 * 100vw);
  }

  /* Feature Banner (マーキー: 全体100vwスケーリング) */
  body.is-lp .lp-feature-banner {
    --base: 100vw;
    width: 100vw;
    margin-left: calc(50% - 50vw);
  }

  /* Industries (flex center, inner has fixed width) */
  body.is-lp .lp-industries {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    padding-left: calc(50vw - 720px);
    padding-right: calc(50vw - 720px);
    background: linear-gradient(to bottom, #E3F5FF 100%, #027CC2 0%);
    display: flex;
    justify-content: center;
    align-items: center;
    padding-bottom: 60px;
  }

  /* CTA 1 (flex center, padding LR: 0) */
  body.is-lp .lp-cta1 {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    padding-left: calc(50vw - 720px);
    padding-right: calc(50vw - 720px);
  }

  /* Solution (inner has width 1200px + margin auto, padding LR: 120) */
  body.is-lp .lp-solution {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    padding-left: calc(50vw - 600px);
    padding-right: calc(50vw - 600px);
  }

  /* Solution Marquee (マーキー: 全体100vwスケーリング) */
  body.is-lp .lp-solution-marquee {
    --base: 100vw;
    width: 100vw;
    margin-left: calc(50% - 50vw);
  }

  /* Flow (asymmetric padding: L40 R120) */
  body.is-lp .lp-flow {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    padding-left: calc(50vw - 680px);
    padding-right: calc(50vw - 600px);
  }

  /* Works (padding LR: 0) */
  body.is-lp .lp-works {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    padding-left: calc(50vw - 720px);
    padding-right: calc(50vw - 720px);
  }

  /* CTA 2 (inner has margin auto, add max-width for content constraint) */
  body.is-lp .lp-cta2 {
    width: 100vw;
    margin-left: calc(50% - 50vw);
  }
  body.is-lp .lp-cta2__inner {
    max-width: 1440px;
  }

  /* FAQ (padding LR: 240) */
  body.is-lp .lp-faq {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    padding-left: calc(50vw - 480px);
    padding-right: calc(50vw - 480px);
  }

  /* Contact (flex center, padding LR: 220) */
  body.is-lp .lp-contact {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    padding-left: calc(50vw - 500px);
    padding-right: calc(50vw - 500px);
  }

  /* Footer (padding LR: 40) */
  body.is-lp .lp-footer {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    padding-left: calc(50vw - 680px);
    padding-right: calc(50vw - 680px);
  }
}
