:root{ --fixed-header-h:72px; }

/* ===== narumi-sub.css（下層共通・CMSパーツ） ===== */
/* narumi-sub.css — 下層ページ共通スタイル (pattern4-v2 デザインシステム) */

/* ============================================================
   デザイントークン
   ============================================================ */
:root {
  --bg:#ffffff; --bg-soft:#f4f7fb; --bg-soft2:#eef3fa;
  --ink:#0d1b2a; --ink-2:#3a4a5b; --ink-3:#566273;
  --navy-deep:#091320; --blue:#1763d6; --blue-bright:#2f8fff; --blue-deep:#0d3b8c;
  --blue-soft:rgba(23,99,214,0.08);
  --blue-grad:linear-gradient(135deg,#1763d6,#2f8fff);
  --line:#e3e9f0; --line-2:#d4deea;
  --font-sans:'Noto Sans JP',sans-serif; --font-serif:'Noto Serif JP',serif; --font-en:'Inter',sans-serif;
  --radius-sm:4px; --radius-md:10px; --radius-lg:18px;
  --trans:0.35s cubic-bezier(.22,1,.36,1); --ease:cubic-bezier(.22,1,.36,1);
  --max-w:1200px; --max-w-wide:1340px;
}

/* ============================================================
   リセット・ベース
   ============================================================ */
*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body {
  font-family:var(--font-sans);
  color:var(--ink);
  background:var(--bg);
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  font-feature-settings:"palt";
  padding-top:72px;
}
img { max-width:100%; height:auto; display:block; }
a { color:inherit; text-decoration:none; transition:color var(--trans); }
button { cursor:pointer; background:none; border:none; font:inherit; }
ul, ol { list-style:none; }
:focus-visible { outline:2px solid var(--blue); outline-offset:3px; }

/* ============================================================
   ヘッダー
   ============================================================ */
#site-header {
  position:fixed; top:0; left:0; right:0; z-index:200;
  background:rgba(255,255,255,.85); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid transparent;
  transition:box-shadow var(--trans), border-color var(--trans), background var(--trans);
  height:72px;
}
#site-header.scrolled {
  box-shadow:0 2px 24px rgba(13,27,42,.07);
  border-bottom-color:var(--line);
  background:rgba(255,255,255,.95);
}

.header-inner {
  display:flex;
  align-items:center;
  gap:1.5rem;
  max-width:var(--max-w-wide);
  margin:0 auto;
  padding:0 clamp(1.25rem,4vw,2.5rem);
  height:100%;
  justify-content:space-between;
}

/* ロゴ */
.brand-logo {
  display:flex; flex-direction:column; align-items:flex-start;
  gap:.28rem; line-height:1; flex-shrink:0;
}
.brand-logo img,
.brand-logo .logo-img { height:26px; width:auto; }
.brand-logo .logo-license {
  font-size:.56rem; font-weight:500; letter-spacing:.07em; color:var(--ink-3);
  font-family:var(--font-sans); white-space:nowrap;
}

/* デスクトップナビ */
.header-inner > nav {
  display:flex; align-items:center; gap:.05rem;
  margin-left:auto;
}
.header-inner > nav > a {
  font-size:.8rem; font-weight:500; color:var(--ink-2);
  padding:.5rem .7rem; border-radius:var(--radius-sm);
  letter-spacing:.03em; white-space:nowrap;
  min-height:44px; display:inline-flex; align-items:center;
  position:relative;
  transition:color var(--trans);
}
.header-inner > nav > a::after {
  content:''; position:absolute; left:.7rem; right:.7rem; bottom:.6rem;
  height:1px; background:var(--blue);
  transform:scaleX(0); transform-origin:left;
  transition:transform var(--trans);
}
.header-inner > nav > a:hover { color:var(--blue); }
.header-inner > nav > a:hover::after { transform:scaleX(1); }

/* ドロップダウントリガー */
.nav-has-dd { position:relative; }
.nav-dd-trigger {
  display:inline-flex; align-items:center; gap:.12rem;
  font-size:.8rem; font-weight:500; color:var(--ink-2);
  padding:.5rem .7rem; border-radius:var(--radius-sm);
  letter-spacing:.03em; white-space:nowrap;
  min-height:44px; position:relative;
  transition:color var(--trans);
}
.nav-dd-trigger::after {
  content:''; position:absolute; left:.7rem; right:.7rem; bottom:.6rem;
  height:1px; background:var(--blue);
  transform:scaleX(0); transform-origin:left;
  transition:transform var(--trans);
}
.nav-has-dd:hover .nav-dd-trigger,
.nav-dd-trigger[aria-expanded="true"] { color:var(--blue); }
.nav-has-dd:hover .nav-dd-trigger::after,
.nav-dd-trigger[aria-expanded="true"]::after { transform:scaleX(1); }
.nav-dd-icon {
  font-size:.85rem; display:flex; align-items:center;
  transition:transform .25s var(--ease);
  font-family:'Material Symbols Rounded';
}
.nav-has-dd:hover .nav-dd-icon,
.nav-dd-trigger[aria-expanded="true"] .nav-dd-icon { transform:rotate(180deg); }

/* ドロップダウンパネル */
.nav-dd-panel {
  position:absolute; top:calc(100% + 6px); left:50%;
  transform:translateX(-50%) translateY(-6px);
  background:var(--bg); border:1px solid var(--line);
  border-radius:var(--radius-lg);
  box-shadow:0 20px 50px -16px rgba(13,27,42,.16);
  padding:.4rem;
  display:flex; flex-direction:column; min-width:220px;
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .2s .25s var(--ease), transform .2s .25s var(--ease), visibility .2s .25s;
  z-index:300;
}
.nav-dd-panel::before {
  content:''; position:absolute; top:-18px; left:-20px; right:-20px; height:18px;
}
.nav-has-dd:hover .nav-dd-panel,
.nav-dd-panel.open {
  opacity:1; visibility:visible; pointer-events:auto;
  transform:translateX(-50%) translateY(0);
  transition:opacity .2s var(--ease), transform .2s var(--ease), visibility .2s;
}

/* nd-card（ドロップダウン内カード） */
.nd-card {
  display:flex; flex-direction:row; align-items:center; gap:.75rem;
  border-radius:var(--radius-md); border:none;
  padding:.55rem .75rem; color:inherit; text-decoration:none; background:transparent;
  transition:background .18s; min-height:48px;
}
.nd-card:hover { background:rgba(23,99,214,.07); }
.nd-img { width:64px; height:42px; flex-shrink:0; border-radius:4px; overflow:hidden; }
.nd-img img { width:100%; height:100%; object-fit:cover; transition:transform .4s var(--ease); }
.nd-card:hover .nd-img img { transform:scale(1.06); }
.nd-body { display:flex; align-items:center; gap:.5rem; }
.nd-num { font-family:var(--font-en); font-size:.62rem; font-weight:600; letter-spacing:.18em; color:var(--blue); white-space:nowrap; }
.nd-name { font-size:.85rem; font-weight:700; color:var(--ink); white-space:nowrap; }
.nd-sub { font-size:.71rem; color:var(--ink-3); margin-top:0; line-height:1.4; white-space:nowrap; }

/* お問い合わせボタン */
.btn-contact {
  background:var(--blue-grad); color:#fff;
  padding:.6rem 1.3rem; border-radius:var(--radius-sm);
  font-size:.82rem; font-weight:500; white-space:nowrap;
  min-height:44px; display:inline-flex; align-items:center; flex-shrink:0;
  box-shadow:0 6px 18px -8px rgba(23,99,214,.7);
  transition:transform var(--trans), box-shadow var(--trans);
}
.btn-contact:hover {
  transform:translateY(-2px);
  box-shadow:0 10px 24px -8px rgba(23,99,214,.8);
  color:#fff;
}

/* ハンバーガー */
.menu-toggle {
  display:none; flex-direction:column; justify-content:center;
  align-items:center; gap:5px;
  width:44px; height:44px; border-radius:var(--radius-sm);
  flex-shrink:0;
  transition:background var(--trans);
}
.menu-toggle:hover { background:var(--bg-soft); }
.menu-toggle span {
  display:block; width:22px; height:1.5px;
  background:var(--ink); border-radius:2px;
  transition:transform var(--trans), opacity var(--trans);
}
.menu-toggle[aria-expanded="true"] span:nth-child(1) { transform:translateY(6.5px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity:0; transform:scaleX(0); }
.menu-toggle[aria-expanded="true"] span:nth-child(3) { transform:translateY(-6.5px) rotate(-45deg); }

/* ============================================================
   モバイルメニュー
   ============================================================ */
.mobile-menu {
  display:none;
  position:fixed; top:72px; left:0; right:0; z-index:190;
  background:var(--bg); border-bottom:1px solid var(--line);
  padding:1rem 1.5rem 1.5rem;
  transform:translateY(-10px); opacity:0;
  transition:transform .3s var(--ease), opacity .3s var(--ease);
}
.mobile-menu.open { transform:translateY(0); opacity:1; }

.mobile-menu a {
  display:block; padding:.8rem 0;
  border-bottom:1px solid var(--line);
  font-size:.95rem; color:var(--ink);
  transition:color var(--trans);
}
.mobile-menu a:hover { color:var(--blue); }

.mobile-service-head {
  display:block; padding:.8rem 0;
  border-bottom:1px solid var(--line);
  font-size:.95rem; color:var(--ink-3); font-weight:500;
}
.mobile-service-sub a {
  padding:.7rem 0 .7rem 1.1rem;
  border-bottom:1px solid var(--line);
  font-size:.9rem; color:var(--ink-2);
}
.mobile-service-sub a::before {
  content:'— '; color:var(--blue); font-size:.75rem;
}

.mobile-cta {
  margin-top:1rem;
  text-align:center; background:var(--blue-grad) !important;
  color:#fff !important; padding:1rem !important;
  border-radius:var(--radius-sm) !important;
  font-weight:500 !important; border-bottom:none !important;
}

/* ============================================================
   ページヘッダー（Option C: タイトルカードオーバーラップ）
   ============================================================ */

/* pagehead: 短い暗帯 */
.pagehead {
  background:var(--navy-deep);
  position:relative; overflow:hidden;
  min-height:clamp(100px,14vw,160px);
}
.pagehead-bg {
  position:absolute; inset:0;
  background-size:cover; background-position:center;
  opacity:.22;
  filter:saturate(.7) brightness(.85);
}
.pagehead-bgword { display:none; }
.pagehead-top {
  position:relative; z-index:2;
  max-width:var(--max-w); margin:0 auto;
  padding:clamp(1.2rem,3vw,2rem) 1.5rem;
}
.pagehead-en {
  font-family:var(--font-en); font-size:.7rem; font-weight:600;
  letter-spacing:.28em; color:rgba(255,255,255,.4);
  text-transform:uppercase; display:block;
}

/* パンくず（カード外・ダーク配色） */
.bc-wrap {
  max-width:var(--max-w); margin:.65rem auto 0; padding:0 1.5rem;
}
.breadcrumb ol {
  display:flex; align-items:center; gap:.4rem; flex-wrap:wrap;
  font-size:.72rem; list-style:none; padding:0; margin:0;
  color:var(--ink-3);
}
.breadcrumb li { display:flex; align-items:center; gap:.4rem; }
.breadcrumb .sep { color:var(--line-2); }
.breadcrumb a { color:var(--ink-3); transition:color var(--trans); }
.breadcrumb a:hover { color:var(--blue); }
.breadcrumb li:last-child { color:var(--ink-2); }

/* floating title card: pagehead底辺に重なる */
.pagehead-card {
  position:relative; z-index:10;
  margin-top:clamp(-80px,-9vw,-56px);
  padding:0 1.5rem;
}
.pagehead-card-inner {
  max-width:var(--max-w); margin:0 auto;
  background:#fff;
  border-radius:var(--radius-lg);
  padding:clamp(1.5rem,3.5vw,2.5rem) clamp(1.5rem,4vw,3rem);
  box-shadow:0 20px 56px rgba(9,19,32,.12), 0 2px 8px rgba(9,19,32,.05);
  border:1px solid var(--line);
}
.pagehead-card-inner h1 {
  font-family:var(--font-serif); font-weight:900;
  font-size:clamp(1.75rem,4.5vw,2.8rem);
  line-height:1.2; letter-spacing:.03em; color:var(--ink);
  margin-bottom:.9rem; word-break:auto-phrase;
}
.pagehead-card-inner .ac { color:var(--blue); }
.pagehead-card-inner p {
  font-size:clamp(.875rem,1.5vw,1rem);
  color:var(--ink-2); line-height:1.9; margin:0;
}
/* pagehead-cardの直後のsecは上パディング調整 */
.pagehead-card + .sec,
.pagehead-card + section { padding-top:clamp(3.5rem,7vw,6rem); }

/* ============================================================
   セクション共通 (.sec)
   ============================================================ */
.sec {
  padding:clamp(5rem,10vw,9rem) 1.5rem;
  position:relative; overflow:hidden;
}
.sec-paper { background:var(--bg-soft); }
.sec-paper2 { background:var(--bg-soft2); }
.has-bg .bgword {
  position:absolute; font-family:var(--font-en); font-weight:900;
  font-size:clamp(5rem,14vw,12rem); letter-spacing:-.02em;
  color:rgba(23,99,214,.04); white-space:nowrap; line-height:1;
  user-select:none; pointer-events:none; z-index:0;
}
.bgword.tr { top:-1rem; right:-2rem; }
.bgword.tl { top:-1rem; left:-2rem; }

.container {
  max-width:var(--max-w); margin:0 auto;
  position:relative; z-index:2;
}

/* shead */
.shead {
  display:flex; gap:1.5rem; align-items:flex-end;
  margin-bottom:clamp(2rem,5vw,3.5rem);
}
.vtag, .shead .en {
  font-family:var(--font-en); font-size:.75rem; font-weight:600;
  letter-spacing:.3em; color:var(--blue); text-transform:uppercase;
}
.vtag {
  writing-mode:vertical-rl; white-space:nowrap;
  flex-shrink:0;
}
.htxt .en { writing-mode:horizontal-tb; margin-bottom:.4rem; display:block; }

/* タイトル */
.ttl, h2.ttl {
  font-family:var(--font-serif); font-weight:700;
  font-size:clamp(1.7rem,4vw,2.8rem);
  letter-spacing:.04em; line-height:1.25;
  color:var(--ink);
}
.ttl .ac, h2.ttl .ac { color:var(--blue); }
.ac { color:var(--blue); }

/* ============================================================
   テキスト要素
   ============================================================ */
.prose {
  font-size:1rem; color:var(--ink-2);
  line-height:2; max-width:44em;
}
.prose p + p { margin-top:1em; }

.lead-lg {
  font-size:clamp(1.2rem,2.5vw,1.8rem);
  font-weight:700; font-family:var(--font-serif);
  color:var(--ink); line-height:1.5;
}
.lead-lg .ac { color:var(--blue); }

.stitle, h3.stitle {
  font-family:var(--font-serif); font-size:clamp(1.1rem,2vw,1.4rem);
  color:var(--ink); font-weight:700;
  margin-top:3rem; margin-bottom:1.25rem; padding-bottom:.6rem;
  display:inline-block; position:relative;
}
.stitle + .miniflow { margin-top:0; }
.stitle + .imgrow   { margin-top:0; }
.stitle + .point-list { margin-top:0; }
.stitle::after {
  content:''; position:absolute; bottom:0; left:0;
  width:100%; height:2px; background:var(--blue);
  transform:scaleX(0); transform-origin:left;
}
.mt { margin-top:3rem; }

.note-sm { font-size:.8rem; color:var(--ink-3); margin-top:.75rem; }
.ulink { color:var(--blue); display:inline-flex; align-items:center; gap:.4rem; font-size:.9rem; }
.ulink svg { width:16px; height:16px; }
.ulink:hover { text-decoration:underline; }

/* ============================================================
   ボタン
   ============================================================ */
.btn {
  display:inline-flex; align-items:center; justify-content:center;
  gap:.5rem; padding:.9rem 1.9rem;
  border-radius:var(--radius-sm); font-size:.9rem; font-weight:500;
  min-height:44px; cursor:pointer;
  transition:opacity var(--trans), transform var(--trans), box-shadow var(--trans);
  text-decoration:none;
  font-family:var(--font-sans);
}
.btn:hover { opacity:.85; transform:translateY(-1px); }
.btn .ico { display:flex; align-items:center; }
.btn .ico svg { width:18px; height:18px; }

.btn-primary {
  background:var(--blue-grad); color:#fff;
  box-shadow:0 10px 26px -12px rgba(23,99,214,.8);
  display:inline-flex; align-items:center; justify-content:center;
  gap:.5rem; padding:.9rem 1.9rem;
  border-radius:var(--radius-sm); font-size:.9rem; font-weight:500;
  min-height:44px; letter-spacing:.04em;
  transition:transform var(--trans), box-shadow var(--trans);
}
.btn-primary:hover { transform:translateY(-3px); box-shadow:0 16px 32px -12px rgba(23,99,214,.85); color:#fff; }

.btn-white {
  background:var(--blue-grad); color:#fff;
  box-shadow:0 4px 16px rgba(23,99,214,.25);
}
.btn-ghost {
  border:1px solid rgba(255,255,255,.5);
  color:#fff; background:transparent;
}
.btn-ghost:hover { background:rgba(255,255,255,.22) !important; border-color:rgba(255,255,255,.8) !important; color:#ffffff !important; }

.btn-row {
  display:flex; flex-wrap:wrap; gap:.85rem; justify-content:center;
}

/* ============================================================
   カードグリッド (.icard / .cardgrid)
   ============================================================ */
.cardgrid { display:grid; gap:1.25rem; }
.cardgrid.c4 { grid-template-columns:repeat(2,1fr); }
.cardgrid.c3 { grid-template-columns:repeat(3,1fr); }

.icard {
  background:#fff; border:1px solid var(--line);
  border-radius:var(--radius-lg); padding:1.75rem 1.5rem;
  transition:box-shadow var(--trans), transform var(--trans);
}
.icard:hover { box-shadow:0 8px 24px rgba(23,99,214,.08); transform:translateY(-2px); }
.icard h4 {
  font-family:var(--font-serif); font-weight:700;
  font-size:1rem; color:var(--ink); margin-bottom:.6rem;
}
.icard p { font-size:.875rem; color:var(--ink-2); line-height:1.7; }
.icard .ic-num {
  display:block; font-family:var(--font-en); font-size:.7rem;
  font-weight:700; color:var(--blue); letter-spacing:.1em; margin-bottom:.4rem;
}

/* ============================================================
   スペックテーブル (.spec)
   ============================================================ */
.spec {
  border-collapse:collapse; width:100%;
  font-size:.9rem;
}
.spec th, .spec td {
  padding:.85rem 1rem; text-align:left;
  border-bottom:1px solid var(--line);
}
.spec th {
  font-family:var(--font-serif); font-weight:700;
  color:var(--ink); white-space:nowrap; width:11em;
  background:var(--bg-soft);
}
.spec td { color:var(--ink-2); }

/* ============================================================
   2カラム (.split)
   ============================================================ */
.split {
  display:grid; grid-template-columns:1.1fr .9fr;
  gap:clamp(2rem,5vw,4rem); align-items:start;
}
.split.wide-l { grid-template-columns:1.4fr 1fr; }

.fig { border-radius:var(--radius-lg); overflow:hidden; background:var(--bg-soft); }
.fig.tall { aspect-ratio:4/3; }
.fig .ph {
  display:flex; align-items:center; justify-content:center;
  flex-direction:column; gap:.5rem;
  height:100%; min-height:200px;
  font-size:.85rem; color:var(--ink-3); text-align:center;
  background:var(--bg-soft2); padding:1rem;
}
.fig img { width:100%; height:100%; object-fit:cover; }

/* ============================================================
   画像グリッド (.imgrow)
   ============================================================ */
.imgrow {
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:1rem; margin-top:1.5rem;
}
.imgrow .ph, .imgrow img {
  aspect-ratio:4/3; width:100%; border-radius:var(--radius-md);
  object-fit:cover; background:var(--bg-soft2);
  display:flex; align-items:center; justify-content:center;
  font-size:.8rem; color:var(--ink-3);
}

/* ============================================================
   フロー (.miniflow)
   ============================================================ */
.miniflow {
  display:grid; grid-template-columns:1fr; gap:1rem;
  margin-top:2rem; counter-reset:flow;
}
@media (min-width:560px) { .miniflow { grid-template-columns:1fr 1fr; } }
@media (min-width:1024px) { .miniflow { grid-template-columns:repeat(5,1fr); gap:.75rem; } }
.mf {
  background:#fff; border:1px solid var(--line); border-radius:var(--radius-md);
  padding:1.5rem 1.25rem; display:flex; gap:.9rem; align-items:flex-start;
  position:relative;
}
.mf + .mf::before { display:none; }
.mf .n {
  font-family:var(--font-en); font-weight:700; font-size:1rem; color:#fff;
  background:var(--blue-grad); width:34px; height:34px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.mf .l {
  font-family:var(--font-serif); font-weight:600; font-size:.98rem;
  color:var(--ink); line-height:1.4; align-self:center;
}
@media (min-width:1024px) {
  .mf:not(:last-child)::after {
    content:'chevron_right'; font-family:'Material Symbols Rounded';
    position:absolute; right:-.85rem; top:50%; transform:translateY(-50%);
    color:var(--line-2); font-size:1.3rem; z-index:3;
  }
}

/* flow-steps — トップページ同一デザイン流用 */
.flow-steps { display:grid; grid-template-columns:1fr; gap:1rem; margin-top:1.5rem; counter-reset:flow; }
@media (min-width:560px) { .flow-steps { grid-template-columns:1fr 1fr; } }
@media (min-width:1024px) { .flow-steps { grid-template-columns:repeat(5,1fr); gap:.75rem; } }
.flow-step { background:#fff; border:1px solid var(--line); border-radius:var(--radius-md); padding:1.5rem 1.25rem; display:flex; gap:.9rem; align-items:flex-start; position:relative; }
.flow-step .n { font-family:var(--font-en); font-weight:700; font-size:1rem; color:#fff; background:var(--blue-grad); width:34px; height:34px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.flow-step .t { font-family:var(--font-serif); font-weight:600; font-size:.98rem; color:var(--ink); line-height:1.4; }
.flow-step .d { font-size:.78rem; color:var(--ink-3); margin-top:.25rem; }
@media (min-width:1024px) { .flow-step:not(:last-child)::after { content:'chevron_right'; font-family:'Material Symbols Rounded'; position:absolute; right:-.85rem; top:50%; transform:translateY(-50%); color:var(--line-2); font-size:1.3rem; z-index:3; } }

/* ============================================================
   FAQ (.faq details)
   ============================================================ */
.faq {
  display:grid; grid-template-columns:1fr; gap:1.25rem; margin-top:0;
}
@media (min-width:680px) { .faq { grid-template-columns:1fr 1fr; } }
.faq details {
  background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:1.75rem 1.6rem;
}
.faq details > summary {
  display:block; list-style:none; padding:0; margin-bottom:.9rem;
  font-family:var(--font-serif); font-weight:600; font-size:1.05rem;
  color:var(--ink); line-height:1.6;
  pointer-events:none; cursor:default; user-select:none;
}
.faq details > summary::-webkit-details-marker { display:none; }
.faq details > summary::after { display:none; }
.faq details > summary .mk { display:none; }
.faq .ans {
  display:block !important;
  font-size:.9375rem; color:var(--ink-2); line-height:1.85;
  padding-top:.9rem; border-top:1px dashed var(--line-2);
}

/* ============================================================
   CTA バンド (.cta-band)
   ============================================================ */
.cta-band {
  background:var(--navy-deep); color:#fff;
  text-align:center; position:relative; overflow:hidden;
}
.cta-band::before {
  content:''; position:absolute; inset:0;
  background:radial-gradient(ellipse 80% 60% at 50% 50%,rgba(23,99,214,.25),transparent);
  pointer-events:none;
}
.cta-band .inner {
  position:relative; z-index:2;
  max-width:700px; margin:0 auto;
}
.cta-band .bg {
  position:absolute; inset:0; z-index:0; overflow:hidden;
}
.cta-band .bg .ph {
  display:block; width:100%; height:100%;
  background:var(--navy-deep);
}
.cta-band h2 {
  font-family:var(--font-serif); font-weight:900;
  font-size:clamp(1.4rem,3vw,2rem);
  letter-spacing:.04em; margin-bottom:1rem;
}
.cta-band p { font-size:.95rem; color:rgba(255,255,255,.72); margin-bottom:2rem; }
.cta-band .tel {
  margin-top:1.5rem; display:flex; flex-direction:column;
  align-items:center; gap:.3rem;
  font-size:.82rem; color:rgba(255,255,255,.6); text-align:center;
}
.cta-band .tel .lb,
.cta-band .tel .hours { font-size:.82rem; color:rgba(255,255,255,.6); }
.cta-band .tel .num {
  font-family:var(--font-en); font-weight:300;
  font-size:clamp(1.8rem,5vw,2.6rem);
  color:#fff; letter-spacing:.06em; line-height:1.2; display:block;
}

/* ============================================================
   タイムライン (.history)
   ============================================================ */
.history { display:flex; flex-direction:column; gap:0; }
.history li {
  display:flex; align-items:flex-start; gap:1rem;
  padding:1rem 0; border-bottom:1px solid var(--line);
  position:relative;
}
.history li .dot {
  width:10px; height:10px; border-radius:50%;
  background:var(--blue); flex-shrink:0; margin-top:.35rem;
}
.history li .yr {
  font-family:var(--font-en); font-weight:700; color:var(--blue);
  font-size:.95rem; min-width:7em; flex-shrink:0;
}
.history li .tx { font-size:.9rem; color:var(--ink-2); }

/* ============================================================
   プロ&リンクアロー
   ============================================================ */
.link-arrow {
  display:inline-flex; align-items:center; gap:.4rem;
  color:var(--blue); font-size:.9rem; font-weight:500;
}
.link-arrow svg { width:16px; height:16px; }
.link-arrow:hover { text-decoration:underline; }

.point-list { display:flex; flex-direction:column; gap:.5rem; margin-top:1rem; }
.point-list li {
  display:flex; align-items:center; gap:.75rem;
  font-size:.925rem; color:var(--ink-2); padding:.4rem 0;
}
.point-list li::before {
  content:''; flex-shrink:0; width:6px; height:6px;
  border-radius:50%; background:var(--blue);
}

/* ============================================================
   フッター
   ============================================================ */
.footer-cta {
  display:grid; grid-template-columns:1fr 1fr;
}
.footer-cta > a {
  position:relative; overflow:hidden; display:block;
  min-height:220px; cursor:pointer;
}
.footer-cta > a .bg {
  position:absolute; inset:0; z-index:0; background:var(--navy-deep);
  transition:transform var(--trans);
}
.footer-cta > a:hover .bg { transform:scale(1.03); }
.footer-cta > a .bg .ph {
  display:block; width:100%; height:100%; background:var(--navy-deep);
}
.footer-cta > a::after {
  content:''; position:absolute; inset:0; z-index:1;
  background:linear-gradient(135deg,rgba(23,99,214,.6),rgba(9,19,32,.7));
  transition:background var(--trans);
}
.footer-cta > a:hover::after {
  background:linear-gradient(135deg,rgba(23,99,214,.8),rgba(9,19,32,.8));
}
.fc-inner {
  position:relative; z-index:2;
  padding:2.5rem 2rem;
  display:flex; flex-direction:column; gap:.4rem;
}
.fc-en {
  font-family:var(--font-en); font-size:.72rem; font-weight:600;
  letter-spacing:.25em; color:rgba(255,255,255,.55); text-transform:uppercase;
}
.fc-jp { font-size:1.4rem; font-weight:700; color:#fff; }
.fc-desc { font-size:.82rem; color:rgba(255,255,255,.7); line-height:1.7; }

.footer-main {
  background:var(--navy-deep);
  padding:clamp(3.5rem,7vw,5.5rem) 1.5rem 2rem;
}
.footer-top {
  max-width:var(--max-w); margin:0 auto;
  display:grid; grid-template-columns:1.4fr 1fr;
  gap:clamp(2rem,5vw,4rem);
}
.footer-brand .footer-logo-img {
  height:36px; width:auto; display:block;
  filter:brightness(0) invert(1);
  margin-bottom:1rem;
}
.footer-brand > p {
  font-size:.82rem; color:rgba(255,255,255,.55); line-height:1.8;
  margin-bottom:1rem;
}
.footer-info {
  font-size:.8rem; color:rgba(255,255,255,.55); line-height:2; margin-top:.75rem;
}

.footer-nav-cols {
  display:grid; grid-template-columns:repeat(3,1fr); gap:2rem;
}
.footer-nav h4 {
  font-family:var(--font-en); font-size:.65rem; font-weight:600;
  letter-spacing:.18em; color:rgba(255,255,255,.4); text-transform:uppercase;
  margin-bottom:1rem; padding-bottom:.5rem;
  border-bottom:1px solid rgba(255,255,255,.07);
}
.footer-nav ul { display:flex; flex-direction:column; gap:.5rem; }
.footer-nav a {
  font-size:.82rem; color:rgba(255,255,255,.6);
  transition:color var(--trans);
}
.footer-nav a:hover { color:#fff; }

.footer-bottom {
  background:var(--navy-deep);
  border-top:1px solid rgba(255,255,255,.07);
  padding:1.25rem 1.5rem;
  font-size:.74rem; color:rgba(255,255,255,.4);
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:.5rem;
}
.footer-bottom .inner {
  max-width:var(--max-w); margin:0 auto; width:100%;
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:.5rem;
}
.footer-bottom a { color:rgba(255,255,255,.4); }
.footer-bottom a:hover { color:rgba(255,255,255,.7); }

/* ============================================================
   アニメーション (Reveal)
   ============================================================ */
.reveal, .reveal-l, .reveal-r {
  opacity:0; transition:opacity .65s var(--ease), transform .65s var(--ease);
}
.reveal { transform:translateY(28px); }
.reveal-l { transform:translateX(-32px); }
.reveal-r { transform:translateX(32px); }

.reveal.visible, .reveal-l.visible, .reveal-r.visible {
  opacity:1; transform:none;
}

.stagger > * {
  opacity:0; transform:translateY(22px);
  transition:opacity .5s var(--ease), transform .5s var(--ease);
}
.stagger > *.visible { opacity:1; transform:none; }
.stagger > *:nth-child(2) { transition-delay:.08s; }
.stagger > *:nth-child(3) { transition-delay:.16s; }
.stagger > *:nth-child(4) { transition-delay:.24s; }
.stagger > *:nth-child(5) { transition-delay:.32s; }
.stagger > *:nth-child(6) { transition-delay:.40s; }

@media (prefers-reduced-motion:reduce) {
  .reveal, .reveal-l, .reveal-r,
  .stagger > * {
    opacity:1 !important; transform:none !important;
    transition:none !important;
  }
}

/* ============================================================
   見出し専用アニメーション
   ============================================================ */

/* ラベル: 文字間が刻印されるように広がる */
@keyframes kfLabelIn {
  from { opacity:0; letter-spacing:.02em; transform:translateX(-5px); }
  to   { opacity:1; transform:translateX(0); }
}
/* 見出し h2: 重い梁が静かに降着する */
@keyframes kfHeadSettle {
  from { opacity:0; transform:translateY(14px); }
  to   { opacity:1; transform:none; }
}
/* ページタイトル h1: より強い重量感 */
@keyframes kfH1Settle {
  from { opacity:0; transform:translateY(26px); }
  to   { opacity:1; transform:none; }
}
/* h3 stitle: 左からスライド */
@keyframes kfStitleIn {
  from { opacity:0; transform:translateX(-10px); }
  to   { opacity:1; transform:none; }
}
/* 下線: 左から線が引かれる */
@keyframes kfLineExpand {
  from { transform:scaleX(0); }
  to   { transform:scaleX(1); }
}

/* --- pagehead-card-inner: h1とpがreveal時に動く --- */
.pagehead-card-inner.reveal { transform:none; }
.pagehead-card-inner.reveal.visible { transition:opacity .01s; }

.pagehead-card-inner.reveal.visible h1 {
  animation:kfH1Settle .8s var(--ease) .1s both;
}
.pagehead-card-inner.reveal.visible p {
  animation:kfHeadSettle .65s var(--ease) .28s both;
}

/* --- pagehead-inner (旧構造との後方互換) --- */
.pagehead-inner.reveal         { transform:none; }
.pagehead-inner.reveal.visible { transition:opacity .01s; }

.pagehead-inner.reveal.visible .en {
  animation:kfLabelIn  .9s var(--ease) .05s both;
}
.pagehead-inner.reveal.visible h1 {
  animation:kfH1Settle .8s var(--ease) .2s  both;
}
.pagehead-inner.reveal.visible p {
  animation:kfHeadSettle .65s var(--ease) .38s both;
}

/* --- shead: 同様に親はopacity即時解放、子が個別に動く --- */
.shead.reveal         { transform:none; }
.shead.reveal.visible { transition:opacity .01s; }

.shead.reveal.visible .vtag {
  animation:kfLabelIn  .7s var(--ease) 0s    both;
}
.shead.reveal.visible .htxt .en {
  animation:kfLabelIn  .8s var(--ease) .08s  both;
}
.shead.reveal.visible .ttl {
  animation:kfHeadSettle .75s var(--ease) .18s both;
}

/* --- stitle: 直接 .reveal を持つ h3 --- */
.stitle.reveal.visible {
  animation:kfStitleIn .6s var(--ease) 0s both;
}
.stitle.reveal.visible::after {
  animation:kfLineExpand .5s var(--ease) .22s both;
}

/* --- cta-band h2 --- */
.cta-band .reveal.visible h2 {
  animation:kfH1Settle .7s var(--ease) .12s both;
}

/* reduced motion: カスタムアニメーション全無効 */
@media (prefers-reduced-motion:reduce) {
  .pagehead-card-inner.reveal.visible h1,
  .pagehead-card-inner.reveal.visible p,
  .pagehead-inner.reveal.visible .en,
  .pagehead-inner.reveal.visible h1,
  .pagehead-inner.reveal.visible p,
  .shead.reveal.visible .vtag,
  .shead.reveal.visible .htxt .en,
  .shead.reveal.visible .ttl,
  .stitle.reveal.visible,
  .cta-band .reveal.visible h2 { animation:none; opacity:1; transform:none; }
  .stitle::after { transform:scaleX(1); }
}

/* ============================================================
   フォーム共通
   ============================================================ */
.contact_section { padding:1.5rem 1.5rem 3rem; }
.parts213_form_wrap,
.parts219_form_wrap {
  max-width:700px; margin:0 auto;
}
.parts213_section_form dl,
.parts219_section_form dl {
  display:grid; grid-template-columns:1fr;
  gap:.35rem; margin-bottom:1.25rem;
}
.parts213_section_form dt,
.parts219_section_form dt {
  font-size:.875rem; font-weight:600; color:var(--ink);
}
.parts213_section_form dt.required::after,
.parts219_section_form dt.required::after {
  content:'必須'; margin-left:.5rem; font-size:.7rem;
  background:var(--blue); color:#fff; padding:.1rem .4rem;
  border-radius:var(--radius-sm); vertical-align:middle;
}
.parts219_section_form dt.required::after {
  background:transparent; color:var(--blue); padding:0;
}
.form_text_dt .attention {
  display:block; font-size:.75rem; color:var(--ink-3);
  font-weight:400; margin-top:.2rem;
}
.parts213_section_form input,
.parts213_section_form textarea,
.parts213_section_form select,
.parts219_section_form input,
.parts219_section_form textarea,
.parts219_section_form select {
  width:100%; padding:.75rem 1rem; border:1px solid var(--line);
  border-radius:var(--radius-sm); font-size:.9rem;
  font-family:var(--font-sans); color:var(--ink);
  background:#fff; transition:border-color var(--trans), box-shadow var(--trans);
}
.parts213_section_form input:focus,
.parts213_section_form textarea:focus,
.parts219_section_form input:focus,
.parts219_section_form textarea:focus {
  outline:none; border-color:var(--blue);
  box-shadow:0 0 0 3px var(--blue-soft);
}
.parts213_section_form textarea,
.parts219_section_form textarea { min-height:160px; resize:vertical; }
.form_check_list { display:flex; flex-direction:column; gap:.5rem; }
.form_check_list label { display:flex; align-items:center; gap:.6rem; cursor:pointer; font-size:.9rem; color:var(--ink-2); }
.form_check_list input[type="checkbox"] { width:16px; height:16px; accent-color:var(--blue); }
.zip_row { display:flex; align-items:center; gap:.5rem; margin-bottom:.5rem; }
.zip_mark { font-size:.9rem; color:var(--ink-3); }
.zip_row input { width:10em; }
.contact_submit { margin-top:2rem; }
.contact_submit button {
  background:var(--blue-grad); color:#fff;
  border:none; padding:1rem 3rem;
  border-radius:var(--radius-sm); font-size:1rem;
  font-weight:600; cursor:pointer; min-height:52px;
  display:block; width:100%; max-width:360px; margin:0 auto;
  transition:opacity var(--trans), transform var(--trans);
}
.contact_submit button:hover { opacity:.85; transform:translateY(-1px); }
.error { font-size:.8rem; color:#d02020; display:block; margin-top:.25rem; }
.parts210_section_content,
.pagehead-card + .parts210_section_content { padding-top:1.5rem; padding-bottom:1.5rem; }
.parts210_section_content.u-pt-64 { padding-top:0 !important; }
.parts210_content_wrap {
  max-width:700px; margin:0 auto; padding:0;
}
.parts210_content { font-size:.9rem; color:var(--ink-2); line-height:1.9; }
.parts210_tel { font-weight:700; color:var(--ink); }

/* ============================================================
   プレースホルダー (.ph) — 素材画像未入稿エリア
   ============================================================ */
.ph {
  display:flex; align-items:center; justify-content:center; flex-direction:column;
  gap:.4rem; background:var(--bg-soft2); color:var(--ink-3);
  font-size:.8rem; text-align:center; width:100%;
  border-radius:var(--radius-md);
}
.ph small { display:block; font-size:.7rem; opacity:.7; }

/* ============================================================
   parts228 施工実績一覧
   ============================================================ */
.parts228_section { padding:clamp(3rem,7vw,5rem) 1.5rem; }
.parts228_wrap { max-width:var(--max-w); margin:0 auto; }
.parts228_post_list {
  display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem;
  list-style:none; padding:0;
}
.parts228_post_wrap {
  border:1px solid var(--line); border-radius:var(--radius-lg);
  overflow:hidden; background:#fff;
  transition:box-shadow var(--trans), transform var(--trans);
}
.parts228_post_wrap:hover { box-shadow:0 8px 24px rgba(23,99,214,.1); transform:translateY(-3px); }
.parts228_post_img { aspect-ratio:16/10; overflow:hidden; background:var(--bg-soft2); }
.parts228_post_img a { display:block; height:100%; }
.parts228_post_img .ph { min-height:140px; border-radius:0; }
.parts228_post_status { display:flex; align-items:center; gap:.75rem; padding:.75rem 1rem .25rem; }
.parts228_post_date { font-size:.78rem; color:var(--ink-3); font-family:var(--font-en); }
.parts-blog-ex-tag_wrap { padding:0 1rem .5rem; }
.parts-blog-ex_tag {
  display:inline-block; font-size:.7rem; font-weight:600;
  background:var(--blue-soft); color:var(--blue);
  padding:.2rem .65rem; border-radius:var(--radius-sm);
}
.parts228_post_title-excerpt { padding:.5rem 1rem 1.25rem; }
.parts228_post_title {
  font-size:.9rem; font-weight:600; color:var(--ink);
  line-height:1.5; display:block;
  transition:color var(--trans);
}
.parts228_post_title:hover { color:var(--blue); }
.parts228_pagenation {
  display:flex; gap:.5rem; justify-content:center; margin-top:2.5rem;
  flex-wrap:wrap;
}
.pagination_prev, .pagination_next, .pagination_num {
  display:inline-flex; align-items:center; justify-content:center;
  min-width:40px; height:40px; padding:0 .75rem;
  border:1px solid var(--line); border-radius:var(--radius-sm);
  font-size:.85rem; color:var(--ink-2);
  transition:background var(--trans), color var(--trans), border-color var(--trans);
}
.pagination_num:hover, .pagination_prev:hover, .pagination_next:hover { background:var(--bg-soft); color:var(--blue); border-color:var(--blue); }
.pagination_num.current { background:var(--blue); color:#fff; border-color:var(--blue); }

/* ============================================================
   parts222 ブログ一覧
   ============================================================ */
.parts222_section { padding:clamp(3rem,7vw,5rem) 1.5rem; }
.parts222_wrap { max-width:var(--max-w); margin:0 auto; display:grid; grid-template-columns:1fr 340px; gap:2.5rem; align-items:start; }
.parts222_post_list { display:grid; grid-template-columns:repeat(2,1fr); gap:1.5rem; list-style:none; padding:0; }
.parts222_post_wrap {
  display:flex; flex-direction:column;
  border:1px solid var(--line); border-radius:var(--radius-lg);
  overflow:hidden; background:#fff;
  transition:box-shadow var(--trans), transform var(--trans);
}
.parts222_post_wrap:hover { box-shadow:0 8px 24px rgba(23,99,214,.1); transform:translateY(-3px); }
.parts222_post_img { overflow:hidden; aspect-ratio:16/10; background:var(--bg-soft2); border-radius:0; }
.parts222_post_img a { display:block; height:100%; }
.parts222_post_img .ph { min-height:100px; border-radius:0; height:100%; }
.parts222_post_status { display:flex; align-items:center; gap:.75rem; margin-bottom:.5rem; padding:.75rem 1rem 0; }
.parts222_post_title-excerpt { padding:.25rem 1rem 1.25rem; flex:1; }
.parts222_post_date { font-size:.78rem; color:var(--ink-3); font-family:var(--font-en); }
.parts222_post_category {
  font-size:.7rem; font-weight:600; background:var(--blue-soft);
  color:var(--blue); padding:.2rem .65rem; border-radius:var(--radius-sm);
}
.parts222_post_title { font-size:.95rem; font-weight:600; color:var(--ink); line-height:1.55; display:block; transition:color var(--trans); }
.parts222_post_title:hover { color:var(--blue); }
.parts222_pagenation { display:flex; gap:.5rem; flex-wrap:wrap; margin-top:2rem; }

/* sidebar */
.parts222_sidebar { display:flex; flex-direction:column; gap:1.25rem; }
.parts222_sidebar_wrap {
  background:#fff; border-radius:var(--radius-lg);
  padding:1.4rem 1.5rem; border:1px solid var(--line);
  box-shadow:0 2px 12px rgba(13,27,42,.06);
}
.sidebar_ttl {
  font-family:var(--font-serif); font-size:.95rem; font-weight:700;
  color:var(--ink); margin-bottom:1rem; padding-bottom:.6rem;
  border-bottom:2px solid var(--blue);
}
.parts222_sidebar_wrap ul { display:flex; flex-direction:column; gap:0; }
.parts222_sidebar_wrap li a {
  display:flex; flex-direction:column; gap:.2rem;
  padding:.65rem 0; border-bottom:1px solid var(--line);
  transition:color var(--trans);
}
.parts222_sidebar_wrap li:last-child a { border-bottom:none; }
.parts222_sidebar_wrap li a:hover .parts222_sidebar_post_title { color:var(--blue); }
.parts222_sidebar_date { font-size:.74rem; color:var(--ink-3); font-family:var(--font-en); }
.parts222_sidebar_post_title { font-size:.84rem; color:var(--ink-2); line-height:1.55; }
.category_post_count li a { flex-direction:row; justify-content:space-between; align-items:center; }
.category_post_count ul li { border-left:none !important; border-right:none !important; }
.parts222_sidebar_post_category { font-size:.88rem; color:var(--ink-2); border:none !important; }
.parts222_sidebar_post_category_count {
  font-size:.75rem; color:var(--ink-3); background:var(--bg-soft);
  padding:.15rem .55rem; border-radius:20px;
}

/* ============================================================
   reason-ed（選ばれる理由）
   ============================================================ */
.reasons-ed {
  display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem;
  margin-top:2rem;
}
.reason-ed {
  background:#fff; border:1px solid var(--line);
  border-radius:var(--radius-lg); padding:1.75rem 1.5rem;
  position:relative; overflow:hidden;
  transition:box-shadow var(--trans), transform var(--trans);
}
.reason-ed:hover { box-shadow:0 8px 24px rgba(23,99,214,.09); transform:translateY(-2px); }
.reason-ed .ghost {
  position:absolute; bottom:-1rem; right:.5rem;
  font-family:var(--font-en); font-size:5rem; font-weight:900;
  color:rgba(23,99,214,.04); line-height:1; pointer-events:none;
}
.reason-ed .tag {
  display:inline-block; font-family:var(--font-en); font-size:.72rem;
  font-weight:700; color:var(--blue); letter-spacing:.1em;
  margin-bottom:.6rem;
}
.reason-ed h4 {
  font-family:var(--font-serif); font-size:1rem; font-weight:700;
  color:var(--ink); margin-bottom:.6rem;
}
.reason-ed p { font-size:.875rem; color:var(--ink-2); line-height:1.7; }

/* ============================================================
   impact（数字で見る）
   ============================================================ */
.impact {
  position:relative; background:var(--navy-deep);
  padding:clamp(4rem,9vw,7rem) 1.5rem;
  overflow:hidden; color:#fff;
}
.impact .bg { position:absolute; inset:0; z-index:0; }
.impact .inner { position:relative; z-index:2; max-width:var(--max-w); margin:0 auto; text-align:center; }
.impact .lead-en {
  font-family:var(--font-en); font-size:.8rem; font-weight:600;
  letter-spacing:.3em; color:rgba(255,255,255,.5); text-transform:uppercase; margin-bottom:.5rem;
}
.impact .lead-jp { font-size:1.1rem; font-weight:700; margin-bottom:2.5rem; }
.impact-stats { display:flex; flex-wrap:wrap; justify-content:center; gap:2.5rem 4rem; }
.impact-stat .num { font-family:var(--font-en); font-size:3rem; font-weight:700; color:#fff; line-height:1.1; display:flex; align-items:baseline; gap:.2rem; }
.impact-stat .unit { font-size:1.4rem; font-weight:500; color:rgba(255,255,255,.7); }
.impact-stat .cap { font-size:.8rem; color:rgba(255,255,255,.55); margin-top:.4rem; }

/* ============================================================
   svc-feature（事業一覧ページ）
   ============================================================ */
.svc-grid4 { display:grid; grid-template-columns:1fr 1fr; gap:1.25rem; }
.svc-feature {
  display:grid; grid-template-columns:300px 1fr;
  border:1px solid var(--line); border-radius:var(--radius-lg);
  overflow:hidden; background:#fff;
  transition:box-shadow var(--trans), transform var(--trans);
}
.svc-feature:hover { box-shadow:0 8px 28px rgba(23,99,214,.1); transform:translateY(-2px); }
.svc-feature .img { background:var(--navy-deep); min-height:180px; overflow:hidden; }
.svc-feature .img .ph {
  display:flex; align-items:center; justify-content:center;
  height:100%; min-height:180px; font-size:.85rem;
  color:rgba(255,255,255,.5); background:rgba(255,255,255,.03);
  border-radius:0;
}
.svc-feature .body { padding:1.75rem 1.5rem; }
.svc-feature .tagrow { margin-bottom:.5rem; }
.svc-feature .num {
  font-family:var(--font-en); font-size:.72rem; font-weight:700;
  color:var(--blue); letter-spacing:.1em;
}
.svc-feature .name { font-family:var(--font-serif); font-size:1.2rem; font-weight:700; color:var(--ink); margin-bottom:.6rem; }
.svc-feature .desc { font-size:.875rem; color:var(--ink-2); line-height:1.7; margin-bottom:1rem; }
.acircle {
  display:inline-flex; align-items:center; gap:.6rem;
  font-size:.85rem; font-weight:600; color:var(--blue);
}
.acircle .circle {
  width:32px; height:32px; border-radius:50%;
  background:var(--blue-grad); display:flex; align-items:center; justify-content:center;
}
.acircle .circle svg { width:14px; height:14px; stroke:#fff; }

/* movie-frame */
.movie-frame {
  position:relative; aspect-ratio:16/9; background:var(--navy-deep);
  border-radius:var(--radius-lg); overflow:hidden;
}
.movie-frame .ph { border-radius:0; min-height:auto; height:100%; }
.playbtn {
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:72px; height:72px; pointer-events:none;
}
.playbtn .ring {
  display:block; width:100%; height:100%; border-radius:50%;
  border:2px solid rgba(255,255,255,.5);
  background:rgba(255,255,255,.1); backdrop-filter:blur(4px);
}

/* ============================================================
   legal (プライバシーポリシー)
   ============================================================ */
.legal { padding:0; }
.legal h3 {
  font-family:var(--font-serif); font-size:1.05rem; font-weight:700;
  color:var(--ink); margin:2rem 0 .75rem;
  padding-bottom:.4rem; border-bottom:1px solid var(--line);
}
.legal p, .legal li { font-size:.9rem; color:var(--ink-2); line-height:1.9; }
.legal ul { padding-left:1.25rem; display:flex; flex-direction:column; gap:.4rem; margin-bottom:1rem; }
.legal ul li { list-style:disc; }

/* ============================================================
   レスポンシブ
   ============================================================ */
@media (min-width:900px) {
  .cardgrid.c4 { grid-template-columns:repeat(4,1fr); }
  .cardgrid.c3 { grid-template-columns:repeat(3,1fr); }
  .svc-grid4 { grid-template-columns:repeat(2,1fr); }
}

@media (max-width:1100px) {
  .footer-top { grid-template-columns:1fr; }
  .footer-nav-cols { grid-template-columns:repeat(3,1fr); }
}

@media (max-width:1023px) {
  .header-inner > nav { display:none; }
  .menu-toggle { display:flex; }
  .mobile-menu { display:block; }
  .btn-contact { margin-left:auto; }
}

@media (max-width:767px) {
  .btn-contact { display:none; }
  .brand-logo .logo-license { display:none; }
}

@media (max-width:900px) {
  .split, .split.wide-l { grid-template-columns:1fr; }
  .reasons-ed { grid-template-columns:repeat(2,1fr); }
  .parts228_post_list { grid-template-columns:repeat(2,1fr); }
  .parts222_wrap { grid-template-columns:1fr; }
  .parts222_post_list { grid-template-columns:1fr 1fr; }
  .footer-top { grid-template-columns:1fr; gap:2rem; }
  .footer-cta { grid-template-columns:1fr; }
  .footer-nav-cols { grid-template-columns:repeat(2,1fr); gap:1.5rem; }
  .svc-feature { grid-template-columns:1fr; }
  .svc-feature .img { min-height:200px; }
  .svc-grid4 { grid-template-columns:1fr; }
  .impact-stats { gap:2rem 3rem; }
}

@media (max-width:600px) {
  .sec { padding:clamp(3.5rem,8vw,5rem) 1rem; }
  .pagehead { min-height:clamp(80px,16vw,120px); }
  .pagehead-top { padding:1rem 1rem 1.25rem; }
  .pagehead-card { padding:0 1rem; margin-top:-16px; }
  .pagehead-card-inner { padding:1.25rem 1.25rem; }
  .bc-wrap { padding:0 1rem; }
  .shead { flex-direction:column; align-items:flex-start; gap:.75rem; }
  .vtag { writing-mode:horizontal-tb; }
  .cardgrid.c4 { grid-template-columns:1fr 1fr; }
  .cardgrid.c3 { grid-template-columns:1fr 1fr; }
  .reasons-ed { grid-template-columns:1fr; }
  .parts228_post_list { grid-template-columns:1fr; }
  .parts222_post_list { grid-template-columns:1fr; }
  .imgrow { grid-template-columns:repeat(2,1fr); }
  .btn-row { flex-direction:column; align-items:stretch; }
  .footer-cta { grid-template-columns:1fr; }
  .footer-nav-cols { grid-template-columns:1fr 1fr; gap:1rem; }
  .cta-band .tel { flex-direction:column; }
  .spec { display:block; }
  .spec tbody { display:block; }
  .spec tr { display:flex; flex-direction:column; border-bottom:1px solid var(--line); padding:.75rem 0; }
  .spec th, .spec td { display:block; border-bottom:none; padding:.25rem .5rem; width:100%; }
  .spec th { font-size:.75rem; color:var(--ink-3); background:none; padding-bottom:.1rem; }
  .spec td { font-size:.9rem; }
  .contact_submit button { max-width:100%; }
  .footer-nav-cols { grid-template-columns:1fr; }
  .impact-stats { gap:1.5rem 2rem; }
  .impact-stat .num { font-size:2.5rem; }
}

/* ============================================================
   デザイン統合: reason.html / トップページ デザインシステムに統一
   ============================================================ */

/* pagehead h1 font-weight 統一 (900 → 600) */
.pagehead-card-inner h1 { font-weight:600; }

/* bc-wrap後の最初のsecパディング調整 */
.pagehead-card + .bc-wrap + .sec { padding-top:clamp(3.5rem,7vw,6rem); }

/* bgword 非表示 */
.has-bg .bgword { display:none; }

/* shead を sec-label + section-title 外観に変換（HTML変更なし・CSS only） */
.vtag { display:none; }
.shead { display:block; }
.htxt { display:block; }
.htxt .en {
  font-size:.68rem; font-weight:500;
  letter-spacing:.35em;
  margin-bottom:1.1rem;
  display:inline-flex; align-items:center; gap:.7rem;
  writing-mode:horizontal-tb;
}
.htxt .en::before {
  content:''; width:28px; height:1px; background:var(--blue);
  transform:scaleX(0); transform-origin:left;
  display:block; flex-shrink:0;
}
.shead.reveal.visible .htxt .en { animation:kfLabelIn .85s var(--ease) 0s both; }
.shead.reveal.visible .htxt .en::before { animation:kfLineExpand .4s var(--ease) 0s both; }

/* ttl を section-title スタイルに統一 */
.ttl, h2.ttl { line-height:1.4; font-weight:700; word-break:auto-phrase; }

/* cta-band h2 タイポグラフィを統一 */
.cta-band h2 {
  font-weight:700;
  font-size:clamp(1.7rem,4vw,2.8rem);
  line-height:1.4;
  word-break:auto-phrase;
  margin-bottom:1.25rem;
}

/* reduced-motion 対応 */
@media (prefers-reduced-motion:reduce) {
  .shead.reveal.visible .htxt .en,
  .shead.reveal.visible .htxt .en::before { animation:none; opacity:1; transform:none; }
  .htxt .en::before { transform:scaleX(1); }
}

/* footer-cta 背景画像 */
.footer-cta > a .bg { background-size:cover; background-position:center; }
.footer-cta > a .bg .ph { display:none; }
.footer-cta > a:first-child .bg { background-image:url(https://cdn.cuezilla-cms.com/enjoyworks-test26.tech/images/1414/contact-banner.webp); }
.footer-cta > a:last-child .bg { background-image:url(https://cdn.cuezilla-cms.com/enjoyworks-test26.tech/images/1414/recruit-banner.webp); }

/* ============================================================
   タブレット pagehead 英字/カード重なり解消
   ============================================================ */
@media (min-width:601px) and (max-width:1100px) {
  .pagehead { min-height:clamp(160px,18vw,200px); }
}

/* ============================================================
   fig 内画像
   ============================================================ */
.fig img { width:100%; height:100%; object-fit:cover; display:block; }

/* ============================================================
   sec-img-band — サービスページ 画像ビジュアルバンド
   ============================================================ */
.sec-img-band {
  position:relative; overflow:hidden;
  min-height:clamp(100px,14vw,170px);
  display:flex; align-items:center;
  padding:clamp(1.2rem,3vw,2rem) 0;
}
.sib-bg {
  position:absolute; inset:0; z-index:0;
  background-size:cover; background-position:center;
  transition:transform 8s var(--ease); will-change:transform;
}
.sec-img-band:hover .sib-bg { transform:scale(1.04); }
.sec-img-band::after {
  content:''; position:absolute; inset:0; z-index:1;
  background:rgba(9,19,32,.72);
}
.sec-img-band .container { position:relative; z-index:2; }
.sec-img-band-inner { max-width:680px; }
.sib-bignum {
  position:absolute; right:clamp(1rem,5vw,5rem); top:50%; transform:translateY(-50%);
  font-family:var(--font-en); font-weight:200; font-size:clamp(8rem,20vw,18rem);
  color:rgba(255,255,255,.07); line-height:.8;
  pointer-events:none; user-select:none; z-index:2; letter-spacing:-.04em;
}
.sib-cat {
  display:inline-flex; align-items:center; gap:.7rem;
  font-family:var(--font-en); font-size:.68rem; font-weight:600;
  letter-spacing:.35em; color:var(--blue-bright); text-transform:uppercase;
  margin-bottom:1.1rem;
}
.sib-cat::before { content:''; width:28px; height:1px; background:var(--blue-bright); flex-shrink:0; }
.sib-h2 {
  font-family:var(--font-serif); font-weight:700;
  font-size:clamp(2.2rem,5.5vw,3.8rem); color:#fff; line-height:1.2; letter-spacing:.06em;
}

/* ============================================================
   sib-ticker — sec-img-band 水平スクロールマーカー
   ============================================================ */
.sib-ticker {
  position:relative; z-index:3;
  overflow:hidden; width:100%;
}
.sib-ticker-track {
  display:inline-flex; flex-wrap:nowrap; white-space:nowrap;
  animation:sibTickerScroll 28s linear infinite;
  will-change:transform;
}
.sib-ticker-item {
  display:inline-flex; align-items:center; flex-shrink:0;
  font-family:var(--font-en); font-weight:200;
  font-size:clamp(2rem,4.5vw,3.5rem);
  letter-spacing:.18em; text-transform:uppercase; color:#fff;
  padding:0 2rem;
}
.sib-ticker-sep {
  color:var(--blue-bright); margin:0 1rem; letter-spacing:0; font-weight:300; flex-shrink:0;
  font-size:clamp(1rem,2vw,1.6rem);
}
@keyframes sibTickerScroll {
  0%   { transform:translateX(0); }
  100% { transform:translateX(-50%); }
}
@media (prefers-reduced-motion:reduce) { .sib-ticker-track { animation:none !important; } }

/* ============================================================
   sec-creed-band — company.html 企業理念バンド
   ============================================================ */
.sec-creed-band {
  position:relative; overflow:hidden; background:var(--navy-deep); color:#fff;
  padding:clamp(4rem,9vw,7rem) 1.5rem;
}
.creed-bg {
  position:absolute; inset:0; z-index:0;
  background-size:cover; background-position:center;
  opacity:.2; filter:saturate(.6);
}
.sec-creed-band::before {
  content:''; position:absolute; inset:0; z-index:1;
  background:radial-gradient(ellipse 80% 60% at 30% 50%,rgba(23,99,214,.22),transparent);
}
.sec-creed-band .container { position:relative; z-index:2; }
.creed-label {
  font-family:var(--font-en); font-size:.68rem; font-weight:600;
  letter-spacing:.35em; color:var(--blue-bright); text-transform:uppercase;
  display:inline-flex; align-items:center; gap:.7rem; margin-bottom:1.5rem;
}
.creed-label::before { content:''; width:28px; height:1px; background:var(--blue-bright); flex-shrink:0; }
.creed-title {
  font-family:var(--font-serif); font-weight:700;
  font-size:clamp(1.8rem,4vw,3rem); color:#fff; line-height:1.4; letter-spacing:.04em;
}
.creed-title span { color:var(--blue-bright); }
.creed-text {
  font-size:clamp(.95rem,1.5vw,1.05rem); color:rgba(255,255,255,.75);
  line-height:1.95; margin-top:1.25rem; max-width:40em;
}

/* ③ 下層ヘッダー背景画像を非表示（紺色単色） */
.pagehead-bg { display:none; }

/* ============================================================
   追従CTA（右下）
   ============================================================ */
.float-cta{position:fixed;right:clamp(.9rem,2.5vw,1.4rem);bottom:clamp(.9rem,2.5vw,1.4rem);z-index:150;display:flex;flex-direction:column;align-items:flex-end;gap:.6rem;opacity:0;visibility:hidden;transform:translateY(14px);transition:opacity .35s var(--ease),transform .35s var(--ease),visibility .35s}
.float-cta.show{opacity:1;visibility:visible;transform:none}
.float-top{width:46px;height:46px;border-radius:50%;background:rgba(255,255,255,.92);border:1px solid var(--line);color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer;backdrop-filter:blur(6px);box-shadow:0 8px 20px -10px rgba(13,27,42,.4);transition:transform var(--trans),border-color var(--trans),color var(--trans)}
.float-top:hover{transform:translateY(-3px);border-color:var(--blue);color:var(--blue)}
.float-top .material-symbols-rounded{font-size:1.3rem}
.float-contact{display:inline-flex;align-items:center;gap:.5rem;background:var(--blue-grad);color:#fff;padding:.85rem 1.35rem;border-radius:99px;font-size:.9rem;font-weight:700;letter-spacing:.04em;min-height:52px;box-shadow:0 12px 28px -10px rgba(23,99,214,.7);transition:transform var(--trans),box-shadow var(--trans)}
.float-contact:hover{transform:translateY(-3px);color:#fff;box-shadow:0 18px 34px -12px rgba(23,99,214,.8)}
.float-contact .material-symbols-rounded{font-size:1.25rem;font-variation-settings:'FILL' 1}
@media (max-width:599px){.float-contact{padding:.8rem 1.1rem;font-size:.84rem;min-height:48px}.float-top{width:42px;height:42px}}
@media (prefers-reduced-motion:reduce){.float-cta{transition:none}}

/* ===== index inline <style>（TOP本文・共通の正本） ===== */
    /* ============================================================
       TOKENS
       ============================================================ */
    :root{
      --bg:#ffffff; --bg-soft:#f4f7fb; --bg-soft2:#eef3fa;
      --ink:#0d1b2a; --ink-2:#3a4a5b; --ink-3:#566273;
      --navy-deep:#091320; --blue:#1763d6; --blue-bright:#2f8fff; --blue-deep:#0d3b8c;
      --blue-soft:rgba(23,99,214,0.08);
      --blue-grad:linear-gradient(135deg,#1763d6,#2f8fff);
      --line:#e3e9f0; --line-2:#d4deea;
      --font-sans:'Noto Sans JP',sans-serif; --font-serif:'Noto Serif JP',serif; --font-en:'Inter',sans-serif;
      --radius-sm:4px; --radius-md:10px; --radius-lg:18px;
      --trans:0.35s cubic-bezier(.22,1,.36,1); --ease:cubic-bezier(.22,1,.36,1);
      --max-w:1200px; --max-w-wide:1340px; --gray:#566273;
    }
    *,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
    html{scroll-behavior:smooth;font-size:16px;-webkit-text-size-adjust:100%}
    body{font-family:var(--font-sans);color:var(--ink);background:var(--bg);line-height:1.8;overflow-x:hidden;font-feature-settings:"palt"}
    img{display:block;max-width:100%;height:auto}
    a{color:inherit;text-decoration:none;transition:color var(--trans)}
    ul,ol{list-style:none}
    .material-symbols-rounded{font-variation-settings:'FILL' 0,'wght' 300,'GRAD' 0,'opsz' 24;user-select:none;vertical-align:middle}
    .vertical{writing-mode:vertical-rl;text-orientation:mixed;font-feature-settings:"vpal"}

    .skip-link{position:absolute;top:-100%;left:0;background:var(--blue);color:#fff;padding:.5rem 1rem;font-size:.875rem;z-index:9999;transition:top .2s}
    .skip-link:focus{top:0}

    /* ============================================================
       共通レイアウト・見出し・ボタン
       ============================================================ */
    .sec{padding:clamp(5rem,10vw,9rem) 1.5rem;position:relative;overflow:hidden}
    .sec-paper{background:var(--bg-soft)}
    .sec-paper2{background:var(--bg-soft2)}
    .container{max-width:var(--max-w);margin:0 auto;position:relative;z-index:2}
    .sec-label{font-family:var(--font-en);font-size:.68rem;font-weight:500;letter-spacing:.35em;color:var(--blue);text-transform:uppercase;margin-bottom:1.1rem;display:inline-flex;align-items:center;gap:.7rem}
    .sec-label::before{content:'';width:28px;height:1px;background:var(--blue);transform:scaleX(0);transform-origin:left;display:block;flex-shrink:0}
    .section-title{font-family:var(--font-serif);font-weight:700;font-size:clamp(1.7rem,4vw,2.8rem);line-height:1.4;color:var(--ink);letter-spacing:.04em;word-break:auto-phrase;overflow-wrap:break-word}
    .section-title span{color:var(--blue)}
    .lead{font-size:clamp(1rem,1.5vw,1.1rem);color:var(--ink-2);line-height:2;margin-top:1.25rem;max-width:42em;word-break:auto-phrase;overflow-wrap:break-word}
    .section-link{display:inline-flex;align-items:center;gap:.45rem;font-size:.875rem;font-weight:500;color:var(--blue);border-bottom:1px solid var(--blue);padding-bottom:.15rem;transition:gap var(--trans)}
    .section-link::after{content:'arrow_forward';font-family:'Material Symbols Rounded';font-size:1rem}
    .section-link:hover{gap:.7rem;color:var(--blue)}

    .btn-row{display:flex;flex-wrap:wrap;gap:.85rem}
    .btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background:var(--blue-grad);color:#fff;padding:.9rem 1.9rem;border-radius:var(--radius-sm);font-size:.9rem;font-weight:500;letter-spacing:.04em;min-height:44px;box-shadow:0 10px 26px -12px rgba(23,99,214,.8);transition:transform var(--trans),box-shadow var(--trans)}
    .btn-primary:hover{transform:translateY(-3px);box-shadow:0 16px 32px -12px rgba(23,99,214,.85);color:#fff}
    .btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border:1px solid var(--ink);color:var(--ink);padding:.9rem 1.9rem;border-radius:var(--radius-sm);font-size:.9rem;font-weight:500;letter-spacing:.04em;min-height:44px;background:transparent;transition:border-color var(--trans),color var(--trans),gap var(--trans),background var(--trans)}
    .btn-secondary:hover{border-color:var(--blue);color:var(--blue);gap:.75rem;background:transparent}
    /* スマホ：ボタンが縦並びのとき同幅に揃える */
    @media (max-width:599px){
      .btn-row{flex-direction:column}
      .btn-row>.btn-primary,.btn-row>.btn-secondary{width:100%}
    }

    /* ============================================================
       プレースホルダー（写真／動画・地図）
       ============================================================ */
    figure.ph{position:relative;overflow:hidden;background:linear-gradient(135deg,#dde8f5,#edf3fb 50%,#d4e5f7);display:flex;align-items:center;justify-content:center;width:100%;height:100%}
    figure.ph img.ph-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
    .ph-box{background:var(--bg-soft);border:1px dashed var(--line-2);border-radius:var(--radius-md);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;color:var(--ink-3);font-size:.9rem;text-align:center;padding:1.5rem;width:100%;height:100%;min-height:220px;overflow:hidden;overflow-wrap:break-word;word-break:break-word;box-sizing:border-box}
    .ph-box small{font-size:.74rem;color:var(--ink-3);opacity:.8}
    .ph-box .material-symbols-rounded{font-size:2.2rem;color:var(--blue);opacity:.5}

    /* ============================================================
       HEADER
       ============================================================ */
    header#site-header{position:fixed;top:0;left:0;right:0;z-index:200;background:rgba(255,255,255,.85);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid transparent;transition:box-shadow var(--trans),border-color var(--trans),background var(--trans)}
    header#site-header.scrolled{box-shadow:0 2px 24px rgba(13,27,42,.07);border-bottom-color:var(--line);background:rgba(255,255,255,.95)}
    .header-inner{max-width:var(--max-w-wide);margin:0 auto;padding:0 clamp(1.25rem,4vw,2.5rem);height:72px;display:flex;align-items:center;justify-content:space-between;gap:1.5rem}
    .logo{display:flex;flex-direction:column;align-items:flex-start;line-height:1;flex-shrink:0;gap:.28rem}
    .logo-img{height:26px;width:auto;display:block}
    .logo-license{font-size:.56rem;font-weight:500;letter-spacing:.07em;color:var(--ink-3);white-space:nowrap;line-height:1}
    .logo .logo-en{font-family:var(--font-en);font-weight:500;font-size:.58rem;letter-spacing:.22em;color:var(--blue);text-transform:uppercase}
    .logo .logo-jp{font-family:var(--font-serif);font-weight:600;font-size:clamp(.9rem,2vw,1.05rem);color:var(--ink);letter-spacing:.08em}
    header nav{display:flex;align-items:center;gap:.05rem;margin-left:auto}
    header nav a{font-size:.8rem;color:var(--ink-2);padding:.5rem .7rem;border-radius:var(--radius-sm);letter-spacing:.03em;white-space:nowrap;min-height:44px;display:inline-flex;align-items:center;position:relative;transition:color var(--trans)}
    header nav a::after{content:'';position:absolute;left:.7rem;right:.7rem;bottom:.6rem;height:1px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform var(--trans)}
    header nav a:hover{color:var(--blue)}
    header nav a:hover::after{transform:scaleX(1)}
    .btn-contact{background:var(--blue-grad);color:#fff;padding:.6rem 1.3rem;border-radius:var(--radius-sm);font-size:.82rem;font-weight:500;min-height:44px;display:inline-flex;align-items:center;flex-shrink:0;box-shadow:0 6px 18px -8px rgba(23,99,214,.7);transition:transform var(--trans),box-shadow var(--trans)}
    .btn-contact:hover{transform:translateY(-2px);box-shadow:0 10px 24px -8px rgba(23,99,214,.8);color:#fff}

    .menu-toggle{display:none;background:none;border:none;cursor:pointer;padding:.5rem;min-height:44px;min-width:44px;flex-direction:column;gap:5px;align-items:center;justify-content:center}
    .menu-toggle span{display:block;width:22px;height:1.5px;background:var(--ink);transition:transform .3s,opacity .3s}
    .menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
    .menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
    .menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
    .mobile-menu{display:none;position:fixed;top:72px;left:0;right:0;background:var(--bg);border-bottom:1px solid var(--line);padding:1rem 1.5rem 1.5rem;z-index:199;transform:translateY(-10px);opacity:0;visibility:hidden;pointer-events:none;max-height:calc(100svh - 72px);overflow-y:auto;transition:transform .3s,opacity .3s,visibility .3s}
    .mobile-menu.open{transform:translateY(0);opacity:1;visibility:visible;pointer-events:auto}
    .mobile-menu a{display:block;padding:.8rem 0;border-bottom:1px solid var(--line);font-size:.95rem;color:var(--ink)}
    .mobile-menu .mobile-cta{margin-top:1rem;text-align:center;background:var(--blue-grad);color:#fff;padding:.9rem;border-radius:var(--radius-sm);font-weight:500;border-bottom:none}
    @media (max-width:1023px){header nav{display:none}.menu-toggle{display:flex}.mobile-menu{display:block}}
    @media (max-width:767px){.btn-contact{display:none}.logo-license{display:none}}

    /* ============================================================
       ドロップダウン：事業内容
       ============================================================ */
    .nav-has-dd{position:relative}
    .nav-dd-trigger{background:none;border:none;cursor:pointer;font-family:var(--font-sans);font-size:.8rem;color:var(--ink-2);padding:.5rem .7rem;border-radius:var(--radius-sm);letter-spacing:.03em;white-space:nowrap;min-height:44px;display:inline-flex;align-items:center;gap:.12rem;position:relative;transition:color var(--trans)}
    .nav-dd-trigger::after{content:'';position:absolute;left:.7rem;right:.7rem;bottom:.6rem;height:1px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform var(--trans)}
    .nav-has-dd:hover .nav-dd-trigger,.nav-dd-trigger[aria-expanded="true"]{color:var(--blue)}
    .nav-has-dd:hover .nav-dd-trigger::after,.nav-dd-trigger[aria-expanded="true"]::after{transform:scaleX(1)}
    .nav-dd-icon{font-size:.85rem;display:flex;align-items:center;transition:transform .25s var(--ease)}
    .nav-has-dd:hover .nav-dd-icon,.nav-dd-trigger[aria-expanded="true"] .nav-dd-icon{transform:rotate(180deg)}
    .nav-dd-panel{position:absolute;top:calc(100% + 6px);left:50%;transform:translateX(-50%) translateY(-6px);background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:0 20px 50px -16px rgba(13,27,42,.16);padding:.4rem;display:flex;flex-direction:column;min-width:220px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s .25s var(--ease),transform .2s .25s var(--ease),visibility .2s .25s;z-index:300}
    .nav-dd-panel::before{content:'';position:absolute;top:-18px;left:-20px;right:-20px;height:18px}
    .nav-has-dd:hover .nav-dd-panel,.nav-dd-panel.open{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0);transition:opacity .2s var(--ease),transform .2s var(--ease),visibility .2s}
    .nd-card{display:flex;flex-direction:row;align-items:center;gap:.75rem;border-radius:var(--radius-md);border:none;padding:.55rem .75rem;color:inherit;text-decoration:none;background:transparent;transition:background .18s;min-height:48px}
    .nd-card:hover{background:rgba(23,99,214,.07)}
    .nd-img{width:64px;height:42px;flex-shrink:0;border-radius:4px;overflow:hidden}
    .nd-img img{width:100%;height:100%;object-fit:cover;transition:transform .4s var(--ease)}
    .nd-card:hover .nd-img img{transform:scale(1.06)}
    .nd-body{display:flex;align-items:center;gap:.5rem}
    .nd-num{font-family:var(--font-en);font-size:.62rem;font-weight:600;letter-spacing:.18em;color:var(--blue);white-space:nowrap}
    .nd-name{font-size:.85rem;font-weight:700;color:var(--ink);white-space:nowrap}
    .nd-sub{font-size:.71rem;color:var(--ink-3);margin-top:.18rem;line-height:1.4;display:block}
    /* モバイル：事業内容サブリスト */
    .mobile-service-head{display:block;padding:.8rem 0;border-bottom:1px solid var(--line);font-size:.95rem;color:var(--ink-3);font-weight:500}
    .mobile-service-sub a{padding:.7rem 0 .7rem 1.1rem;border-bottom:1px solid var(--line);font-size:.9rem;color:var(--ink-2);display:block}
    .mobile-service-sub a::before{content:'— ';color:var(--blue);font-size:.75rem}

    /* ============================================================
       SPLASH
       ============================================================ */
    #splash{position:fixed;inset:0;background:var(--bg);z-index:1000;display:none;align-items:center;justify-content:center;overflow:hidden}
    #splash.active{display:flex}
    #splash.hidden{pointer-events:none}
    .splash-line-h,.splash-line-v{position:absolute;top:50%;left:50%;background:var(--blue-grad);opacity:.45;transform:translate(-50%,-50%)}
    .splash-line-h{width:0;height:1px}.splash-line-v{width:1px;height:0}
    .splash-logo{text-align:center;opacity:0;transform:translateY(10px);position:relative;z-index:2}
    .splash-logo-en{font-family:var(--font-en);font-weight:400;font-size:clamp(.62rem,1.5vw,.78rem);letter-spacing:.4em;color:var(--blue);text-transform:uppercase;margin-bottom:.6rem}
    .splash-logo-ja{font-family:var(--font-serif);font-weight:600;font-size:clamp(1.3rem,4vw,2rem);color:var(--ink);letter-spacing:.14em}
    .splash-tagline{font-family:var(--font-serif);font-weight:500;font-size:clamp(.85rem,2vw,1.05rem);letter-spacing:.16em;color:var(--ink-2);margin-top:1.1rem;opacity:0}
    .splash-tagline .blue{color:var(--blue)}
    .splash-skip{position:absolute;bottom:2rem;right:2rem;background:none;border:1px solid var(--line);padding:.5rem 1.2rem;font-size:.75rem;font-family:var(--font-sans);color:var(--ink-2);cursor:pointer;border-radius:var(--radius-sm);letter-spacing:.05em;min-height:44px;min-width:44px;transition:border-color var(--trans),color var(--trans);z-index:3}
    .splash-skip:hover{border-color:var(--blue);color:var(--blue)}

    /* ============================================================
       HERO — 4枚コラージュ＋クローズアップ・ローテーション
       ============================================================ */
    #hero{position:relative;min-height:100svh;padding-top:72px;display:grid;grid-template-columns:1fr;background:var(--bg);overflow:hidden}
    @media (min-width:1024px){#hero{grid-template-columns:0.86fr 1.14fr;height:100svh;min-height:0}}

    .hero-text-col{display:flex;align-items:center;padding:clamp(2.5rem,6vw,5rem) clamp(1.5rem,5vw,5rem);position:relative;z-index:6;min-height:0}
    .hero-inner{width:100%;max-width:34rem;container-type:inline-size;text-shadow:0 1px 16px rgba(255,255,255,.85);opacity:0;transform:translateY(26px);transition:opacity .9s ease,transform .9s cubic-bezier(.215,.61,.355,1)}
    .hero-sub{font-family:var(--font-en);font-size:.74rem;font-weight:500;letter-spacing:.22em;color:var(--blue);text-transform:uppercase;margin-bottom:1.25rem;display:flex;align-items:center;gap:.7rem}
    .hero-sub::before{content:'';width:30px;height:1px;background:var(--blue)}
    /* メインコピーは常に2行固定：各行は折り返さず（white-space:nowrap）、フォントはコンテナ幅(cqi)に連動して必ず収める */
    .hero-h1{font-family:var(--font-serif);font-weight:700;font-size:min(3.6rem,11cqi);line-height:1.32;color:var(--ink);letter-spacing:.06em;margin-bottom:1.4rem;white-space:nowrap}
    @supports not (font-size:1cqi){.hero-h1{font-size:clamp(2rem,8vw,3.6rem)}}
    .hero-h1 span{color:var(--blue)}
    .hero-cat{font-family:var(--font-serif);font-size:clamp(1rem,1.8vw,1.2rem);color:var(--ink);font-weight:500;margin-bottom:1.1rem;letter-spacing:.03em;word-break:auto-phrase}
    .hero-desc{font-size:1rem;color:var(--ink-2);line-height:2;margin-bottom:2.25rem;word-break:auto-phrase;overflow-wrap:break-word}

    /* コラージュ：2×2グリッド・全写真同一比率・隙間16px均一・モノクロ→カラー（拡大なし） */
    .hero-collage{position:relative;background:transparent;display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:12px}
    .hc-item{position:relative;overflow:hidden;aspect-ratio:4 / 3;box-shadow:0 16px 36px -20px rgba(13,27,42,.4);transition:box-shadow .8s var(--ease),transform .8s var(--ease);will-change:transform}
    .hc-item img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
    .hc-item.active{box-shadow:0 24px 50px -24px rgba(13,27,42,.6)}
    .hc-item.active img{transform:scale(1.05)}
    /* PC：ビューポート高にぴったり収める（セルを埋める＝同一比率・段差なし） */
    @media (min-width:1024px){
      .hero-collage{height:calc(100svh - 72px);min-height:0;overflow:hidden;grid-template-rows:1fr 1fr;gap:8px;padding:clamp(1rem,1.6vw,1.5rem)}
      .hc-item{aspect-ratio:auto;min-height:0}
    }
    .hc-label{display:none}
    .hero-pause-btn{position:absolute;bottom:1.4rem;right:1.4rem;z-index:6;background:rgba(255,255,255,.85);border:1px solid var(--line);border-radius:50%;width:46px;height:46px;display:flex;align-items:center;justify-content:center;cursor:pointer;backdrop-filter:blur(6px);transition:background var(--trans)}
    .hero-pause-btn:hover{background:#fff}
    .hero-pause-btn .material-symbols-rounded{font-size:1.2rem;color:var(--ink)}
    /* ============================================================
       追従CTA（右下）
       ============================================================ */
    .float-cta{position:fixed;right:clamp(.9rem,2.5vw,1.4rem);bottom:clamp(.9rem,2.5vw,1.4rem);z-index:150;display:flex;flex-direction:column;align-items:flex-end;gap:.6rem;opacity:0;visibility:hidden;transform:translateY(14px);transition:opacity .35s var(--ease),transform .35s var(--ease),visibility .35s}
    .float-cta.show{opacity:1;visibility:visible;transform:none}
    .float-top{width:46px;height:46px;border-radius:50%;background:rgba(255,255,255,.92);border:1px solid var(--line);color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer;backdrop-filter:blur(6px);box-shadow:0 8px 20px -10px rgba(13,27,42,.4);transition:transform var(--trans),border-color var(--trans),color var(--trans)}
    .float-top:hover{transform:translateY(-3px);border-color:var(--blue);color:var(--blue)}
    .float-top .material-symbols-rounded{font-size:1.3rem}
    .float-contact{display:inline-flex;align-items:center;gap:.5rem;background:var(--blue-grad);color:#fff;padding:.85rem 1.35rem;border-radius:99px;font-size:.9rem;font-weight:700;letter-spacing:.04em;min-height:52px;box-shadow:0 12px 28px -10px rgba(23,99,214,.7);transition:transform var(--trans),box-shadow var(--trans)}
    .float-contact:hover{transform:translateY(-3px);color:#fff;box-shadow:0 18px 34px -12px rgba(23,99,214,.8)}
    .float-contact .material-symbols-rounded{font-size:1.25rem;font-variation-settings:'FILL' 1}
    @media (max-width:599px){.float-contact{padding:.8rem 1.1rem;font-size:.84rem;min-height:48px}.float-top{width:42px;height:42px}}
    @media (prefers-reduced-motion:reduce){.float-cta{transition:none}}
    .hero-scroll-cue{position:absolute;bottom:1.4rem;left:1.6rem;z-index:4;display:flex;flex-direction:column;align-items:center;gap:.5rem}
    .scroll-cue-text{font-family:var(--font-en);font-size:.6rem;letter-spacing:.3em;color:var(--ink-3);text-transform:uppercase;writing-mode:vertical-rl}
    .scroll-cue-line{width:1px;height:48px;background:var(--line-2);position:relative;overflow:hidden}
    .scroll-cue-line::after{content:'';position:absolute;top:-100%;left:0;width:100%;height:100%;background:var(--blue);animation:scrollLine 1.9s ease-in-out infinite}
    @keyframes scrollLine{0%{top:-100%}100%{top:100%}}
    @media (max-width:1023px){.hero-scroll-cue{display:none}}
    @media (max-width:599px){.hero-sub{display:none}.hero-desc{display:none}}

    /* ============================================================
       NEWS
       ============================================================ */
    /* お知らせ：1記事の横帯バナー。トンマナをサイト（白×青・濃ネイビー・余白・細線）に統一 */
    #news{padding:0;background:var(--bg-soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
    .news-bar{max-width:var(--max-w-wide);margin:0 auto;display:flex;align-items:center;min-height:66px;text-decoration:none;padding-right:1.5rem}
    .news-tag{align-self:stretch;display:flex;align-items:center;background:var(--blue-grad);color:#fff;font-family:var(--font-en);font-weight:600;font-size:.8rem;letter-spacing:.2em;padding:0 1.5rem;flex-shrink:0}
    .news-date{font-family:var(--font-en);font-size:.84rem;color:var(--ink-3);padding:0 1.25rem;margin-left:.25rem;flex-shrink:0;letter-spacing:.06em;position:relative}
    .news-date::after{content:'';position:absolute;right:0;top:50%;transform:translateY(-50%);width:1px;height:1.05em;background:var(--line-2)}
    .news-text{flex:1;min-width:0;font-size:.92rem;font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:1.25rem;transition:color var(--trans)}
    .news-arrow{flex-shrink:0;padding-left:1.25rem;color:var(--ink-3);display:flex;align-items:center;transition:transform var(--trans),color var(--trans)}
    .news-arrow .material-symbols-rounded{font-size:1.15rem}
    .news-bar:hover .news-text{color:var(--blue)}
    .news-bar:hover .news-arrow{color:var(--blue);transform:translateX(4px)}
    @media (max-width:640px){
      .news-bar{padding-right:.9rem}
      .news-tag{padding:0 1rem;font-size:.74rem;letter-spacing:.14em}
      .news-date{padding:0 .8rem;font-size:.78rem;margin-left:0}
      .news-text{font-size:.83rem;padding-left:.8rem}
      .news-arrow{padding-left:.7rem}
    }

    /* ============================================================
       CONCEPT
       ============================================================ */
    .concept-grid{display:grid;grid-template-columns:1fr;gap:3rem;align-items:center}
    @media (min-width:900px){.concept-grid{grid-template-columns:1.05fr .95fr;gap:5rem}}
    .concept-grid .section-title{margin-top:.4rem}
    .concept-grid .lead{margin-bottom:1.75rem}
    .concept-img{position:relative;aspect-ratio:4/3;box-shadow:0 16px 36px -20px rgba(13,27,42,.4)}
    /* 創業年：浮かぶ年号カード（モダン＋ヘリテージ） */
    /* 創業年：青い蠟封エンブレム（背景＝添付画像 img/seal.png）。文字は白・中央揃え・周囲に広め余白 */
    .concept-since{position:absolute;left:-1.5rem;bottom:-1.5rem;z-index:3;width:clamp(158px,12vw,174px);aspect-ratio:1;
      background:url('https://cdn.cuezilla-cms.com/enjoyworks-test26.tech/images/1414/seal.png') center/contain no-repeat, radial-gradient(circle at 50% 48%, var(--blue) 0 57%, transparent 60%);
      display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;line-height:1;
      padding:clamp(1.6rem,3vw,2rem);filter:drop-shadow(0 14px 26px rgba(13,27,42,.4))}
    .concept-since .cs-en{font-family:var(--font-en);font-size:clamp(.55rem,1.1vw,.66rem);font-weight:500;letter-spacing:.3em;color:#fff;text-transform:uppercase;margin-bottom:.32rem}
    .concept-since .cs-year{font-family:var(--font-en);font-weight:300;font-size:clamp(1.8rem,3.6vw,2.4rem);color:#fff;letter-spacing:.02em}
    .concept-since .cs-jp{font-family:var(--font-serif);font-size:clamp(.62rem,1.2vw,.72rem);font-weight:500;color:#fff;letter-spacing:.06em;margin-top:.4rem;white-space:nowrap}
    @media (max-width:600px){
      .concept-since{left:-.25rem;bottom:-2.5rem;width:168px;padding:1.55rem}
    }

    /* ============================================================
       SERVICES — 画面全体が横スクロール
       ============================================================ */
    #services{position:relative;background:var(--navy-deep);padding:0;overflow:hidden;isolation:isolate}
    .services-hud{position:absolute;left:clamp(1.5rem,7vw,6rem);bottom:clamp(1.5rem,5vh,3rem);z-index:5;max-width:min(86vw,620px)}
    .services-hud-eyebrow{display:block;font-family:var(--font-en);font-size:.64rem;font-weight:500;letter-spacing:.3em;color:var(--blue-bright);text-transform:uppercase;margin-bottom:.55rem}
    .services-hud-title{font-family:var(--font-serif);font-weight:700;font-size:clamp(1.02rem,2vw,1.45rem);color:#fff;letter-spacing:.04em;line-height:1.5;margin-bottom:1rem}
    .services-hud-title span{color:var(--blue-bright)}
    .services-hud-link{display:inline-flex;align-items:center;gap:.5rem;font-size:.85rem;font-weight:500;color:#fff;border-bottom:1px solid rgba(255,255,255,.5);padding-bottom:.15rem;margin-top:1rem;transition:gap var(--trans),border-color var(--trans)}
    .services-hud-link:hover{gap:.8rem;border-color:#fff;color:#fff}
    .services-hud-link .material-symbols-rounded{font-size:1.05rem}
    .services-pin-wrap{position:relative}
    .services-sticky{overflow:hidden;position:relative;height:100svh}
    .services-track{display:flex;height:100%;width:400%;will-change:transform}
    .service-panel{width:25%;height:100%;position:relative;flex-shrink:0;display:flex;align-items:stretch;overflow:hidden}
    @keyframes kenburns{0%{transform:scale(1.05) translate(0,0)}100%{transform:scale(1.15) translate(-1.5%,-1.5%)}}
    .service-ph{position:absolute;inset:0;z-index:0}
    .service-ph figure.ph{height:100%;animation:kenburns 12s ease-out both}
    .service-overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(100deg,rgba(9,19,32,.92) 0%,rgba(9,19,32,.62) 48%,rgba(9,19,32,.12) 100%)}
    .service-content{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:center;padding:clamp(2rem,6vw,4.5rem) clamp(1.5rem,7vw,6rem) clamp(11rem,32vh,16rem);max-width:640px}
    .service-bignum{position:absolute;z-index:1;top:50%;right:clamp(1rem,5vw,4rem);transform:translateY(-50%);font-family:var(--font-en);font-weight:200;font-size:clamp(8rem,22vw,20rem);line-height:.8;color:rgba(255,255,255,.15);letter-spacing:-.04em}
    .service-cat{font-family:var(--font-en);font-size:.7rem;letter-spacing:.35em;color:var(--blue-bright);text-transform:uppercase;margin-bottom:1rem}
    .service-icon{width:52px;height:52px;border-radius:50%;background:rgba(47,143,255,.16);border:1px solid rgba(47,143,255,.4);display:flex;align-items:center;justify-content:center;margin-bottom:1.5rem}
    .service-icon .material-symbols-rounded{color:var(--blue-bright);font-size:1.6rem}
    .service-h3{font-family:var(--font-serif);font-weight:700;font-size:clamp(1.8rem,4vw,3rem);color:#fff;letter-spacing:.06em;line-height:1.3;margin-bottom:1.25rem}
    .service-desc{font-size:clamp(1rem,1.5vw,1.05rem);color:rgba(255,255,255,.82);line-height:2;margin-bottom:2.25rem;max-width:28em}
    .btn-service{display:inline-flex;align-items:center;gap:.6rem;align-self:flex-start;color:#fff;font-size:.88rem;font-weight:500;letter-spacing:.04em;padding:.75rem 1.5rem;border:1px solid rgba(255,255,255,.5);border-radius:100px;transition:background var(--trans),gap var(--trans),border-color var(--trans)}
    .btn-service:hover{background:var(--blue);border-color:var(--blue);color:#fff;gap:.9rem}
    .btn-service .material-symbols-rounded{font-size:1.05rem}
    .services-indicator{display:flex;gap:1.25rem}
    .ind-item{background:none;border:none;cursor:pointer;padding:.4rem 0;text-align:left;min-width:56px}
    .ind-num{display:block;font-family:var(--font-en);font-size:.72rem;font-weight:500;letter-spacing:.1em;color:rgba(255,255,255,.45);margin-bottom:.5rem;transition:color var(--trans)}
    .ind-item.active .ind-num{color:#fff}
    .ind-bar{display:block;width:56px;height:2px;background:rgba(255,255,255,.2);border-radius:1px;overflow:hidden;position:relative}
    .ind-bar::after{content:'';position:absolute;inset:0;background:var(--blue-bright);transform:scaleX(0);transform-origin:left;transition:transform var(--trans)}
    .ind-item.active .ind-bar::after{transform:scaleX(1)}
    .services-scrollhint{position:absolute;top:clamp(1.5rem,4vw,2.5rem);right:clamp(1.5rem,6vw,5rem);z-index:4;display:flex;align-items:center;gap:.6rem;color:rgba(255,255,255,.6);font-family:var(--font-en);font-size:.66rem;letter-spacing:.2em;text-transform:uppercase}
    .services-scrollhint .material-symbols-rounded{font-size:1.1rem;animation:nudgeX 1.6s ease-in-out infinite}
    @keyframes nudgeX{0%,100%{transform:translateX(0)}50%{transform:translateX(6px)}}
    @media (max-width:767px){
      .services-pin-wrap{height:auto!important}
      .services-sticky{position:relative;height:auto;overflow:hidden;display:flex;flex-direction:column}
      .services-track{flex-direction:column;width:100%!important;transform:none!important}
      .service-panel{width:100%;height:60vh;min-height:340px;overflow:hidden}
      .service-content{padding:clamp(2rem,6vw,4.5rem) 1.5rem clamp(2.5rem,8vw,5rem);max-width:100%}
      .services-indicator,.services-scrollhint{display:none}
      .services-hud{position:static;order:-1;left:auto;bottom:auto;max-width:none;padding:clamp(2.5rem,8vw,4rem) 1.5rem 2rem;background:var(--navy-deep)}
      .services-hud-title{font-size:clamp(1.7rem,4vw,2.8rem);margin-bottom:0}
      .services-hud-link{margin-top:1.25rem}
    }

    /* ============================================================
       TROUBLE
       ============================================================ */
    /* 相談・見積もり無料バッジ */
    .trouble-free-badge{display:inline-flex;align-items:center;gap:.5rem;background:var(--blue-grad);color:#fff;padding:.6rem 1.5rem;border-radius:99px;font-weight:700;font-size:.9rem;letter-spacing:.04em;margin-top:1.4rem;box-shadow:0 8px 22px -10px rgba(23,99,214,.55)}
    .trouble-free-badge .material-symbols-rounded{font-size:1.1rem;font-variation-settings:'FILL' 1}
    .trouble-grid{display:grid;grid-template-columns:1fr;gap:1.25rem;margin-top:2.5rem}
    @media (min-width:680px){.trouble-grid{grid-template-columns:1fr 1fr}}
    .trouble-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.75rem 1.6rem}
    .trouble-q{font-family:var(--font-serif);font-weight:600;font-size:1.05rem;color:var(--ink);line-height:1.6;padding-left:1.6rem;position:relative;margin-bottom:.9rem;word-break:auto-phrase}
    .trouble-q::before{content:'Q';position:absolute;left:0;top:0;font-family:var(--font-en);font-weight:700;color:var(--blue);font-size:1rem}
    .trouble-s{font-size:.9375rem;color:var(--ink-2);line-height:1.85;padding-top:.9rem;border-top:1px dashed var(--line-2)}
    .trouble-s b{color:var(--blue);font-family:var(--font-en);font-size:.78rem;letter-spacing:.06em}

    /* ============================================================
       REASONS（6）
       ============================================================ */
    #reasons{position:relative;background:var(--bg-soft2) url('https://cdn.cuezilla-cms.com/enjoyworks-test26.tech/images/1414/reasons-bg.webp') center/cover no-repeat}
    #reasons::before{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(180deg,rgba(244,247,251,.6),rgba(244,247,251,.12) 35%,rgba(244,247,251,.45))}
    #reasons>.container{position:relative;z-index:1}
    .reasons-grid{display:grid;grid-template-columns:1fr;gap:1.25rem;margin-top:3rem}
    @media (min-width:680px){.reasons-grid{grid-template-columns:1fr 1fr}}
    @media (min-width:1024px){.reasons-grid{grid-template-columns:repeat(3,1fr);gap:1.5rem}}
    .reason-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:2rem 1.75rem;position:relative;overflow:hidden}
    .reason-num{font-family:var(--font-en);font-weight:200;font-size:3rem;color:var(--blue-soft);line-height:1;position:absolute;top:.6rem;right:1rem}
    .reason-title{font-family:var(--font-serif);font-weight:700;font-size:1.12rem;color:var(--ink);margin-bottom:.8rem;line-height:1.5;position:relative;z-index:1;padding-right:2.5rem;word-break:auto-phrase}
    .reason-desc{font-size:.9375rem;color:var(--ink-2);line-height:1.9;position:relative;z-index:1}

    /* ============================================================
       WORKS（フィルタ＋ギャラリー）
       ============================================================ */
    .works-grid{display:grid;grid-template-columns:1fr;gap:1.25rem}
    @media (min-width:560px){.works-grid{grid-template-columns:1fr 1fr}}
    @media (min-width:960px){.works-grid{grid-template-columns:repeat(3,1fr)}}
    .work-card{position:relative;overflow:hidden;aspect-ratio:4/3}
    .work-card.is-hidden{display:none}
    .work-card figure.ph{height:100%;transition:transform .9s var(--ease)}
    .work-card:hover figure.ph{transform:scale(1.07)}
    .work-card::after{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(to top,rgba(9,19,32,.72),transparent 55%);opacity:0;transition:opacity var(--trans)}
    .work-card:hover::after{opacity:1}
    .work-cat-tag{position:absolute;left:.8rem;bottom:.8rem;z-index:2;background:rgba(13,27,42,.7);color:#fff;font-size:.72rem;padding:.3rem .7rem;border-radius:var(--radius-sm);letter-spacing:.04em;backdrop-filter:blur(4px)}

    /* ============================================================
       RECRUIT MOVIE
       ============================================================ */
    .movie-recruit{display:grid;grid-template-columns:1fr;gap:3rem;align-items:center}
    @media (min-width:900px){.movie-recruit{grid-template-columns:1fr 1.05fr;gap:4rem}}
    .movie-frame{position:relative;aspect-ratio:16/9;overflow:hidden;box-shadow:0 30px 60px -30px rgba(13,27,42,.35)}
    .movie-play{position:absolute;inset:0;margin:auto;width:74px;height:74px;border-radius:50%;background:rgba(255,255,255,.92);display:flex;align-items:center;justify-content:center;z-index:2;box-shadow:0 12px 30px -8px rgba(0,0,0,.45);transition:transform var(--trans),background var(--trans)}
    .movie-frame:hover .movie-play{transform:scale(1.08);background:#fff}
    .movie-play .material-symbols-rounded{font-size:2.3rem;color:var(--blue);font-variation-settings:'FILL' 1;margin-left:3px}
    .recruit-points{margin:1.5rem 0 2rem;display:grid;gap:.75rem}
    .recruit-points li{position:relative;padding-left:1.8rem;font-size:1rem;color:var(--ink-2);line-height:1.7}
    .recruit-points li::before{content:'check_circle';font-family:'Material Symbols Rounded';position:absolute;left:0;top:.05rem;color:var(--blue);font-size:1.2rem;font-variation-settings:'FILL' 1}
    /* スマホ時：テキスト上・動画下 */
    @media (max-width:899px){
      .movie-frame{order:2}
      .movie-recruit>.reveal{order:1}
      #recruit-movie .btn-primary{width:100%;justify-content:center}
    }
    /* Recruit Movie：暗い背景画像＋白文字＋印象的アニメ */
    #recruit-movie{position:relative;overflow:hidden;background:var(--navy-deep)}
    .rm-bg{position:absolute;inset:0;z-index:0}
    .rm-bg img{width:100%;height:100%;object-fit:cover;object-position:center}
    /* 背景画像は紺色へのなじみが作り込み済み。スクリムは可読性のため軽めに */
    .rm-scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(to bottom, transparent 0%, transparent 44%, rgba(9,19,32,.28) 100%)}
    @media (min-width:900px){
      .rm-bg img{object-position:100% center}
      .rm-scrim{background:linear-gradient(to right, transparent 32%, rgba(9,19,32,.45) 100%)}
    }
    #recruit-movie>.container{position:relative;z-index:2}
    #recruit-movie .sec-label{color:#cfe4fb}
    #recruit-movie .sec-label::before{background:rgba(207,228,251,.6)}
    #recruit-movie .sec-label{text-shadow:0 1px 8px rgba(0,0,0,.6)}
    #recruit-movie .section-title{color:#fff;text-shadow:0 2px 20px rgba(0,0,0,.7),0 0 40px rgba(0,0,0,.5)}
    #recruit-movie .section-title span{color:#fff}
    #recruit-movie .recruit-points li{color:rgba(255,255,255,.95);text-shadow:0 1px 12px rgba(0,0,0,.65),0 2px 24px rgba(0,0,0,.4)}
    #recruit-movie .recruit-points li::before{color:var(--blue-bright)}
    /* 再生ボタンのパルスリング */
    .movie-play::after{content:'';position:absolute;inset:0;border-radius:50%;border:2px solid rgba(255,255,255,.7);animation:rmPulse 2.4s ease-out infinite;pointer-events:none}
    @keyframes rmPulse{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.85);opacity:0}}

    /* ============================================================
       FLOW
       ============================================================ */
    .flow-steps{display:grid;grid-template-columns:1fr;gap:1rem;margin-top:3rem;counter-reset:flow}
    @media (min-width:560px){.flow-steps{grid-template-columns:1fr 1fr}}
    @media (min-width:1024px){.flow-steps{grid-template-columns:repeat(5,1fr);gap:.75rem}}
    .flow-step{background:#fff;border:1px solid var(--line);border-radius:var(--radius-md);padding:1.5rem 1.25rem;display:flex;gap:.9rem;align-items:flex-start;position:relative}
    .flow-step .n{font-family:var(--font-en);font-weight:700;font-size:1rem;color:#fff;background:var(--blue-grad);width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}
    .flow-step .t{font-family:var(--font-serif);font-weight:600;font-size:.98rem;color:var(--ink);line-height:1.4}
    .flow-step .d{font-size:.78rem;color:var(--ink-3);margin-top:.25rem}
    @media (min-width:1024px){.flow-step:not(:last-child)::after{content:'chevron_right';font-family:'Material Symbols Rounded';position:absolute;right:-.85rem;top:50%;transform:translateY(-50%);color:var(--line-2);font-size:1.3rem;z-index:3}}

    /* ============================================================
       RECRUIT CTA BOX
       ============================================================ */
    .recruit-cta-box{position:relative;overflow:hidden;background:var(--navy-deep);border-radius:var(--radius-lg);padding:clamp(2.5rem,6vw,4rem);text-align:center;color:#fff}
    .recruit-cta-box::before{content:'';position:absolute;inset:0;background:radial-gradient(80% 120% at 80% 0%,rgba(47,143,255,.3),transparent 55%)}
    .recruit-cta-box>*{position:relative;z-index:1}
    .recruit-cta-box .sec-label{justify-content:center;color:#cfe4fb}
    .recruit-cta-box .sec-label::before{background:rgba(207,228,251,.6)}
    .recruit-cta-box h3{font-family:var(--font-serif);font-weight:700;font-size:clamp(1.5rem,3.5vw,2.3rem);letter-spacing:.05em;margin-bottom:1rem}
    .recruit-cta-box p{color:rgba(255,255,255,.78);line-height:1.9;max-width:38em;margin:0 auto 2rem;font-size:.95rem}

    /* ============================================================
       VISION
       ============================================================ */
    /* カード部のみコンテンツ幅を無視して大きく（PCは最低120px余白を確保） */
    #vision{padding-left:0;padding-right:0}
    #vision>.container{padding:0 1.5rem}
    .vision-grid{display:grid;grid-template-columns:1fr;gap:1.25rem;margin-top:3rem;padding:0 1.5rem}
    @media (min-width:680px){.vision-grid{grid-template-columns:1fr 1fr;gap:1.5rem}}
    @media (min-width:1024px){.vision-grid{gap:1.75rem;margin-top:3.5rem;padding:0 max(120px,4vw)}}
    .vision-pillar{background:var(--bg-soft);border-radius:var(--radius-lg);padding:clamp(2rem,3vw,3rem)}
    .vision-pillar .tag{font-family:var(--font-en);font-size:.72rem;letter-spacing:.18em;color:var(--blue);text-transform:uppercase;margin-bottom:1.1rem}
    .vision-pillar h4{font-family:var(--font-serif);font-weight:700;font-size:clamp(1.2rem,1.9vw,1.55rem);color:var(--ink);line-height:1.5;margin-bottom:1rem;word-break:auto-phrase}
    .vision-pillar p{font-size:clamp(.95rem,1.25vw,1.05rem);color:var(--ink-2);line-height:1.95}

    /* ============================================================
       COMPANY
       ============================================================ */
    .company-grid{display:grid;grid-template-columns:1fr;gap:3rem;margin-top:3rem}
    @media (min-width:900px){.company-grid{grid-template-columns:1.1fr .9fr;gap:4rem}}
    .company-table{width:100%;border-collapse:collapse;font-size:1rem}
    .company-table th,.company-table td{text-align:left;padding:1rem .5rem;border-bottom:1px solid var(--line);vertical-align:top;line-height:1.7}
    .company-table th{width:32%;color:var(--ink);font-weight:700;font-family:var(--font-serif);white-space:nowrap}
    .company-table td{color:var(--ink-2)}
    @media (max-width:599px){
      .company-table,.company-table tbody,.company-table tr{display:block;width:100%}
      .company-table tr{border-bottom:1px solid var(--line)}
      .company-table tr:last-child{border-bottom:none}
      .company-table th,.company-table td{display:block;width:100%;padding:.35rem 0;border-bottom:none;white-space:normal;overflow-wrap:anywhere}
      .company-table th{font-size:.72rem;font-weight:600;color:var(--ink-3);padding-top:.75rem;letter-spacing:.04em}
      .company-table td{font-size:.9375rem;padding-bottom:.75rem}
    }
    .map{overflow:hidden}
    .map .ph-box{aspect-ratio:4/3;min-height:0;max-width:100%}
    .map>p{margin-top:14px;padding-bottom:clamp(1rem,3vw,1.5rem)}

    /* ============================================================
       BY THE NUMBERS
       ============================================================ */
    #numbers{background:var(--navy-deep);color:#fff;overflow:hidden}
    #numbers::before{content:'';position:absolute;inset:0;background:radial-gradient(80% 120% at 20% 50%,rgba(47,143,255,.18),transparent 60%);z-index:0;pointer-events:none}
    #numbers>.container{position:relative;z-index:1}
    #numbers .sec-label{color:#cfe4fb}
    #numbers .sec-label::before{background:rgba(207,228,251,.5)}
    .numbers-heading{font-family:var(--font-serif);font-weight:700;font-size:clamp(1.55rem,3.5vw,2.3rem);color:#fff;line-height:1.5;margin-top:.7rem;word-break:auto-phrase}
    @media (max-width:679px){.numbers-heading br{display:none}}
    .numbers-sub{font-size:1rem;color:rgba(255,255,255,.7);line-height:1.9;margin-top:.7rem}
    .numbers-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;margin-top:3.5rem;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.08)}
    @media (min-width:680px){.numbers-grid{grid-template-columns:repeat(4,1fr)}}
    .num-item{padding:clamp(1.8rem,4vw,2.8rem) clamp(1.2rem,3vw,2.2rem);background:var(--navy-deep);text-align:center;position:relative}
    .num-item::before{content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);width:2px;height:32px;background:var(--blue-grad);opacity:.7}
    .num-val{display:flex;align-items:baseline;justify-content:center;gap:.1em;line-height:1;margin-top:2rem}
    .num-count{font-family:var(--font-en);font-weight:200;font-size:clamp(3rem,7vw,5rem);color:#fff;letter-spacing:-.02em}
    .num-unit{font-family:var(--font-serif);font-size:clamp(1rem,2vw,1.4rem);color:var(--blue-bright);font-weight:600;letter-spacing:.04em}
    .num-label{font-size:.875rem;color:rgba(255,255,255,.6);margin-top:.8rem;letter-spacing:.04em;word-break:keep-all;line-height:1.5}
    @media (max-width:679px){
      .numbers-heading{font-size:clamp(1.3rem,5vw,1.8rem)}
      .num-count{font-size:clamp(2.4rem,9vw,3.8rem)}
      .num-unit{font-size:clamp(.9rem,3vw,1.2rem)}
      .num-item{padding:1.6rem 1rem}
      .num-label{font-size:.8rem}
    }

    /* ============================================================
       ぼかし装飾（CSS gradient）— ヒーロー用 SP非表示
       ============================================================ */
    /* ぼかし装飾 — テキスト列左上に重ねる（ボタン上方に留める） */
    .deco-blur-1{position:absolute;width:clamp(280px,54vw,680px);top:-4%;left:12%;z-index:1;pointer-events:none;opacity:.45;mix-blend-mode:multiply}
    @media(max-width:767px){.deco-blur-1{left:35%;top:5%}}
    .deco-blur-2{display:none}

    /* MARQUEE — 廃止 */


    /* ============================================================
       FINAL CTA
       ============================================================ */
    #cta-final{background:var(--navy-deep);color:#fff;text-align:center}
    #cta-final::before{content:'';position:absolute;inset:0;background:radial-gradient(70% 110% at 50% 0%,rgba(47,143,255,.25),transparent 55%);z-index:0}
    #cta-final .container{z-index:1}
    #cta-final .sec-label{color:#cfe4fb}
    #cta-final .sec-label::before{background:rgba(207,228,251,.6)}
    #cta-final .section-title{color:#fff}
    #cta-final .section-title span{color:var(--blue-bright)}
    #cta-final p{color:rgba(255,255,255,.75);line-height:1.9;max-width:38em;margin:1.25rem auto 2.25rem;font-size:.95rem}
    .tel-box{margin-top:2.5rem;color:rgba(255,255,255,.7);font-size:.85rem}
    .tel-box .tel-num{font-family:var(--font-en);font-weight:300;font-size:clamp(1.8rem,5vw,2.6rem);color:#fff;letter-spacing:.06em;margin:.3rem 0}

    /* ============================================================
       FOOTER
       ============================================================ */
    /* Footer CTA */
    footer{background:var(--navy-deep)}
    .footer-cta{display:grid;grid-template-columns:1fr 1fr}
    .footer-cta>a{position:relative;overflow:hidden;display:block;min-height:220px;cursor:pointer}
    .footer-cta>a .bg{position:absolute;inset:0;z-index:0;background:var(--navy-deep);background-size:cover;background-position:center;transition:transform var(--trans)}
    .footer-cta>a:hover .bg{transform:scale(1.03)}
    .footer-cta>a::after{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(135deg,rgba(23,99,214,.6),rgba(9,19,32,.7));transition:background var(--trans)}
    .footer-cta>a:hover::after{background:linear-gradient(135deg,rgba(23,99,214,.8),rgba(9,19,32,.8))}
    .fc-inner{position:relative;z-index:2;padding:2.5rem 2rem;display:flex;flex-direction:column;gap:.4rem}
    .fc-en{font-family:var(--font-en);font-size:.72rem;font-weight:600;letter-spacing:.25em;color:rgba(255,255,255,.55);text-transform:uppercase}
    .fc-jp{font-size:1.4rem;font-weight:700;color:#fff}
    .fc-desc{font-size:.82rem;color:rgba(255,255,255,.7);line-height:1.7}
    @media(max-width:767px){.footer-cta{grid-template-columns:1fr}}
    /* Footer Main */
    .footer-main-inner{padding:clamp(3.5rem,7vw,5.5rem) 1.5rem 2rem;border-top:1px solid rgba(255,255,255,.06)}
    .footer-top{max-width:var(--max-w);margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr;gap:clamp(2rem,5vw,4rem)}
    @media(max-width:767px){.footer-top{grid-template-columns:1fr}}
    .footer-logo-img{height:36px;width:auto;filter:brightness(0) invert(1);display:block;margin-bottom:1rem}
    .footer-brand>p{font-size:.82rem;color:rgba(255,255,255,.55);line-height:1.8;margin-bottom:.25rem}
    .footer-info{font-size:.8rem;color:rgba(255,255,255,.55);line-height:2;margin-top:.75rem}
    .footer-nav-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
    @media(max-width:599px){.footer-nav-cols{grid-template-columns:1fr 1fr;gap:1.25rem}}
    .footer-nav h4{font-family:var(--font-en);font-size:.65rem;font-weight:600;color:rgba(255,255,255,.4);letter-spacing:.18em;text-transform:uppercase;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid rgba(255,255,255,.07)}
    .footer-nav ul{display:flex;flex-direction:column;gap:.5rem}
    .footer-nav a{font-size:.82rem;color:rgba(255,255,255,.6);transition:color var(--trans)}
    .footer-nav a:hover{color:#fff}
    .footer-bottom{border-top:1px solid rgba(255,255,255,.07);padding:1.25rem 1.5rem;font-size:.74rem;color:rgba(255,255,255,.4)}
    .footer-bottom .inner{max-width:var(--max-w);margin:0 auto;width:100%;display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem}
    .footer-bottom a{color:rgba(255,255,255,.4)}
    .footer-bottom a:hover{color:rgba(255,255,255,.7)}

    /* ============================================================
       デバイス別改行ユーティリティ
       ============================================================ */
    br.br-sp{display:none}
    br.br-tb{display:none}
    br.br-pc{display:none}
    @media(max-width:599px){br.br-sp{display:block}}
    @media(min-width:600px)and(max-width:1023px){br.br-tb{display:block}}
    @media(min-width:1024px){br.br-pc{display:block}}

    /* ============================================================
       REVEAL / REDUCED MOTION
       ============================================================ */
    .reveal,.reveal-l,.reveal-r{opacity:0;transition:opacity .8s var(--ease),transform .8s var(--ease)}
    .reveal{transform:translateY(28px)}
    .reveal-l{transform:translateX(-32px)}
    .reveal-r{transform:translateX(32px)}
    .reveal.visible,.reveal-l.visible,.reveal-r.visible{opacity:1;transform:none}
    @media (prefers-reduced-motion:reduce){
      *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
      .reveal,.reveal-l,.reveal-r{opacity:1;transform:none}
      .scroll-cue-line::after,.marquee-track,.services-scrollhint .material-symbols-rounded{animation:none!important}
      .service-ph figure.ph{animation:none!important}
      .hc-item{opacity:1!important;filter:none!important;transform:none!important}
    }

    /* ============================================================
       見出し専用アニメーション
       ============================================================ */
    @keyframes kfLabelIn{
      from{opacity:0;letter-spacing:.02em;transform:translateX(-5px)}
      to  {opacity:1;transform:translateX(0)}
    }
    @keyframes kfHeadSettle{
      from{opacity:0;transform:translateY(12px)}
      to  {opacity:1;transform:none}
    }
    @keyframes kfLineExpand{
      from{transform:scaleX(0)}
      to  {transform:scaleX(1)}
    }

    /* .reveal / .reveal-l ブロック内の sec-label + section-title */
    .reveal.visible .sec-label,
    .reveal-l.visible .sec-label{
      animation:kfLabelIn .85s var(--ease) 0s both;
    }
    .reveal.visible .sec-label::before,
    .reveal-l.visible .sec-label::before{
      animation:kfLineExpand .4s var(--ease) 0s both;
    }
    .reveal.visible .section-title,
    .reveal-l.visible .section-title{
      animation:kfHeadSettle .75s var(--ease) .12s both;
    }

    /* .reveal ブロックが sec-label + section-title を含む場合: 親はopacity即時解放 */
    .reveal:has(.section-title)         {transform:none}
    .reveal:has(.section-title).visible {transition:opacity .01s}
    .reveal-l:has(.section-title)         {transform:none}
    .reveal-l:has(.section-title).visible {transition:opacity .01s}

    /* reduced motion */
    @media (prefers-reduced-motion:reduce){
      .reveal.visible .sec-label,
      .reveal-l.visible .sec-label,
      .reveal.visible .sec-label::before,
      .reveal-l.visible .sec-label::before,
      .reveal.visible .section-title,
      .reveal-l.visible .section-title
      {animation:none!important;opacity:1;transform:none}
      .sec-label::before{transform:scaleX(1)!important}
    }
    :focus-visible{outline:2px solid var(--blue);outline-offset:3px}
    #services :focus-visible,.recruit-cta-box :focus-visible,#cta-final :focus-visible{outline-color:#fff}

/* ============================================================
   案件追補ユーティリティ（受領HTMLの装飾インラインstyleをクラス化・R-7）
   ============================================================ */
.u-mt-14{margin-top:14px}
.u-mt-18{margin-top:18px}
.u-mt-25{margin-top:2.5rem}
.u-jc-center{justify-content:center}
.u-ta-center{text-align:center}
.tel-note{font-size:13px;opacity:.9}
/* 暗背景上の白ボタン（最終CTA） */
.btn-primary.is-on-dark{background:#fff;color:var(--blue-deep)}
.btn-primary.is-on-dark:hover{color:var(--blue-deep)}
/* 会社概要：地図iframe */
.map-iframe{width:100%;aspect-ratio:4/3;border:0;border-radius:var(--radius-md);display:block}
/* フッターCTA 背景画像（インラインstyle→クラス化） */
.footer-cta .fc-bg-contact{background-image:url('https://cdn.cuezilla-cms.com/enjoyworks-test26.tech/images/1414/contact-banner.webp');background-size:cover;background-position:center}
.footer-cta .fc-bg-recruit{background-image:url('https://cdn.cuezilla-cms.com/enjoyworks-test26.tech/images/1414/recruit-banner.webp');background-size:cover;background-position:center}

/* ============================================================
   バッチ2追補（下層ページ）
   ============================================================ */
/* reason.html のダークセクション（自前inline由来・新規クラス／衝突なし） */
.sec-numbers{background:var(--navy-deep);color:#fff;overflow:hidden;position:relative}
.sec-numbers::before{content:'';position:absolute;inset:0;background:radial-gradient(80% 120% at 20% 50%,rgba(47,143,255,.18),transparent 60%);z-index:0;pointer-events:none}
.sec-numbers>.container{position:relative;z-index:1}
.sec-numbers .sec-label{color:#cfe4fb}
.sec-numbers .sec-label::before{background:rgba(207,228,251,.5)}
.sec-cta{background:var(--navy-deep);color:#fff;text-align:center;position:relative;overflow:hidden}
.sec-cta::before{content:'';position:absolute;inset:0;background:radial-gradient(70% 110% at 50% 0%,rgba(47,143,255,.25),transparent 55%);z-index:0}
.sec-cta>.container{z-index:1;position:relative}
.sec-cta .sec-label{color:#cfe4fb;justify-content:center}
.sec-cta .sec-label::before{background:rgba(207,228,251,.6)}
.sec-cta .section-title{color:#fff}
.sec-cta .section-title span{color:var(--blue-bright)}
.sec-cta>div>p{color:rgba(255,255,255,.75);line-height:1.9;max-width:38em;margin:1.25rem auto 2.25rem;font-size:.95rem}

/* バッチ2ユーティリティ（装飾インラインstyleのクラス化・R-7） */
.u-mt-8{margin-top:8px}
.u-mt-10{margin-top:10px}
.u-mt-30{margin-top:30px}
.u-mb-24{margin-bottom:24px}
.u-jc-center{justify-content:center}
.u-sign{text-align:right;font-family:var(--font-serif);font-weight:700;color:var(--ink);margin-top:24px}
.u-pt-64{padding-top:64px}
.u-pt-72{padding-top:72px}
.u-maxw-900{margin:0 auto;max-width:900px}
.btn-row.u-mt-2{margin-top:2rem}
/* service.html 事業一覧グリッド（svc-feature 4枚・PC2列） */
.svc-grid4{display:grid;grid-template-columns:1fr;gap:18px}

/* ============================================================
   recruit.html 固有スタイル（.page-recruit でスコープ＝TOP/他ページの
   同名クラス（.work-card/.flow-steps/.flow-step/.spec）との衝突を回避）
   ============================================================ */
.page-recruit .work-grid{display:grid;gap:1.25rem;grid-template-columns:1fr;margin-bottom:2.25rem}
@media(min-width:760px){.page-recruit .work-grid{grid-template-columns:1fr 1fr;gap:1.5rem}}
.page-recruit .work-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:2.1rem 1.9rem;overflow:hidden;aspect-ratio:auto;transition:transform var(--trans),box-shadow var(--trans),border-color var(--trans)}
.page-recruit .work-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--blue-grad);transform:scaleY(0);transform-origin:top;transition:transform var(--trans)}
.page-recruit .work-card::after{content:none}
.page-recruit .work-card:hover{transform:translateY(-4px);box-shadow:0 22px 44px -24px rgba(13,27,42,.3);border-color:var(--line-2)}
.page-recruit .work-card:hover::before{transform:scaleY(1)}
.page-recruit .work-card-head{display:flex;align-items:center;gap:1.05rem;margin-bottom:1.15rem}
.page-recruit .work-ico{flex-shrink:0;width:60px;height:60px;border-radius:15px;background:var(--blue-soft);display:flex;align-items:center;justify-content:center;color:var(--blue)}
.page-recruit .work-ico .material-symbols-rounded{font-size:31px;font-variation-settings:'FILL' 0,'wght' 400,'GRAD' 0,'opsz' 40}
.page-recruit .work-letter{font-family:var(--font-en);font-weight:700;font-size:.68rem;letter-spacing:.2em;color:var(--blue);display:block;margin-bottom:.25rem}
.page-recruit .work-title{font-family:var(--font-serif);font-weight:700;font-size:1.16rem;color:var(--ink);line-height:1.45}
.page-recruit .work-card>p{font-size:.95rem;color:var(--ink-2);line-height:1.95;margin:0}
.page-recruit .recruit-pos{display:inline-flex;align-items:center;gap:.7rem;background:var(--navy-deep);color:#fff;border-radius:99px;padding:.65rem 1.5rem;font-family:var(--font-serif);font-weight:700;font-size:1.08rem;margin-bottom:2rem}
.page-recruit .recruit-pos .material-symbols-rounded{font-size:22px;color:var(--blue-bright)}
.page-recruit .spec-group + .spec-group{margin-top:2.5rem}
.page-recruit .spec-group-ttl{display:flex;align-items:center;gap:.7rem;font-family:var(--font-serif);font-weight:700;font-size:1.12rem;color:var(--ink);margin-bottom:1.05rem}
.page-recruit .spec-group-ttl .material-symbols-rounded{font-size:23px;color:var(--blue);background:var(--blue-soft);width:42px;height:42px;border-radius:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.page-recruit .spec{border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden;background:#fff;width:auto}
.page-recruit .spec-row{display:grid;grid-template-columns:210px 1fr}
.page-recruit .spec-row + .spec-row{border-top:1px solid var(--line)}
.page-recruit .spec dt{background:var(--bg-soft);padding:1.15rem 1.45rem;font-weight:700;color:var(--ink);font-size:.92rem;display:flex;align-items:center;width:auto;white-space:normal}
.page-recruit .spec dd{padding:1.15rem 1.45rem;color:var(--ink-2);font-size:.95rem;line-height:1.95}
.page-recruit .spec dd strong{color:var(--blue-deep);font-weight:700;font-size:1.02rem}
.page-recruit .spec dd .em{color:var(--ink);font-weight:700}
.page-recruit .spec dd small{display:block;color:var(--ink-3);font-size:.82rem;margin-top:.2rem}
@media(max-width:640px){.page-recruit .spec-row{grid-template-columns:1fr}.page-recruit .spec dt{border-bottom:1px solid var(--line)}}
.page-recruit .flow-steps{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem;margin-top:0}
.page-recruit .flow-step{display:inline-flex;align-items:center;background:var(--bg-soft2);color:var(--ink);border:0;border-radius:9px;padding:.55rem 1.05rem;font-weight:700;font-size:.92rem}
.page-recruit .flow-step.is-goal{background:var(--blue-grad);color:#fff}
.page-recruit .flow-arrow{color:var(--blue);font-size:21px;line-height:1}
/* 会社概要：地図iframe（fig内・高さ充填） */
.fig-flush{padding:0;overflow:hidden}
.map-iframe-fill{width:100%;height:100%;min-height:300px;border:0;display:block}


/* ===== cuezilla-skin.css ===== */
/* ============================================================
   CueZilla 動的パーツ スキンキット v1.0
   ------------------------------------------------------------
   目的: ブログ/施工実績(blog-ex)/お問い合わせ/パンくず/ページヘッダー等の
         CueZilla 既定パーツを、サイトのトンマナ（ダーク/ライト・ブランド色・
         フォント・角丸）に "自動で寄せる" 汎用CSS。案件ごとの調整を最小化する。

   思想:
     (1) 色は CueZilla テーマ変数(--main-color 等)から自動連動
         → サイトのテーマ設定がそのまま skin にも効く（色は一元管理）
     (2) フォント/角丸/グリッド幅はトークンで指定（テーマ変数に無いため）
     (3) partsNNN は採番が可変だが接尾辞は共通(_post_wrap 等)
         → 属性セレクタ [class*="_xxx"] で番号非依存に当てる

   使い方:
     1. §0 のトークンを案件に合わせて調整（ダーク/ライトはプリセットをコピー）
     2. CueZilla テーマカラー(--main-color 等)をブランド値に設定
     3. 本ファイルをサイト全体CSS(AddCssInfo)へ貼る（サイト固有のフリーコーディングCSSの後ろ）
   ============================================================ */


/* ============================================================
   §0  トークン ─ ここだけ案件ごとに調整
   ============================================================ */
:root{
  /* --- 色: CueZilla テーマ変数から自動取得（無い場合のフォールバック付き） --- */
  --dyn-bg:        var(--background-color, #ffffff);   /* ページ/セクション背景 */
  --dyn-surface:   var(--temporary-color, #f4f4f2);    /* カード/パネル/入力欄の面 */
  --dyn-text:      var(--text-color, #222222);         /* 本文 */
  --dyn-heading:   var(--text-color, #111111);         /* 見出し */
  --dyn-muted:     var(--sub-color, #8a8a8a);          /* 補助/日付 */
  --dyn-border:    var(--sub-color, #dddddd);          /* 罫線/枠 */
  --dyn-accent:    var(--main-color, #1e3a5f);         /* アクセント（ボタン/チップ/見出しバー） */
  --dyn-accent-2:  var(--link-color, var(--main-color, #1e3a5f)); /* リンク/ホバー */
  --dyn-on-accent: #ffffff;                             /* アクセント面の上の文字 */

  /* --- フォント（site.css の :root に定義があればそれを使用） --- */
  --dyn-font-display: var(--font-display, "Noto Serif JP","Yu Mincho",serif);
  --dyn-font-body:    var(--font-body, "Noto Sans JP","Yu Gothic",sans-serif);
  --dyn-font-numeric: var(--font-numeric, "EB Garamond","Noto Serif JP",serif);

  /* --- 角丸（チップ/ボタン/カード）。角なしにするなら 0 --- */
  --dyn-radius: 6px;
  /* --- 一覧カードの最小幅 / 段組ギャップ --- */
  --dyn-card-min: 300px;
  --dyn-gap: 32px;
}

/* === テーマ プリセット（使う方を §0 の後にコピペして上書き） =========
   【ダーク】
   :root{
     --dyn-bg:#0A0A0A; --dyn-surface:#111110; --dyn-text:#F4F1EC; --dyn-heading:#FAF7F1;
     --dyn-muted:#8C857A; --dyn-border:#3A352D; --dyn-accent:#8E3A22; --dyn-accent-2:#B0533A;
     --dyn-on-accent:#FAF7F1; --dyn-radius:0;
   }
   【ライト】
   :root{
     --dyn-bg:#ffffff; --dyn-surface:#f7f7f5; --dyn-text:#222222; --dyn-heading:#111111;
     --dyn-muted:#8a8a8a; --dyn-border:#e3e3e3; --dyn-accent:#1e3a5f; --dyn-accent-2:#1e3a5f;
     --dyn-on-accent:#ffffff; --dyn-radius:6px;
   }
   ※ CueZilla テーマ変数(--main-color 等)を設定する場合は §0 が自動連動するのでプリセット不要。
   ============================================================ */


/* ============================================================
   §1  パンくず（CueZilla parts###_breadcrumb / p-breadcrumb）
   実markup: div.parts###_breadcrumb.p-breadcrumb.c-breadcrumb
             > ul.p-breadcrumb__inner(BreadcrumbList) > li.p-breadcrumb__item(ListItem)
   CueZilla共通CSSにパンくず装飾は無い → skin側で横並び・区切り・配色を付与
   ============================================================ */
[class*="_breadcrumb"], .p-breadcrumb{ background:var(--dyn-bg) !important; }
.p-breadcrumb__inner{
  list-style:none; margin:0 auto; padding:14px 24px;
  max-width:1200px; display:flex; flex-wrap:wrap; align-items:center;
}
.p-breadcrumb__item{
  display:inline-flex; align-items:center;
  color:var(--dyn-muted) !important; font-family:var(--dyn-font-body);
  font-size:.78rem; letter-spacing:.04em;
}
.p-breadcrumb__item a{ color:var(--dyn-muted) !important; text-decoration:none; }
.p-breadcrumb__item a:hover{ color:var(--dyn-accent-2) !important; text-decoration:underline; }
.p-breadcrumb__item:last-child{ color:var(--dyn-text) !important; }   /* 現在地 */
/* 区切り（2件目以降の前に "›"） */
.p-breadcrumb__item + .p-breadcrumb__item::before{
  content:"\203A"; margin:0 .6em; color:var(--dyn-border) !important; font-size:.95em;
}
.p-breadcrumb meta{ display:none; }   /* schema.org の <meta itemprop="position"> は非表示 */


/* ============================================================
   §2  ページヘッダー（[class*="_article_header"]）画像上のタイトル
   ============================================================ */
[class*="_article_header"] .ja, [class*="_article_header"] h1, [class*="_article_header"] h2{
  color:var(--dyn-heading) !important; font-family:var(--dyn-font-display) !important;
  text-shadow:0 2px 14px rgba(0,0,0,.5) !important;
}
[class*="_article_header"] .en{ color:var(--dyn-muted) !important; font-family:var(--dyn-font-numeric) !important; letter-spacing:.1em; text-shadow:0 1px 10px rgba(0,0,0,.5) !important; }


/* ============================================================
   §3  ページネーション（.pagination_* / [class*="_pagenation"]）
   ============================================================ */
.pagination_num, .pagination_prev, .pagination_next,
[class*="_pagenation"] a, [class*="_pagenation"] span{
  font-family:var(--dyn-font-numeric); color:var(--dyn-text) !important;
  border:1px solid var(--dyn-border) !important; border-radius:var(--dyn-radius);
  min-width:40px; height:40px; display:inline-flex; align-items:center; justify-content:center; text-decoration:none;
}
.pagination_num.current, [class*="_pagenation"] .current, [class*="_pagenation"] .active{
  background:var(--dyn-accent) !important; border-color:var(--dyn-accent) !important; color:var(--dyn-on-accent) !important;
}
.pagination_num:hover, .pagination_prev:hover, .pagination_next:hover{ border-color:var(--dyn-accent-2) !important; color:var(--dyn-accent-2) !important; }
.pe-none{ opacity:.3; pointer-events:none; }


/* ============================================================
   §4  ブログ / 施工実績(blog-ex) 一覧（番号非依存）
   ============================================================ */
/* 一覧セクションの地 */
[class*="_post_list"], [class*="_post_wrap"]{ } /* 下で個別指定 */
/* カード並び（最小幅を確保して細くなりすぎない） */
[class*="_post_list"]{ display:grid !important; grid-template-columns:repeat(auto-fill, minmax(var(--dyn-card-min), 1fr)) !important; gap:var(--dyn-gap) !important; }
/* カード */
[class*="_post_wrap"]{
  display:block !important; width:auto !important; max-width:none !important; text-decoration:none;
  background:var(--dyn-surface) !important; border:1px solid var(--dyn-border) !important;
  border-radius:var(--dyn-radius); overflow:hidden;
  transition:transform .3s ease, border-color .3s ease;
}
[class*="_post_wrap"]:hover{ transform:translateY(-4px); border-color:var(--dyn-accent-2) !important; }
[class*="_post_img"]{ width:100%; display:block; border-radius:0; }
/* カード内のテキストに左右余白 */
[class*="_post_status"]{ border:none !important; background:transparent !important; margin:14px 16px 0 !important; padding:0 !important; display:flex !important; gap:10px; align-items:center; }
[class*="_post_title-excerpt"]{ padding:10px 16px 16px !important; }
[class*="_post_title"]{ font-family:var(--dyn-font-display) !important; color:var(--dyn-heading) !important; }
[class*="_post_excerpt"]{ color:var(--dyn-muted) !important; }
[class*="_post_date"]{ font-family:var(--dyn-font-numeric) !important; color:var(--dyn-muted) !important; }
/* カテゴリ/ステータスは1チップに */
[class*="_post_category"], [class*="_post_status"] > span:last-child{ border:1px solid var(--dyn-accent); border-radius:var(--dyn-radius); padding:2px 8px; color:var(--dyn-accent-2) !important; }
.parts-blog-ex-tag_wrap{ display:flex; flex-wrap:wrap; gap:6px; padding:0 16px 14px; }
.parts-blog-ex_tag{ font-size:.72rem; color:var(--dyn-muted) !important; background:var(--dyn-surface) !important; border:1px solid var(--dyn-border); border-radius:var(--dyn-radius); padding:2px 8px; }


/* ============================================================
   §5  サイドバー / 最近の投稿 / カテゴリ記事数
   ============================================================ */
/* サイドバー全体 */
[class*="_sidebar"], .recent_posts_wrap{ color:var(--dyn-text); }

/* サイドバーカード */
[class*="_sidebar_wrap"], .recent_posts_wrap{
  min-width:280px; width:100%; box-sizing:border-box;
  background:#fff; border-radius:var(--radius-lg);
  padding:1.4rem 1.5rem; border:1px solid var(--line);
  box-shadow:0 2px 12px rgba(13,27,42,.06);
  margin-bottom:1.25rem;
}

/* カードタイトル（h3/h4/p など） */
[class*="_sidebar_wrap"] h3,
[class*="_sidebar_wrap"] h4,
[class*="_sidebar_wrap"] .sidebar_ttl,
[class*="_sidebar_wrap"] > p:first-child,
.recent_posts_wrap h3,
.recent_posts_wrap h4 {
  font-family:var(--font-serif) !important; font-size:.95rem !important; font-weight:700 !important;
  color:var(--ink) !important; margin-bottom:1rem !important; padding-bottom:.6rem !important;
  border-bottom:2px solid var(--blue) !important; display:block !important;
  background:transparent !important; padding-top:0 !important;
  border-radius:0 !important; writing-mode:horizontal-tb !important;
}

/* リスト */
[class*="_sidebar_wrap"] ul,
.recent_posts_wrap ul { list-style:none !important; padding:0 !important; margin:0 !important; display:flex !important; flex-direction:column !important; }

/* 各アイテム */
[class*="_sidebar_wrap"] li,
.recent_posts_wrap li { border-bottom:1px solid var(--line); }
[class*="_sidebar_wrap"] li:last-child,
.recent_posts_wrap li:last-child { border-bottom:none; }

/* アンカー */
[class*="_sidebar_wrap"] li a,
.recent_posts_wrap li a {
  display:flex !important; width:100% !important; box-sizing:border-box !important;
  padding:.65rem 0 !important; text-decoration:none;
  transition:color var(--trans);
}

/* 最新記事：縦並び（日付 + タイトル） */
[class*="_sidebar_wrap"] li a:has([class*="_sidebar_date"]),
[class*="_sidebar_wrap"] li a:has(.recent_post_date),
.recent_posts_wrap li a {
  flex-direction:column !important; gap:.2rem !important;
}

/* カテゴリ：横並び（名前 + 件数） */
[class*="_sidebar_wrap"] li a:has([class*="_post_category_count"]) {
  flex-direction:row !important; justify-content:space-between !important; align-items:center !important;
}

[class*="_sidebar_post_title"] {
  font-size:.84rem !important; color:var(--ink-2) !important; line-height:1.55 !important;
}
.recent_posts_wrap .recent_post_title {
  font-size:.84rem !important; color:#ffffff !important; line-height:1.55 !important;
  font-family:var(--font-sans) !important;
}
[class*="_sidebar_wrap"] li a:hover [class*="_sidebar_post_title"],
.recent_posts_wrap li a:hover .recent_post_title { color:var(--blue) !important; }

[class*="_sidebar_date"], .recent_post_date {
  font-size:.74rem !important; color:var(--ink-3) !important; font-family:var(--font-en) !important;
}

[class*="_sidebar_post_category"] { font-size:.88rem !important; color:var(--ink-2) !important; }

/* カテゴリ件数チップ */
[class*="_sidebar_post_category_count"] {
  font-size:.75rem !important; color:var(--ink-3) !important;
  background:var(--bg-soft) !important; border:1px solid var(--line) !important;
  border-radius:20px !important; padding:.1rem .55rem !important;
  min-width:1.6rem; text-align:center; flex-shrink:0;
}


/* ============================================================
   §6  詳細ページ（本文 / 署名 / SNS / 詳細内スライダー）
   ============================================================ */
.parts-blog-ex_text{ font-family:var(--dyn-font-body); color:var(--dyn-text) !important; line-height:1.9; }
.parts-blog-ex_text h2, .parts-blog-ex_text h3{ font-family:var(--dyn-font-display) !important; color:var(--dyn-heading) !important; }
.signature_wrap{ font-family:var(--dyn-font-display); color:var(--dyn-muted) !important; border-top:1px solid var(--dyn-border); padding-top:16px; }
.slick-prev, .slick-next{ color:var(--dyn-accent-2) !important; }
/* ※詳細本文の親ラッパーが固定class薄め。崩れる場合は実ページで本文コンテナを確認し追補 */


/* ============================================================
   §7  お問い合わせフォーム
   ============================================================ */
.contact_section, [class*="_section_form"], [class*="_section_content"], [class*="_content_wrap"], [class*="_content"]{ background:var(--dyn-bg) !important; color:var(--dyn-text) !important; }
[class*="_form_wrap"]{ max-width:720px; margin:0 auto; }
[class*="_form_wrap"] label, [class*="_form_wrap"] dt, [class*="_form_wrap"] .ja, [class*="_form_wrap"] .en{ color:var(--dyn-text) !important; }
/* 入力欄を十分な大きさに（チェック/ラジオは除外） */
[class*="_form_wrap"] dd input:not([type="checkbox"]):not([type="radio"]),
[class*="_form_wrap"] dd select{ width:100% !important; max-width:none !important; padding:14px 16px !important; font-size:16px !important; min-height:54px !important; background:var(--dyn-surface) !important; color:var(--dyn-text) !important; border:1px solid var(--dyn-border) !important; border-radius:var(--dyn-radius); }
[class*="_form_wrap"] textarea, .form_textarea textarea{ width:100% !important; padding:14px 16px !important; font-size:16px !important; min-height:220px !important; background:var(--dyn-surface) !important; color:var(--dyn-text) !important; border:1px solid var(--dyn-border) !important; border-radius:var(--dyn-radius); }
/* チェックボックス/ラジオはサイズ統一 */
[class*="_form_wrap"] input[type="checkbox"], [class*="_form_wrap"] input[type="radio"]{ width:18px !important; height:18px !important; min-height:0 !important; padding:0 !important; margin:0 8px 0 0 !important; vertical-align:-3px; accent-color:var(--dyn-accent); flex:none !important; }
/* 必須バッジ: 文字を中央・折り返さない・角丸はトークン */
.required{ display:inline-flex !important; align-items:center !important; justify-content:center !important; line-height:1 !important; white-space:nowrap !important; padding:6px 12px !important; border-radius:var(--dyn-radius) !important; background:var(--dyn-accent) !important; color:var(--dyn-on-accent) !important; }
.error{ color:var(--dyn-accent-2) !important; }
/* 「お問い合わせ内容」を囲む大きな箱(枠線)を撤去 */
.form_textarea, .form_text_dt{ border:none !important; background:transparent !important; }
/* 送信ボタン */
.contact_submit, .contact_submit button, .contact_submit input{ background:var(--dyn-accent) !important; color:var(--dyn-on-accent) !important; border:none !important; border-radius:var(--dyn-radius) !important; }
/* プライバシー同意 */
.privacypolicy{ background:var(--dyn-surface) !important; border:1px solid var(--dyn-border); border-radius:var(--dyn-radius); padding:16px; color:var(--dyn-muted) !important; }
.privacypolicy-link{ color:var(--dyn-accent-2) !important; }
/* 電話/メール等の content バー（角丸はトークン） */
[class*="_content"] [class*="btn"], [class*="_content"] a[class*="round"]{ border-radius:var(--dyn-radius) !important; }


/* ============================================================
   §8  トップ用 お知らせ/ブログ teaser（notice-news / blog teaser）
   ============================================================ */
.parts040506_notice-news{ background:var(--dyn-bg) !important; color:var(--dyn-text) !important; }
.parts040506_notice-news *{ color:var(--dyn-text) !important; }
.parts040506_notice-news .title, .parts040506_notice-news .title a{ color:var(--dyn-heading) !important; }
.parts040506_notice-news [class*="date"], .parts040506_notice-news .f_yugothic{ font-family:var(--dyn-font-numeric) !important; color:var(--dyn-muted) !important; }
.parts040506_notice-news .more{ white-space:nowrap !important; color:var(--dyn-accent-2) !important; }
.parts040506_notice-news a{ color:var(--dyn-accent-2) !important; }
/* サムネ型ブログ teaser */
[class*="_blog_title_wrap"]{ font-family:var(--dyn-font-display) !important; color:var(--dyn-heading) !important; }
[class*="_blog_thumbnail"]{ border-radius:var(--dyn-radius); }
/* teaser内が Bootstrap .card（既定で白）の場合のダーク/トーン化 */
[class*="_blog"] .card{ background:var(--dyn-surface) !important; border-color:var(--dyn-border) !important; border-radius:var(--dyn-radius) !important; }
[class*="_blog"] .card-title, [class*="_blog"] .card-text{ color:var(--dyn-text) !important; }
[class*="_blog"] .card-title{ font-family:var(--dyn-font-display) !important; }


/* ============================================================
   §9  Bootstrap汎用クラスの地ならし（パーツ内に限定）
       text-dark / bg-light 等がパーツ内でトーンを乱すのを抑える
   ============================================================ */
[class*="parts"] .text-dark{ color:var(--dyn-text) !important; }
[class*="parts"] .bg-light{ background:var(--dyn-surface) !important; }
.card-header.bg-light{ background:var(--dyn-accent) !important; color:var(--dyn-on-accent) !important; }


/* ============================================================
   §10  プライバシーポリシー（templates/privacy-policy.html のフリーコーディング設置版）
   ※CueZilla既定パーツ(item_title/item_description)へ転記する場合は §5 等で別途適用される
   ============================================================ */
.privacy{ max-width:880px; margin:0 auto; padding:64px 24px; color:var(--dyn-text); font-family:var(--dyn-font-body); line-height:1.9; }
.privacy__title{ font-family:var(--dyn-font-display); color:var(--dyn-heading); font-size:clamp(1.8rem,4vw,2.6rem); }
.privacy__subtitle{ font-family:var(--dyn-font-display); color:var(--dyn-heading); font-size:1.2rem; margin-top:8px; }
.privacy__lead{ color:var(--dyn-muted); margin:24px 0 40px; }
.privacy-item{ margin-bottom:32px; }
.privacy-item__title{ font-family:var(--dyn-font-display); color:var(--dyn-heading); border-left:3px solid var(--dyn-accent); padding-left:12px; margin-bottom:12px; }
.privacy-item__body{ color:var(--dyn-text); }
/* 原文の (1)(2)… 表記を維持（auto ol の "1." ではなく括弧付き番号で表示） */
.privacy-item__list{ list-style:none; counter-reset:pp; margin:8px 0; padding:0; }
.privacy-item__list li{ counter-increment:pp; padding-left:2.2em; text-indent:-2.2em; margin:4px 0; color:var(--dyn-text); }
.privacy-item__list li::before{ content:"(" counter(pp) ") "; }


/* ============================================================
   §11  下層ヘッダーパーツ（templates/subpage-header.html）
   サイトヘッダーとパンくずの間。フリーコーディングで別パーツ化
   ============================================================ */
/* padding-top に固定ヘッダー高さ(--fixed-header-h)を加算＝固定ヘッダーへのめり込み防止。
   固定ヘッダーが無いサイトは既定0で無影響。固定ヘッダー採用サイトは案件CSSで :root{ --fixed-header-h:88px } 等を設定（R-18）。 */
.subpage-header{ position:relative; padding:calc(72px + var(--fixed-header-h, 0px)) 24px 72px; background:var(--dyn-surface); text-align:center; overflow:hidden; }
.subpage-header__bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.45; z-index:0; }
.subpage-header__inner{ position:relative; z-index:1; }
.subpage-header__title{ font-family:var(--dyn-font-display); color:var(--dyn-heading); font-size:clamp(1.8rem,5vw,3rem); line-height:1.3; text-shadow:0 2px 14px rgba(0,0,0,.5); }
.subpage-header__en{ font-family:var(--dyn-font-numeric); color:var(--dyn-muted); letter-spacing:.12em; margin-top:8px; }


/* ============================================================
   §12  システム定型ページ：送信完了(thanks) / 404
   templates/thanks.html, templates/404.html 用。トークンスキン準拠
   ============================================================ */
.thanks, .notfound{ max-width:760px; margin:0 auto; padding:calc(80px + var(--fixed-header-h, 0px)) 24px 96px; text-align:center; }
/* CueZilla 既定404（section.not-found）はレイアウトを変えず、固定ヘッダー分の上余白だけ確保（R-18） */
.not-found{ padding-top: calc(var(--fixed-header-h, 0px) + 24px); }
.thanks__title, .notfound__title{ font-family:var(--dyn-font-display); color:var(--dyn-heading); font-size:clamp(1.8rem,5vw,2.6rem); line-height:1.3; margin-bottom:28px; }
.thanks__lead, .notfound__lead{ color:var(--dyn-text); line-height:2; margin-bottom:40px; }
.thanks__action, .notfound__action{ margin-top:8px; }

/* parts231 パンくず非表示 */
[class*="parts231"] { display:none !important; }

/* design-parts-52 背景色 */
.design-parts-52_D5UHlVhmKk.bg-color { background-color: #f4f7fb !important; }