:root{
  --navy-900:#0E2238;
  --navy-800:#163A5C;
  --teal:#16A0BA;
  --teal-dark:#0E7C90;
  --teal-light:#E6F5F8;
  --text-dark:#152436;
  --text-body:#5C6B7C;
  --text-muted:#8B98A6;
  --bg-soft:#F5F8FA;
  --border:#E4EAEF;
  --red:#E2483D;
  --white:#FFFFFF;
  --radius-lg:20px;
  --radius-md:14px;
  --radius-sm:10px;
  --shadow-md:0 12px 32px rgba(14,34,56,0.08);
  --shadow-lg:0 24px 56px rgba(14,34,56,0.12);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;overflow-x:hidden;}
body{margin:0;font-family:"Inter","Noto Sans JP",sans-serif;color:var(--text-dark);background:var(--white);-webkit-font-smoothing:antialiased;line-height:1.7;overflow-x:hidden;word-break:keep-all;overflow-wrap:break-word;}
h1,h2,h3,h4,.section-title,.tagline,.cycle-intro,.warn-line,.section-lead,.commit-note{text-wrap:balance;}
img{max-width:100%;display:block;}
a{text-decoration:none;color:inherit;}
ul{margin:0;padding:0;list-style:none;}
button{font-family:inherit;}
.container{max-width:1280px;margin:0 auto;padding:0 20px;}
.eyebrow{font-weight:700;font-size:13px;letter-spacing:.22em;color:var(--teal-dark);text-align:center;margin:0 0 12px;text-transform:uppercase;}
.section-title{font-size:clamp(24px,3.2vw,34px);font-weight:800;text-align:center;margin:0 0 16px;color:var(--text-dark);letter-spacing:.01em;}
.section-lead{text-align:center;color:var(--text-body);font-size:15.5px;max-width:680px;margin:0 auto 48px;}
section{padding:96px 0;}
@media(max-width:760px){section{padding:64px 0;}}
.bg-soft{background:var(--bg-soft);}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:16px 30px;border-radius:999px;font-weight:700;font-size:15.5px;border:1.6px solid transparent;cursor:pointer;transition:all .2s ease;white-space:nowrap;}
.btn svg{width:18px;height:18px;flex-shrink:0;}
.btn-primary{background:var(--teal);color:#fff;box-shadow:0 10px 24px rgba(22,160,186,0.30);border-color:var(--teal);}
.btn-primary:hover{background:var(--teal-dark);border-color:var(--teal-dark);transform:translateY(-2px);box-shadow:0 14px 30px rgba(22,160,186,0.38);}
.btn-outline{background:#fff;border-color:var(--navy-800);color:var(--navy-800);}
.btn-outline:hover{background:var(--navy-800);color:#fff;}
.cta-row{display:flex;gap:12px;flex-wrap:wrap;}
.icon{width:26px;height:26px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}

/* HEADER */
.site-header{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--border);}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:76px;}
.logo{display:flex;align-items:center;gap:10px;font-weight:800;font-size:18.5px;color:var(--navy-900);}
.logo-mark{width:28px;height:28px;flex-shrink:0;}
.menu-toggle{width:42px;height:42px;border-radius:9px;border:none;background:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer;}
.menu-toggle svg{width:22px;height:22px;}
.mobile-panel{display:none;flex-direction:column;gap:4px;padding:10px 24px 26px;border-top:1px solid var(--border);background:#fff;align-items:center;text-align:center;}
.mobile-panel a{font-size:15px;font-weight:600;color:var(--text-dark);padding:10px 0;}
.mobile-panel .panel-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:10px;}
.mobile-panel .panel-cta .btn{flex:1 1 160px;}
body.menu-open .mobile-panel{display:flex;}

/* HEADER — PC (≥761px): ハンバーガーを隠してナビをインライン表示 */
@media(min-width:761px){
  .menu-toggle{display:none;}
  .site-header{display:flex;align-items:stretch;}
  .header-inner{flex-shrink:0;margin:0;max-width:none;padding-right:0;width:auto;padding-left:max(24px,calc((100vw - 1140px)/2 + 24px));}
  .mobile-panel{
    display:flex !important;
    flex:1;
    flex-direction:row;
    align-items:center;
    justify-content:flex-end;
    gap:0;
    padding:0 max(24px,calc((100vw - 1140px)/2 + 24px)) 0 16px;
    border-top:none;
    background:transparent;
    height:76px;
  }
  .mobile-panel a{font-size:13.5px;font-weight:600;color:var(--text-body);padding:6px 12px;border-radius:8px;transition:color .15s,background .15s;white-space:nowrap;}
  .mobile-panel a:hover{color:var(--teal);background:var(--teal-light);}
  .mobile-panel .panel-cta{display:flex;gap:10px;margin-top:0;margin-left:20px;flex-wrap:nowrap;}
  .mobile-panel .panel-cta .btn{flex:unset;font-size:13px;padding:9px 18px;white-space:nowrap;}
}

/* HERO – 写真全幅背景 */
.hero{position:relative;overflow:hidden;background:#f0f8fb;}
.hero-bg{position:absolute;inset:0;z-index:0;}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:60% 10%;display:block;}

/* ── モバイル（~479px）：1カラム 上からテキスト→写真 ── */
/* 上→下グラデーション：テキスト上部を白で覆い、下に行くほど写真が見える */
.hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(255,255,255,1) 0%,rgba(255,255,255,0.98) 45%,rgba(255,255,255,0.7) 62%,rgba(255,255,255,0) 80%);}
.hero-row{position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-start;width:100%;min-height:220px;padding:0;}
.hero-text{width:100%;max-width:100%;padding:22px 20px 90px;display:flex;flex-direction:column;justify-content:flex-start;}
.hero-badge{display:inline-block;background:rgba(255,255,255,0.9);border:1px solid rgba(22,160,186,0.35);border-radius:999px;padding:5px 12px;font-size:10px;font-weight:600;color:var(--navy-800);margin-bottom:12px;}
.hero h1{font-size:clamp(22px,7vw,42px);font-weight:900;line-height:1.3;letter-spacing:.005em;margin:0 0 10px;color:var(--text-dark);white-space:nowrap;}
.hero p.lead{font-size:13px;color:var(--text-body);margin:0 0 16px;line-height:1.7;}
/* pillsはモバイルでは非表示 */
.hero-pills{display:none;}
.hero-pill{background:rgba(255,255,255,0.93);border-radius:8px;box-shadow:0 2px 10px rgba(14,34,56,0.12);padding:5px 6px;display:flex;align-items:center;gap:4px;flex-shrink:0;backdrop-filter:blur(4px);}
.pill-connector{display:block;height:6px;width:2px;margin-left:10px;border-left:2px dotted var(--teal);}
.pill-ico{width:18px;height:18px;border-radius:50%;background:var(--teal-light);color:var(--teal-dark);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.pill-ico svg{width:9px;height:9px;}
.hero-pill span{font-size:8.5px;font-weight:700;color:var(--text-dark);line-height:1.3;}
.hero .btn{font-size:12px;padding:10px 16px;}

/* ── 480px以上：2カラム 左テキスト / 右写真+pills ── */
@media(min-width:480px){
  /* グラデーションを左→右に切り替え */
  .hero-bg::after{background:linear-gradient(to right,rgba(255,255,255,0.98) 0%,rgba(255,255,255,0.95) 30%,rgba(255,255,255,0.7) 42%,rgba(255,255,255,0.1) 52%,rgba(255,255,255,0) 60%);}
  .hero-row{flex-direction:row;align-items:center;justify-content:space-between;min-height:200px;}
  .hero-text{width:auto;max-width:70%;padding:24px 12px 24px 20px;}
  .hero-badge{font-size:10px;padding:5px 10px;margin-bottom:10px;}
  .hero h1{font-size:clamp(16px,4vw,42px);margin:0 0 8px;}
  .hero p.lead{font-size:11px;margin:0 0 12px;}
  /* pillsを再表示 */
  .hero-pills{display:flex;flex-shrink:0;position:relative;width:92px;margin-right:14px;z-index:2;flex-direction:column;gap:0;background:none;align-self:flex-end;padding-bottom:6%;}
  .hero-pill{padding:5px 7px;gap:5px;}
  .hero-pill span{font-size:9.5px;}
  .pill-ico{width:20px;height:20px;}
  .pill-ico svg{width:10px;height:10px;}
  .pill-connector{height:7px;margin-left:12px;}
  .hero .btn{font-size:12px;padding:10px 14px;}
}
@media(min-width:640px){
  .hero-row{min-height:240px;}
  .hero-text{padding:36px 16px 36px 28px;max-width:70%;}
  .hero-badge{font-size:11px;padding:6px 12px;margin-bottom:12px;}
  .hero h1{font-size:clamp(18px,4vw,42px);margin:0 0 10px;}
  .hero p.lead{font-size:13px;margin:0 0 16px;}
  .hero-pills{width:115px;margin-right:20px;}
  .hero-pill{padding:7px 10px;gap:6px;}
  .hero-pill span{font-size:11px;}
  .pill-ico{width:24px;height:24px;}
  .pill-ico svg{width:12px;height:12px;}
  .pill-connector{height:9px;margin-left:15px;}
  .hero .btn{font-size:13px;padding:12px 18px;}
}
@media(min-width:1024px){
  .hero-row{min-height:280px;}
  .hero-text{padding:40px 40px 40px max(28px, calc((100vw - 1140px) / 2 + 28px));max-width:46%;}
  .hero-badge{font-size:13px;padding:8px 18px;margin-bottom:18px;}
  .hero h1{font-size:clamp(24px,3.5vw,42px);margin:0 0 16px;}
  .hero p.lead{font-size:15px;margin:0 0 28px;line-height:1.8;}
  .hero-pills{width:210px;margin-right:max(24px, calc((100vw - 1140px) / 2 + 24px));padding-bottom:8%;}
  .hero-pill{padding:12px 16px;gap:10px;}
  .hero-pill span{font-size:13px;}
  .pill-ico{width:30px;height:30px;}
  .pill-ico svg{width:15px;height:15px;}
  .pill-connector{height:14px;margin-left:22px;}
  .hero .btn{font-size:15.5px;padding:16px 30px;}
}

/* ── PENGUIN MASCOT ── */
.mascot-img{pointer-events:none;display:block;user-select:none;}

/* Hero mascot – right side of hero */
.hero-mascot{display:none;align-items:flex-end;justify-content:center;flex-shrink:0;}
.hero-mascot .mascot-img{width:clamp(200px,28vw,380px);}
@media(min-width:640px){.hero-mascot{display:flex;}}
@media(min-width:1024px){.hero-mascot .mascot-img{width:clamp(280px,28vw,400px);margin-right:max(0px,calc((100vw - 1140px)/2));}}

/* Section mascot – centered above section header */
.section-mascot-head{display:flex;justify-content:center;margin-bottom:-8px;}
.section-mascot-head .mascot-img{width:clamp(160px,22vw,260px);}

/* Mascot centered in section body */
.mascot-center{display:flex;justify-content:center;margin:16px 0 4px;}
.mascot-center .mascot-img{width:clamp(140px,18vw,220px);}

/* SOLUTION */
.solution-title{font-size:clamp(22px,3.2vw,38px);font-weight:900;text-align:center;color:#fff;line-height:1.3;margin:0 0 16px;letter-spacing:.01em;}
.sol-accent{color:#FFD166;}
.solution-sub{text-align:center;color:rgba(255,255,255,0.75);font-size:15px;max-width:600px;margin:0 auto 44px;line-height:1.8;}
.step-item{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;width:130px;gap:0;}
.step-desc{font-size:11px;color:rgba(255,255,255,0.65);line-height:1.5;margin-top:6px;max-width:120px;}
.ai-group .step-desc{color:var(--text-body);}

/* タグライン */
.solution-tagline-row{display:flex;align-items:center;gap:16px;margin:36px 0 32px;}
.solution-tagline-line{flex:1;height:1px;background:rgba(255,255,255,0.2);}
.solution-tagline{font-size:clamp(14px,1.8vw,18px);font-weight:700;color:#fff;text-align:center;white-space:nowrap;margin:0;}
.sol-quote{color:#FFD166;}

/* 導入効果 */
.solution-effects{display:flex;align-items:center;gap:0;background:rgba(255,255,255,0.07);border:1px solid rgba(255,255,255,0.15);border-radius:14px;padding:20px 24px;margin-bottom:24px;flex-wrap:wrap;}
.sol-effects-label{font-size:13px;font-weight:800;color:#FFD166;line-height:1.5;padding-right:24px;border-right:1px solid rgba(255,255,255,0.2);margin-right:24px;white-space:nowrap;flex-shrink:0;}
.sol-effect-item{display:flex;align-items:flex-start;gap:10px;flex:1;min-width:160px;padding:8px 12px;}
.sol-effect-item svg{width:22px;height:22px;flex-shrink:0;color:#16A0BA;margin-top:2px;}
.sol-effect-item span{font-size:12.5px;font-weight:600;color:#fff;line-height:1.6;}

/* ボトムバッジ */
.solution-badge{display:flex;align-items:center;justify-content:center;gap:10px;background:rgba(255,255,255,0.95);border-radius:50px;padding:14px 28px;font-size:15px;font-weight:700;color:var(--navy-800);max-width:600px;margin:0 auto;}
.solution-badge svg{width:22px;height:22px;flex-shrink:0;}
.sol-badge-accent{color:var(--teal);}
@media(max-width:760px){
  .solution-effects{flex-direction:column;gap:4px;align-items:center;}
  .sol-effects-label{border-right:none;border-bottom:1px solid rgba(255,255,255,0.2);padding-right:0;padding-bottom:12px;margin-right:0;margin-bottom:12px;text-align:center;}
  .sol-effect-item{justify-content:center;text-align:center;min-width:unset;width:100%;max-width:320px;}
  .solution-tagline{white-space:normal;}
  .solution-badge{font-size:13px;padding:14px 18px;border-radius:14px;flex-wrap:wrap;text-align:center;}
}

/* グループゾーン */
.step-group{display:flex;flex-direction:column;align-items:center;}
.step-group-label{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;letter-spacing:.06em;padding:6px 16px;margin-bottom:16px;border-radius:6px;}
.step-group-label svg{width:14px;height:14px;flex-shrink:0;}
/* AIゾーン：ライトティール背景 */
.ai-group{border:2px solid var(--teal);border-radius:14px;background:var(--teal-light);padding:24px 24px 20px;}
.ai-group .step-group-label{background:var(--teal);color:#fff;}
.ai-group .step-num{color:var(--teal-dark);}
.ai-group .step-title{color:var(--navy-800);}
.ai-group .step-arrow{color:var(--teal);}
.ai-group .step-circle{box-shadow:0 6px 20px rgba(14,34,56,0.12);}
/* 人担当ゾーン：半透明ホワイト */
.human-group{border:2px solid rgba(255,255,255,0.35);border-radius:14px;background:rgba(255,255,255,0.1);padding:24px 24px 20px;}
.human-group .step-group-label{background:rgba(255,255,255,0.2);color:#fff;border:1px solid rgba(255,255,255,0.4);}
.step-group-items{display:flex;align-items:flex-start;}
.step-arrow--group{padding:60px 8px 0;color:rgba(255,255,255,0.5);}

/* PROBLEM */
.warn-line{text-align:center;color:var(--red);font-weight:700;font-size:15px;}

/* 2カラムグリッド */
.prob-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:40px;}

/* カードグループ */
.prob-group{border-radius:var(--radius-lg);overflow:hidden;border:1px solid #FBCECE;box-shadow:0 4px 24px rgba(226,72,61,.08);background:#fff;}

/* ヘッダー（ネイビー） */
.prob-group-head{background:var(--navy-800);color:#fff;font-weight:700;font-size:15px;padding:16px 22px;display:flex;align-items:center;gap:10px;}

/* リスト */
.prob-list{list-style:none;margin:0;padding:0;}

/* 各行 */
.prob-row{display:flex;align-items:flex-start;gap:16px;padding:18px 22px;border-bottom:1px solid #FEF2F2;transition:background .15s;}
.prob-row:last-child{border-bottom:none;}
.prob-row:hover{background:#FFF8F8;}

/* ✕ バッジ */
.prob-x{flex-shrink:0;width:28px;height:28px;border-radius:50%;background:#FEE2E2;color:#EF4444;font-size:13px;font-weight:900;display:flex;align-items:center;justify-content:center;margin-top:2px;}

/* テキスト */
.prob-name{font-size:15.5px;font-weight:800;color:var(--navy-900);margin:0 0 4px;line-height:1.35;}
.prob-sub{font-size:12.5px;color:var(--text-muted);margin:0;line-height:1.6;}

@media(max-width:760px){
  .prob-grid{grid-template-columns:1fr;}
}

/* ═══════════════════════════════════════════
   PENTAGON CYCLE DIAGRAM
   ─ viewBox="0 0 100 100" の SVG 座標系と
     CSS の % 座標系が 1:1 対応する設計 ─
   ═══════════════════════════════════════════ */

.cycle-intro{max-width:680px;margin:0 auto 44px;text-align:center;color:var(--text-body);font-size:15px;}

/* ── 外側ラッパー ── */
.cdiag-outer{
  max-width:680px;
  margin:0 auto 40px;
  container-type:inline-size; /* cqw 単位を有効化 */
}

/* ── 正方形コンテナ（aspect-ratio:1 でアスペクト比固定） ── */
.cdiag{
  position:relative;
  width:100%;
  aspect-ratio:1;
}

/* ── SVG オーバーレイ（viewBox が % 空間と 1:1） ── */
.cdiag-svg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  pointer-events:none;
  overflow:visible;
}

/* ── カード共通 ──
   left/top を頂点座標(%)で指定し、
   transform:translate(-50%,-50%) でカード中心 = 頂点に一致 */
.cnode{
  position:absolute;
  transform:translate(-50%,-50%) translateY(0);
  width:20%;
  background:#fff;
  border-radius:clamp(8px,1.8cqw,14px);
  border:1px solid var(--border);
  padding:clamp(6px,1.3cqw,10px) clamp(4px,1cqw,8px);
  text-align:center;
  box-shadow:0 2px 14px rgba(14,34,56,.08);
  z-index:1;
  cursor:default;
  transition:transform .28s ease, box-shadow .28s ease;
}
.cnode:hover{
  transform:translate(-50%,-50%) translateY(-8px);
  box-shadow:0 12px 32px rgba(14,34,56,.16);
  z-index:10;
}

/* アイコン円 */
.cnode-ico{
  width:clamp(24px,6cqw,42px);
  height:clamp(24px,6cqw,42px);
  border-radius:50%;
  background:var(--bg-soft);
  border:1px solid var(--border);
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0 auto clamp(3px,.8cqw,6px);
  transition:background .25s, border-color .25s;
}
.cnode:hover .cnode-ico{
  background:#FEE2E2;
  border-color:#FCA5A5;
}
.cnode-ico svg{
  width:55%;
  height:55%;
}

/* カードテキスト */
.cnode-ttl{
  font-size:clamp(8px,2cqw,13px);
  font-weight:800;
  color:var(--navy-800);
  margin:0;
  line-height:1.4;
}

/* 説明文：デフォルト非表示、ホバーで展開 */
.cnode-dsc{
  font-size:clamp(7px,1.5cqw,10px);
  color:var(--text-muted);
  margin:0;
  line-height:1.5;
  max-height:0;
  overflow:hidden;
  opacity:0;
  transition:max-height .3s ease, opacity .25s ease, margin-top .25s ease;
}
.cnode:hover .cnode-dsc{
  max-height:5em;
  opacity:1;
  margin-top:clamp(3px,.7cqw,5px);
}

/* ── 中央要素（center=(50%,50%)） ── */
.cdiag-center{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  width:20%;
  text-align:center;
  z-index:2;
}
.cdiag-warn-svg{
  width:clamp(24px,5cqw,40px);
  height:auto;
  display:block;
  margin:0 auto clamp(3px,.8cqw,6px);
}
.cdiag-c-ttl{
  font-size:clamp(10px,2.6cqw,18px);
  font-weight:900;
  color:#EF4444;
  margin:0 0 clamp(2px,.6cqw,5px);
  line-height:1.2;
}
.cdiag-c-sub{
  font-size:clamp(7px,1.5cqw,10px);
  color:var(--text-body);
  line-height:1.6;
  margin:0;
}

/* ── 下部バナー ── */
.ncycle-banner{
  background:#fff;
  border:1.5px solid var(--border);
  border-radius:16px;
  padding:20px 28px;
  display:flex;
  align-items:center;
  gap:16px;
  max-width:680px;
  margin:0 auto;
}
.ncycle-banner svg{flex-shrink:0;}
.ncycle-banner-ttl{font-size:15.5px;font-weight:800;color:var(--navy-800);margin:0 0 4px;}
.ncycle-banner-sub{font-size:13px;color:var(--text-muted);margin:0;}

@media(max-width:600px){
  .ncycle-banner{flex-direction:column;text-align:center;gap:12px;}
}

/* TIME ALLOCATION — donut chart layout */
.alloc-section{background:var(--bg-soft);padding:64px 0;}
.alloc-section .section-title{margin-bottom:8px;}
.alloc-section .section-lead{margin-bottom:24px;}
.alloc-chart-layout{display:grid;grid-template-columns:1fr auto 1fr;gap:8px 32px;align-items:center;margin-bottom:20px;max-width:960px;margin-left:auto;margin-right:auto;padding:0 24px;}
/* percentage big number */
.alloc-side-pct{font-size:clamp(48px,6vw,72px);font-weight:900;line-height:1;margin-bottom:4px;}
.alloc-side-pct span{font-size:.55em;}
.waste-pct{color:#94a3b8;}
.core-pct{color:var(--teal);}
/* badge label */
.alloc-side-badge{display:inline-block;padding:4px 12px;border-radius:999px;font-size:13px;font-weight:700;margin-bottom:8px;}
.waste-badge{background:#f1f5f9;color:#64748b;}
.core-badge{background:var(--teal-light);color:var(--teal-dark);}
/* item lists */
.alloc-chart-list{display:flex;flex-direction:column;gap:8px;}
.alloc-chart-list li{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:500;color:var(--text-body);}
.alloc-chart-list li svg{width:16px;height:16px;flex-shrink:0;}
.waste-list li svg{color:#94a3b8;}
.core-list li svg{color:var(--teal);}
/* right side text align */
.alloc-side--core{text-align:right;}
.alloc-side--core .alloc-chart-list li{flex-direction:row-reverse;}
/* donut */
.alloc-donut-wrap{display:flex;flex-direction:column;align-items:center;gap:6px;}
.alloc-donut-svg{width:clamp(160px,18vw,220px);height:clamp(160px,18vw,220px);filter:drop-shadow(0 8px 24px rgba(22,160,186,0.15));}
/* legend */
.alloc-legend{display:flex;gap:18px;align-items:center;font-size:13px;color:var(--text-body);}
.alloc-leg-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0;}
.waste-dot{background:#94a3b8;}
.core-dot{background:var(--teal);}
.alloc-leg-txt{font-weight:600;}
/* tagline */
.tagline{text-align:center;font-weight:700;font-size:16.5px;color:var(--navy-800);max-width:680px;margin:0 auto;line-height:1.8;}
/* 強調タグライン */
.tagline-emphasis{text-align:center;margin:20px auto 0;padding:28px 40px;background:linear-gradient(135deg,var(--teal-light) 0%,#fff 100%);border:2px solid var(--teal);border-radius:16px;max-width:700px;box-shadow:0 8px 32px rgba(22,160,186,0.15);}
.tagline-emphasis-text{margin:0;font-size:clamp(18px,2.8vw,26px);font-weight:900;line-height:1.5;letter-spacing:.02em;white-space:nowrap;}
.te-ai{color:var(--teal-dark);}
.te-human{color:var(--navy-800);}
@media(max-width:760px){
  .alloc-chart-layout{grid-template-columns:1fr;gap:24px;justify-items:center;}
  .alloc-side--waste,.alloc-side--core{text-align:center;width:100%;}
  .alloc-side--core{text-align:center;}
  .alloc-chart-list{align-items:center;}
  .alloc-chart-list li{flex-direction:row;justify-content:center;}
  .alloc-side--core .alloc-chart-list li{flex-direction:row;}
  .alloc-donut-wrap{order:-1;}
  .alloc-side-pct{font-size:40px;}
  .alloc-side-badge{display:block;text-align:center;}
  .tagline-emphasis{padding:20px;}.tagline-emphasis-text{font-size:16px;white-space:normal;}
}

/* SOLUTION */
.solution{background:linear-gradient(160deg,var(--navy-900),var(--navy-800));color:#fff;}
.solution .eyebrow{color:#7FD7E6;}
.solution .section-title{color:#fff;}
.steps-row{display:flex;align-items:flex-start;justify-content:center;gap:0;margin:52px 0 44px;flex-wrap:wrap;}
.step-item{display:flex;flex-direction:column;align-items:center;text-align:center;width:150px;gap:0;}
.step-circle{width:84px;height:84px;border-radius:50%;background:#fff;color:var(--navy-800);display:flex;align-items:center;justify-content:center;box-shadow:0 14px 30px rgba(0,0,0,0.25);margin-bottom:10px;order:1;}
.step-circle svg{width:34px;height:34px;}
.step-num{font-size:11px;font-weight:700;letter-spacing:.12em;color:#7FD7E6;margin-bottom:4px;order:2;}
.step-title{font-size:14px;font-weight:700;color:#fff;order:3;}
.step-arrow{display:flex;align-items:center;color:#3F6E89;padding:30px 6px 0;}
.step-arrow svg{width:22px;height:22px;}
.solution .tagline{color:#fff;}
@media(max-width:900px){.steps-row{gap:18px;}.step-arrow{display:none;}.step-item{width:120px;}}

/* FULL SERVICE */
.fs-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-bottom:40px;align-items:stretch;}
.fs-card{border-radius:var(--radius-lg);padding:30px 28px;border:1.6px solid var(--border);display:flex;flex-direction:column;}
.fs-card.muted{background:var(--bg-soft);opacity:.85;}
.fs-card.highlight{background:#fff;border-color:var(--teal);box-shadow:var(--shadow-md);}
.fs-tag{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.08em;padding:5px 14px;border-radius:999px;margin-bottom:16px;}
.fs-tag.muted{background:#E7EAEE;color:var(--text-muted);}
.fs-tag.highlight{background:var(--teal);color:#fff;}
.fs-card h3{margin:0 0 18px;font-size:18px;font-weight:800;color:var(--text-dark);}
.fs-flow{display:flex;flex-direction:column;gap:10px;}
.fs-flow li{display:flex;align-items:center;gap:10px;font-size:14.5px;font-weight:600;}
.fs-flow li svg{width:18px;height:18px;flex-shrink:0;}
.fs-card.muted .fs-flow li{color:var(--text-muted);}
.fs-card.muted .fs-flow li svg{color:var(--text-muted);}
.fs-card.highlight .fs-flow li{color:var(--text-dark);}
.fs-card.highlight .fs-flow li svg{color:var(--teal-dark);}
.fs-end{margin-top:auto;padding-top:16px;border-top:1px dashed var(--border);font-size:13.5px;font-weight:700;}
.fs-end.muted-end{color:var(--text-muted);}
.fs-end.highlight-end{color:var(--teal-dark);}
.focus-chips{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;}
.focus-chip{background:var(--bg-soft);border:1px solid var(--border);border-radius:999px;padding:10px 22px;font-weight:700;font-size:14px;color:var(--navy-800);}
@media(max-width:760px){.fs-grid{grid-template-columns:1fr;}}

/* WHY */
.why-row{display:flex;align-items:center;justify-content:center;gap:0;margin:44px 0 36px;flex-wrap:wrap;}
.why-item{display:flex;flex-direction:column;align-items:center;gap:12px;width:118px;text-align:center;}
.why-ico{width:64px;height:64px;border-radius:50%;background:var(--teal-light);color:var(--teal-dark);display:flex;align-items:center;justify-content:center;}
.why-ico svg{width:28px;height:28px;}
.why-item span{font-size:13px;font-weight:700;color:var(--text-dark);}
.why-arrow{color:var(--text-muted);padding:0 4px;padding-bottom:26px;}
.why-arrow svg{width:18px;height:18px;}
@media(max-width:900px){.why-arrow{display:none;}.why-item{width:100px;}}
.why-intro{max-width:700px;margin:0 auto 8px;text-align:center;color:var(--text-body);font-size:15px;}

/* REASONS */
.reasons-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.reason-card{position:relative;border:1px solid var(--border);border-radius:var(--radius-lg);padding:32px 30px;background:#fff;box-shadow:var(--shadow-md);overflow:hidden;}
.reason-num{position:absolute;top:8px;right:18px;font-weight:800;font-size:56px;color:rgba(22,58,92,0.06);line-height:1;}
.reason-card-top{display:flex;align-items:center;gap:14px;margin-bottom:14px;}
.reason-ico{width:48px;height:48px;border-radius:12px;background:var(--navy-800);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.reason-ico svg{width:24px;height:24px;}
.reason-card h3{margin:0;font-size:17px;font-weight:800;color:var(--text-dark);flex:1;min-width:0;word-break:break-all;}
.reason-card p{margin:0;color:var(--text-body);font-size:14.5px;position:relative;z-index:1;}
@media(max-width:760px){.reasons-grid{grid-template-columns:1fr;}}

/* FEATURES */
.features-section{position:relative;overflow:hidden;background:linear-gradient(160deg,#EEF5FB 0%,#F8FBFD 50%,#EBF4FA 100%);padding:96px 0;}
.features-blobs{position:absolute;inset:0;pointer-events:none;}
.feat-blob{position:absolute;border-radius:50%;opacity:.45;}
.feat-blob-tl{width:340px;height:340px;background:radial-gradient(circle,#C8E8F5 0%,transparent 70%);top:-80px;right:-60px;}
.feat-blob-br{width:280px;height:280px;background:radial-gradient(circle,#C8E8F5 0%,transparent 70%);bottom:-60px;left:-40px;}
.feat-eyebrow{text-align:center;font-size:13.5px;font-weight:700;color:#3A7CA5;letter-spacing:.12em;margin:0 0 16px;}
.feat-title{font-size:clamp(26px,3.5vw,40px);font-weight:900;text-align:center;margin:0 0 20px;color:var(--navy-900);}
.feat-accent{color:#2B8FD6;}
.feat-lead{text-align:center;color:var(--text-body);font-size:15px;max-width:660px;margin:0 auto 52px;line-height:1.75;}
.feat-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:16px;margin-bottom:16px;}
.feat-grid-last{grid-template-columns:repeat(1,1fr);max-width:180px;margin:0 auto;}
.feat-card{background:#fff;border-radius:16px;box-shadow:0 4px 20px rgba(14,34,56,.06);display:flex;flex-direction:column;align-items:center;gap:14px;padding:28px 12px 24px;transition:transform .2s,box-shadow .2s;}
.feat-card:hover{transform:translateY(-4px);box-shadow:0 10px 28px rgba(14,34,56,.10);}
.feat-icon-wrap{width:60px;height:60px;border-radius:50%;background:#EBF4FC;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.feat-icon-wrap svg{width:26px;height:26px;color:#2B8FD6;}
.feat-label{font-size:13px;font-weight:700;color:var(--navy-800);text-align:center;line-height:1.5;}
@media(max-width:900px){.feat-grid{grid-template-columns:repeat(3,1fr);}}
@media(max-width:540px){.feat-grid{grid-template-columns:repeat(2,1fr);gap:12px;}.feat-card{padding:22px 10px 18px;}.feat-icon-wrap{width:50px;height:50px;}.feat-icon-wrap svg{width:22px;height:22px;}.feat-label{font-size:12px;}.feat-grid-last{max-width:140px;}.features-section{padding:64px 0;}}

/* IMAGE BREAK */
.img-break{width:100%;height:360px;overflow:hidden;}
.img-break img{width:100%;height:100%;object-fit:cover;object-position:center 40%;display:block;}
@media(max-width:640px){.img-break{height:220px;}}

/* PRICING PLANS */
.pricing-section{padding:96px 0;background:var(--bg-soft);}
.pricing-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;max-width:860px;margin:48px auto 0;}
.pricing-card{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden;display:flex;flex-direction:column;border:1.5px solid var(--border);}
.pricing-card--featured{border:2px solid var(--teal);box-shadow:0 8px 32px rgba(22,160,186,.20);}
.pricing-card-top{padding:32px 32px 28px;border-bottom:1px solid var(--border);}
.pricing-card--featured .pricing-card-top{background:var(--teal-light);border-bottom:1px solid rgba(22,160,186,.2);}
.pricing-badge{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.06em;padding:4px 14px;border-radius:999px;margin-bottom:14px;}
.badge-mute{background:#E7EAEE;color:var(--text-muted);}
.badge-accent{background:var(--teal);color:#fff;}
.pricing-plan-name{font-size:clamp(16px,2vw,20px);font-weight:800;color:var(--navy-900);margin:0 0 18px;}
.pricing-price{margin:0;line-height:1;}
.pricing-num{font-size:clamp(40px,5vw,56px);font-weight:900;color:var(--navy-900);}
.pricing-unit{font-size:15px;font-weight:600;color:var(--text-muted);margin-left:2px;}
.pricing-card-body{padding:28px 32px 32px;display:flex;flex-direction:column;flex:1;}
.pricing-body-lead{font-size:14px;font-weight:700;color:var(--navy-900);margin:0 0 20px;line-height:1.6;}
.pricing-list{list-style:none;padding:0;margin:0 0 28px;display:flex;flex-direction:column;gap:12px;}
.pricing-list-item{font-size:14px;color:var(--text-body);padding-left:28px;position:relative;line-height:1.5;}
.pricing-list-item.check::before{content:'✓';position:absolute;left:0;color:var(--teal-dark);font-weight:700;}
.pricing-list-item.plus::before{content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);width:18px;height:18px;border-radius:50%;border:2px solid var(--teal);background:var(--teal-light);display:flex;align-items:center;justify-content:center;}
.pricing-list-item.plus::after{content:'+';position:absolute;left:4px;top:50%;transform:translateY(-50%);font-size:13px;font-weight:800;color:var(--teal-dark);line-height:1;}
.pricing-you-focus{background:var(--bg-soft);border-radius:var(--radius-sm);padding:16px 20px;margin-top:auto;text-align:center;border:1px solid var(--border);}
.pricing-card--featured .pricing-you-focus{background:var(--teal-light);border-color:rgba(22,160,186,.2);}
.pricing-yf-label{font-size:10px;font-weight:800;letter-spacing:.14em;color:var(--text-muted);margin:0 0 4px;}
.pricing-yf-text{font-size:14px;font-weight:800;color:var(--navy-900);margin:0;}
@media(max-width:640px){.pricing-grid{grid-template-columns:1fr;gap:20px;}.pricing-card-top,.pricing-card-body{padding:24px 22px;}.pricing-section{padding:64px 0;}}

/* COMPARE NEW */
.cmp-section{background:linear-gradient(160deg,#EEF5FB 0%,#F8FBFD 50%,#EBF4FA 100%);padding:96px 0;}
.cmp-title{font-size:clamp(28px,4.5vw,48px);font-weight:900;text-align:center;margin:0 0 16px;color:var(--navy-900);}
.cmp-accent{color:var(--teal-dark);}

/* Stats */
.cmp-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:0 0 10px;}
.cmp-stat{background:#fff;border-radius:16px;box-shadow:0 4px 20px rgba(14,34,56,.07);padding:24px 20px;display:flex;align-items:center;gap:16px;}
.cmp-stat-ico{width:52px;height:52px;border-radius:50%;background:var(--teal-light);color:var(--teal-dark);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.cmp-stat-ico svg{width:24px;height:24px;}
.cmp-stat-lbl{font-size:12px;color:var(--text-muted);font-weight:600;margin:0 0 4px;}
.cmp-stat-num{font-weight:900;font-size:30px;color:var(--navy-900);line-height:1;margin:0;}
.cmp-stat-num span{font-size:13px;font-weight:700;margin-left:2px;color:var(--navy-800);}
.cmp-note{text-align:center;font-size:11.5px;color:var(--text-muted);margin:0 0 28px;}
.cmp-sub-title{text-align:center;font-size:18px;font-weight:800;color:var(--text-dark);margin:0 0 24px;}

/* Compare visual layout */
.cmp-visual{display:flex;gap:12px;align-items:flex-start;}

/* Labels column */
.cmp-labels-col{width:172px;flex-shrink:0;display:flex;flex-direction:column;}
.cmp-label-spacer{height:72px;flex-shrink:0;}
.cmp-label-row{display:flex;align-items:center;gap:10px;padding:0 10px 0 4px;font-size:13px;font-weight:700;color:var(--text-body);min-height:56px;border-top:1px solid transparent;}
.cmp-label-ico{width:32px;height:32px;border-radius:50%;background:var(--teal-light);border:1.5px solid rgba(22,160,186,.25);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}
.cmp-label-ico svg{width:16px;height:16px;color:var(--teal-dark);}

/* Cards area */
.cmp-cards{flex:1;display:flex;position:relative;gap:20px;min-width:0;}

/* SES card */
.cmp-ses-card{flex:1;border-radius:20px;background:linear-gradient(150deg,#22C9E5 0%,#0B92A8 55%,#0A7D90 100%);overflow:hidden;position:relative;display:flex;flex-direction:column;box-shadow:0 12px 40px rgba(16,146,168,0.40);}

.cmp-ses-card-wrap{flex:1;position:relative;}
.cmp-ses-card-wrap .cmp-ses-card{flex:unset;width:100%;}

.cmp-ses-hdr{display:flex;align-items:center;gap:12px;padding:0 24px 0 120px;height:72px;border-bottom:1px solid rgba(255,255,255,.2);}
.cmp-s-logo{width:36px;height:40px;flex-shrink:0;}
.cmp-ses-hdr span{font-size:18px;font-weight:800;color:#fff;line-height:1.2;letter-spacing:.01em;}
.cmp-ses-row{display:flex;align-items:center;gap:12px;padding:0 22px;min-height:76px;border-top:1px solid rgba(255,255,255,.13);font-size:15px;font-weight:700;color:#fff;}
.cmp-ses-row strong{font-size:18px;font-weight:900;}
.cmp-ses-chk{width:26px;height:26px;flex-shrink:0;}
.cmp-ses-chk svg{width:26px;height:26px;display:block;}

/* VS badge */
.cmp-vs{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:10;width:60px;height:60px;border-radius:50%;background:var(--navy-900);color:#fff;font-weight:900;font-size:14px;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 20px rgba(14,34,56,.35);letter-spacing:.05em;}

/* Other card */
.cmp-other-card{flex:1;border-radius:20px;background:#fff;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 6px 28px rgba(14,34,56,.10);}
.cmp-other-hdr{display:flex;align-items:center;justify-content:center;gap:12px;padding:0 24px;height:72px;background:var(--navy-800);color:#fff;font-size:15px;font-weight:800;border-radius:20px 20px 0 0;}
.cmp-other-hdr svg{width:26px;height:26px;flex-shrink:0;}
.cmp-other-row{display:flex;align-items:center;gap:12px;padding:0 22px;min-height:76px;border-top:1px solid var(--border);font-size:14px;color:var(--text-body);font-weight:500;}
.cmp-ico-warn,.cmp-ico-bad{width:24px;height:24px;flex-shrink:0;}
.cmp-ico-warn svg,.cmp-ico-bad svg{width:24px;height:24px;display:block;}

@media(max-width:1000px){
  .cmp-labels-col{width:140px;}
  .cmp-label-row{font-size:12px;min-height:68px;gap:8px;}
  .cmp-label-spacer{height:90px;}
  .cmp-ses-hdr,.cmp-other-hdr{height:90px;}
  .cmp-ses-row,.cmp-other-row{min-height:68px;}
  .cmp-ses-hdr span{font-size:16px;}
  .cmp-ses-row{font-size:14px;}
  .cmp-ses-row strong{font-size:16px;}
}
@media(max-width:760px){
  .cmp-stats{grid-template-columns:1fr 1fr;}
  .cmp-stats .cmp-stat:last-child{grid-column:1/-1;}
  .cmp-visual{flex-direction:column;align-items:center;}
  .cmp-labels-col{display:none;}
  .cmp-cards{flex-direction:column;gap:20px;align-items:center;width:100%;}
  .cmp-ses-card-wrap,.cmp-other-card{width:100%;max-width:420px;}
  .cmp-vs{position:static;transform:none;margin:10px auto;}
  .cmp-ses-hdr,.cmp-other-hdr{height:80px;}
  .cmp-ses-row,.cmp-other-row{min-height:60px;}
}
@media(max-width:540px){
  .cmp-stats{grid-template-columns:1fr;}
  .cmp-stats .cmp-stat:last-child{grid-column:auto;}
  .cmp-stat-num{font-size:26px;}
  .cmp-section{padding:64px 0;}
}

/* CAMPAIGN */
.cpn-section{padding:48px 0;}
.cpn-outer{display:grid;grid-template-columns:1fr 1.15fr;border-radius:24px;overflow:hidden;box-shadow:0 16px 56px rgba(14,34,56,.18);}

/* Left panel */
.cpn-left{background:linear-gradient(145deg,#0E2238 0%,#0C4A6E 45%,#0E7C90 100%);padding:32px 32px;position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px;}
.cpn-left::before{content:"";position:absolute;top:-60px;right:-60px;width:220px;height:220px;border-radius:50%;background:rgba(22,160,186,.15);}
.cpn-gold-ribbon{position:absolute;top:0;left:0;width:0;height:0;border-style:solid;border-width:90px 90px 0 0;border-color:#E0A020 transparent transparent transparent;z-index:2;}
.cpn-gold-ribbon::after{content:"期間限定";position:absolute;top:-66px;left:-14px;width:96px;font-size:11px;font-weight:800;color:#fff;text-align:center;transform:rotate(-45deg);letter-spacing:.06em;}
.cpn-lead{color:rgba(255,255,255,.85);font-size:13.5px;font-weight:700;margin:0;letter-spacing:.04em;}
.cpn-zero-wrap{display:flex;align-items:flex-end;gap:4px;margin:0;line-height:1;}
.cpn-hatsu{color:#fff;font-size:26px;font-weight:900;margin-bottom:8px;}
.cpn-zero{font-size:clamp(64px,8vw,88px);font-weight:900;background:linear-gradient(180deg,#FFF8DC 0%,#F0C040 40%,#C8860A 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:.95;text-shadow:none;}
.cpn-en{color:#F0C040;font-size:36px;font-weight:900;margin-bottom:12px;}
.cpn-banner{background:#fff;color:var(--teal-dark);font-size:16px;font-weight:900;padding:10px 32px;border-radius:4px;margin:0;letter-spacing:.04em;box-shadow:0 3px 12px rgba(0,0,0,.15);position:relative;}
.cpn-banner::before,.cpn-banner::after{content:"";position:absolute;top:0;width:12px;height:100%;background:inherit;}
.cpn-banner::before{left:-6px;clip-path:polygon(6px 0,100% 0,100% 100%,0 100%);}
.cpn-banner::after{right:-6px;clip-path:polygon(0 0,calc(100% - 6px) 0,100% 100%,0 100%);}
.cpn-body{color:rgba(255,255,255,.88);font-size:14.5px;line-height:1.8;margin:0;}
.cpn-hl{color:#F0C040;font-weight:800;}

/* Right panel */
.cpn-right{background:#fff;padding:24px 28px;display:flex;flex-direction:column;justify-content:center;gap:0;}
.cpn-right-lead{text-align:center;font-size:13px;font-weight:700;color:var(--teal-dark);margin:0 0 14px;letter-spacing:.05em;}
.cpn-benefits{list-style:none;margin:0 0 28px;padding:0;display:flex;flex-direction:column;gap:18px;}
.cpn-benefits li{display:flex;align-items:flex-start;gap:14px;}
.cpn-ico{width:44px;height:44px;border-radius:50%;background:var(--teal-light);border:1.5px solid rgba(22,160,186,.25);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--teal-dark);}
.cpn-ico svg{width:22px;height:22px;}
.cpn-b-ttl{font-size:15px;font-weight:800;color:var(--navy-800);margin:0 0 3px;}
.cpn-b-ttl strong{color:var(--teal-dark);}
.cpn-b-desc{font-size:12.5px;color:var(--text-muted);margin:0;}

/* Stats */
.cpn-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--border);padding-top:24px;padding-bottom:4px;margin-top:0;}
.cpn-stat{text-align:center;padding:0 10px;}
.cpn-stat+.cpn-stat{border-left:1px solid var(--border);}
.cpn-stat-lbl{display:block;font-size:11.5px;color:var(--text-muted);font-weight:600;margin-bottom:6px;}
.cpn-stat-num{display:block;font-weight:900;font-size:26px;color:var(--navy-900);line-height:1;}
.cpn-stat-num small{font-size:13px;font-weight:700;margin-left:1px;}

/* CTA bar – inside cpn-outer, spans both columns */
.cpn-cta-bar{grid-column:1/-1;background:#F0F8FB;border-top:1.5px solid rgba(14,34,56,0.10);padding:20px 28px;display:flex;align-items:center;justify-content:space-between;gap:20px;}
.cpn-cta-left{display:flex;align-items:center;gap:14px;}
.cpn-cta-check svg{width:32px;height:32px;flex-shrink:0;}
.cpn-cta-ttl{font-size:15px;font-weight:700;color:var(--navy-800);margin:0 0 2px;}
.cpn-cta-ttl strong{color:var(--teal-dark);}
.cpn-cta-sub{font-size:12.5px;color:var(--text-muted);margin:0;}
.cpn-cta-btn{display:inline-flex;align-items:center;gap:10px;background:linear-gradient(135deg,#F59E0B,#E07800);color:#fff;font-size:15px;font-weight:800;padding:16px 28px;border-radius:12px;white-space:nowrap;text-decoration:none;box-shadow:0 6px 20px rgba(224,120,0,.35);transition:transform .2s,box-shadow .2s;flex-shrink:0;}
.cpn-cta-btn:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(224,120,0,.45);}
.cpn-cta-btn svg{width:20px;height:20px;}
.cpn-arrow{font-size:20px;font-weight:900;margin-left:4px;}

@media(max-width:860px){
  .cpn-outer{grid-template-columns:1fr;}
  .cpn-left{padding:44px 28px 40px;align-items:center;text-align:center;width:100%;justify-content:center;}
  .cpn-left .cpn-lead,.cpn-left .cpn-body{width:100%;text-align:center;}
  .cpn-left .cpn-lead{margin-top:24px;}
  .cpn-zero-wrap{justify-content:center;width:100%;}
  .cpn-banner{align-self:center;}
  .cpn-cta-bar{flex-direction:column;text-align:center;padding:20px 20px;}
  .cpn-cta-btn{width:100%;justify-content:center;white-space:normal;font-size:14px;padding:14px 16px;box-sizing:border-box;}
}
@media(max-width:540px){
  .cpn-right{padding:28px 20px 24px;}
  .cpn-stats{grid-template-columns:1fr;}
  .cpn-stat+.cpn-stat{border-left:none;border-top:1px solid var(--border);padding-top:12px;margin-top:4px;}
}

/* COMMITMENT */
.commit-title-bar{width:48px;height:3px;background:var(--teal);border-radius:2px;margin:0 auto 48px;}
.commit-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.commit-card{background:#fff;border-radius:20px;padding:40px 28px 36px;display:flex;flex-direction:column;align-items:center;text-align:center;position:relative;box-shadow:0 4px 24px rgba(14,34,56,.07);border:1px solid var(--border);}
.commit-badge{position:absolute;top:-16px;left:50%;transform:translateX(-50%);width:36px;height:36px;border-radius:50%;background:var(--teal);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(22,160,186,.35);}
.commit-badge svg{width:18px;height:18px;}
.commit-icon-wrap{width:120px;height:120px;border-radius:50%;background:#EAF5F8;display:flex;align-items:center;justify-content:center;margin:24px 0 24px;}
.commit-divider{width:36px;height:2.5px;background:var(--teal);border-radius:2px;margin-bottom:20px;}
.commit-label{font-size:18px;font-weight:800;color:var(--navy-800);margin:0;line-height:1.5;}
@media(max-width:760px){
  .commit-cards{grid-template-columns:1fr;}
  .commit-card{max-width:360px;margin:0 auto;width:100%;}
}

/* FLOW */
.flow-row{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;position:relative;}
.flow-row::before{content:"";position:absolute;top:24px;left:5%;right:5%;height:2px;background:var(--border);z-index:0;}
.flow-item{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;}
.flow-num{width:48px;height:48px;border-radius:50%;background:var(--navy-800);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px;}
.flow-item span{font-size:13px;font-weight:700;color:var(--text-dark);}
@media(max-width:860px){.flow-row{grid-template-columns:repeat(2,1fr);gap:28px 14px;}.flow-row::before{display:none;}}

/* FINAL CTA */
.final-cta{background:linear-gradient(135deg,var(--teal-light),#EEF6F8);border-radius:var(--radius-lg);overflow:hidden;display:grid;grid-template-columns:1.1fr 0.9fr;align-items:stretch;box-shadow:var(--shadow-lg);}
.final-cta-text{padding:52px 48px;}
.final-cta-text h2{font-size:clamp(22px,3vw,30px);font-weight:800;margin:0 0 14px;color:var(--text-dark);}
.final-cta-text p{color:var(--text-body);font-size:15px;margin:0 0 28px;}
.final-cta-img{height:100%;min-height:320px;align-self:stretch;}
.final-cta-img img{width:100%;height:100%;object-fit:cover;display:block;}
@media(max-width:860px){.final-cta{grid-template-columns:1fr;}.final-cta-img{min-height:200px;order:-1;}.final-cta-text{padding:40px 28px;}}

/* FAQ */
.faq-list{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:14px;}
.faq-item{border:1px solid var(--border);border-radius:14px;overflow:hidden;background:#fff;}
.faq-item summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:20px 24px;font-weight:700;font-size:15px;color:var(--text-dark);user-select:none;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-q{display:flex;gap:12px;align-items:flex-start;flex:1;min-width:0;overflow-wrap:anywhere;word-break:break-all;}
.faq-q .qmark{color:var(--teal-dark);font-weight:800;}
.faq-toggle{width:26px;height:26px;border-radius:50%;border:1.4px solid var(--border);flex-shrink:0;display:flex;align-items:center;justify-content:center;position:relative;transition:transform .25s;background:#fff;}
.faq-toggle::before,.faq-toggle::after{content:"";position:absolute;background:var(--navy-800);border-radius:2px;transition:transform .25s, opacity .25s;}
.faq-toggle::before{width:12px;height:1.8px;}
.faq-toggle::after{width:1.8px;height:12px;}
.faq-item[open] .faq-toggle::after{transform:scaleY(0);opacity:0;}
.faq-item[open] summary{border-bottom:1px solid var(--border);}
.faq-answer{padding:18px 24px 22px 58px;color:var(--text-body);font-size:14.5px;line-height:1.8;}

/* FIXED CTA BUTTON */
.fixed-cta{
  position:fixed;
  bottom:28px;
  right:24px;
  z-index:999;
  display:flex;
  align-items:flex-end;
  gap:0;
  background:none;
  border:none;
  transition:transform .2s ease;
  white-space:nowrap;
}
.fixed-cta:hover{transform:translateY(-4px);}
.fixed-cta-img{
  width:72px;
  height:auto;
  display:block;
  flex-shrink:0;
  align-self:flex-end;
  margin-bottom:-4px;
  margin-right:-6px;
  z-index:1;
  position:relative;
}
.fixed-cta-label{
  display:flex;
  align-items:center;
  gap:14px;
  background:var(--teal);
  color:#fff;
  font-weight:700;
  font-size:22px;
  padding:22px 40px 22px 34px;
  border-radius:999px;
  box-shadow:0 8px 24px rgba(22,160,186,0.45);
  position:relative;
}
.fixed-cta-label svg{width:28px;height:28px;flex-shrink:0;}
.fixed-cta:hover .fixed-cta-label{box-shadow:0 14px 32px rgba(22,160,186,0.55);}
@media(max-width:480px){
  .fixed-cta{bottom:16px;right:16px;}
  .fixed-cta-label{font-size:18px;padding:18px 28px;}
}

/* FOOTER */
.site-footer{background:var(--navy-900);color:rgba(255,255,255,0.7);padding:48px 0 28px;}
.footer-top{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px;padding-bottom:28px;border-bottom:1px solid rgba(255,255,255,0.12);}
.footer-logo{display:flex;align-items:center;gap:10px;font-weight:800;font-size:17px;color:#fff;}
.footer-logo .logo-mark{width:26px;height:26px;}
.footer-links{display:flex;gap:26px;flex-wrap:wrap;justify-content:flex-end;}
.footer-links a{font-size:13.5px;color:rgba(255,255,255,0.65);}
.footer-links a:hover{color:#fff;}
.footer-bottom{padding-top:22px;font-size:12.5px;color:rgba(255,255,255,0.45);text-align:center;}

/* =============================================
   MOBILE FIXES (≤760px / ≤480px)
   ============================================= */

/* --- Hero モバイル: PCと同じく背景画像 --- */
@media(max-width:760px){
  .hero{display:block;background:#f0f8fb;position:relative;}
  .hero-bg{position:absolute;inset:0;z-index:0;}
  .hero-bg img{object-position:75% 10%;}
  .hero-bg::after{
    display:block;
    background:linear-gradient(to right,
      rgba(255,255,255,0.98) 0%,
      rgba(255,255,255,0.95) 40%,
      rgba(255,255,255,0.65) 65%,
      rgba(255,255,255,0) 85%);
  }
  .hero-row{position:relative;z-index:1;display:flex;align-items:center;min-height:260px;width:100%;}
  .hero-text{padding:28px 20px 28px;background:transparent;max-width:72%;}
  .hero h1{white-space:normal;font-size:clamp(20px,5.5vw,30px);}
  .hero p.lead{font-size:13px;}
}

/* --- Solution steps モバイル --- */
@media(max-width:760px){
  .steps-row{flex-direction:column;align-items:center;gap:16px;margin:32px 0 28px;}
  .step-group{width:100%;max-width:480px;}
  .step-group-items{flex-wrap:wrap;justify-content:center;gap:12px;}
  .step-item{width:100px;}
  .step-arrow{display:none;}
  .step-arrow--group{padding:0;transform:rotate(90deg);}
  .step-arrow--group svg{width:20px;height:20px;}
  .solution-effects{gap:8px;}
  .sol-effects-label{white-space:normal;}
  .solution-badge{font-size:13px;padding:12px 16px;text-align:center;}
}

/* --- Compare card header padding修正 --- */
@media(max-width:760px){
  .cmp-ses-hdr{padding:0 20px;justify-content:center;}
  .cmp-ses-row{padding:0 16px;font-size:13.5px;}
  .cmp-ses-row strong{font-size:15px;}
  .cmp-other-row{padding:0 16px;font-size:13px;}
}

/* --- Donut chart モバイル --- */
@media(max-width:480px){
  .alloc-chart-layout{gap:16px;}
  .alloc-donut-svg{width:160px;height:160px;}
  .alloc-side-pct{font-size:32px;}
  .alloc-chart-list li{font-size:13px;}
  .alloc-side-badge{font-size:11.5px;padding:5px 10px;}
}

/* --- フローティングCTA: モバイルで小さく --- */
@media(max-width:760px){
  .fixed-cta-label{font-size:16px;padding:16px 24px 16px 20px;gap:10px;}
  .fixed-cta-label svg{width:20px;height:20px;}
}
@media(max-width:480px){
  .fixed-cta{bottom:14px;right:14px;}
  .fixed-cta-label{font-size:14px;padding:13px 18px 13px 16px;gap:8px;}
  .fixed-cta-label svg{width:18px;height:18px;}
}

/* --- Campaign section --- */
@media(max-width:480px){
  .cpn-left{padding:36px 20px 32px;}
  .cpn-zero{font-size:clamp(60px,17vw,100px);}
  .cpn-hatsu{font-size:20px;}
  .cpn-en{font-size:28px;}
  .cpn-banner{font-size:14px;padding:8px 20px;}
  .cpn-benefits li{gap:10px;}
  .cpn-ico{width:36px;height:36px;}
  .cpn-ico svg{width:18px;height:18px;}
  .cpn-b-ttl{font-size:14px;}
}

/* --- PROBLEM section --- */
@media(max-width:480px){
  .prob-name{font-size:14px;}
  .prob-sub{font-size:12px;}
  .prob-row{padding:14px 16px;gap:12px;}
}

/* --- Tagline overflow防止 --- */
@media(max-width:760px){
  .tagline{font-size:15px;}
}

/* --- Section title サイズ調整 --- */
@media(max-width:480px){
  .section-title{font-size:clamp(20px,5.5vw,28px);}
  .section-lead{font-size:14px;margin-bottom:32px;}
  .container{padding:0 16px;}
}

/* --- Pricing モバイル --- */
@media(max-width:480px){
  .pricing-num{font-size:clamp(36px,10vw,48px);}
}

/* --- FAQ --- */
@media(max-width:480px){
  .faq-item summary{padding:16px 18px;font-size:14px;}
  .faq-answer{padding:14px 18px 18px 18px;}
}

/* --- Modal --- */
@media(max-width:480px){
  .modal-inner{padding:36px 18px 28px;}
}

/* reveal animation */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease, transform .6s ease;}
.reveal.is-visible{opacity:1;transform:translateY(0);}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none;}}

/* ===== CONTACT MODAL ===== */
.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(14,34,56,0.82);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:none;align-items:center;justify-content:center;z-index:2000;padding:20px;}
.modal-overlay.is-active{display:flex;}
.modal-container{background:var(--white);width:100%;max-width:780px;max-height:90vh;border-radius:var(--radius-lg);position:relative;overflow-y:auto;animation:modalFadeIn .38s cubic-bezier(0.16,1,0.3,1);}
@keyframes modalFadeIn{from{opacity:0;transform:translateY(22px) scale(.96);}to{opacity:1;transform:translateY(0) scale(1);}}
@keyframes fadeInUp{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}
.modal-close{position:absolute;top:18px;right:18px;background:var(--bg-soft);border:none;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:10;transition:all .2s ease;}
.modal-close svg{width:18px;height:18px;stroke:var(--text-dark);stroke-width:2;stroke-linecap:round;fill:none;}
.modal-close:hover{background:#ffdde0;transform:rotate(90deg);}
.modal-close:hover svg{stroke:#c0392b;}
.modal-inner{padding:52px 52px 48px;}
.modal-inner h2{font-size:22px;font-weight:800;color:var(--text-dark);margin:0 0 8px;}
.modal-inner .modal-sub{font-size:14px;color:var(--text-body);margin:0 0 32px;}
body.modal-open{overflow:hidden;}
.form-group{margin-bottom:20px;}
.form-label{display:block;font-weight:700;font-size:14px;color:var(--text-dark);margin-bottom:7px;}
.form-label .required{color:#c0392b;font-size:11px;margin-left:5px;background:#ffdde0;padding:2px 6px;border-radius:4px;}
.form-control{width:100%;padding:13px 16px;border-radius:var(--radius-sm);border:1.4px solid var(--border);background:var(--white);font-family:inherit;font-size:15px;color:var(--text-dark);transition:border-color .2s, box-shadow .2s;}
.form-control:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(22,160,186,0.14);}
select.form-control{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%238B98A6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:16px;}
.form-checkbox{display:flex;align-items:center;gap:10px;margin-top:24px;font-size:13.5px;color:var(--text-body);}
.form-checkbox input{width:17px;height:17px;accent-color:var(--teal);cursor:pointer;flex-shrink:0;}
.form-checkbox a{color:var(--teal-dark);text-decoration:underline;}
.form-submit-wrapper{margin-top:28px;text-align:center;}
.btn-submit{min-width:240px;font-size:16px;padding:16px 40px;}
.contact-success{display:none;text-align:center;padding:52px 32px;animation:fadeInUp .4s cubic-bezier(0.16,1,0.3,1) forwards;}
.success-ico{width:68px;height:68px;background:var(--teal-light);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 20px;}
.success-ico svg{width:30px;height:30px;stroke:var(--teal-dark);stroke-width:2.2;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.contact-success h3{font-size:22px;font-weight:800;color:var(--text-dark);margin:0 0 10px;}
.contact-success p{color:var(--text-body);font-size:14.5px;line-height:1.8;margin:0 0 28px;}
@media(max-width:640px){.modal-inner{padding:40px 22px 36px;}.modal-inner h2{font-size:19px;}}
