/* HP作成ページ（a4.html の移植）
   ・すべてのセレクタを .hps の内側に限定（サイト共通ヘッダー・フッターには影響させない）
   ・CSSで初期非表示にする指定は置かない（JS無効・reduced-motion でも全要素が見える）
   ・「サイト側の打ち消し」コメントの行は、styles.css の同名クラス・要素指定が漏れ込まないための追加分 */

.hps{
  --blue:#479CD9;
  --deep:#1E5F8C;
  --ink:#10161b;
  --muted:#4b5a63;
  --line:#cddce8;
  --paper:#f8fbfd;
  --gray-ink:#8e9aa3;
  --sky:#a9d6f5;
  --en:'Barlow Condensed', 'Noto Sans JP', sans-serif;
  --ja:'Noto Sans JP', sans-serif;
  --zen:'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
  /* サイト共通ヘッダーの高さ（JSが実測値で上書きする） */
  --header-h:74px;
  --gutter:max(24px, (100vw - 1200px) / 2);

  display:block;
  margin:0;
  font-family:var(--ja);
  font-size:16px;
  font-weight:400;
  color:var(--ink);
  background:#fff;
  line-height:1.8;
  letter-spacing:normal;
  /* マーキーやピン留めで横スクロールを出さない */
  overflow-x:clip;
  -webkit-font-smoothing:antialiased;
}
.hps,.hps *,.hps *::before,.hps *::after{box-sizing:border-box}
.hps h1,.hps h2,.hps h3,.hps p,.hps ul,.hps ol,.hps dl,.hps dd,.hps figure,.hps blockquote{margin:0}
/* サイト側 h1,h2,h3 の色・明朝体・字間を打ち消す */
.hps h1,.hps h2,.hps h3{color:inherit;font-family:inherit;font-weight:700;letter-spacing:normal}
.hps ul,.hps ol{padding:0;list-style:none}
.hps a{color:inherit}
.hps svg{display:block}
.hps img{max-width:100%}
.hps .wrap{width:min(1200px, 100% - 48px);margin-inline:auto}
.hps .kp{word-break:keep-all;overflow-wrap:anywhere}
@supports (word-break:auto-phrase){
  .hps .ap{word-break:auto-phrase}
}
.hps .sr-only{
  position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}

/* 見出しの行マスク（JSなしでも普通の改行として表示） */
.hps .ln{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.hps .ln-in{display:block}

/* ---------- Hero ---------- */
.hps .hero{
  position:relative;overflow:hidden;color:#fff;
  background:linear-gradient(150deg, #479CD9 0%, #3483bf 42%, #1E5F8C 100%);
  min-height:calc(96svh - var(--header-h));
  display:flex;align-items:center;
  padding:40px 0 56px;
  border-bottom:0; /* サイト側 .hero の罫線を打ち消す */
}
/* 見出し側（左）を濃くして白文字を読みやすく */
.hps .hero-shade{
  position:absolute;inset:0;z-index:0;pointer-events:none;
  background:linear-gradient(90deg, rgba(24,78,118,.78) 0%, rgba(30,95,140,.6) 34%, rgba(30,95,140,.22) 58%, rgba(30,95,140,0) 76%);
}
.hps .hero-lines{
  position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(to right, rgba(255,255,255,.085) 1px, transparent 1px);
  background-size:calc(100% / 12) 100%;
  -webkit-mask-image:linear-gradient(to bottom, #000 0%, #000 65%, transparent 100%);
          mask-image:linear-gradient(to bottom, #000 0%, #000 65%, transparent 100%);
}
.hps .hero-rings{
  position:absolute;pointer-events:none;
  width:1180px;height:1180px;
  right:-250px;top:50%;transform:translateY(-50%);
}
.hps .hero-inner{
  position:relative;z-index:1;width:min(1200px, 100% - 48px);margin-inline:auto;
  display:grid;
  grid-template-columns:minmax(0,.94fr) minmax(0,1.06fr);
  grid-template-rows:1fr auto auto auto auto auto 1fr;
  /* ヘッダー＋パンくずの分、主CTAがファーストビューに入るよう説明文はCTAの下へ */
  grid-template-areas:
    ".       mv"
    "copy    mv"
    "price   mv"
    "actions mv"
    "lead    mv"
    "chips   mv"
    ".       mv";
  column-gap:56px;
}
.hps .hero-copy{grid-area:copy}
.hps .eyebrow{
  display:flex;align-items:center;gap:14px;
  margin:0;max-width:none; /* サイト側 .hero-copy > p / .eyebrow を打ち消す */
  font-family:var(--en);font-weight:700;font-size:15px;line-height:1.4;letter-spacing:.28em;
  color:rgba(255,255,255,.92);
}
.hps .eyebrow::before{content:"";flex:0 0 44px;height:1px;background:currentColor}
.hps .hero h1{
  margin-top:20px;
  font-weight:900;
  font-size:clamp(32px, 3.2vw + 8px, 54px);
  line-height:1.28;letter-spacing:.02em;
}
.hps .hero-lead{
  grid-area:lead;margin-top:24px;max-width:32em;
  font-size:15.5px;font-weight:500;line-height:1.9;color:rgba(255,255,255,.95);
}
.hps .hero-actions{grid-area:actions;margin-top:30px;display:flex;flex-wrap:wrap;gap:14px;align-items:center}

.hps .btn{
  display:inline-flex;align-items:center;justify-content:center;gap:12px;
  min-height:60px;padding:14px 30px;border-radius:999px;
  font-weight:700;font-size:17px;line-height:1.4;text-decoration:none;
  transition:transform .2s, box-shadow .2s, background-color .2s, color .2s;
}
.hps .btn .arr{display:inline-block;font-family:var(--en);font-weight:800;font-size:1.15em;line-height:1;transition:transform .2s}
.hps .btn:hover .arr{transform:translateX(4px)}
.hps .btn svg{flex:0 0 20px;width:20px;height:20px}
.hps .btn-primary{background:#fff;color:var(--deep);box-shadow:0 10px 30px rgba(16,22,27,.2)}
.hps .btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 36px rgba(16,22,27,.26)}
.hps .btn-primary.is-magnetic{transition:box-shadow .2s, background-color .2s, color .2s}
.hps .btn-ghost{border:1.5px solid rgba(255,255,255,.88);color:#fff;font-size:16px;padding:12px 26px}
.hps .btn-ghost .pre{font-size:12px;font-weight:500;opacity:.88}
.hps .btn-ghost:hover{background:rgba(255,255,255,.12)}
/* ヒーローの副CTAは2行にして横幅を抑える */
.hps .hero .btn-ghost{flex-direction:column;align-items:flex-start;gap:0;padding:9px 26px;line-height:1.35}

/* price block（初期費用と月額を横並び） */
.hps .hero-price{grid-area:price;margin-top:30px}
.hps .price-row{display:flex;align-items:flex-end}
.hps .price--init{
  padding-right:clamp(18px, 2.4vw, 32px);margin-right:clamp(18px, 2.4vw, 32px);
  border-right:1px solid rgba(255,255,255,.38);
}
.hps .price-label{display:flex;flex-direction:column;gap:1px;line-height:1.4}
.hps .price-label .ja{font-weight:700;font-size:16px;color:#fff;letter-spacing:.06em}
.hps .price-label .en{font-family:var(--en);font-weight:700;font-size:11px;letter-spacing:.24em;color:rgba(255,255,255,.72)}
.hps .price-fig{display:flex;align-items:baseline;margin-top:8px}
.hps .price-fig .num{
  font-family:var(--en);font-weight:900;line-height:.8;letter-spacing:-.01em;color:#fff;
  font-variant-numeric:tabular-nums;
  text-shadow:0 6px 40px rgba(12,38,58,.38);
}
.hps .price-fig .comma{color:rgba(255,255,255,.72);font-size:.5em;margin:0 .04em}
.hps .price-fig .unit{
  display:inline-flex;flex-direction:column;align-items:flex-start;margin-left:8px;
  font-weight:900;line-height:1.1;color:rgba(255,255,255,.86);
  text-shadow:0 2px 18px rgba(12,38,58,.35);
}
.hps .price-fig .unit small{display:block;margin-top:4px;font-size:13px;font-weight:500;color:rgba(255,255,255,.9);letter-spacing:.04em}
.hps .price--init .num{font-size:clamp(120px, 11.5vw, 168px)}
.hps .price--init .unit{font-size:clamp(26px, 2.4vw, 34px)}
.hps .price--month .num{font-size:clamp(64px, 6.2vw, 92px)}
.hps .price--month .unit{font-size:clamp(20px, 1.8vw, 26px)}
.hps .price-note{margin-top:14px;font-size:12px;line-height:1.7;color:rgba(255,255,255,.9)}

/* MV：ホームページを表示したPC・スマホの写真（右端へはみ出す） */
.hps .hero-mv{
  grid-area:mv;align-self:center;position:relative;
  margin-right:calc(-1 * var(--gutter) - 80px);
}
.hps .mv-frame{
  position:relative;padding:10px;border-radius:28px;
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.34);
  box-shadow:0 40px 80px -40px rgba(8,28,46,.6), 0 8px 24px -12px rgba(8,28,46,.3);
}
.hps .mv-ph{
  position:relative;overflow:hidden;aspect-ratio:3 / 2;border-radius:20px;
  background:linear-gradient(135deg, rgba(255,255,255,.26) 0%, rgba(255,255,255,.08) 100%);
}
.hps .mv-ph img{position:absolute;left:0;top:-6%;display:block;width:100%;height:112%;object-fit:cover;object-position:40% 50%}

/* chips */
.hps .hero-chips{
  grid-area:chips;margin-top:34px;padding-top:22px;
  border-top:1px solid rgba(255,255,255,.28);
  display:flex;flex-wrap:wrap;align-items:center;gap:10px;
}
.hps .chips-label{font-family:var(--en);font-weight:700;font-size:13px;letter-spacing:.24em;color:rgba(255,255,255,.8);margin-right:6px}
.hps .chip{
  display:inline-flex;align-items:center;gap:10px;
  padding:8px 16px 8px 9px;border-radius:999px;
  background:rgba(16,40,60,.28);border:1px solid rgba(255,255,255,.42);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  font-weight:700;font-size:14.5px;line-height:1.4;white-space:nowrap;
}
.hps .chip svg{flex:0 0 22px;width:22px;height:22px}

/* ---------- Marquee ---------- */
.hps .marquee{position:relative;overflow:hidden;background:#fff;padding:30px 0 22px;border-bottom:1px solid var(--line)}
.hps .marquee-track{display:flex;width:max-content;will-change:transform}
.hps .marquee-track span{
  flex:0 0 auto;padding-right:.28em;
  font-family:var(--en);font-weight:900;font-size:clamp(64px, 11vw, 168px);line-height:.95;letter-spacing:.01em;
  color:transparent;-webkit-text-stroke:1.5px rgba(71,156,217,.5);
  white-space:nowrap;
}

/* ---------- Common section ---------- */
.hps .sec{padding:120px 0}
.hps .sec--paper{background:var(--paper)}
.hps .sec-eyebrow{
  display:flex;align-items:center;gap:12px;
  font-family:var(--en);font-weight:700;font-size:14px;line-height:1.4;letter-spacing:.24em;color:var(--blue);
}
.hps .ey-line{flex:0 0 32px;height:1px;background:currentColor;transform-origin:0 50%}
.hps .ey-t{display:inline-block}
.hps .sec-title{
  margin-top:16px;
  font-weight:900;font-size:clamp(28px, 2.8vw + 6px, 44px);line-height:1.42;letter-spacing:.02em;
}
.hps .sec-title .en-num{font-family:var(--en);font-weight:900;font-size:1.4em;line-height:1;color:var(--deep);letter-spacing:0;margin-right:.04em}
.hps .sec-title em{font-style:normal;color:var(--deep);background:linear-gradient(transparent 64%, rgba(71,156,217,.28) 0)}
.hps .sec-head{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:64px;align-items:end;
  margin-bottom:56px;
}
.hps .sec-head-text{font-size:16px;line-height:2;color:var(--muted)}

/* 青背景セクション共通（白文字は大きく太い文字か、#1E5F8C以上の濃い青の上だけ） */
.hps .on-blue{color:#fff}
.hps .on-blue .sec-eyebrow{color:rgba(255,255,255,.86)}
.hps .on-blue .sec-title{color:#fff}
.hps .on-blue .sec-title .en-num{color:#fff}
.hps .on-blue .sec-head-text{color:rgba(255,255,255,.88)}

/* 見出し＋写真の2カラム */
.hps .media-head{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.12fr);column-gap:64px;align-items:center;
  margin-bottom:64px;
}
.hps .media-head .sec-head-text{margin-top:24px}
.hps .media-head--rev{grid-template-columns:minmax(0,1.12fr) minmax(0,1fr)}
.hps .media-head--rev .ph{order:-1}

/* ---------- Photo ---------- */
.hps .ph{
  position:relative;overflow:hidden;
  aspect-ratio:3 / 2;
  border-radius:14px;
  background:linear-gradient(135deg, #e6f0f7 0%, #d3e3ef 100%);
  box-shadow:0 22px 44px -22px rgba(30,95,140,.32), 0 2px 6px rgba(16,22,27,.05);
}
/* パララックス用に上下へ少し余白を持たせる */
.hps .ph img{position:absolute;left:0;top:-8%;display:block;width:100%;height:116%;object-fit:cover}
.hps .ph--169{aspect-ratio:16 / 9}
.hps img.is-missing{visibility:hidden}

/* ---------- Problems ---------- */
.hps .worries{display:grid;grid-template-columns:repeat(2, minmax(0,1fr));gap:20px}
.hps .worry{
  display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:24px;align-items:start;
  padding:28px 30px 26px 26px;background:#fff;border:1px solid var(--line);border-radius:6px;
  transition:border-color .2s, box-shadow .2s;
}
.hps .worry:hover{border-color:var(--blue);box-shadow:0 12px 28px rgba(30,95,140,.08)}
.hps .worry-no{display:block;width:76px;height:54px;overflow:visible}
.hps .worry-no text{
  font-family:var(--en);font-weight:900;font-size:72px;letter-spacing:-.01em;
  fill:var(--blue);stroke:var(--blue);stroke-width:1.5;
}
.hps .worry-q{font-size:20px;font-weight:700;line-height:1.55;letter-spacing:.02em}
/* 解決策：濃い青の塗り＋白文字 */
.hps .worry-a{
  margin-top:16px;
  display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px 12px;
  padding:8px 18px 8px 14px;border-radius:22px;
  background:var(--deep);color:#fff;
  box-shadow:0 8px 18px -10px rgba(30,95,140,.6);
}
.hps .worry-a-label{
  flex:0 0 auto;display:inline-flex;align-items:center;
  padding-right:12px;border-right:1px solid rgba(255,255,255,.45);
  font-size:12.5px;font-weight:700;line-height:1.5;color:#fff;letter-spacing:.04em;
}
.hps .worry-a p{font-size:15.5px;font-weight:700;color:#fff;line-height:1.55}

/* ---------- Band（青の全幅帯） ---------- */
.hps .band{
  position:relative;overflow:hidden;color:#fff;
  background:linear-gradient(110deg, #479CD9 0%, #3488c8 34%, #2470a8 66%, #1E5F8C 100%);
  padding:100px 0 104px;
}
.hps .band-rings{
  position:absolute;z-index:0;pointer-events:none;
  width:960px;height:960px;right:-300px;top:50%;transform:translateY(-50%);
}
.hps .band-rings svg{width:100%;height:100%}
.hps .band-inner{position:relative;z-index:1}
.hps .band-title{
  font-weight:900;font-size:clamp(30px, 4.4vw + 4px, 64px);line-height:1.32;letter-spacing:.02em;
  text-shadow:0 4px 30px rgba(12,38,58,.25);
}
.hps .bw{display:inline-block;overflow:hidden;vertical-align:top;white-space:nowrap;padding-bottom:.08em;margin-bottom:-.08em}
.hps .ch{display:inline-block}
.hps .band-price{
  margin-top:40px;padding-top:32px;border-top:1px solid rgba(255,255,255,.42);
  display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 28px;
}
.hps .bp-item{display:inline-flex;align-items:baseline;gap:12px;white-space:nowrap}
.hps .bp-l{font-size:clamp(20px, 1.4vw + 8px, 28px);font-weight:900;letter-spacing:.04em}
.hps .bp-n{
  display:inline-block;
  font-family:var(--en);font-weight:900;font-size:clamp(72px, 8.4vw, 128px);line-height:.85;letter-spacing:-.01em;
  font-variant-numeric:tabular-nums;text-shadow:0 6px 40px rgba(12,38,58,.3);
}
.hps .bp-item--init .bp-n{font-size:clamp(100px, 12vw, 184px)}
.hps .bp-u{font-size:clamp(22px, 1.8vw + 6px, 34px);font-weight:900}
.hps .bp-u small{font-size:.62em;font-weight:700}
.hps .bp-sep{font-weight:900;font-size:clamp(28px, 3vw, 44px);line-height:1;color:rgba(255,255,255,.6)}

/* ---------- Compare ---------- */
.hps .cmp-wrap{position:relative}
.hps .cmp-hl{
  position:absolute;top:0;right:0;bottom:0;width:45%;z-index:0;
  border-radius:12px;pointer-events:none;
  background:linear-gradient(180deg, rgba(71,156,217,.22) 0%, rgba(71,156,217,.1) 100%);
  transform-origin:50% 0;
}
.hps .cmp{position:relative;z-index:1;width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}
.hps .cmp .c-item{width:19%}
.hps .cmp .c-common{width:36%}
.hps .cmp .c-ours{width:45%}
.hps .cmp thead th{padding:0 24px 16px;text-align:left;vertical-align:bottom;font-weight:700;line-height:1.5}
.hps .cmp-h-item{font-size:13px;color:var(--muted);letter-spacing:.06em}
.hps .cmp-h-common{color:var(--muted)}
.hps .cmp-h-en{display:block;font-family:var(--en);font-weight:700;font-size:12px;letter-spacing:.22em;line-height:1.4}
.hps .cmp-h-ja{display:block;margin-top:2px;font-size:16px}
.hps .cmp-h-common .cmp-h-en{color:var(--gray-ink)}
.hps .cmp thead th.cmp-h-ours{
  padding:20px 28px 18px;background:var(--deep);color:#fff;border-radius:12px 12px 0 0;
}
.hps .cmp-h-ours .cmp-h-en{color:rgba(255,255,255,.8)}
.hps .cmp-h-ours .cmp-h-ja{font-size:19px;font-weight:900;letter-spacing:.02em}
.hps .cmp tbody th,
.hps .cmp tbody td{padding:22px 24px;border-top:1px solid var(--line);text-align:left;vertical-align:middle}
.hps .cmp tbody tr:last-child th,
.hps .cmp tbody tr:last-child td{border-bottom:1px solid var(--line)}
.hps .cmp tbody th{font-size:16px;font-weight:700;line-height:1.55}
.hps .cmp td.cmp-common{font-size:15px;font-weight:500;color:var(--muted);line-height:1.75}
.hps .cmp td.cmp-ours{
  padding:22px 28px;background:transparent;
  border-left:2px solid var(--deep);border-right:2px solid var(--deep);border-top-color:rgba(30,95,140,.28);
  font-size:16px;font-weight:700;line-height:1.7;
}
.hps .cmp tbody tr:last-child td.cmp-ours{border-bottom:2px solid var(--deep);border-radius:0 0 12px 12px}
.hps .cmp-cell{display:flex;align-items:flex-start;gap:12px}
.hps .cmp-cell > span:last-child{min-width:0}
.hps .cmp-mk{flex:0 0 auto}
.hps .cmp-common .cmp-mk{width:12px;height:2px;margin-top:.85em;background:var(--gray-ink)}
.hps .cmp-ours .cmp-mk{width:22px;height:22px;margin-top:.2em;border-radius:50%;background:var(--deep);display:grid;place-items:center}
.hps .cmp-ours .cmp-mk svg{width:12px;height:12px}
.hps .cmp-ours .cmp-mk--info{background:#fff;border:1.5px solid var(--deep)}
.hps .cmp-big{color:var(--deep)}
.hps .cmp-num{font-family:var(--en);font-weight:900;font-size:40px;line-height:1;letter-spacing:0;margin-right:2px;vertical-align:-3px}
.hps .cmp-num--m{font-size:30px;vertical-align:-2px}
.hps .cmp-big small{font-size:13px;font-weight:700}
.hps .cmp-sub{display:block;margin-top:4px;font-size:13px;font-weight:500;line-height:1.75;color:var(--muted)}
.hps .cmp-note{margin-top:16px;font-size:12.5px;line-height:1.7;color:var(--muted)}

/* ---------- Flow (timeline) ---------- */
.hps .sec-flow{overflow-x:clip}
.hps .flow-stage{position:relative}
.hps .flow{display:grid;grid-template-columns:repeat(4, minmax(0,1fr)) minmax(0,1.5fr)}
.hps .fs{position:relative;padding:56px 24px 0 0}
/* 下地の細い線（常時表示）＋描かれる線（.fs-line） */
.hps .fs::before{content:"";position:absolute;left:0;right:0;top:15px;height:2px;background:#dbe6ee}
.hps .fs-line{position:absolute;left:0;right:0;top:15px;height:2px;background:var(--deep);transform-origin:0 50%}
.hps .fs-dot{
  position:absolute;left:0;top:8px;z-index:1;width:16px;height:16px;border-radius:50%;
  background:#fff;border:2px solid var(--ink);display:grid;place-items:center;
}
.hps .fs-dot i{display:block;width:6px;height:6px;border-radius:50%;background:var(--ink)}
.hps .fs-no{display:flex;align-items:center;gap:8px;font-family:var(--en);font-weight:700;font-size:14px;line-height:1.4;letter-spacing:.2em;color:var(--muted)}
.hps .fs-badge{
  display:inline-block;padding:1px 8px;border-radius:999px;background:var(--blue);color:#fff;
  font-family:var(--en);font-weight:700;font-size:12px;letter-spacing:.16em;line-height:1.5;
}
.hps .fs h3{margin-top:8px;font-size:18px;font-weight:700;line-height:1.5;letter-spacing:.02em}
.hps .fs-d{margin-top:10px;font-size:14px;line-height:1.85;color:var(--muted)}
.hps .fs-forever{
  display:inline-block;margin-left:6px;padding:1px 10px;border-radius:999px;
  border:1.5px solid var(--blue);color:var(--deep);font-size:12.5px;font-weight:700;line-height:1.6;vertical-align:2px;
}
/* 公開以降：青く太い線 */
.hps .fs.live .fs-line{top:11px;height:10px;background:var(--blue)}
.hps .fs.launch .fs-dot{left:-5px;top:3px;width:26px;height:26px;background:var(--blue);border:5px solid #fff;box-shadow:0 0 0 2px var(--blue)}
.hps .fs.launch .fs-dot i{display:none}
.hps .fs.launch .fs-no,
.hps .fs.forever .fs-no{color:var(--deep)}
.hps .fs.launch h3,
.hps .fs.forever h3{font-size:20px;font-weight:900}
.hps .fs.forever{padding-right:0}
.hps .fs.forever .fs-dot{border-color:var(--blue)}
.hps .fs.forever .fs-dot i{background:var(--blue)}
.hps .fs.forever::before{right:calc(-1 * var(--gutter))}
.hps .fs.forever .fs-line{
  right:calc(-1 * var(--gutter));
  background:linear-gradient(90deg, var(--blue) 0%, var(--blue) 55%, rgba(71,156,217,.1) 100%);
}

/* ---------- Included (receipt) on blue ---------- */
.hps .sec-included{
  position:relative;overflow:hidden;
  background:
    radial-gradient(ellipse 42% 60% at 22% 52%, rgba(71,156,217,.66) 0%, rgba(71,156,217,.24) 45%, rgba(71,156,217,0) 75%),
    linear-gradient(155deg, #1E5F8C 0%, #1c5a86 50%, #18496e 100%);
}
.hps .sec-included .wrap{position:relative;z-index:1}
.hps .included{
  display:grid;
  grid-template-columns:minmax(0, 440px) minmax(0, 1fr);
  grid-template-areas:
    "receipt ."
    "receipt head"
    "receipt body"
    "receipt .";
  grid-template-rows:1fr auto auto 1fr;
  column-gap:88px;
  align-items:start;
}
.hps .included-head{grid-area:head}
.hps .included-body{grid-area:body;margin-top:28px}
.hps .included-body .ph{margin-bottom:28px}
.hps .sec-included .ph{
  background:linear-gradient(135deg, rgba(255,255,255,.2) 0%, rgba(255,255,255,.07) 100%);
  box-shadow:0 26px 50px -24px rgba(6,24,40,.6), 0 2px 6px rgba(6,24,40,.2);
}
.hps .included-lead{font-size:16px;line-height:2;color:#fff}
.hps .included-lead strong{color:#fff;font-weight:700;background:linear-gradient(transparent 62%, rgba(71,156,217,.62) 0)}
.hps .extras{margin-top:28px;padding:22px 24px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.3);border-radius:6px}
.hps .extras-title{font-size:14px;font-weight:700;color:rgba(255,255,255,.88)}
.hps .extras-list{margin-top:12px;display:flex;flex-wrap:wrap;gap:8px}
.hps .extras-list li{
  display:inline-flex;align-items:center;gap:8px;padding:6px 8px 6px 14px;
  border:1px solid rgba(255,255,255,.5);border-radius:999px;font-size:14px;font-weight:700;line-height:1.4;white-space:nowrap;color:#fff;
}
.hps .extras-list li b{font-size:12px;font-weight:700;color:var(--deep);background:#fff;border-radius:999px;padding:2px 9px}
.hps .terms{margin-top:24px;padding-top:18px;border-top:1px dashed rgba(255,255,255,.34)}
.hps .terms-title{font-size:13px;font-weight:700;color:rgba(255,255,255,.8)}
.hps .terms ul{margin-top:8px}
.hps .terms li{position:relative;padding-left:1.3em;font-size:12.5px;line-height:1.85;color:rgba(255,255,255,.8)}
.hps .terms li::before{content:"※";position:absolute;left:0;top:0}

.hps .receipt-wrap{
  grid-area:receipt;align-self:center;
  filter:drop-shadow(0 22px 32px rgba(6,24,40,.34)) drop-shadow(0 2px 3px rgba(6,24,40,.14));
  transform:rotate(-1.2deg);
}
/* プリンターの排出口 */
.hps .r-slot{
  position:relative;z-index:2;height:16px;margin:0 -14px;border-radius:8px;
  background:linear-gradient(180deg, #2c3742 0%, #10161b 100%);
  box-shadow:inset 0 -3px 0 rgba(255,255,255,.08);
}
.hps .r-feed{position:relative;margin-top:-8px;padding-bottom:14px}
.hps .receipt{
  position:relative;background:#fff;color:var(--ink);
  padding:40px 32px 30px;
  font-family:var(--zen);
}
.hps .receipt::after{
  content:"";position:absolute;left:0;right:0;bottom:-12px;height:12px;
  background-size:24px 12px;background-repeat:repeat-x;
  background-image:conic-gradient(from -45deg at 50% 100%, #fff 90deg, transparent 0);
}
.hps .r-head{text-align:center;padding-bottom:20px;border-bottom:1.5px dashed #b8cad8}
.hps .r-brand{font-family:var(--en);font-weight:800;font-size:34px;line-height:1;letter-spacing:.18em;padding-left:.18em}
.hps .r-sub{margin-top:10px;font-family:var(--en);font-weight:700;font-size:13px;letter-spacing:.22em;color:var(--muted)}
.hps .r-title{margin-top:6px;font-size:13px;font-weight:700;letter-spacing:.12em}
.hps .r-items{padding:18px 0 16px}
.hps .r-items li + li{margin-top:9px}
.hps .r-row{display:flex;align-items:baseline;gap:8px}
.hps .r-no{flex:0 0 22px;font-family:var(--en);font-weight:700;font-size:13px;color:var(--blue);letter-spacing:.04em}
.hps .r-name{font-size:15px;font-weight:500;letter-spacing:.04em;line-height:1.5}
.hps .r-dots{flex:1 1 auto;min-width:14px;border-bottom:2px dotted #c2d2df;transform:translateY(-4px)}
/* 「込み」をスタンプ風に */
.hps .r-val{
  flex:0 0 auto;padding:0 6px;border:1.5px solid currentColor;border-radius:3px;
  font-size:12.5px;font-weight:700;color:var(--deep);letter-spacing:.08em;line-height:1.45;
  transform:rotate(-4deg);
}
.hps .r-note{margin:1px 0 0 30px;font-size:11.5px;line-height:1.6;color:var(--muted);letter-spacing:.02em}
.hps .r-totals{border-top:1.5px dashed #b8cad8;padding-top:14px}
.hps .r-total{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.hps .r-tl{font-size:14px;font-weight:700;letter-spacing:.08em}
.hps .r-tl small{font-size:11.5px;font-weight:500;color:var(--muted);letter-spacing:0}
.hps .r-tv{font-size:15px;font-weight:700}
.hps .r-tv b{font-family:var(--en);font-weight:900;font-size:36px;line-height:1;margin-right:3px;letter-spacing:.01em;font-variant-numeric:tabular-nums}
.hps .r-total--main{margin-top:12px;padding-top:12px;border-top:3px double var(--ink)}
.hps .r-total--main .r-tl{font-size:16px}
.hps .r-total--main .r-tv b{font-size:48px;color:var(--deep)}
.hps .r-foot{margin-top:22px;text-align:center}
.hps .r-barcode{
  width:72%;height:42px;margin-inline:auto;opacity:.85;
  background:repeating-linear-gradient(90deg,
    var(--ink) 0 2px, transparent 2px 4px,
    var(--ink) 4px 5px, transparent 5px 8px,
    var(--ink) 8px 11px, transparent 11px 12px,
    var(--ink) 12px 13px, transparent 13px 17px,
    var(--ink) 17px 18px, transparent 18px 20px);
}
.hps .r-thanks{margin-top:10px;font-family:var(--en);font-weight:700;font-size:12px;letter-spacing:.3em;color:var(--muted)}

/* ---------- Devices（ノートPC＋スマホ：ショーケースと事例で共通） ---------- */
.hps .showcase{
  --lw:min(820px, 64vw, calc((100vw - 48px) / 1.18), calc((100vh - 230px) * 1.42));
  --pr:.24;
  --pw:calc(var(--lw) * var(--pr));
  margin:0 0 104px;
}
@supports (height:100svh){
  .hps .showcase{--lw:min(820px, 64vw, calc((100vw - 48px) / 1.18), calc((100svh - 230px) * 1.42))}
}
.hps .sc-stage{
  position:relative;
  width:calc(var(--lw) * 1.18);max-width:100%;margin-inline:auto;
  padding-bottom:calc(var(--lw) * .04);
}
/* ノートPC（MacBook風） */
.hps .lp{position:relative;z-index:0;width:var(--lw)}
.hps .lp::after{
  content:"";position:absolute;z-index:-1;left:-6%;right:-6%;bottom:calc(var(--lw) * -.035);height:calc(var(--lw) * .05);
  background:radial-gradient(ellipse at center, rgba(16,22,27,.30) 0%, rgba(16,22,27,0) 70%);
}
.hps .lp-lid{
  position:relative;
  padding:calc(var(--lw) * .018) calc(var(--lw) * .018) calc(var(--lw) * .026);
  background:#0c0e11;
  border-radius:calc(var(--lw) * .028) calc(var(--lw) * .028) calc(var(--lw) * .006) calc(var(--lw) * .006);
  box-shadow:0 0 0 1px #9aa1a9, inset 0 0 0 1px #2a2f35, 0 40px 70px -34px rgba(16,40,60,.55);
}
.hps .lp-cam{
  position:absolute;top:calc(var(--lw) * .0075);left:50%;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;
  background:#1d242c;box-shadow:inset 0 0 0 1px #34404c;
}
.hps .lp-screen{
  position:relative;aspect-ratio:16 / 10;overflow:hidden;background:#f4f3ef;
  border-radius:calc(var(--lw) * .007) calc(var(--lw) * .007) 0 0;
}
.hps .lp-screen img{display:block;width:100%;height:auto}
.hps .lp-screen::after,
.hps .sp-screen::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(115deg, rgba(255,255,255,.12) 0%, rgba(255,255,255,0) 36%);
}
.hps .lp-hinge{
  width:86%;height:calc(var(--lw) * .007);margin-inline:auto;
  background:linear-gradient(180deg, #2a2f35 0%, #6d737a 100%);
  border-radius:0 0 3px 3px;
}
.hps .lp-base{
  position:relative;width:114%;margin-left:-7%;height:calc(var(--lw) * .024);
  background:linear-gradient(180deg, #eef0f2 0%, #d5d9dd 40%, #a8aeb5 100%);
  border-radius:2px 2px calc(var(--lw) * .04) calc(var(--lw) * .04) / 2px 2px calc(var(--lw) * .02) calc(var(--lw) * .02);
  box-shadow:0 1px 0 #7d838a;
}
.hps .lp-base::before{
  content:"";position:absolute;left:50%;top:0;width:15%;height:42%;transform:translateX(-50%);
  background:linear-gradient(180deg, #b4b9bf 0%, #d3d7db 100%);border-radius:0 0 8px 8px;
}
/* スマホ（iPhone風） */
.hps .sp{position:absolute;right:0;bottom:0;z-index:2;width:var(--pw)}
.hps .sp-body{
  position:relative;aspect-ratio:71.5 / 147;
  background:#0c0e11;border-radius:calc(var(--pw) * .17);
  box-shadow:0 0 0 1.5px #a7adb4, 0 0 0 3px #dfe2e5, 0 40px 60px -22px rgba(16,40,60,.5);
}
.hps .sp-body::before,
.hps .sp-body::after{content:"";position:absolute;width:3px;background:#a7adb4}
.hps .sp-body::before{right:-5px;top:27%;height:12%;border-radius:0 2px 2px 0}
.hps .sp-body::after{left:-5px;top:21%;height:16%;border-radius:2px 0 0 2px}
.hps .sp-screen{
  position:absolute;inset:calc(var(--pw) * .035);overflow:hidden;background:#fff;
  border-radius:calc(var(--pw) * .135);
}
.hps .sp-island{
  position:absolute;z-index:2;top:calc(var(--pw) * .065);left:50%;width:30%;height:calc(var(--pw) * .085);
  transform:translateX(-50%);background:#0c0e11;border-radius:999px;
}
.hps .sp-view{position:absolute;left:0;right:0;top:calc(var(--pw) * .13);bottom:0;overflow:hidden}
.hps .sp-view img{display:block;width:100%;height:auto}
.hps .sc-cap{margin-top:36px;text-align:center;font-size:12.5px;font-weight:500;line-height:1.6;letter-spacing:.06em;color:var(--muted)}

/* ---------- Capabilities ---------- */
.hps .caps{display:grid;grid-template-columns:repeat(3, minmax(0,1fr));gap:48px 40px}
.hps .cap{border-top:3px solid var(--blue);padding-top:22px}
.hps .cap-no{display:block;font-family:var(--en);font-weight:900;font-size:68px;line-height:.9;color:var(--blue);letter-spacing:-.01em}
.hps .cap-no.has-reel{display:flex;align-items:flex-start}
.hps .reel-mask{display:block;height:.9em;overflow:hidden}
.hps .reel{display:block}
.hps .reel b{display:block;height:.9em;line-height:.9;font-weight:inherit}
.hps .cap h3{margin-top:16px;font-size:20px;font-weight:700;line-height:1.5;letter-spacing:.02em}
.hps .cap p{margin-top:10px;font-size:14.5px;line-height:1.9;color:var(--muted)}

/* ---------- Cases（デバイスに映る事例ページ） ---------- */
.hps .sec-cases{
  position:relative;overflow-x:clip;
  background:linear-gradient(160deg, #1E5F8C 0%, #1a5279 45%, #173f5f 100%);
}
.hps .sec-cases::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(to right, rgba(255,255,255,.05) 1px, transparent 1px);
  background-size:calc(100% / 12) 100%;
}
.hps .cases-pin{position:relative;z-index:1}
.hps .cases-head{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  grid-template-areas:"title text";
  column-gap:64px;align-items:end;margin-bottom:64px;
}
.hps .cases-head > div:first-child{grid-area:title}
.hps .cases-head .sec-head-text{grid-area:text}
.hps .cases-meter{grid-area:meter;display:none;align-items:center;gap:18px}
.hps .cm-num{font-family:var(--en);font-weight:700;font-size:16px;line-height:1;letter-spacing:.14em;color:rgba(255,255,255,.72);white-space:nowrap}
.hps .cm-cur{display:inline-block;min-width:1.3em;font-weight:900;font-size:30px;color:#fff;letter-spacing:.02em}
.hps .cm-sep{margin:0 .3em}
.hps .cm-bar{position:relative;display:block;width:160px;height:2px;background:rgba(255,255,255,.22);overflow:hidden}
.hps .cm-bar i{position:absolute;inset:0;background:linear-gradient(90deg, var(--blue), #fff);transform-origin:0 50%;transform:scaleX(0)}

.hps .cs + .cs{margin-top:96px;padding-top:96px;border-top:1px solid rgba(255,255,255,.14)}
.hps .cs-in{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:64px;align-items:center;
}
.hps .cs-media{
  --lw:min(500px, calc((min(1200px, 100vw - 48px) - 64px) / 2 / 1.14));
  --pr:.25;
  --pw:calc(var(--lw) * var(--pr));
}
.hps .cs-stage{
  position:relative;
  width:calc(var(--lw) * 1.14);max-width:100%;margin-inline:auto;
  padding-bottom:calc(var(--lw) * .04);
}
.hps .cs-cap{margin-top:22px;text-align:center;font-size:12px;font-weight:500;line-height:1.6;letter-spacing:.06em;color:rgba(255,255,255,.8)}
.hps .cs-body{color:#fff}
.hps .cs-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;line-height:1.5}
.hps .cs-no{font-family:var(--en);font-weight:700;font-size:14px;letter-spacing:.22em;color:var(--sky)}
.hps .cs-ind{display:inline-block;padding:3px 12px;border-radius:999px;background:#fff;color:var(--deep);font-size:13px;font-weight:700}
.hps .cs-cat{font-size:13px;font-weight:700;color:rgba(255,255,255,.84)}
.hps .cs-title{margin-top:14px;font-size:24px;font-weight:900;line-height:1.5;letter-spacing:.02em}
.hps .cs-block{margin-top:22px}
.hps .cs-lbl{display:flex;align-items:baseline;gap:10px;font-size:13px;font-weight:700;line-height:1.5;color:rgba(255,255,255,.9)}
.hps .cs-lbl span{font-family:var(--en);font-weight:700;font-size:12px;letter-spacing:.2em;color:var(--sky)}
.hps .cs-issues,
.hps .cs-did{margin-top:8px}
.hps .cs-issues li{position:relative;padding-left:20px;font-size:15px;font-weight:500;line-height:1.75;color:rgba(255,255,255,.9)}
.hps .cs-issues li::before{content:"";position:absolute;left:2px;top:.85em;width:10px;height:2px;background:rgba(255,255,255,.55)}
.hps .cs-issues li + li{margin-top:4px}
.hps .cs-did li{display:flex;align-items:flex-start;gap:10px;font-size:15px;font-weight:700;line-height:1.7;color:#fff}
.hps .cs-did li + li{margin-top:6px}
.hps .cs-did .mk{flex:0 0 20px;width:20px;height:20px;margin-top:.2em;border-radius:50%;background:var(--blue);display:grid;place-items:center}
.hps .cs-did .mk svg{width:11px;height:11px}
.hps .cs-voice{
  margin-top:24px;padding:16px 20px 18px;
  border-left:4px solid var(--blue);border-radius:0 10px 10px 0;
  background:rgba(71,156,217,.28);
}
.hps .cs-voice-l{display:flex;align-items:baseline;gap:10px;font-size:12.5px;font-weight:700;line-height:1.5;color:var(--sky)}
.hps .cs-voice-l span{font-family:var(--en);font-weight:700;font-size:12px;letter-spacing:.2em}
.hps .cs-voice-t{margin-top:4px;font-size:15px;font-weight:500;line-height:1.85;color:#fff}

/* デスクトップ：ピン留め＋横スクロール（JSが #hps に .cases-h を付けたときだけ） */
.hps.cases-h .sec-cases{padding:0}
.hps.cases-h .cases-pin{
  height:calc(100vh - var(--header-h));
  display:flex;flex-direction:column;justify-content:center;
  padding:32px 0 36px;
}
.hps.cases-h .cases-head{
  grid-template-columns:auto minmax(0,1fr) auto;
  grid-template-areas:"title text meter";
  column-gap:48px;margin-bottom:28px;
}
.hps.cases-h .cases-head .sec-title{font-size:clamp(28px, 1.6vw + 12px, 38px)}
.hps.cases-h .cases-head .sec-head-text{font-size:15px;line-height:1.85;max-width:30em}
.hps.cases-h .cases-meter{display:flex}
.hps.cases-h .cases-vp{overflow:hidden}
.hps.cases-h .cases-track{display:flex}
.hps.cases-h .cs{flex:0 0 100%;margin:0;padding:0;border:0}
.hps.cases-h .cs-in{
  width:min(1200px, 100% - 48px);margin-inline:auto;
  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);column-gap:56px;
}
.hps.cases-h .cs-media{
  --lw:min(560px, calc((min(1200px, 100vw - 48px) - 56px) * .525 / 1.14), calc((100vh - var(--header-h) - 240px) * 1.25));
}
.hps.cases-h .cs-title{font-size:22px}
.hps.cases-h .cs-block{margin-top:18px}
.hps.cases-h .cs-issues li,
.hps.cases-h .cs-did li{font-size:14.5px;line-height:1.65}
.hps.cases-h .cs-did li + li{margin-top:4px}
.hps.cases-h .cs-voice{margin-top:18px;padding:13px 18px 14px}
.hps.cases-h .cs-voice-t{font-size:14.5px;line-height:1.75}
.hps.cases-h .cs-cap{margin-top:16px}
@media (max-height:820px){
  .hps.cases-h .cases-pin{padding:20px 0 24px}
  .hps.cases-h .cases-head{margin-bottom:18px}
  .hps.cases-h .cases-head .sec-title{font-size:30px;margin-top:10px}
  .hps.cases-h .cs-title{margin-top:10px;font-size:20px;line-height:1.45}
  .hps.cases-h .cs-block{margin-top:14px}
  .hps.cases-h .cs-issues li,
  .hps.cases-h .cs-did li{font-size:13.5px;line-height:1.6}
  .hps.cases-h .cs-voice{margin-top:14px;padding:10px 16px 12px}
  .hps.cases-h .cs-voice-t{font-size:13.5px;line-height:1.7}
}

/* ---------- FAQ ---------- */
.hps .faq-layout{display:grid;grid-template-columns:minmax(0,360px) minmax(0,1fr);column-gap:80px;align-items:start}
.hps .faq-head{position:sticky;top:calc(var(--header-h) + 40px)}
.hps .faq-head .sec-head-text{margin-top:24px}
.hps .faq-list{border-top:0;border-bottom:1px solid var(--line)} /* border-top:0 はサイト側 .faq-list の打ち消し */
.hps .faq-item{border-top:1px solid var(--line);border-bottom:0;padding:0} /* border-bottom / padding はサイト側 .faq-list details の打ち消し */
.hps .faq-item summary{
  display:block;padding:24px 4px;cursor:pointer;list-style:none;
  font-size:17px;font-weight:700;line-height:1.65;
  color:inherit;gap:0; /* サイト側 .faq-list summary の打ち消し */
}
.hps .faq-sum{
  display:grid;grid-template-columns:auto minmax(0,1fr) auto;column-gap:18px;align-items:start;
  color:inherit;font-family:inherit;font-weight:inherit;letter-spacing:normal; /* サイト側 .faq-list summary > span の打ち消し */
}
.hps .faq-item summary::-webkit-details-marker{display:none}
.hps .faq-item summary:hover .faq-qt{color:var(--deep)}
.hps .faq-item summary:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:4px}
.hps .faq-mk{font-family:var(--en);font-weight:800;font-size:26px;line-height:1.1;color:var(--blue);width:20px}
.hps .faq-qt{transition:color .2s}
.hps .faq-ic{position:relative;flex:0 0 28px;width:28px;height:28px;margin-top:1px;border-radius:50%;border:1.5px solid var(--line);transition:background-color .25s, border-color .25s}
.hps .faq-ic::before,
.hps .faq-ic::after{content:"";position:absolute;left:50%;top:50%;width:11px;height:2px;margin:-1px 0 0 -5.5px;background:var(--deep);border-radius:1px;transition:transform .3s, background-color .25s}
.hps .faq-ic::after{transform:rotate(90deg)}
.hps .faq-item[open]:not(.is-closing) .faq-ic{background:var(--blue);border-color:var(--blue)}
.hps .faq-item[open]:not(.is-closing) .faq-ic::before,
.hps .faq-item[open]:not(.is-closing) .faq-ic::after{background:#fff}
.hps .faq-item[open]:not(.is-closing) .faq-ic::after{transform:rotate(0)}
.hps .faq-body{overflow:hidden}
.hps .faq-a{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:18px;padding:0 50px 28px 4px}
.hps .faq-a .faq-mk{color:var(--deep)}
.hps .faq-a p{
  display:block;margin:0; /* サイト側 .faq-list p の打ち消し */
  font-size:15px;line-height:1.95;color:var(--ink);
}

/* ---------- Final CTA ---------- */
.hps .final{
  position:relative;overflow:hidden;color:#fff;
  background:linear-gradient(150deg, #479CD9 0%, #3483bf 42%, #1E5F8C 100%);
  padding:120px 0 112px;
}
.hps .final-photo{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.hps .final-photo-in{position:absolute;left:0;right:0;top:-12%;bottom:-12%}
.hps .final-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 50%}
/* 写真の左2/3は暗い青の余白。右のPCが見えるよう、重ねは左だけ濃く */
.hps .final-photo::after{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(180deg, rgba(16,30,42,.1) 0%, rgba(16,30,42,0) 40%, rgba(16,30,42,.22) 100%),
    linear-gradient(90deg, rgba(22,70,106,.86) 0%, rgba(26,84,126,.7) 42%, rgba(30,95,140,.26) 66%, rgba(30,95,140,0) 82%);
}
.hps .final-rings{
  position:absolute;z-index:0;pointer-events:none;
  width:1100px;height:1100px;left:-420px;top:50%;transform:translateY(-50%);
}
.hps .final-rings svg{width:100%;height:100%}
.hps .final .wrap{position:relative;z-index:1}
.hps .final-inner{max-width:780px}
.hps .final-kicker{
  display:inline-block;padding:6px 18px;border-radius:999px;
  border:1px solid rgba(255,255,255,.66);background:rgba(16,40,60,.24);
  font-size:15px;font-weight:700;line-height:1.6;letter-spacing:.02em;
}
.hps .final h2{
  margin-top:24px;
  font-weight:900;font-size:clamp(26px, 3.4vw + 6px, 54px);line-height:1.36;letter-spacing:.02em;
}
.hps .final-sub{margin-top:20px;font-size:16px;font-weight:500;line-height:1.9;color:rgba(255,255,255,.95)}
.hps .final-actions{margin-top:40px;max-width:640px;display:grid;grid-template-columns:repeat(2, minmax(0,1fr));gap:14px}
.hps .final-actions .btn{width:100%}
.hps .final-actions .btn-primary{grid-column:1 / -1}
.hps .final .btn-ghost{background:rgba(16,40,60,.18);padding-inline:20px}
.hps .final .btn-ghost:hover{background:rgba(255,255,255,.14)}
.hps .diag{
  margin-top:64px;max-width:780px;
  display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"mock text arr";
  column-gap:28px;align-items:center;
  padding:22px 30px 22px 22px;border-radius:12px;background:#fff;color:var(--ink);text-decoration:none;
  box-shadow:0 18px 40px -18px rgba(16,22,27,.45);
  transition:transform .2s, box-shadow .2s;
}
.hps .diag:hover{transform:translateY(-2px);box-shadow:0 22px 44px -18px rgba(16,22,27,.52)}
.hps .diag:focus-visible{outline:3px solid #fff;outline-offset:3px}
/* 小さなブラウザ枠：ホバーで中身がスクロール */
.hps .diag-mock{
  grid-area:mock;display:block;width:200px;border-radius:8px;overflow:hidden;background:#fff;
  box-shadow:0 0 0 1px var(--line), 0 12px 24px -14px rgba(16,22,27,.4);
}
.hps .diag-bar{display:flex;align-items:center;gap:4px;height:16px;padding:0 8px;background:#eef3f7;border-bottom:1px solid var(--line)}
.hps .diag-bar i{display:block;width:5px;height:5px;border-radius:50%;background:#c3d0da}
.hps .diag-view{position:relative;display:block;height:118px;overflow:hidden}
.hps .diag-view img{display:block;width:100%;height:auto;transition:transform 1.2s cubic-bezier(.4,0,.2,1)}
.hps .diag:hover .diag-view img,
.hps .diag:focus-visible .diag-view img{transform:translateY(calc(-100% + 118px));transition-duration:5s}
.hps .diag-text{grid-area:text;display:block}
.hps .diag-pre{font-size:13px;font-weight:700;color:var(--muted);line-height:1.5}
.hps .diag-title{display:block;margin-top:2px;font-size:22px;font-weight:900;line-height:1.4;color:var(--deep)}
.hps .diag-desc{display:block;margin-top:4px;font-size:14px;line-height:1.8;color:var(--muted)}
.hps .diag-arr{
  grid-area:arr;
  display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--blue);color:#fff;
  font-family:var(--en);font-weight:800;font-size:22px;line-height:1;transition:background-color .2s
}
.hps .diag:hover .diag-arr{background:var(--deep)}

/* ---------- Responsive ---------- */
@media (max-width:1023px){
  .hps .included{column-gap:48px;grid-template-columns:minmax(0, 400px) minmax(0, 1fr)}
  .hps .caps{grid-template-columns:repeat(2, minmax(0,1fr))}
  .hps .media-head{column-gap:40px}
  .hps .fs{padding-right:16px}
  .hps .fs h3{font-size:16px}
  .hps .fs.launch h3,.hps .fs.forever h3{font-size:18px}
  .hps .faq-layout{grid-template-columns:minmax(0,280px) minmax(0,1fr);column-gap:48px}
  .hps .cmp tbody th,.hps .cmp tbody td{padding:20px 18px}
  .hps .cmp td.cmp-ours{padding:20px 22px}
  .hps .cmp thead th{padding:0 18px 14px}
  .hps .cmp thead th.cmp-h-ours{padding:18px 22px 16px}
  .hps .hero-inner{column-gap:40px}
  .hps .cs-in{column-gap:44px}
  .hps .cs-media{--lw:min(500px, calc((min(1200px, 100vw - 48px) - 44px) / 2 / 1.14))}
}
@media (max-width:899px){
  .hps .hero{align-items:flex-start;padding:44px 0 52px}
  .hps .hero-shade{
    background:linear-gradient(180deg, rgba(24,78,118,.62) 0%, rgba(30,95,140,.42) 50%, rgba(24,78,118,.7) 100%);
  }
  .hps .hero-inner{
    grid-template-columns:minmax(0,1fr);
    grid-template-rows:none;
    grid-template-areas:"copy" "price" "actions" "mv" "lead" "chips";
  }
  .hps .hero-rings{width:820px;height:820px;right:-360px;top:62%}
  .hps .hero-price{margin-top:26px}
  .hps .hero-actions{margin-top:26px}
  .hps .hero-mv{margin-top:36px;margin-right:calc(-1 * var(--gutter))}
  .hps .mv-frame{padding:8px;border-radius:22px}
  .hps .mv-ph{border-radius:15px}
  .hps .hero-lead{margin-top:28px}
  .hps .hero-chips{margin-top:26px}
  .hps .hero .btn-ghost{flex-direction:row;flex-wrap:wrap;align-items:center;gap:4px 10px;padding:12px 26px}

  .hps .media-head,
  .hps .media-head--rev{grid-template-columns:minmax(0,1fr);margin-bottom:48px}
  .hps .media-head .ph{margin-top:32px}
  .hps .media-head--rev .ph{order:0}

  /* タイムライン → 縦 */
  .hps .flow{grid-template-columns:minmax(0,1fr)}
  .hps .fs{padding:0 0 32px 44px}
  .hps .fs::before,
  .hps .fs-line{left:7px;right:auto;top:0;bottom:0;width:2px;height:auto}
  .hps .fs-line{transform-origin:50% 0}
  .hps .fs:first-child::before,
  .hps .fs:first-child .fs-line{top:14px}
  .hps .fs-dot{top:4px}
  .hps .fs.live .fs-line{left:3px;top:0;width:10px;height:auto}
  .hps .fs.launch::before,
  .hps .fs.launch .fs-line{top:14px}
  .hps .fs.launch .fs-dot{top:-1px}
  .hps .fs.forever{padding-bottom:96px}
  .hps .fs.forever::before{right:auto}
  .hps .fs.forever .fs-line{right:auto;background:linear-gradient(180deg, var(--blue) 0%, var(--blue) 50%, rgba(71,156,217,.1) 100%)}
  .hps .fs h3{margin-top:4px;font-size:18px}
  .hps .fs.launch h3,.hps .fs.forever h3{font-size:20px}
  .hps .fs-d{max-width:36em}

  .hps .sec-included{
    background:
      radial-gradient(ellipse 80% 30% at 50% 44%, rgba(71,156,217,.6) 0%, rgba(71,156,217,.2) 50%, rgba(71,156,217,0) 80%),
      linear-gradient(170deg, #1E5F8C 0%, #1c5a86 50%, #18496e 100%);
  }
  .hps .included{
    grid-template-columns:minmax(0,1fr);
    grid-template-areas:"head" "receipt" "body";
    grid-template-rows:none;
  }
  .hps .receipt-wrap{margin-top:40px;transform:none;max-width:440px;width:100%;justify-self:center}
  .hps .included-body{margin-top:32px}

  .hps .sec-head{grid-template-columns:minmax(0,1fr);row-gap:20px}

  .hps .showcase{--lw:calc((100vw - 48px) / 1.18);--pr:.34;margin-bottom:64px}
  .hps .sc-stage{padding-top:calc(var(--lw) * .08)}

  .hps .cases-head{grid-template-columns:minmax(0,1fr);grid-template-areas:"title" "text";row-gap:20px;margin-bottom:48px}
  .hps .cs-in{grid-template-columns:minmax(0,1fr);row-gap:36px}
  .hps .cs-media{--lw:calc((100vw - 48px) / 1.14);--pr:.3}
  .hps .cs + .cs{margin-top:64px;padding-top:64px}

  .hps .faq-layout{grid-template-columns:minmax(0,1fr)}
  .hps .faq-head{position:static;margin-bottom:40px}

  .hps .final-photo img{object-position:82% 50%}
  .hps .final-photo::after{
    background:linear-gradient(180deg, rgba(24,78,118,.84) 0%, rgba(30,95,140,.74) 50%, rgba(24,78,118,.88) 100%);
  }
  .hps .final-actions{max-width:480px;grid-template-columns:minmax(0,1fr)}
  .hps .final-rings{width:820px;height:820px;left:auto;right:-420px;top:30%}
  .hps .diag{max-width:none}
}
@media (max-width:767px){
  /* 比較表 → 項目ごとのカード */
  .hps .cmp-hl{display:none}
  .hps .cmp, .hps .cmp tbody, .hps .cmp tr, .hps .cmp th, .hps .cmp td{display:block;width:auto}
  .hps .cmp colgroup{display:none}
  .hps .cmp thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .hps .cmp tbody tr{margin-top:14px;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}
  .hps .cmp tbody tr:first-child{margin-top:0}
  .hps .cmp tbody th,
  .hps .cmp tbody td,
  .hps .cmp tbody tr:last-child td{border:0}
  .hps .cmp tbody th{padding:14px 18px 12px;border-bottom:1px solid var(--line);font-size:16px}
  .hps .cmp td.cmp-common{padding:14px 18px;font-size:14px}
  .hps .cmp td.cmp-ours,
  .hps .cmp tbody tr:last-child td.cmp-ours{
    padding:14px 18px 16px 16px;background:rgba(71,156,217,.12);
    border:0;border-left:4px solid var(--deep);border-radius:0;font-size:15px;
  }
  .hps .cmp td::before{content:attr(data-label);display:block;margin-bottom:6px;font-size:12px;font-weight:700;letter-spacing:.04em;line-height:1.5}
  .hps .cmp td.cmp-common::before{color:var(--gray-ink)}
  .hps .cmp td.cmp-ours::before{color:var(--deep)}
  .hps .cmp-num{font-size:34px}
  .hps .cmp-num--m{font-size:26px}

  .hps .band-price{gap:14px 20px}
  .hps .bp-sep{display:none}
}
@media (max-width:600px){
  .hps .hero{padding:28px 0 44px;min-height:auto}
  .hps .eyebrow{font-size:13px;letter-spacing:.22em;gap:10px}
  .hps .eyebrow::before{flex-basis:28px}
  .hps .hero h1{margin-top:14px}
  .hps .hero-price{margin-top:22px}
  .hps .price-label .ja{font-size:14.5px}
  .hps .price-label .en{font-size:10.5px;letter-spacing:.2em}
  .hps .price--init .num{font-size:clamp(84px, 24vw, 112px)}
  .hps .price--init .unit{font-size:22px}
  .hps .price--month .num{font-size:clamp(50px, 14vw, 68px)}
  .hps .price--month .unit{font-size:17px}
  .hps .price-fig .unit{margin-left:6px}
  .hps .price-fig .unit small{font-size:11.5px}
  .hps .price-note{display:none}
  .hps .hero-actions{margin-top:22px;flex-direction:column;align-items:stretch;gap:12px}
  .hps .btn{width:100%;padding-inline:20px}
  .hps .btn-ghost{flex-wrap:wrap;gap:4px 10px}
  .hps .hero-mv{margin-top:32px}
  .hps .hero-lead{font-size:15px;margin-top:26px}
  .hps .chips-label{width:100%}
  .hps .chip{font-size:14px}

  .hps .marquee{padding:22px 0 16px}

  .hps .sec{padding:72px 0}
  .hps .sec-head{margin-bottom:36px}
  .hps .media-head,
  .hps .media-head--rev{margin-bottom:36px}
  .hps .media-head .ph{margin-top:28px}
  .hps .sec-head-text,.hps .included-lead{font-size:15px}
  .hps .ph{border-radius:10px}
  .hps .ph--169{aspect-ratio:3 / 2}

  .hps .band{padding:72px 0 76px}
  .hps .band-price{margin-top:30px;padding-top:24px}
  .hps .bp-item{gap:10px}
  .hps .bp-item--init .bp-n{font-size:clamp(84px, 24vw, 112px)}
  .hps .bp-n{font-size:clamp(54px, 15vw, 72px)}

  .hps .receipt{padding:36px 20px 26px}
  .hps .r-name{font-size:14px}
  .hps .r-total--main .r-tv b{font-size:42px}
  .hps .extras{padding:18px 16px}

  .hps .worries{grid-template-columns:minmax(0,1fr);gap:14px}
  .hps .worry{padding:22px 20px 20px 18px;column-gap:16px}
  .hps .worry-no{width:55px;height:39px}
  .hps .worry-q{font-size:18px}
  .hps .worry-a{padding:7px 14px 7px 12px;border-radius:18px}
  .hps .worry-a p{font-size:15px}

  .hps .sc-cap{margin-top:28px;font-size:12px}
  .hps .caps{grid-template-columns:minmax(0,1fr);gap:36px}
  .hps .cap-no{font-size:56px}

  .hps .fs h3{font-size:17px}
  .hps .fs.launch h3,.hps .fs.forever h3{font-size:19px}

  .hps .cs-title{font-size:20px}
  .hps .cs-issues li,.hps .cs-did li{font-size:14.5px}
  .hps .cs-voice{padding:14px 16px 16px}
  .hps .cs-voice-t{font-size:14.5px}

  .hps .faq-item summary{padding:20px 0;font-size:16px;column-gap:12px}
  .hps .faq-mk{font-size:23px;width:16px}
  .hps .faq-a{column-gap:12px;padding:0 0 24px}
  .hps .faq-a p{font-size:14.5px}

  .hps .final{padding:72px 0 64px}
  .hps .final-kicker{font-size:13px;padding:5px 14px}
  .hps .final h2{margin-top:20px}
  .hps .final-sub{font-size:15px}
  .hps .final-actions{margin-top:32px;gap:12px}
  .hps .diag{
    margin-top:40px;
    grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"mock mock" "text arr";
    column-gap:14px;padding:16px 18px 20px;
  }
  .hps .diag-mock{width:100%;margin-bottom:16px}
  .hps .diag-view{height:140px}
  .hps .diag-title{font-size:20px}
  .hps .diag-desc{font-size:13px}
  .hps .diag-arr{width:40px;height:40px;font-size:19px}
}
/* サイト共通ヘッダーは 520px 以下で高さ66px（JSが実測値で上書きする） */
@media (max-width:520px){
  .hps{--header-h:66px}
}

@media (prefers-reduced-motion:reduce){
  .hps *,.hps *::before,.hps *::after{transition:none !important;animation:none !important}
  .hps .diag:hover .diag-view img,
  .hps .diag:focus-visible .diag-view img{transform:none}
}

/* サイト共通の scroll-behavior:smooth は ScrollTrigger のピン・スナップと干渉するため、このページだけ無効化 */
html:has(#hps) {
  scroll-behavior: auto;
}

/* 幅360px以下の小さなスマホ：見出しの1文字残りと（税込）の折り返しを防ぐ */
@media (max-width:360px){
  .hps .hero h1{font-size:27px}
  .hps .price-fig .unit small{white-space:nowrap;font-size:10.5px}
}
