/* =========================================================================
   合同会社ステップアップ ―― 公式サイト（※内容は仮）
   設計方針: エディトリアル。抑制した配色 / ヘアライン / 明朝のインデックス /
   大胆な余白とタイポgrid。テンプレ然とした量産LP感を避ける。
   ========================================================================= */

:root{
  --ink:#10151d;          /* 本文・ほぼ黒に近いネイビー */
  --ink-2:#39424f;
  --paper:#f4f1ea;        /* 温かみのあるオフホワイト */
  --paper-2:#ece7dd;
  --line:#d9d3c7;         /* ヘアライン */
  --line-strong:#0f141c;
  --accent:#18A64E;       /* ロゴ中央の緑（ブランドの主色） */
  --accent-2:#1FB4D4;     /* ロゴ右の水色 */
  --accent-3:#F4B223;     /* ロゴ左の黄 */
  --accent-soft:#1FB4D4;  /* ダーク面の差し色は水色 */
  --white:#fff;
  --maxw:1240px;
  --gutter:clamp(20px,5vw,72px);
  --disp:"Zen Kaku Gothic New",sans-serif;   /* 見出し */
  --mincho:"Shippori Mincho",serif;          /* インデックス番号・差し色 */
  --sans:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--sans);color:var(--ink);background:var(--paper);
  line-height:1.9;font-weight:400;font-feature-settings:"palt" 1;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
::selection{background:var(--accent);color:#fff}

/* 数字は等幅に（実績・年号など） */
.tnum{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}

/* ------- 共有プリミティブ ------- */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}
.measure{max-width:62ch}

/* セクション見出し：明朝の番号 + ヘアライン + ラベル */
.kicker{display:flex;align-items:baseline;gap:16px;margin-bottom:34px}
.kicker__no{font-family:var(--mincho);font-weight:600;font-size:15px;letter-spacing:.04em;color:var(--accent)}
.kicker__line{flex:0 0 56px;height:1px;background:var(--line-strong);align-self:center}
.kicker__label{font-size:12px;letter-spacing:.28em;font-weight:700;text-transform:uppercase}
.kicker__ja{font-size:12px;letter-spacing:.18em;color:var(--ink-2)}

.h-display{font-family:var(--disp);font-weight:900;line-height:1.24;letter-spacing:.01em;
  font-size:clamp(22px,3.9vw,46px)}
.h-sub{font-family:var(--disp);font-weight:700;font-size:clamp(19px,2.2vw,25px);line-height:1.4}
.lead{font-size:clamp(15px,1.25vw,17px);color:var(--ink-2)}

.section{padding:clamp(72px,11vw,150px) 0;position:relative}
.section--dark{background:var(--ink);color:var(--paper)}
.section--dark .kicker__line{background:var(--paper)}
.section--dark .kicker__ja{color:rgba(244,241,234,.6)}
.section--paper2{background:var(--paper-2)}

/* ------- ヘッダー ------- */
.head{position:fixed;top:0;left:0;width:100%;z-index:90;
  transition:background .35s,color .35s,border-color .35s;border-bottom:1px solid transparent;mix-blend-mode:difference;color:#fff}
.head.is-solid{mix-blend-mode:normal;background:rgba(244,241,234,.86);backdrop-filter:saturate(1.2) blur(12px);color:var(--ink);border-color:var(--line)}
.head__in{max-width:var(--maxw);margin:auto;padding:18px var(--gutter);display:flex;align-items:center;justify-content:space-between}
.logo{display:flex;align-items:center;gap:11px;font-family:var(--disp);font-weight:900;letter-spacing:.02em}
.logo__mark{width:26px;height:26px}
.logo b{font-size:17px}
.logo span{font-size:11px;font-weight:500;letter-spacing:.16em;opacity:.7}
.nav{display:flex;align-items:center;gap:30px}
.nav a{font-size:13px;letter-spacing:.06em;font-weight:500;position:relative;padding:4px 0}
.nav a:not(.nav__cta)::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:currentColor;transition:width .3s}
.nav a:not(.nav__cta):hover::after{width:100%}
.nav__cta{border:1px solid currentColor;border-radius:0;padding:9px 18px;font-weight:700;letter-spacing:.08em;transition:background .25s,color .25s}
.head.is-solid .nav__cta:hover{background:var(--ink);color:var(--paper)}
.burger{display:none;width:30px;height:18px;position:relative;background:none;border:0;cursor:pointer}
.burger span{position:absolute;left:0;width:100%;height:2px;background:currentColor;transition:.3s}
.burger span:nth-child(1){top:0}.burger span:nth-child(2){top:8px}.burger span:nth-child(3){top:16px}
.burger[aria-expanded="true"] span:nth-child(1){top:8px;transform:rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){top:8px;transform:rotate(-45deg)}

/* ------- ヒーロー ------- */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden;background:var(--ink)}
#bg3d{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.hero__grad{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(16,21,29,.55) 0%,rgba(16,21,29,0) 30%,rgba(16,21,29,.15) 65%,rgba(16,21,29,.9) 100%)}
.hero__in{position:relative;z-index:2;width:100%;color:var(--paper);
  padding:0 var(--gutter) clamp(40px,7vw,86px);max-width:var(--maxw);margin:0 auto}
.hero__meta{display:flex;gap:18px;align-items:center;font-size:12px;letter-spacing:.2em;
  text-transform:uppercase;margin-bottom:24px;color:rgba(244,241,234,.85)}
.hero__meta i{width:34px;height:1px;background:var(--accent);display:inline-block}
.hero__title{font-family:var(--disp);font-weight:900;letter-spacing:.005em;
  font-size:clamp(34px,7.4vw,92px);line-height:1.07;text-wrap:balance}
.hero__title em{font-style:normal;color:var(--accent-soft)}
.hero__foot{margin-top:clamp(26px,4vw,42px);display:flex;justify-content:space-between;
  align-items:flex-end;gap:30px;flex-wrap:wrap;border-top:1px solid rgba(244,241,234,.22);padding-top:24px}
.hero__say{max-width:46ch;font-size:clamp(14px,1.1vw,16px);color:rgba(244,241,234,.82)}
.hero__cta{display:flex;gap:14px;flex-wrap:wrap}
.hero__scroll{position:absolute;top:50%;right:var(--gutter);z-index:2;color:var(--paper);
  writing-mode:vertical-rl;font-size:11px;letter-spacing:.3em;display:flex;align-items:center;gap:14px;opacity:.8}
.hero__scroll::after{content:"";width:1px;height:54px;background:currentColor;animation:drop 2s infinite}
@keyframes drop{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ------- ボタン（角を立てる：テンプレ的pill回避） ------- */
.btn{display:inline-flex;align-items:center;gap:12px;font-weight:700;font-size:14px;
  letter-spacing:.04em;padding:15px 26px;border:1px solid var(--ink);background:var(--ink);color:var(--paper);
  transition:background .25s,color .25s,transform .25s}
.btn svg{transition:transform .25s}
.btn:hover svg{transform:translateX(4px)}
.btn--fill{background:var(--accent);border-color:var(--accent);color:#fff}
.btn--fill:hover{background:#138a40;border-color:#138a40}
.btn--line{background:transparent;color:var(--paper);border-color:rgba(244,241,234,.6)}
.btn--line:hover{background:var(--paper);color:var(--ink)}
.btn--inkline{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn--inkline:hover{background:var(--ink);color:var(--paper)}

/* ------- マーキー（対象業種など） ------- */
.marquee{border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  overflow:hidden;background:var(--paper);padding:18px 0}
.marquee__track{display:flex;gap:54px;width:max-content;animation:slide 32s linear infinite}
.marquee:hover .marquee__track{animation-play-state:paused}
.marquee span{font-family:var(--disp);font-weight:700;font-size:clamp(16px,2vw,22px);
  color:var(--ink-2);white-space:nowrap;display:flex;align-items:center;gap:54px}
.marquee span::after{content:"";width:6px;height:6px;background:var(--accent);border-radius:50%}
@keyframes slide{to{transform:translateX(-50%)}}

/* ------- 課題（intro）：左見出し / 右本文の2カラム ------- */
.split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,5vw,72px);align-items:start}
.intro__list{margin-top:34px;border-top:1px solid var(--line)}
.intro__row{display:grid;grid-template-columns:1fr;gap:0;padding:22px 0;border-bottom:1px solid var(--line);align-items:baseline}
.intro__row h3{font-family:var(--disp);font-weight:700;font-size:18px;margin-bottom:4px;display:flex;align-items:center;gap:12px}
.intro__row h3::before{content:"";flex:none;width:20px;height:2px;background:var(--accent)}
.intro__row p{font-size:14.5px;color:var(--ink-2)}

/* ------- プロダクト（ステップを横の連なりで） ------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:46px;border-top:1px solid rgba(244,241,234,.2)}
.step{padding:34px 26px 34px 0;border-right:1px solid rgba(244,241,234,.2);position:relative}
.step:last-child{border-right:0}
.step__no{font-family:var(--mincho);font-size:13px;color:var(--accent-soft);letter-spacing:.1em}
.step__icon{margin:18px 0;color:var(--accent-soft)}
.step__icon svg{width:38px;height:38px}
.step h3{font-family:var(--disp);font-weight:700;font-size:18px;margin-bottom:8px}
.step p{font-size:14px;color:rgba(244,241,234,.72)}

/* ------- 特長：縦積みのエディトリアル・リスト ------- */
.feat{display:grid;grid-template-columns:64px minmax(0,1fr) minmax(0,1.1fr);
  gap:clamp(20px,3vw,48px);align-items:baseline;padding:clamp(30px,4vw,46px) 0;border-top:1px solid var(--line)}
.feat:last-child{border-bottom:1px solid var(--line)}
.feat__no{font-family:var(--mincho);font-size:16px;color:var(--accent)}
.feat h3{font-family:var(--disp);font-weight:700;font-size:clamp(19px,1.8vw,24px);line-height:1.45}
.feat p{font-size:15px;color:var(--ink-2)}
.feat__ico{color:var(--accent);margin-bottom:14px}
.feat__ico svg{width:30px;height:30px}

/* ------- 実績（仮の数字） ------- */
.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line);margin-top:6px}
.metric{background:var(--paper);padding:clamp(28px,4vw,44px) clamp(20px,3vw,34px)}
.metric__n{font-family:var(--disp);font-weight:900;font-size:clamp(40px,6vw,72px);line-height:1;letter-spacing:-.01em}
.metric__n .u{font-size:.4em;font-weight:700;margin-left:6px;color:var(--ink-2)}
.metric__l{margin-top:14px;font-size:13.5px;color:var(--ink-2);letter-spacing:.02em}

/* ------- 会社概要 ------- */
.facts{margin-top:8px;border-top:1px solid var(--line)}
.facts dl{display:grid;grid-template-columns:170px 1fr;gap:0;border-bottom:1px solid var(--line)}
.facts dt{padding:18px 0;font-size:13px;letter-spacing:.1em;color:var(--ink-2);font-weight:700}
.facts dd{padding:18px 0}
.facts a{color:var(--accent);border-bottom:1px solid currentColor}

/* ------- お問い合わせ ------- */
.cta__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(30px,5vw,72px);align-items:start}
.cta__big{font-family:var(--disp);font-weight:900;font-size:clamp(28px,4vw,52px);line-height:1.2}
.contacts{margin-top:30px;display:grid;gap:2px}
.contacts a{display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:18px 0;border-top:1px solid rgba(244,241,234,.22);font-size:15px}
.contacts a:last-child{border-bottom:1px solid rgba(244,241,234,.22)}
.contacts b{font-family:var(--disp);font-weight:700}
.contacts span{color:rgba(244,241,234,.6);font-size:13px}
.form{display:grid;gap:16px;background:var(--paper);color:var(--ink);padding:clamp(24px,3vw,34px)}
.form label{font-size:13px;font-weight:700;letter-spacing:.04em;display:block}
.form input,.form textarea{width:100%;margin-top:7px;padding:13px 14px;border:1px solid var(--line);
  background:#fff;font-size:16px;font-family:inherit;border-radius:0}
.form input:focus,.form textarea:focus{outline:0;border-color:var(--ink)}
.form__agree{font-size:12.5px;font-weight:400;display:flex;align-items:center;gap:9px}
.form__agree a{border-bottom:1px solid var(--accent);color:var(--accent)}
.form__hp{position:absolute;left:-9999px}

/* ------- フッター ------- */
.foot{background:var(--ink);color:rgba(244,241,234,.7);padding:64px var(--gutter) 40px}
.foot__top{max-width:var(--maxw);margin:0 auto;display:flex;justify-content:space-between;
  gap:30px;flex-wrap:wrap;padding-bottom:34px;border-bottom:1px solid rgba(244,241,234,.16)}
.foot__brand{font-family:var(--disp);font-weight:900;font-size:21px;color:var(--paper);letter-spacing:.04em}
.foot__brand span{display:block;font-size:11px;font-weight:500;letter-spacing:.16em;opacity:.6;margin-top:6px}
.foot__nav{display:flex;gap:26px;flex-wrap:wrap;font-size:13px}
.foot__nav a:hover{color:var(--paper)}
.foot__low{max-width:var(--maxw);margin:0 auto;display:flex;justify-content:space-between;
  gap:14px;flex-wrap:wrap;font-size:11.5px;letter-spacing:.04em;padding-top:24px;color:rgba(244,241,234,.45)}
.foot__low a{border-bottom:1px solid rgba(244,241,234,.3)}

/* ------- reveal（控えめ・スタッガ可） ------- */
[data-reveal]{opacity:0;transform:translateY(22px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
[data-reveal].is-in{opacity:1;transform:none}

/* ------- レスポンシブ ------- */
@media(max-width:980px){
  .split,.cta__grid{grid-template-columns:1fr}
  .steps{grid-template-columns:repeat(2,1fr)}
  .step{border-bottom:1px solid rgba(244,241,234,.2)}
  .step:nth-child(2n){border-right:0}
  .metrics{grid-template-columns:1fr}
  .feat{grid-template-columns:40px 1fr}
  .feat__mid{grid-column:1/-1}
  .hero__scroll{display:none}
}
@media(max-width:820px){
  .nav{position:fixed;inset:0 0 0 auto;width:36%;min-width:150px;max-width:220px;background:var(--ink);color:var(--paper);
    flex-direction:column;align-items:flex-end;justify-content:center;gap:22px;padding:44px 18px;text-align:right;
    transform:translateX(100%);transition:transform .4s cubic-bezier(.2,.7,.2,1)}
  .nav a{font-size:12px;letter-spacing:.02em}
  .nav__cta{padding:8px 14px}
  .nav.is-open{transform:none}
  .nav__cta{border-color:var(--paper)}
  .burger{display:block;z-index:95}
  .head{mix-blend-mode:normal;color:#fff}
  /* スマホ：すりガラス(backdrop-filter)があると固定メニューがヘッダー内に閉じ込められ崩れる→無効化 */
  .head.is-solid{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(244,241,234,.96)}
  .facts dl{grid-template-columns:1fr}.facts dt{padding-bottom:0}.facts dd{padding-top:6px}
  .step{padding-right:0}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  [data-reveal]{opacity:1;transform:none}
  .marquee__track{animation:none}
}

/* =======================================================================
   ENHANCE 2026-06 ―― 質感 / 微モーション / 格安HPセクション
   既存のエディトリアル設計を活かしたまま、奥行きと“高さ”を足す追補。
   ======================================================================= */
:root{
  --accent-grad:linear-gradient(96deg,#F4B223,#18A64E 52%,#1FB4D4);  /* ロゴの黄→緑→水色 */
  --shadow-warm:0 26px 60px -30px rgba(10,30,26,.5),0 6px 18px -12px rgba(10,30,26,.3);
}

/* ヘッダー：カラーロゴを正しい色で出すため difference 合成を解除（地色で色替えは is-solid が担当） */
.head{mix-blend-mode:normal!important}
.logo__mark{width:auto;height:27px}

/* フィルム・グレイン（全面・極薄）＝量産LP感の払拭 */
body::after{content:"";position:fixed;inset:0;z-index:120;pointer-events:none;opacity:.045;
  mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* 進捗バーをグラデに */
.progress{background:var(--accent-grad)!important;height:3px!important}

/* ダークセクションに暖色のアンビエント光 */
.section--dark{position:relative;isolation:isolate}
.section--dark::before{content:"";position:absolute;z-index:-1;width:54vw;height:54vw;max-width:760px;max-height:760px;
  right:-12vw;top:-14%;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle at 50% 50%,rgba(31,180,212,.18),transparent 62%)}

/* ヒーロー：差し色を金属的グラデ＋ゆるシャイン、コピーは着地アニメ */
.hero__title em{background:var(--accent-grad);-webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;background-size:220% 100%;animation:sheen 7s ease-in-out infinite}
@keyframes sheen{0%,100%{background-position:0 0}50%{background-position:100% 0}}
.hero__in>*{opacity:0;transform:translateY(28px);animation:heroUp .95s cubic-bezier(.2,.7,.2,1) both}
.hero__meta{animation-delay:.15s}.hero__title{animation-delay:.3s}.hero__foot{animation-delay:.5s}
@keyframes heroUp{to{opacity:1;transform:none}}

/* ボタン：浮き＋通り抜けるシャイン＋押下フィードバック */
.btn{position:relative;overflow:hidden;will-change:transform}
.btn>*{position:relative;z-index:1}
.btn::before{content:"";position:absolute;inset:0;left:-130%;z-index:0;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.34),transparent);transform:skewX(-18deg)}
.btn:hover{transform:translateY(-2px)}
.btn:hover::before{animation:shine .75s ease}
.btn:active{transform:translateY(0) scale(.985)}
@keyframes shine{to{left:140%}}
.btn--fill:hover{box-shadow:0 16px 30px -16px rgba(24,166,78,.6)}

/* マーキー：両端をフェード */
.marquee{-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}

/* プロダクトの各ステップ：ホバーで持ち上げ＋アイコン反応 */
.step{transition:background .3s ease,transform .3s cubic-bezier(.2,.7,.2,1)}
.step:hover{background:rgba(24,166,78,.09)}
.step__icon{transition:transform .4s cubic-bezier(.2,.7,.2,1),color .3s}
.step:hover .step__icon{transform:translateY(-5px) scale(1.08);color:var(--accent)}

/* 特長の行：ホバーでうっすら／番号を強調 */
.feat{transition:background .3s ease}
.feat:hover{background:rgba(24,166,78,.05)}
.feat:hover .feat__no{color:var(--accent)}

/* 実績カード：ホバー反応 */
.metric{transition:background .3s ease,transform .3s ease}
.metric:hover{background:var(--paper-2);transform:translateY(-3px)}

/* 会社概要：行ホバー */
.facts dl{transition:background .25s}
.facts dl:hover{background:rgba(24,166,78,.05)}

/* フォーカスリング（キーボード操作） */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{
  outline:2px solid var(--accent);outline-offset:3px}

/* =================== 04 格安ホームページ制作 =================== */
.section--web{position:relative;overflow:hidden;isolation:isolate;
  background:radial-gradient(120% 90% at 88% 0%,rgba(31,180,212,.12),transparent 55%),
    linear-gradient(180deg,var(--paper),var(--paper-2))}
.web__glow{position:absolute;z-index:-1;left:-10vw;bottom:-22%;width:46vw;height:46vw;max-width:620px;max-height:620px;
  border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgba(244,178,35,.16),transparent 62%)}
.web__grid{display:grid;grid-template-columns:minmax(0,5.6fr) minmax(0,6.4fr);gap:clamp(30px,5vw,72px);align-items:center}
.web__price{margin-top:26px;display:flex;align-items:baseline;gap:18px;flex-wrap:wrap;
  padding:18px 22px;background:var(--ink);color:var(--paper);box-shadow:var(--shadow-warm)}
.web__price-n{font-family:var(--disp);font-weight:900;font-size:clamp(30px,4.4vw,46px);line-height:1;
  background:var(--accent-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.web__price-n .u{font-size:.36em;margin-left:8px;font-weight:700;-webkit-text-fill-color:rgba(244,241,234,.8);color:rgba(244,241,234,.8)}
.web__price-note{font-size:13px;color:rgba(244,241,234,.78)}
.web__price-note b{color:var(--accent-soft)}
.web__feats{list-style:none;margin-top:26px;display:grid;grid-template-columns:1fr 1fr;gap:16px 22px}
.web__feats li{display:grid;grid-template-columns:24px 1fr;gap:12px;align-items:start}
.web__feats svg{width:24px;height:24px;color:var(--accent);margin-top:1px}
.web__feats b{display:block;font-family:var(--disp);font-weight:700;font-size:15px;line-height:1.5}
.web__feats span{font-size:12.5px;color:var(--ink-2)}

/* ブラウザ風モックアップ（“完成イメージ”を具体で見せる） */
.web__visual{perspective:1200px}
.browser{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;
  box-shadow:var(--shadow-warm);transform-style:preserve-3d;transition:transform .3s ease;will-change:transform}
.browser__bar{display:flex;align-items:center;gap:7px;padding:11px 14px;background:var(--paper-2);border-bottom:1px solid var(--line)}
.browser__bar span{width:10px;height:10px;border-radius:50%;background:#cfc7b8}
.browser__bar span:first-child{background:#e0593f}.browser__bar span:nth-child(2){background:#e6a23c}.browser__bar span:nth-child(3){background:#6fae6b}
.browser__bar i{margin-left:12px;font-style:normal;font-size:11px;color:var(--ink-2);background:#fff;border:1px solid var(--line);
  border-radius:20px;padding:3px 12px;flex:1;max-width:240px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.bw-nav{display:flex;align-items:center;gap:14px;padding:14px 18px;border-bottom:1px solid var(--line)}
.bw-nav b{font-family:var(--disp);font-weight:900;font-size:14px;color:var(--ink)}
.bw-nav u{width:34px;height:6px;border-radius:3px;background:var(--line)}
.bw-nav em{margin-left:auto;font-style:normal;font-size:10.5px;font-weight:700;color:#fff;background:var(--accent);padding:5px 11px;border-radius:3px}
.bw-hero{position:relative;padding:42px 26px 48px;color:#fff;overflow:hidden;
  background:linear-gradient(135deg,rgba(16,21,29,.86),rgba(16,21,29,.5)),url("https://images.unsplash.com/photo-1541888946425-d81bb19240f5?auto=format&fit=crop&w=760&h=440&q=70") center/cover}
.bw-ey{font-size:11px;letter-spacing:.18em;color:var(--accent-soft);margin-bottom:10px}
.bw-hero h4{font-family:var(--disp);font-weight:900;font-size:clamp(18px,2.4vw,26px);line-height:1.3}
.bw-btn{display:inline-block;margin-top:16px;font-size:11px;font-weight:700;color:#fff;border:1px solid rgba(255,255,255,.6);padding:7px 14px;border-radius:3px}
.bw-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:16px 18px 20px}
.bw-cards span{height:54px;border-radius:5px;background:var(--paper-2);border:1px solid var(--line)}
.web__cap{margin-top:14px;font-size:11.5px;color:var(--ink-2);text-align:right}

@media(max-width:980px){
  .web__grid{grid-template-columns:1fr}
  .web__feats{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){.web__feats{grid-template-columns:1fr}}

/* reduced-motion：着地アニメで消えたままを防ぐ＋演出停止 */
@media(prefers-reduced-motion:reduce){
  .hero__in>*{opacity:1!important;transform:none!important;animation:none!important}
  .hero__title em{animation:none!important}
}

/* =======================================================================
   MULTI-PAGE 2026-06 ―― 複数ページ構成のコンポーネント
   ======================================================================= */

/* ナビ現在地 */
.nav a.is-active{color:var(--accent)}
.nav a.is-active:not(.nav__cta)::after{width:100%;background:var(--accent)}

/* サブページ用ヒーロー */
.phero{position:relative;background:var(--ink);color:var(--paper);overflow:hidden;isolation:isolate;
  padding:clamp(118px,16vw,178px) 0 clamp(54px,7vw,88px)}
.phero::before{content:"";position:absolute;z-index:-1;width:60vw;height:60vw;max-width:780px;max-height:780px;
  right:-14vw;top:-22%;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,rgba(31,180,212,.16),transparent 62%)}
.phero__grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(28px,5vw,64px);align-items:center}
.crumb{display:flex;gap:10px;align-items:center;font-size:12px;letter-spacing:.08em;color:rgba(244,241,234,.6);margin-bottom:22px}
.crumb a:hover{color:var(--paper)}
.crumb i{width:14px;height:1px;background:currentColor;display:inline-block}
.phero__eyebrow{display:flex;gap:14px;align-items:center;font-size:12px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--accent-soft);margin-bottom:18px}
.phero__eyebrow i{width:30px;height:1px;background:var(--accent);display:inline-block}
.phero h1{font-family:var(--disp);font-weight:900;line-height:1.12;font-size:clamp(24px,4.2vw,44px);text-wrap:balance}
.phero h1 em{font-style:normal;background:var(--accent-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.phero__say{margin-top:20px;max-width:48ch;font-size:clamp(14px,1.1vw,16px);color:rgba(244,241,234,.82)}
.phero__cta{margin-top:30px;display:flex;gap:14px;flex-wrap:wrap}
.phero__in>*{opacity:0;transform:translateY(24px);animation:heroUp .9s cubic-bezier(.2,.7,.2,1) both}
.phero__in>*:nth-child(1){animation-delay:.08s}.phero__in>*:nth-child(2){animation-delay:.18s}
.phero__in>*:nth-child(3){animation-delay:.3s}.phero__in>*:nth-child(4){animation-delay:.42s}.phero__in>*:nth-child(5){animation-delay:.54s}

/* ホーム：3事業の大カード（ジグザグ） */
.svc-cards{display:grid;gap:clamp(20px,3vw,30px);margin-top:46px}
.svc-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(24px,4vw,54px);align-items:center;
  padding:clamp(24px,3.4vw,44px);background:var(--white);border:1px solid var(--line);border-radius:14px;
  box-shadow:var(--shadow-warm);transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.svc-card:nth-child(even){direction:rtl}.svc-card:nth-child(even)>*{direction:ltr}
.svc-card:hover{transform:translateY(-5px)}
.svc-card__no{font-family:var(--mincho);color:var(--accent);font-size:15px;letter-spacing:.06em}
.svc-card h3{font-family:var(--disp);font-weight:900;font-size:clamp(21px,2.5vw,30px);line-height:1.3;margin:8px 0 12px}
.svc-card>div p{font-size:14.5px;color:var(--ink-2);max-width:46ch}
.svc-card .price-tag{margin-top:16px;font-family:var(--disp);font-weight:900;font-size:20px;color:var(--ink)}
.svc-card .price-tag .u{font-size:.6em;color:var(--ink-2);font-weight:700;margin-left:4px}
.svc-card .go{margin-top:18px;display:inline-flex;align-items:center;gap:9px;font-weight:700;font-size:14px;color:var(--accent)}
.svc-card .go svg{transition:transform .25s}.svc-card:hover .go svg{transform:translateX(5px)}
.svc-card__vis{aspect-ratio:4/3;border-radius:10px;overflow:hidden;position:relative;background:var(--paper-2);border:1px solid var(--line)}
.svc-card__vis img{width:100%;height:100%;object-fit:cover}
.svc-card__badge{position:absolute;left:14px;top:14px;background:var(--accent);color:#fff;font-size:11px;font-weight:700;letter-spacing:.06em;padding:5px 12px;border-radius:3px}

/* 縦タイムライン（流れ）＝線がスクロールで伸びる */
.flow{position:relative;margin-top:40px;padding-left:34px}
.flow::before{content:"";position:absolute;left:11px;top:6px;bottom:6px;width:2px;background:var(--line)}
.flow__bar{position:absolute;left:11px;top:6px;width:2px;background:var(--accent);height:0;transition:height 1.2s ease}
.flow.is-in .flow__bar{height:calc(100% - 12px)}
.flow__step{position:relative;padding:0 0 30px}.flow__step:last-child{padding-bottom:0}
.flow__step::before{content:"";position:absolute;left:-29px;top:3px;width:14px;height:14px;border-radius:50%;
  background:var(--paper);border:2px solid var(--accent)}
.flow__step .n{font-family:var(--mincho);color:var(--accent);font-size:12px;letter-spacing:.1em}
.flow__step h4{font-family:var(--disp);font-weight:700;font-size:17px;margin-top:2px}
.flow__step p{font-size:14px;color:var(--ink-2);margin-top:4px;max-width:54ch}

/* 安全：コース一覧（チェックが点く） */
.courses{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1px;background:var(--line);
  border:1px solid var(--line);margin-top:40px}
.course{background:var(--paper);padding:20px 22px;display:flex;gap:14px;align-items:flex-start;transition:background .3s}
.course:hover{background:var(--white)}
.course .ck{flex:none;width:22px;height:22px;border-radius:50%;border:2px solid var(--accent);position:relative;margin-top:1px}
.course.is-in .ck::after{content:"";position:absolute;left:6px;top:2px;width:5px;height:10px;border:solid var(--accent);
  border-width:0 2px 2px 0;transform:rotate(45deg);animation:ckpop .45s ease both}
@keyframes ckpop{from{opacity:0;transform:rotate(45deg) scale(.3)}to{opacity:1;transform:rotate(45deg) scale(1)}}
.course b{font-family:var(--disp);font-weight:700;font-size:14.5px;line-height:1.5}

/* OCR：撮る→読む→帳票 の3ノード */
.pipe{display:grid;grid-template-columns:repeat(3,1fr);margin-top:44px;border-top:1px solid var(--line)}
.pipe__node{padding:30px 24px 30px 0;border-right:1px solid var(--line);position:relative}
.pipe__node:last-child{border-right:0}
.pipe__ic{width:44px;height:44px;color:var(--accent);margin-bottom:14px}
.pipe__node h4{font-family:var(--disp);font-weight:700;font-size:18px}
.pipe__node p{font-size:13.5px;color:var(--ink-2);margin-top:6px}
.pipe__node .arrow{position:absolute;right:-11px;top:40px;color:var(--accent-soft);font-size:20px;background:var(--paper);padding:2px;font-weight:700}

/* 料金カード（サブページ） */
.plan{margin-top:30px;display:flex;flex-wrap:wrap;align-items:baseline;gap:18px;
  padding:26px 30px;background:var(--ink);color:var(--paper);border-radius:10px;box-shadow:var(--shadow-warm)}
.plan__n{font-family:var(--disp);font-weight:900;font-size:clamp(34px,5vw,54px);line-height:1;
  background:var(--accent-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.plan__n .u{font-size:.34em;-webkit-text-fill-color:rgba(244,241,234,.8);color:rgba(244,241,234,.8);font-weight:700;margin-left:8px}
.plan__note{font-size:13.5px;color:rgba(244,241,234,.8)}.plan__note b{color:var(--accent-soft)}

/* 特長ミニ（2カラム箇条） */
.points{display:grid;grid-template-columns:1fr 1fr;gap:18px 30px;margin-top:34px}
.point{display:grid;grid-template-columns:26px 1fr;gap:14px;align-items:start}
.point svg{width:26px;height:26px;color:var(--accent);margin-top:2px}
.point b{display:block;font-family:var(--disp);font-weight:700;font-size:15.5px;line-height:1.5}
.point span{font-size:13.5px;color:var(--ink-2)}

/* 会社：アクセス地図 */
.access{margin-top:10px;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.access iframe{width:100%;height:320px;border:0;display:block;filter:grayscale(.15)}

/* 末尾の共通CTA帯 */
.cta-band{position:relative;background:var(--ink);color:var(--paper);text-align:center;padding:clamp(56px,8vw,98px) 0;isolation:isolate}
.cta-band::before{content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;
  background:radial-gradient(60% 120% at 50% 0%,rgba(24,166,78,.16),transparent 60%)}
.cta-band h2{font-family:var(--disp);font-weight:900;font-size:clamp(21px,3.6vw,44px);line-height:1.28}
.cta-band p{margin-top:14px;color:rgba(244,241,234,.78);font-size:15px}
.cta-band .hero__cta{justify-content:center;margin-top:30px}

@media(max-width:900px){
  .phero__grid{grid-template-columns:1fr}
  .svc-card{grid-template-columns:1fr}
  .svc-card:nth-child(even){direction:ltr}
  .svc-card__vis{order:-1}
  .pipe{grid-template-columns:1fr;border-top:0}
  .pipe__node{border-right:0;border-bottom:1px solid var(--line);padding-right:0}
  .pipe__node .arrow{display:none}
  .points{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  .phero__in>*{opacity:1!important;transform:none!important;animation:none!important}
  .flow__bar{transition:none;height:calc(100% - 12px)!important}
}

/* =======================================================================
   日本語の改行を整える（語の途中・句読点頭などの不自然な折返しを抑制）
   ======================================================================= */
body{line-break:strict}                                   /* 禁則：、。ー っ ） を行頭に置かない */
.h-display,.hero__title,.phero h1,.cta-band h2,.cta__big,
.svc-card h3,.pcard h3,.pcard .sub,.flow__step h4,.point b{text-wrap:balance}
/* 日本語見出しを「文節」で折る（修了/証 のような語中での改行を防ぐ。非対応ブラウザは従来動作） */
.h-display,.hero__title,.phero h1,.cta-band h2,.cta__big,.svc-card h3,.pcard h3,
.intro__row h3,.feat h3,.step h3,.flow__step h4,.point b,.way b,.facts dd{word-break:auto-phrase}
/* 2カラム（split）の左見出しは列が細いので少し抑えて2行に収める */
.split .h-display{font-size:clamp(21px,2.7vw,34px)}
/* ヒーロー見出しは balance を外し、文ごと（<br>）に素直に1行で流す */
.phero h1{text-wrap:pretty}
.lead,.hero__say,.phero__say,.svc-card>div p,.feat__mid,.point span,
.faq__a,.step p,.intro__row p,.pipe__node p{text-wrap:pretty}

/* カード全体をクリック可能に（小さいリンクだけでなく面全体で遷移） */
.svc-card,.pcard{position:relative}
.card-link{position:absolute;inset:0;z-index:4;border:0;font-size:0;text-indent:-9999px;overflow:hidden}
.svc-card .go,.pcard .btn{position:relative;z-index:5}   /* 見えるCTAは最前面で押下感も維持 */
