/* 合同会社ディバイシー ホームページ
 *
 * 名刺に合わせる。**横長・先進的・柔らかい。**
 * 角を丸く、余白を広く、色は淡い青緑から。
 * 硬い企業サイトにしない。
 *
 * 変数名に --dx- を付けて、他のサイトと衝突しないようにする
 * （促進サイトが --xk- でやっているのと同じ作り）。 */
#dxc{
  --dx-bg:#f7fafc; --dx-panel:#fff; --dx-line:#e2e9f0; --dx-ink:#14202b;
  --dx-muted:#5b6b7a; --dx-accent:#1b7fa8; --dx-accent2:#4fb3a6; --dx-on:#fff;
  --dx-r:16px;
  margin:0; background:var(--dx-bg); color:var(--dx-ink);
  font-family:system-ui,-apple-system,"Hiragino Sans","Noto Sans JP",
    "Yu Gothic UI",sans-serif;
  line-height:1.85; font-size:16px; letter-spacing:.01em;
  -webkit-font-smoothing:antialiased;
}
@media (prefers-color-scheme:dark){
  #dxc{ --dx-bg:#0e151c; --dx-panel:#151e27; --dx-line:#25313d; --dx-ink:#e8eef4;
        --dx-muted:#9aa9b8; --dx-accent:#5fb4d8; --dx-accent2:#6fd0c2;
        --dx-on:#0b1219; }
}
#dxc *{box-sizing:border-box}
#dxc .wrap{max-width:1040px;margin:0 auto;padding:0 24px}

/* --- 見出し部。**柔らかい光を敷く。** 直線的な帯にしない --- */
#dxc .hero{position:relative;overflow:hidden;padding:88px 0 76px;
  background:linear-gradient(160deg,
    color-mix(in srgb,var(--dx-accent) 9%,var(--dx-bg)) 0%,
    var(--dx-bg) 62%)}
#dxc .hero-glow{position:absolute;inset:auto -12% -55% auto;width:min(720px,88vw);
  aspect-ratio:1;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle at 50% 50%,
    color-mix(in srgb,var(--dx-accent2) 26%,transparent) 0%,
    transparent 68%);
  filter:blur(8px)}
#dxc .hero .wrap{position:relative;z-index:1}
#dxc .eyebrow{margin:0 0 12px;font-size:14px;font-weight:700;letter-spacing:.12em;
  color:var(--dx-accent)}
#dxc .brand{margin:0 0 18px;font-size:clamp(30px,5.2vw,46px);font-weight:800;
  letter-spacing:.02em;line-height:1.3}
#dxc .tagline{margin:0 0 30px;font-size:clamp(16px,2.2vw,19px);
  color:var(--dx-muted);line-height:2}
#dxc .tagline b{color:var(--dx-ink)}

#dxc .cta{display:flex;flex-wrap:wrap;gap:12px}
#dxc .btn{display:inline-block;padding:13px 26px;border-radius:999px;
  text-decoration:none;font-weight:700;font-size:15px;
  background:linear-gradient(135deg,var(--dx-accent),var(--dx-accent2));
  color:var(--dx-on);border:1px solid transparent;
  transition:transform .15s ease,box-shadow .15s ease}
#dxc .btn:hover{transform:translateY(-1px);
  box-shadow:0 6px 20px color-mix(in srgb,var(--dx-accent) 26%,transparent)}
#dxc .btn.ghost{background:var(--dx-panel);color:var(--dx-ink);
  border-color:var(--dx-line)}

/* --- 本文 --- */
#dxc .sec{padding:56px 0 8px}
#dxc h2{margin:0 0 24px;font-size:22px;font-weight:800;letter-spacing:.03em}
#dxc h2::after{content:"";display:block;width:42px;height:3px;margin-top:10px;
  border-radius:2px;
  background:linear-gradient(90deg,var(--dx-accent),var(--dx-accent2))}

#dxc .cards{display:grid;gap:18px;
  grid-template-columns:repeat(auto-fit,minmax(272px,1fr))}
#dxc .card{background:var(--dx-panel);border:1px solid var(--dx-line);
  border-radius:var(--dx-r);padding:24px 22px}
#dxc .card.soft{
  background:linear-gradient(150deg,
    color-mix(in srgb,var(--dx-accent2) 11%,var(--dx-panel)),var(--dx-panel))}
#dxc .card .k{margin:0 0 10px;font-weight:800;font-size:17px;color:var(--dx-accent)}
#dxc .card p{margin:0;font-size:14.5px;color:var(--dx-muted)}
#dxc .card p b{color:var(--dx-ink)}
#dxc .card .more{margin:14px 0 0}
#dxc .card .more a{color:var(--dx-accent);text-decoration:none;font-weight:700}
#dxc .card .more a:hover{text-decoration:underline}

#dxc .beliefs{display:grid;gap:26px;
  grid-template-columns:repeat(auto-fit,minmax(248px,1fr))}
#dxc .b-k{margin:0 0 6px;font-weight:800;font-size:16px}
#dxc .beliefs p:not(.b-k){margin:0;font-size:14.5px;color:var(--dx-muted)}
#dxc .beliefs b{color:var(--dx-ink)}

/* --- 会社概要 --- */
#dxc .info{width:100%;border-collapse:separate;border-spacing:0;
  background:var(--dx-panel);border:1px solid var(--dx-line);
  border-radius:var(--dx-r);overflow:hidden;font-size:15px}
#dxc .info th,#dxc .info td{padding:15px 20px;text-align:left;vertical-align:top;
  border-bottom:1px solid var(--dx-line)}
#dxc .info tr:last-child th,#dxc .info tr:last-child td{border-bottom:0}
#dxc .info th{width:132px;white-space:nowrap;font-weight:700;
  color:var(--dx-muted);background:color-mix(in srgb,var(--dx-accent) 4%,var(--dx-panel))}
#dxc .info a{color:var(--dx-accent);text-decoration:none;font-weight:700}
#dxc .info a:hover{text-decoration:underline}
#dxc .info .sub{color:var(--dx-muted);font-size:13px;font-weight:400}
@media (max-width:560px){
  #dxc .info th{width:96px;padding:13px 14px}
  #dxc .info td{padding:13px 14px}
}

#dxc .foot{margin-top:64px;padding:28px 0;border-top:1px solid var(--dx-line)}
#dxc .foot p{margin:0;font-size:14px;font-weight:700}
#dxc .foot .c{margin-top:4px;font-weight:400;font-size:13px;color:var(--dx-muted)}

/* ============================================================
   遊び心（2026-09-15）
   **社名も製品名も「Knot（結び目）」。** そこを動かす。
   ライブラリは使わない。弊社の作りかたそのもの。
   **動きを減らす設定の人には、何も動かさない。**
   ============================================================ */

#dxc .hero{min-height:min(88vh,760px);display:grid;align-items:center}
#dxc #knot{position:absolute;inset:0;width:100%;height:100%;
  pointer-events:none;opacity:.9}
@media (max-width:760px){ #dxc #knot{opacity:.42} }
#dxc .hero-in{position:relative;z-index:1}

/* 見出し。1文字ずつ、ほどけて結ばれるように */
#dxc .brand .ch{display:inline-block;opacity:0;
  animation:tie .72s cubic-bezier(.2,.9,.24,1) forwards}
@keyframes tie{
  from{opacity:0;transform:translateY(.5em) rotate(-8deg) scale(.86);filter:blur(4px)}
  to  {opacity:1;transform:none;filter:none}
}

/* 目印の点。静かに脈打つ */
#dxc .eyebrow{display:flex;align-items:center;gap:9px}
#dxc .dot{width:8px;height:8px;border-radius:50%;flex:none;
  background:var(--dx-accent2);
  box-shadow:0 0 0 0 color-mix(in srgb,var(--dx-accent2) 70%,transparent);
  animation:pulse 2.4s ease-out infinite}
@keyframes pulse{
  0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--dx-accent2) 60%,transparent)}
  70%{box-shadow:0 0 0 11px transparent}
  100%{box-shadow:0 0 0 0 transparent}
}

#dxc .arrow{display:inline-block;margin-left:6px;
  transition:transform .22s cubic-bezier(.2,.9,.24,1)}
#dxc a:hover .arrow,#dxc .btn:hover .arrow{transform:translateX(5px)}

/* 数字の並び */
#dxc .tiles{display:grid;gap:16px;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
#dxc .tile{position:relative;overflow:hidden;background:var(--dx-panel);
  border:1px solid var(--dx-line);border-radius:var(--dx-r);padding:22px;
  transition:transform .18s ease,box-shadow .18s ease}
#dxc .tile .n{margin:0;font-size:40px;font-weight:800;line-height:1.1;
  background:linear-gradient(120deg,var(--dx-accent),var(--dx-accent2));
  -webkit-background-clip:text;background-clip:text;color:transparent}
#dxc .tile .n small{font-size:14px;font-weight:700;margin-left:4px;
  -webkit-text-fill-color:var(--dx-muted);color:var(--dx-muted)}
#dxc .tile .t{margin:6px 0 0;font-size:13.5px;color:var(--dx-muted)}

/* カード・数字の板に、手の位置へ光を寄せる */
#dxc .card,#dxc .tile{transition:transform .18s ease,box-shadow .18s ease}
#dxc .card::before,#dxc .tile::before{content:"";position:absolute;inset:0;
  pointer-events:none;opacity:0;transition:opacity .25s ease;
  background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),
    color-mix(in srgb,var(--dx-accent2) 15%,transparent),transparent 60%)}
#dxc .card{position:relative;overflow:hidden}
#dxc .card:hover::before,#dxc .tile:hover::before{opacity:1}
#dxc .card:hover,#dxc .tile:hover{
  box-shadow:0 10px 30px color-mix(in srgb,var(--dx-accent) 13%,transparent)}

/* 考えかたの番号 */
#dxc .b-i{display:inline-block;margin-right:9px;font-size:12px;font-weight:800;
  letter-spacing:.1em;color:var(--dx-accent2);vertical-align:2px}

/* 見えたら現れる */
#dxc [data-rise]{opacity:0;transform:translateY(16px);
  transition:opacity .62s ease,transform .62s cubic-bezier(.2,.9,.24,1)}
#dxc [data-rise].in{opacity:1;transform:none}

/* **動きを減らす設定は、必ず尊重する。** 目が回る人がいる */
@media (prefers-reduced-motion:reduce){
  #dxc *,#dxc *::before{animation:none!important;transition:none!important}
  #dxc .brand .ch,  #dxc [data-rise]{opacity:1;transform:none}
}

/* 会社のモットー。**ここが一番大きく出る。** */
#dxc .motto{display:block;margin:0 0 6px;
  font-size:clamp(20px,3.2vw,28px);font-weight:800;letter-spacing:.02em;
  line-height:1.5;
  background:linear-gradient(110deg,var(--dx-accent),var(--dx-accent2));
  -webkit-background-clip:text;background-clip:text;color:transparent}
