:root{
  /* ── ロゴ由来カラー ── */
  --navy:       #0c2460;   /* ロゴ建物・最暗部 */
  --navy-mid:   #102a72;
  --navy-light: #183c84;
  --blue-mid:   #1860a8;   /* 軌道スウォッシュ */
  --orange:     #f47920;   /* "DX" オレンジ */
  --orange-hov: #e86c10;
  --orange-lt:  #f5a030;
  --orange-pale:#fff5ea;
  --red-accent: #d82430;   /* 紙飛行機 */
  --green-chart:#008448;   /* グラフ緑 */
  --gold-chart: #f0c030;   /* グラフ黄金 */
  /* ── 背景・テキスト ── */
  --bg:         #f4f7ff;   /* ブルーホワイト背景 */
  --bg-mid:     #eaeef8;
  --bg-dark:    #dde3f5;
  --white:      #ffffff;
  --text:       #1a2240;
  --text-mid:   #4a5672;
  --gray:       #7a8fb0;
  --gray-lt:    #dde3f5;
  --gray-line:  #e2e8f2;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Noto Sans JP',sans-serif;background:var(--bg);color:var(--text);overflow-x:hidden}
a{text-decoration:none;color:inherit}

/* ── HEADER ── */
header{background:var(--navy);position:sticky;top:0;z-index:200;border-bottom:3px solid var(--orange)}
.hd{max-width:1240px;margin:0 auto;padding:0 24px;display:flex;align-items:center;height:66px;gap:28px}
.logo{display:flex;align-items:center;gap:11px;flex-shrink:0}
.logo-hex{width:38px;height:38px;background:var(--orange);clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);display:flex;align-items:center;justify-content:center;font-family:'Oswald',sans-serif;font-weight:700;font-size:13px;color:white;flex-shrink:0}
.logo-main{font-size:15px;font-weight:900;color:white;letter-spacing:.03em;line-height:1.2;display:block}
.logo-sub{font-size:8px;color:rgba(255,255,255,.38);letter-spacing:.12em;text-transform:uppercase;display:block}
.hd-nav{display:flex;gap:2px;flex:1}
.hn{color:rgba(255,255,255,.55);font-size:12.5px;font-weight:500;padding:8px 12px;border-radius:5px;transition:all .18s;white-space:nowrap}
.hn:hover{color:white;background:rgba(255,255,255,.1)}
.hn.active{color:var(--orange)}
.hn-badge{background:var(--orange);color:white;font-size:8px;font-weight:900;padding:1px 5px;border-radius:3px;margin-left:4px}
.hd-cta{margin-left:auto;flex-shrink:0;background:var(--orange);color:white;font-size:12.5px;font-weight:700;padding:9px 18px;border-radius:5px;transition:background .18s;white-space:nowrap}
.hd-cta:hover{background:var(--orange-hov)}

/* ── BREADCRUMB ── */
.bc-bar{background:white;border-bottom:1px solid var(--gray-line);padding:10px 0}
.bc{max-width:1240px;margin:0 auto;padding:0 24px;display:flex;gap:6px;align-items:center;font-size:11.5px;color:var(--gray)}
.bc a{color:var(--gray);transition:color .15s}
.bc a:hover{color:var(--orange)}
.bc span{color:var(--text-mid)}

/* ── LAYOUT ── */
.page{max-width:1240px;margin:0 auto;padding:44px 24px 80px;display:grid;grid-template-columns:1fr 320px;gap:48px}

/* ── TAGS ── */
.tag{font-size:10px;font-weight:700;padding:3px 10px;border-radius:3px;letter-spacing:.04em;display:inline-block}
.t-app{background:#deeeff;color:#1a5fa8}
.t-bim{background:#d6f0e0;color:#006e38}
.t-ai {background:var(--orange-pale);color:var(--orange-hov)}
.t-sub{background:#f0e6ff;color:#6a1b9a}
.t-hot{background:var(--orange);color:white}
.t-new{background:var(--navy);color:white}
.t-grant{background:#d6f0e0;color:#006e38}
.t-ico{background:var(--gray-lt);color:var(--text-mid)}
.t-red{background:#ffe0e0;color:var(--red-accent)}

/* ── ARTICLE ── */
.art-head{margin-bottom:28px}
.art-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.art-date{font-size:11px;color:var(--gray)}
.art-h1{font-size:clamp(22px,3vw,32px);font-weight:900;color:var(--navy);line-height:1.35;letter-spacing:-.02em;margin-bottom:12px}
.art-lead{font-size:14px;color:var(--text-mid);line-height:1.9;padding:18px 20px;background:white;border-radius:8px;border-left:4px solid var(--orange);box-shadow:0 2px 12px rgba(12,36,96,.06)}

.art-content{background:white;border-radius:10px;padding:36px 40px;box-shadow:0 2px 16px rgba(12,36,96,.07);margin-bottom:32px}
.art-content h2{font-size:20px;font-weight:900;color:var(--navy);border-left:4px solid var(--orange);padding-left:14px;margin:36px 0 16px}
.art-content h2:first-child{margin-top:0}
.art-content h3{font-size:16px;font-weight:700;color:var(--navy-mid);margin:24px 0 12px;display:flex;align-items:center;gap:8px}
.art-content h3::before{content:'▶';color:var(--orange);font-size:10px}
.art-content p{font-size:14px;color:var(--text-mid);line-height:1.9;margin-bottom:16px}
.art-content p:last-child{margin-bottom:0}
.art-content ul,.art-content ol{margin:12px 0 20px 20px}
.art-content li{font-size:13.5px;color:var(--text-mid);line-height:1.8;margin-bottom:6px}
.art-content strong{color:var(--navy);font-weight:700}
.art-content a{color:var(--blue-mid);text-decoration:underline}

/* ── BOXES ── */
.box-orange{background:var(--orange-pale);border:1px solid #ffd8b8;border-radius:8px;padding:18px 20px;margin:20px 0}
.box-orange-title{font-size:13px;font-weight:700;color:var(--orange-hov);margin-bottom:8px;display:flex;align-items:center;gap:6px}
.box-green{background:#eaf6ee;border:1px solid #b8dfc4;border-radius:8px;padding:18px 20px;margin:20px 0}
.box-green-title{font-size:13px;font-weight:700;color:#006e38;margin-bottom:8px}
.box-navy{background:var(--navy);border-radius:8px;padding:18px 20px;margin:20px 0}
.box-navy-title{font-size:13px;font-weight:700;color:var(--orange);margin-bottom:8px}
.box-navy p{color:rgba(255,255,255,.8);font-size:13px;line-height:1.8}
.box-blue{background:#eaf1ff;border:1px solid #c0d4f8;border-radius:8px;padding:18px 20px;margin:20px 0}
.box-blue-title{font-size:13px;font-weight:700;color:var(--navy);margin-bottom:8px}

/* ── TABLE ── */
.art-content table{width:100%;border-collapse:collapse;font-size:13px;margin:16px 0}
.art-content thead tr{background:var(--navy);color:white}
.art-content th{padding:11px 14px;text-align:left;font-size:11.5px;font-weight:700;letter-spacing:.03em}
.art-content tbody tr{border-bottom:1px solid var(--gray-line)}
.art-content tbody tr:hover{background:#f0f5ff}
.art-content td{padding:11px 14px;color:var(--text-mid)}
.art-content td:first-child{font-weight:700;color:var(--navy)}

/* ── PARTNER CARD（社名なし・ロゴマーク） ── */
.partner-card{background:linear-gradient(135deg,var(--navy),var(--navy-light));border-radius:12px;padding:28px 32px;margin:32px 0;position:relative;overflow:hidden;border:1px solid rgba(244,121,32,.22)}
.partner-card::before{content:'';position:absolute;inset:0;background-image:repeating-linear-gradient(45deg,rgba(244,121,32,.04) 0,rgba(244,121,32,.04) 1px,transparent 1px,transparent 14px)}
.partner-card::after{content:'';position:absolute;right:-48px;bottom:-48px;width:160px;height:160px;border-radius:50%;background:radial-gradient(circle,rgba(244,121,32,.12) 0%,transparent 70%)}
.pc-inner{position:relative;z-index:1}
.pc-logo{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.pc-hex{width:44px;height:44px;background:var(--orange);clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);display:flex;align-items:center;justify-content:center;font-family:'Oswald',sans-serif;font-weight:700;font-size:14px;color:white;flex-shrink:0}
.pc-label{font-size:10px;font-weight:700;color:var(--orange);letter-spacing:.12em;text-transform:uppercase}
.pc-title{font-size:19px;font-weight:900;color:white;line-height:1.4;margin-bottom:10px}
.pc-title em{color:var(--orange);font-style:normal}
.pc-desc{font-size:13px;color:rgba(255,255,255,.7);line-height:1.85;margin-bottom:20px}
.pc-features{list-style:none;margin-bottom:22px;display:flex;flex-direction:column;gap:7px}
.pc-features li{font-size:12.5px;color:rgba(255,255,255,.8);display:flex;align-items:center;gap:8px}
.pc-features li::before{content:'✓';color:var(--orange);font-weight:900;flex-shrink:0}
.pc-btn{display:inline-flex;align-items:center;gap:8px;background:var(--orange);color:white;padding:13px 26px;border-radius:6px;font-size:14px;font-weight:700;transition:background .18s,transform .15s}
.pc-btn:hover{background:var(--orange-hov);transform:translateY(-1px)}

/* ── CTA WIDGET（サイドバー・社名なし） ── */
.cta-w{background:linear-gradient(145deg,var(--navy),var(--navy-light));border-radius:10px;overflow:hidden;position:relative;box-shadow:0 4px 22px rgba(12,36,96,.22)}
.cta-w::before{content:'';position:absolute;inset:0;background-image:repeating-linear-gradient(45deg,rgba(244,121,32,.035) 0,rgba(244,121,32,.035) 1px,transparent 1px,transparent 15px)}
.cta-body{padding:20px;position:relative;z-index:1}
.cta-logo{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.cta-hex{width:36px;height:36px;background:var(--orange);clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);display:flex;align-items:center;justify-content:center;font-family:'Oswald',sans-serif;font-weight:700;font-size:12px;color:white;flex-shrink:0}
.cta-site-label{font-size:9px;font-weight:700;color:rgba(255,255,255,.38);letter-spacing:.1em;text-transform:uppercase;display:block}
.cta-title{font-size:16px;font-weight:900;color:white;line-height:1.45;margin-bottom:10px}
.cta-title span{color:var(--orange)}
.cta-desc{font-size:12px;color:rgba(255,255,255,.6);line-height:1.8;margin-bottom:14px}
.cta-list{list-style:none;margin-bottom:18px;display:flex;flex-direction:column;gap:6px}
.cta-list li{font-size:12px;color:rgba(255,255,255,.78);display:flex;align-items:center;gap:6px}
.cta-list li::before{content:'✓';color:var(--orange);font-weight:900;flex-shrink:0}
.cta-btn{display:block;background:var(--orange);color:white;text-align:center;padding:12px;border-radius:6px;font-size:13px;font-weight:700;transition:background .18s}
.cta-btn:hover{background:var(--orange-hov)}

/* ── RELATED ARTICLES ── */
.rel-list{display:flex;flex-direction:column}
.rel-item{display:flex;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--gray-line);transition:padding-left .15s}
.rel-item:last-child{border-bottom:none}
.rel-item:hover{padding-left:4px}
.rel-item:hover .rel-title{color:var(--orange)}
.rel-thumb{width:52px;height:40px;border-radius:5px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:18px}
.rel-body{flex:1;min-width:0}
.rel-tag{font-size:9px;font-weight:700;margin-bottom:3px;display:block}
.rel-title{font-size:12px;font-weight:700;color:var(--navy);line-height:1.4;transition:color .15s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ── WIDGETS ── */
.widget{background:white;border-radius:10px;overflow:hidden;box-shadow:0 2px 14px rgba(12,36,96,.07)}
.wh{background:var(--navy);padding:12px 18px;display:flex;align-items:center;gap:8px}
.wh-ico{font-size:14px}
.wh-title{font-size:12.5px;font-weight:700;color:white}
.wb{padding:16px 18px}

/* ── FOOTER ── */
footer{background:var(--navy)}
.ft-bot{max-width:1240px;margin:0 auto;padding:22px 24px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid rgba(255,255,255,.08)}
.ft-copy{font-size:11px;color:rgba(255,255,255,.22)}
.ft-partner{font-size:11px;color:rgba(255,255,255,.2);display:flex;align-items:center;gap:8px}
.ft-partner-hex{width:20px;height:20px;background:var(--orange);clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);display:flex;align-items:center;justify-content:center;font-family:'Oswald',sans-serif;font-weight:700;font-size:7px;color:white}
.ft-partner a{color:rgba(244,121,32,.6);transition:color .15s}
.ft-partner a:hover{color:var(--orange)}
.ft-nav{max-width:1240px;margin:0 auto;padding:32px 24px 20px;display:flex;gap:48px;flex-wrap:wrap}
.ft-col h4{font-size:11px;font-weight:700;color:rgba(255,255,255,.36);letter-spacing:.1em;text-transform:uppercase;margin-bottom:12px}
.ft-col ul{list-style:none;display:flex;flex-direction:column;gap:8px}
.ft-col ul li a{font-size:12.5px;color:var(--gray);transition:color .15s}
.ft-col ul li a:hover{color:white}

/* ── STEP LIST ── */
.step-list{counter-reset:step;display:flex;flex-direction:column;gap:16px;margin:16px 0}
.step{display:flex;gap:16px;align-items:flex-start}
.step-num{width:36px;height:36px;background:var(--orange);color:white;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'Oswald',sans-serif;font-weight:700;font-size:16px;flex-shrink:0}
.step-title{font-size:14px;font-weight:700;color:var(--navy);margin-bottom:4px}
.step-desc{font-size:13px;color:var(--text-mid);line-height:1.7}

/* ── RESPONSIVE ── */
@media(max-width:900px){.page{grid-template-columns:1fr}.hd-nav{display:none}.hd-cta{font-size:11px;padding:8px 12px}}
