/* ===========================================================
   HUITE site — shared stylesheet
   レイアウト体系・配色の方針：
   ・ページ題帯 #B2B5B7（白文字・中央揃え）
   ・サービスページ hero #1A1A2E（N321/OEM）・#F4F7F6（White-label）
   ・CTA ボタン: N321=#C8A86B / OEM・WL=#6B8E8E / Top=#111 ピル型
   ・CTA ボックス: #1A1A2E と #2C3E50 の2種
   ・関連カード: #2D4A6B / #1A1A2E / #F8F5F0 / #F4F7F6
   ・グローバルナビ: 「くつ・・・。」に N321 / White-label のサブメニュー
   =========================================================== */
:root{
  --ink:#333;
  --ink-soft:#666;
  --paper:#ffffff;
  --band:#efefef;
  --ph-band:#b2b5b7;
  --beige:#f8f5f0;
  --blue-bg:#f0f7fa;
  --orange-bg:#fff8f0;
  --green-bg:#f2faf0;
  --gray-bg:#f8f8f8;
  --mist:#f4f7f6;
  --navy:#1a1a2e;
  --cta-dark:#2c3e50;
  --steel:#2d4a6b;
  --gold:#c8a86b;
  --teal-btn:#6b8e8e;
  --terra:#b07a58;
  --blue:#4a7c9e;
  --line:#e0ddd7;
  --rule:#c9c9c9;
  --radius:12px;
  --max:1110px;
  --font-body:"Helvetica Neue",Arial,"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:var(--font-body);
  color:var(--ink);background:var(--paper);line-height:1.7;font-size:16px;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--max);margin:0 auto;padding:0 24px}
.en-label{font-family:'Lato',sans-serif}

/* ===== Header ===== */
header{position:sticky;top:0;z-index:100;background:#fff;border-bottom:1px solid var(--line)}
.header-in{max-width:1240px;margin:0 auto;padding:0 20px;height:60px;display:flex;align-items:center;justify-content:space-between;gap:16px;position:relative}
.logo{font-weight:700;font-size:17px;letter-spacing:.06em;white-space:nowrap}
.logo img{height:30px;width:auto;display:block}
@media(max-width:900px){.logo img{height:26px}}
/* ★ 2026-10-21 v10：nav を絶対配置で中央固定。
   従来は .header-in（space-between・3 要素）の第三子として位置が決まっていたため、
   ページ遷移直後の 1 瞬間だけ lang.js が未実行で .hdr-tools（TikTok/言語）が存在せず、
   nav が space-between で右端まで飛び → 注入後に中央へ戻る「右から滑り込む様な閃き」
   が company / oem-odm / about-us 等の遷移のたびに発生していた。
   絶対配置（.header-in 基準・position:relative を付与）なら .hdr-tools の有無と完全に
   無関係で nav の位置は不変 → 閃きを構造的に根絶。正順・逆順どちらの遷移でも同じ。
   ※≤960px は後段メディアクエリの fixed ドロワールール（position/transform を
     完全再定義）がそのまま効くため、スマホ側は無影響。 */
nav.gnav{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}
nav.gnav ul{display:flex;list-style:none;gap:0;align-items:center}
nav.gnav a{font-size:12.5px;font-weight:400;padding:14px 13px;white-space:nowrap;display:inline-block;transition:background .2s}
nav.gnav a:hover{background:var(--band)}
nav.gnav a.current{font-weight:700}

/* --- サブメニュー（くつ・・・。→ N321 / White-label）本家 VK スタイル --- */
nav.gnav li.has-sub{position:relative;display:flex;align-items:center}
nav.gnav li.has-sub > a{padding-right:6px}
nav.gnav li.has-sub.current > a{font-weight:700}
nav.gnav .acc-btn{
  background:none;border:none;cursor:pointer;padding:6px 4px;line-height:0;
}
nav.gnav .acc-btn svg{width:10px;height:10px;transition:transform .3s}
nav.gnav li.has-sub.open .acc-btn svg{transform:rotate(180deg)}
nav.gnav .sub-menu{
  position:absolute;top:100%;left:50%;transform:translate(-50%,6px);
  width:240px;background:#fff;border-radius:0 0 6px 6px;
  box-shadow:0 6px 24px rgba(0,0,0,.12);z-index:20;list-style:none;
  opacity:0;visibility:hidden;transition:opacity .5s ease-in,transform .3s,visibility .5s;
  padding:0;
}
nav.gnav li.has-sub:hover > .sub-menu,
nav.gnav li.has-sub.open > .sub-menu{
  opacity:1;visibility:visible;transform:translate(-50%,0);
}
nav.gnav .sub-menu li{display:block}
nav.gnav .sub-menu a{display:block;font-size:13px;color:#333;padding:14px 20px;border-top:1px solid #f0f0f0}
nav.gnav .sub-menu a:hover{background:var(--gray-bg)}
nav.gnav .sub-menu a.current{font-weight:700}

.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:8px}
.nav-toggle span{display:block;width:24px;height:2px;background:var(--ink);margin:5px 0;transition:.3s}

/* ===== Breadcrumb bar ===== */
.crumb-bar{background:#fff;border-bottom:1px solid var(--line);font-size:12px;color:#888}/* 2026-09-29 底色改纯白（原 #f7f7f7） */
.crumb-bar .wrap{padding-top:7px;padding-bottom:7px}
.crumb-bar a{color:#888}
.crumb-bar a:hover{color:var(--terra)}
.crumb-bar .sep{margin:0 8px;color:#bbb}
.crumb-bar .crumb-logo{height:13px;width:auto;display:inline-block;vertical-align:-2px;margin-right:3px}

/* ===== ページ題帯（本家 entry 先頭の h4 実測値：薄灰帯×#333 中央・21.3px） ===== */
.page-band{
  background:rgba(0,0,0,.06);color:#333;text-align:center;
  font-size:21.3px;font-weight:700;line-height:1.4;
  padding:10.6px 16px;margin:0 0 21.3px;
}
.mt-lg{margin-top:64px}

/* ===== グレー帯セクション見出し（本家 h4.wp-block-heading 実測値） ===== */
.sec-band{
  background:rgba(0,0,0,.06);
  text-align:center;font-size:21.3px;font-weight:700;
  padding:10.6px 16px;margin:20px 0 21.3px;
}
.sec-band:first-child{margin-top:0}
/* 本家 h2 実測：22px / 下線 2px（ページ色） / padding 11px 0 10px / mb 28px */
.sec-rule{
  font-size:22px;font-weight:700;
  padding:11px 0 10px;border-bottom:2px solid var(--navy);margin-bottom:28px;
}
/* White-label 页用：#2C3E50 文字 × #6B8E8E 下线（本家実測） */
.sec-rule.teal{color:var(--cta-dark);border-bottom-color:var(--teal-btn)}
/* Top 页用：28px 無装飾（本家 home 実測） */
.sec-rule.plain{font-size:28px;border-bottom:none;padding:0;line-height:1.4}
.sec-lead{color:var(--ink);margin-bottom:30px}

/* ===== ネイビー帯ページヒーロー（N321 / OEM-ODM：#1A1A2E） ===== */
.page-hero{
  background:var(--navy);color:#fff;border-radius:12px;
  text-align:center;padding:52px 30px 56px;
  margin:40px auto 52px;max-width:980px;
}
.page-hero .en{font-family:'Lato',sans-serif;font-size:11px;letter-spacing:.34em;color:#9aa0b5;font-weight:400}
.page-hero h1{font-family:'Lato','Noto Sans JP',sans-serif;font-size:clamp(26px,4vw,38px);font-weight:700;letter-spacing:.06em;margin:10px 0 8px}
.page-hero .sub{font-size:14px;color:#c3c7d5;letter-spacing:.08em}
/* White-label 用ライト版（#F4F7F6） */
.page-hero.light{background:var(--mist);color:var(--ink)}
.page-hero.light .en{color:#999}
.page-hero.light .sub{color:#666}

/* ===== Home hero（本家実測：H1 32px ハイライター、画像 1024px） ===== */
.home-hero{padding:16px 0 0;text-align:center}
.home-hero .site-name{font-size:21.3px;font-weight:700;margin-bottom:21.3px}
.home-hero .art{max-width:1024px;margin:0 auto}
.home-hero h1{
  font-size:clamp(22px,3.2vw,32px);font-weight:700;line-height:1.5;
  margin:0 auto 0;max-width:1000px;/* 2026-10-01 hero 流程图去字后收紧图下间距：56px→0（间距由 .hero 8px＋.home-hero 16px 承担） */
}
.home-hero h1 .hl{background:linear-gradient(rgba(0,0,0,0) 60%,rgba(142,209,252,.7) 0)}

/* ===== 汎用ブロック（本家実測：p 16px/mb24、h3 24px、h4 21.3px） ===== */
section{padding:44px 0}
.prose p{margin-bottom:24px;font-size:16px;line-height:1.7}
.prose p:last-child{margin-bottom:0}
/* 本家 entry-body h2 実測：28px / 上 2px #B2B5B7・下 1px rgba(0,0,0,.06) / padding 14px 0 / mb 28px */
.prose h2{font-size:28px;font-weight:700;line-height:1.4;padding:14px 0;border-top:2px solid var(--ph-band);border-bottom:1px solid rgba(0,0,0,.06);margin:0 0 28px}
.prose h3{font-size:24px;font-weight:700;margin:0 0 24px;line-height:1.4}
.prose .step-num{display:inline-flex;align-items:center;justify-content:center;width:1.25em;height:1.25em;margin-right:.45em;border-radius:.28em;background:#A9D6F2;color:#17364e;font-size:.8em;font-weight:700;line-height:1;vertical-align:-.18em;font-family:"Helvetica Neue",Arial,sans-serif}
.prose h4{font-size:21.3px;font-weight:700;margin:0 0 21.3px;line-height:1.4}
.prose h6{font-size:18px;font-weight:700;margin:0 0 18px;line-height:1.4}
.prose a{text-decoration:underline;text-underline-offset:3px}
.prose ul{margin:0 0 24px;padding-left:1.4em}
.prose li{margin-bottom:6px}
strong{font-weight:700}
/* 本家 VK テキストボタン（→ もっと詳しく…） */
.text-btn{display:inline-block;color:#8e9192;font-size:16px;font-weight:700;transition:color .2s}
.text-btn:hover{color:#666}

/* カード（ベージュ/ブルー系インフォBOX） */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px}
.info-box{border-radius:12px;padding:28px 24px}
.info-box h3{font-size:17px;font-weight:700;padding-bottom:8.5px;border-bottom:1px solid rgba(0,0,0,.12);margin-bottom:6px}
.info-box h4{font-size:14px;font-weight:700;color:var(--ink);background:rgba(0,0,0,.06);padding:7px 10px;margin-bottom:3px}
.info-box p{font-size:14px;color:var(--ink);line-height:1.9}
.info-box.beige{background:var(--beige)}
.info-box.blue{background:var(--blue-bg)}
.tag-pill{display:inline-block;font-size:11px;font-weight:700;border-radius:999px;padding:2px 14px;margin-bottom:12px;background:#fff;color:var(--blue);border:1px solid #d5e2ea}
.info-box.beige .tag-pill{color:var(--terra);border-color:#e3d5c2}

/* 大きな数字カード（N321） */
.num-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px}
.num-card{background:var(--beige);border-radius:12px;padding:26px 26px 22px}
.num-card .big{font-family:'Lato',sans-serif;font-size:44px;font-weight:700;color:var(--gold);line-height:1;margin-bottom:12px}
.num-card .big small{font-size:16px;color:var(--gold)}
.num-card h3{font-size:16px;font-weight:700;padding-bottom:8px;border-bottom:1px solid rgba(0,0,0,.12);margin-bottom:8px}
.num-card p{font-size:14px;color:var(--ink-soft)}

/* 比較ボックス（N321：#FFF8F0） */
.compare-box{background:var(--orange-bg);border-radius:12px;padding:34px 30px;text-align:center}
.compare-flex{display:flex;align-items:center;justify-content:center;gap:36px;flex-wrap:wrap}
.compare-flex .val{font-family:'Lato','Noto Sans JP',sans-serif;font-size:26px;font-weight:700}
.compare-flex .val small{display:block;font-size:12px;font-weight:400;color:var(--ink-soft);margin-top:4px}
.compare-flex .arrow{font-size:22px;color:var(--ink-soft)}
.compare-flex .fast{color:#2c7a4b}
.compare-flex .slow{color:#b03a2e}

/* 番号付きステップ */
.steps-v{list-style:none;max-width:820px}
.steps-v li{display:flex;gap:16px;align-items:flex-start;margin-bottom:26px}
.steps-v .no{
  flex:none;width:30px;height:30px;border-radius:50%;background:var(--navy);color:#fff;
  font-family:'Lato',sans-serif;font-size:14px;font-weight:700;
  display:flex;align-items:center;justify-content:center;margin-top:3px;
}
.steps-v h3{font-size:16px;font-weight:700;padding-bottom:8px;border-bottom:1px solid rgba(0,0,0,.12);margin-bottom:4px}
.steps-v p{font-size:14px;color:var(--ink-soft)}

/* アイコンカード（White-label 4役割：パステル4色） */
.icon-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}
.icon-card{border-radius:12px;padding:26px 26px 22px;background:var(--gray-bg);transition:box-shadow .25s}
.icon-card:hover{box-shadow:0 8px 20px rgba(0,0,0,.07)}
.icon-card.orange{background:var(--orange-bg)}
.icon-card.blue{background:var(--blue-bg)}
.icon-card.green{background:var(--green-bg)}
.icon-card .ico{font-size:26px;margin-bottom:10px}
.icon-card h3{font-size:16px;font-weight:700;padding-bottom:8px;border-bottom:1px solid rgba(0,0,0,.12);margin-bottom:8px}
.icon-card p{font-size:14px;color:var(--ink)}

/* 罫線テーブル（会社概要・履歴） */
.tbl{width:100%;border-collapse:collapse;font-size:14.5px}
.tbl th,.tbl td{padding:13px 10px;border-bottom:1px solid #e8e6e1;text-align:left;vertical-align:top}
.tbl th{font-weight:400;color:var(--ink);white-space:nowrap;width:150px;letter-spacing:.12em}
.tbl td{font-weight:700}
.tbl.plain td{font-weight:400}
.history .tbl th{width:110px;color:var(--ink);font-weight:400}
.history .tbl td{font-weight:400;color:var(--ink)}
.history .tbl td a{color:var(--blue);text-decoration:underline}
.two-col-tbl{display:grid;grid-template-columns:1.4fr 1fr;gap:40px;align-items:start}
@media (max-width:860px){.two-col-tbl{grid-template-columns:1fr}}

/* FAQ */
.faq details{margin-bottom:26px;background:#fff;border-radius:8px}
.faq summary{cursor:pointer;font-size:15px;font-weight:700;list-style:none;padding-bottom:8px;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:var(--rule)}
.faq summary:hover{color:var(--blue)}
.faq .ans{padding:14px 4px 2px;font-size:14px;color:var(--ink)}
.faq .ans a{color:var(--blue);text-decoration:underline}

/* News list */
.news-list{list-style:none;font-size:14px}
.news-list li{padding:6px 0}
.news-list .date{color:var(--ink);margin-right:14px}
.news-list a{text-decoration:underline;text-underline-offset:3px}
.news-list a::before{content:"→ ";color:var(--ink)}
.news-list a:hover{color:var(--blue)}

/* ===== あわせてご覧ください（本家実測：h2 18px #2C3E50 / 下線 2px #6B8E8E） ===== */
.related{padding:40px 0 56px}
.related .sec-rule{font-size:18px;color:var(--cta-dark);border-bottom-color:var(--teal-btn);padding:9px 0 10px;margin-bottom:20px}
.rel-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr));gap:20px;grid-auto-rows:1fr}/* 2026-09-30：第4张现货卡加入后改 2×2；min(100%,440px) 使窄屏自动单列 */
.rel-card{border-radius:12px;padding:26px 26px 22px;color:#fff;display:flex;flex-direction:column;gap:6px;transition:transform .25s,box-shadow .25s}
.rel-card:hover{transform:translateY(-3px);box-shadow:0 10px 22px rgba(0,0,0,.15)}
.rel-card .tag{font-family:'Lato',sans-serif;font-size:10px;letter-spacing:.26em;opacity:.7}
.rel-card h3{font-family:'Lato','Noto Sans JP',sans-serif;font-size:18px;font-weight:700;letter-spacing:.04em}
.rel-card p{font-size:12.5px;line-height:1.9;opacity:.85}
.rel-card.navy{background:var(--navy)}          /* #1A1A2E */
.rel-card.steel{background:var(--steel)}        /* #2D4A6B */
.rel-card.beige{background:var(--beige);color:#5a4634}
.rel-card.beige .tag{opacity:.6}
.rel-card.mist{background:var(--mist);color:#4a5a5a}
.rel-card.mist .tag{opacity:.6}
/* ===== 2026-10-30 関連カード統一：色＝遷移先で固定 =====
   navy=N321 / steel=ホワイトラベル / beige=OEM・ODM / sand=開発品(lineup) / mist=現物(stock)
   全ページこの 5 色以外を使わない（各页曾用 #f4f7f6+#c8dde0、白底細線、#f8f5f0+#e8d5b0 等混在） */
.rel-card.sand{background:#f2ebde;color:#6b5740}
.rel-card.sand .tag{opacity:.6}
.rel-cards.c3{grid-template-columns:repeat(3,1fr)}
@media(max-width:820px){.rel-cards.c3{grid-template-columns:1fr}}
.rel-h{font-size:18px;font-weight:700;color:var(--cta-dark);border-bottom:2px solid var(--teal-btn);padding:9px 0 10px;margin:0 0 20px}
.rel-sec{margin:64px 0 0}
.rel-sec>h2{font-size:18px;font-weight:700;color:var(--cta-dark);border-bottom:2px solid var(--teal-btn);padding:9px 0 10px;margin:0 0 20px}

/* ===== CTA（角丸ボックス：#1A1A2E と #2C3E50 の2種） ===== */
.cta-box{
  background:var(--navy);color:#fff;border-radius:12px;
  text-align:center;padding:56px 40px;margin:20px auto 0;max-width:980px;
}
.cta-box.dark2{background:var(--cta-dark)}
.cta-box h2{font-size:clamp(17px,2.4vw,22px);font-weight:700;line-height:1.8;border-bottom:1px solid rgba(255,255,255,.15);display:inline-block;padding:0 0 11px;margin-bottom:18px}
.cta-box p{font-size:13.5px;color:#c3cdd8;line-height:2.1;margin-bottom:30px}
.btn{
  display:inline-block;color:#fff;font-weight:700;font-size:15px;
  letter-spacing:.08em;padding:14px 36px;border-radius:6px;
  transition:opacity .2s;cursor:pointer;font-family:inherit;border:none;
}
.btn:hover{opacity:.85}
.btn.pill{background:#111;border-radius:999px}
.btn.gold{background:var(--gold)}
.btn.teal{background:var(--teal-btn)}

/* ===== Footer（ライト） ===== */
footer{background:#fff;border-top:1px solid var(--line);margin-top:64px;padding:26px 0 22px}/* 2026-09-29 底色改纯白（原 #f7f7f7） */
.foot-nav ul{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:2px 0}
.foot-nav a{font-size:12.5px;color:#666;padding:6px 16px;display:inline-block}
.foot-nav li+li a{border-left:1px solid #ddd}
.foot-nav a:hover{color:var(--terra)}
.copy{text-align:center;font-size:11px;color:#999;margin-top:14px}

/* ===== 資料ダウンロード（三册 PDF / 5章） ===== */
.dl{margin-top:28px;padding:22px 24px;background:var(--mist);border:1px solid #d8e4e0;border-radius:10px}
.dl-lead{font-size:13.5px;color:var(--ink-soft);margin-bottom:14px}
.dl-list{list-style:none;display:flex;flex-wrap:wrap;gap:12px}
.dl-list a{
  display:flex;flex-direction:column;gap:3px;padding:14px 20px;
  background:#fff;border:1px solid #d8e4e0;border-radius:8px;
  text-decoration:none;color:var(--steel);font-size:14px;font-weight:700;
  transition:border-color .2s,box-shadow .2s;
}
.dl-list a:hover{border-color:var(--teal-btn);box-shadow:0 2px 8px rgba(0,0,0,.06)}
.dl-list span{font-size:11px;font-weight:400;color:#888;letter-spacing:.04em}
/* contact 页：表单上方的轻量版（无外框，只用下分隔线） */
.dl-inline{margin:0 0 26px;padding:0 0 20px;background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0}
.dl-inline .dl-lead{margin-bottom:10px}
/* 页脚：一行小字三链接 */
.dl-foot{text-align:center;font-size:11.5px;color:#888;margin-top:12px}
.dl-foot a{color:#888;text-decoration:underline;text-underline-offset:2px}
.dl-foot a:hover{color:var(--terra)}
@media (max-width:640px){
  .dl-list{flex-direction:column;gap:10px}
  .dl-list a{flex-direction:row;justify-content:space-between;align-items:center;gap:10px}
  .dl{padding:18px 16px}
}

/* PAGE TOP ボタン（本家スタイル） */
.page-top-btn{
  position:fixed;right:14px;bottom:14px;z-index:90;
  background:rgba(0,0,0,.8);color:#fff;font-family:'Lato',sans-serif;
  font-size:11px;letter-spacing:.14em;padding:11px 15px;border:none;cursor:pointer;
}
.page-top-btn:hover{background:rgba(0,0,0,.65)}

/* ===== reveal ===== */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s ease}
.reveal.on{opacity:1;transform:none}

/* ===== Hero doodle（くつ・・・。ページ専用） ===== */
.hero{background:#fff;padding:8px 0 8px;overflow:hidden}/* 2026-09-29 底色改纯白：移除两处 radial-gradient 装饰色块圆与 #fbfaf7 米色底 */
.hero-in{max-width:var(--max);margin:0 auto;padding:0 24px;position:relative}
.hero h1{font-size:clamp(20px,3.4vw,30px);font-weight:700;line-height:1.9;text-align:center;margin-bottom:12px;color:var(--ink)}
.hero h1 .marker{background:linear-gradient(transparent 62%,#efe7da 62%);padding:0 4px}
.hero .sub{text-align:center;color:var(--ink-soft);font-size:13px;letter-spacing:.1em;margin-bottom:40px}
.doodle{position:relative;max-width:920px;margin:0 auto;min-height:430px}
.doodle svg.flow{width:100%;height:auto;display:block}
.doodle.doodle-img{min-height:0;max-width:none}/* 2026-09-29 撤掉 920px 上限：与下方 .wrap 内容区（--max:1110px−48px padding）左右对齐；svg.flow 版不受影响 */
.doodle.doodle-img img{width:100%;height:auto;display:block;/* 2026-10-01 图源恢复 1920×747（日文版）：移除 1361×768 白边期所需的 aspect-ratio/object-fit */border-radius:10px;box-shadow:0 4px 18px rgba(51,51,51,.10);background:#fff}/* 2026-09-29 去掉 rotate(-.4deg)：图中水平线保持水平 */
/* 2026-10-05 hero 流程图原图替换为方案 A 车间短片（1920×748，静音循环自动播放），样式与原图完全一致 */
.doodle.doodle-img video{width:100%;height:auto;display:block;border-radius:10px;box-shadow:0 4px 18px rgba(51,51,51,.10);background:#fff;object-fit:cover}
/* 2026-10-13 端末の省電力モード等で自動再生がブロックされた時の「動画を再生」ボタン（site.js が生成） */
.v-play{position:absolute;right:14px;bottom:14px;z-index:3;display:inline-flex;align-items:center;gap:7px;
  border:0;border-radius:999px;padding:9px 16px;font-family:'Lato','Noto Sans JP',sans-serif;font-size:12px;font-weight:700;
  letter-spacing:.04em;color:#fff;background:rgba(17,24,32,.74);box-shadow:0 4px 14px rgba(0,0,0,.25);
  cursor:pointer;-webkit-appearance:none;appearance:none}
.v-play svg{width:10px;height:12px;display:block}
.v-play:active{transform:scale(.97)}
.sticky{position:absolute;background:#fff8d6;box-shadow:2px 3px 6px rgba(0,0,0,.12);padding:10px 14px;font-family:'Zen Maru Gothic',sans-serif;font-weight:700;font-size:13px;line-height:1.5;transform:rotate(-4deg);border-radius:2px}
.sticky.blue{background:#ddeef8;transform:rotate(3deg)}
.sticky.pink{background:#fbe3e6;transform:rotate(-2deg)}
.bubble{position:absolute;background:#fff;border:2px solid var(--ink);border-radius:18px;padding:10px 16px;font-family:'Yomogi',cursive;font-weight:700;font-size:14px;box-shadow:3px 3px 0 rgba(51,51,51,.15)}
.bubble::before{content:"";position:absolute;width:12px;height:12px;background:#fff;border-left:2px solid var(--ink);border-bottom:2px solid var(--ink);bottom:-8px;left:26px;transform:rotate(-45deg)}
.bubble.right::before{left:auto;right:26px;transform:rotate(135deg)}

/* ===== kutsu ページ用コンポーネント ===== */
.chip{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.08em;border-radius:999px;padding:2px 14px;margin-bottom:12px}
.chip.c1{background:var(--blue-bg);color:var(--blue)}
.chip.c2{background:#f4ede6;color:var(--terra)}
.chip.c3{background:#eeeaea;color:#8a7f74}
.chip.c4{background:#e8eef0;color:#4c6a78}
.chart-card{margin-top:44px;background:var(--band);border-radius:12px;padding:40px 32px;text-align:center}
.chart-card h3{font-size:16px;font-weight:700;margin-bottom:28px}
.chart-flex{display:flex;align-items:center;justify-content:center;gap:48px;flex-wrap:wrap}
.legend{list-style:none;text-align:left;font-size:13px}
.legend li{display:flex;align-items:center;gap:10px;margin:8px 0}
.legend .dot{width:12px;height:12px;border-radius:3px;flex:none}
.chart-note{margin-top:22px;font-size:12px;color:#aaa}
.reasons{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;margin-top:48px}
.reason{background:var(--blue-bg);border-radius:12px;padding:26px 24px}
.reason h3{font-size:15px;font-weight:700;color:var(--blue);margin-bottom:10px}
.reason p{font-size:13.5px;color:#4c6a78}
.essence{margin-top:32px;background:var(--beige);border-left:6px solid var(--terra);border-radius:12px;padding:32px 30px}
.essence h3{font-size:clamp(16px,2.2vw,20px);font-weight:700;margin-bottom:12px}
.essence h3 .pin{color:var(--terra)}
.essence p{font-size:14px;color:#41586b}

/* ===== Contact フォーム（本家 Contact Form 7 実測値） ===== */
.form{max-width:600px;text-align:left}
.form .frow{margin-bottom:24px}
.form label{display:block;font-size:16px;font-weight:400;margin-bottom:8px;line-height:1.7}
.form input,.form textarea,.form select{
  width:100%;max-width:600px;padding:10px;font-size:16px;font-family:inherit;
  border:1px solid #ccc;border-radius:6px;background:#fff;margin-bottom:12px;box-sizing:border-box;
}
.form select{cursor:pointer}
.form textarea{min-height:150px;resize:vertical}
.form .note{font-size:.9rem;color:#666;line-height:1.7;margin-bottom:24px}
.form .note a{text-decoration:underline}
.form .send{margin-bottom:24px}
.form .send input{
  display:block;width:100%;max-width:600px;margin-bottom:0;
  background:#333;color:#fff;border:none;padding:10px 24px;border-radius:20px;
  font-size:16px;font-family:inherit;cursor:pointer;transition:background .2s;
}
.form .send input:hover{background:#555}

/* ===== テレワーク：メディアとテキスト（本家 wp-block-media-text 実測値） ===== */
.media-text{display:grid;grid-template-columns:1fr 1fr;margin-bottom:24px}
.media-text .mt-media img{width:100%;height:auto;display:block}
.media-text .mt-content{padding:0 44px}
.media-text .mt-content p{margin-bottom:24px}
.media-text .mt-content p.tight{margin-bottom:0}
.media-text .mt-content p.tight + p{margin-top:24px}
.media-text h6{font-size:18px;font-weight:700;margin:36px 0 18px}
@media (max-width:782px){
  .media-text{grid-template-columns:1fr}
  .media-text .mt-content{padding:24px 0 0}
}

/* ===== 会社概要テーブル（本家 VK テーブル実測値：padding 8px / 罫線 rgba(0,0,0,.06)） ===== */
.company-cols{display:grid;grid-template-columns:2fr 1fr;gap:24px;margin-bottom:28px}
@media (max-width:782px){.company-cols{grid-template-columns:1fr}}
.vk-table{border-collapse:collapse;font-size:16px;line-height:normal;width:auto}
.vk-table th,.vk-table td{padding:8px;border-top:1px solid rgba(0,0,0,.06);border-bottom:1px solid rgba(0,0,0,.06);text-align:left;vertical-align:top}
.vk-table th{white-space:nowrap}
.vk-table td a{text-decoration:underline}
.access-cols{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:28px}
@media (max-width:782px){.access-cols{grid-template-columns:1fr}}
.access-cols p{margin-bottom:24px;line-height:1.7}
.access-cols .cap{font-size:14px;color:#333;margin-bottom:24px}
.access-cols iframe{width:100%;height:450px;border:0;display:block;margin-bottom:24px}
.access-cols a{text-decoration:underline}
.company-photo{width:100%;height:auto;display:block;margin-bottom:28px}
.huite-btn{
  display:inline-block;padding:14px 36px;background:#111;color:#fff;
  font-size:15px;font-weight:600;letter-spacing:.03em;border-radius:999px;
  text-decoration:none;transition:all .25s ease;box-shadow:0 2px 6px rgba(0,0,0,.08);
}
.huite-btn:hover{background:#333;transform:translateY(-2px)}

/* ===== 履歴テーブル（本家 about-us 実測値：#ddd 全枠・padding 4px・1列目 25%） ===== */
.hist-table{width:100%;border-collapse:collapse;font-size:16px;line-height:normal}
.hist-table th,.hist-table td{border:1px solid #ddd;padding:4px 8px;vertical-align:top;text-align:left}
.hist-table th{width:25%;white-space:nowrap;padding:4px 6px 4px 8px;font-weight:700}
.hist-table td{padding:4px 8px 4px 6px;word-break:break-word}

/* ===== News 一覧（本家 latest-posts 実測値：素のリスト・下線なし） ===== */
.news-plain{list-style:none;padding:0;margin:0}
.news-plain li{padding:16px 0}
.news-plain a{display:block;color:#333;text-decoration:none;margin-bottom:8px}
.news-plain a:hover{text-decoration:underline}
.news-plain time{font-size:14px;color:#666}

/* ===== 写真 ===== */
.photo{border-radius:4px;display:block;width:100%;height:auto}

/* ===== Responsive ===== */
@media (max-width:1060px){
  nav.gnav a{padding:14px 8px;font-size:12px}
}
@media (max-width:960px){
  nav.gnav{position:fixed;inset:60px 0 auto 0;background:#fff;border-bottom:1px solid var(--line);transform:translateY(-130%);transition:transform .3s;box-shadow:0 12px 20px rgba(0,0,0,.08);max-height:calc(100vh - 60px);overflow:auto}
  nav.gnav.open{transform:none}
  nav.gnav ul{flex-direction:column;gap:0;padding:10px 20px 18px;align-items:stretch}
  nav.gnav li{border-bottom:1px solid var(--line)}
  nav.gnav a{display:block;padding:12px 8px}
  nav.gnav li.has-sub{flex-wrap:wrap}
  nav.gnav li.has-sub > a{flex:1}
  /* モバイル：サブメニューはアコーディオン */
  nav.gnav .sub-menu{
    position:static;transform:none;width:100%;opacity:1;visibility:hidden;display:none;
    box-shadow:none;border-radius:0;background:var(--gray-bg);transition:none;
  }
  nav.gnav li.has-sub:hover > .sub-menu{visibility:hidden}
  nav.gnav li.has-sub.open > .sub-menu{display:block;visibility:visible;transform:none}
  .nav-toggle{display:block}
  body.nav-open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  body.nav-open .nav-toggle span:nth-child(2){opacity:0}
  body.nav-open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  section{padding:36px 0}
  .page-hero{margin:28px 16px 40px}
  .cta-box{margin:20px 16px 0}
  .two-col-tbl{grid-template-columns:1fr}
  .doodle{min-height:0;display:flex;flex-wrap:wrap;justify-content:center;gap:4px}
  .sticky,.bubble{position:static;display:inline-block;margin:8px 10px 0 0;transform:rotate(-2deg)}
  .doodle svg.flow{order:-1;margin-bottom:16px}
}

/* ===========================================================
   HUITE ストア（中国国内 販売店舗ネットワーク）— company.html 専用
   =========================================================== */
.st-sec{padding:8px 0 56px}
.st-title{font-size:26px;font-weight:700;line-height:1.5;margin:0 0 14px}
.st-lead{font-size:15px;color:var(--ink-soft);line-height:1.95;margin:0 0 28px;max-width:760px}
.st-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:26px}
.st-kpi{background:var(--mist);border:1px solid #e7ecea;border-radius:var(--radius);padding:18px 20px 16px}
.st-kpi .n{font-family:'Lato','Noto Sans JP',sans-serif;font-size:34px;font-weight:700;color:var(--steel);line-height:1.05}
.st-kpi .n small{font-size:14px;font-weight:700;color:var(--steel);margin-left:2px}
.st-kpi .l{font-size:12.5px;color:var(--ink-soft);margin-top:6px;letter-spacing:.02em}
.st-kpi.gold .n,.st-kpi.gold .n small{color:#a8874d}
.st-kpi.txt .n{font-size:21px;line-height:1.3;margin-top:6px;word-break:break-all}

.st-board{display:grid;grid-template-columns:352px 1fr;gap:0;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fff}
.st-side{display:flex;flex-direction:column;border-right:1px solid var(--line);min-width:0}
.st-search{padding:14px 14px 10px;border-bottom:1px solid #eef0ef}
.st-search input{width:100%;font:inherit;font-size:14px;padding:10px 12px;border:1px solid #dcdcdc;border-radius:8px;background:#fbfbfa;color:var(--ink)}
.st-search input:focus{outline:none;border-color:var(--steel);background:#fff}
.st-chips{display:flex;flex-wrap:wrap;gap:6px;padding:10px 14px 8px}
.st-chip{font-size:12px;border:1px solid #e0e0e0;border-radius:999px;padding:3px 11px;background:#fff;color:var(--ink-soft);cursor:pointer;transition:.15s}
.st-chip:hover{border-color:var(--steel);color:var(--steel)}
.st-chip.on{background:var(--steel);border-color:var(--steel);color:#fff}
.st-meta{padding:8px 14px 6px;font-size:12px;color:#8b8f8e;display:flex;justify-content:space-between;gap:8px}
.st-list{list-style:none;margin:0;padding:0 6px 8px;overflow:auto;height:472px}
.st-item{padding:9px 10px;border-radius:8px;cursor:pointer;border-left:3px solid transparent;transition:.15s}
.st-item:hover{background:var(--mist)}
.st-item.on{background:#f4f7f6;border-left-color:#a8874d}
.st-item .nm{font-size:13.5px;font-weight:700;line-height:1.45;color:var(--ink)}
.st-item .ad{font-size:12px;color:var(--ink-soft);margin-top:2px;line-height:1.55}
.st-item .tl{font-size:11.5px;color:#9a9e9d;margin-top:2px}
.st-empty{padding:26px 14px;font-size:13px;color:#9a9e9d;text-align:center}

.st-mapwrap{position:relative;min-height:560px;background:#f2f4f3}
.st-map{position:absolute;inset:0}
.st-mapnote{position:absolute;left:12px;bottom:10px;z-index:5;font-size:11px;color:#7b7f7e;background:rgba(255,255,255,.86);border:1px solid #e3e6e5;border-radius:6px;padding:4px 9px}
.st-maptip{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:24px;font-size:13px;color:#8b8f8e;z-index:4;background:#f2f4f3}

.st-region{margin-top:30px}
.st-region h3{font-size:16px;font-weight:700;margin:0 0 14px;padding-bottom:8px;border-bottom:1px solid rgba(0,0,0,.08)}
.st-bars{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 26px}
.st-bar{display:grid;grid-template-columns:112px 1fr 34px;align-items:center;gap:10px;font-size:13px}
.st-bar .lb{color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.st-bar .tr{height:8px;background:#eef1f0;border-radius:4px;overflow:hidden}
.st-bar .fl{height:100%;background:#5d7a9c;border-radius:4px}
.st-bar .vv{text-align:right;font-family:'Lato',sans-serif;font-weight:700;color:var(--steel)}
.st-src{font-size:11.5px;color:#9a9e9d;margin-top:18px}

@media(max-width:900px){
  .st-kpis{grid-template-columns:repeat(2,1fr)}
  .st-board{grid-template-columns:1fr}
  .st-side{border-right:none;border-bottom:1px solid var(--line)}
  .st-list{height:300px}
  .st-mapwrap{min-height:420px}
  .st-bars{grid-template-columns:1fr}
}

/* ===========================================================
   Stores セクション：ブランド店 / 旗艦店 実景ギャラリー（2026-10-20）
   -----------------------------------------------------------
   ・左＝既存テキスト（左寄せ）／右＝写真ギャラリーの 2 カラム。
     狭い画面（≤900px）では上下積みに自動で切り替わる。
   ・写真は object-fit:contain ＋ 固定 aspect-ratio 枠。
     「等比縮小のみ・トリミングしない・引き伸ばさない」を守るため
     cover は使わず、余白は --band の淡灰で受ける。
   ・自動送り・左右ボタン・ドットの制御は assets/site.js（#stGallery）。
   ============================================================ */
.st-showcase{display:grid;grid-template-columns:1fr 1fr;gap:28px 40px;align-items:center;margin:0 0 34px}
/* 灰帯（Stores）+ 見出しは写真・テキストの上に全幅で置く（Company セクションと同型） */
.st-show-head{grid-column:1/-1;min-width:0}
.st-show-head .page-band{margin-bottom:18px}
.st-show-head .st-title{margin:0}
.st-show-text{text-align:left;min-width:0}
.st-show-text .page-band{text-align:left;margin-bottom:18px}
.st-show-text .st-title{margin-bottom:12px}
.st-show-text .st-lead{max-width:none;margin-bottom:0}
.st-gallery{position:relative;min-width:0}
.st-gal-view{
  position:relative;border-radius:var(--radius);overflow:hidden;
  background:var(--band);aspect-ratio:4/3;
  box-shadow:0 2px 10px rgba(51,51,51,.07);
}
.st-gal-slide{
  position:absolute;inset:0;margin:0;
  opacity:0;visibility:hidden;transition:opacity .5s ease;
}
.st-gal-slide.is-active{opacity:1;visibility:visible}
.st-gal-frame{display:block;width:100%;height:100%}
.st-gal-frame img{display:block;width:100%;height:100%;object-fit:contain}
.st-gal-cap{
  position:absolute;left:0;right:0;bottom:0;margin:0;
  padding:20px 14px 9px;font-size:12.5px;line-height:1.6;color:#fff;
  /* 縦長・超横長の写真では左右／上下に灰の余白が出るため、
     グラデを完全透明まで抜かず .34 で止めて文字のコントラストを確保する */
  background:linear-gradient(to top,rgba(0,0,0,.80),rgba(0,0,0,.48));
  text-shadow:0 1px 2px rgba(0,0,0,.45);
}
.st-gal-cap .cap-t{font-weight:500}
.st-gal-nav{
  position:absolute;top:50%;transform:translateY(-50%);z-index:2;
  width:38px;height:38px;border:1px solid rgba(255,255,255,.75);border-radius:50%;
  background:rgba(0,0,0,.35);color:#fff;font:inherit;font-size:18px;line-height:1;
  cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.15s;
}
.st-gal-nav:hover{background:rgba(0,0,0,.6);border-color:#fff}
.st-gal-nav.prev{left:10px}
.st-gal-nav.next{right:10px}
.st-gal-dots{display:flex;flex-wrap:wrap;justify-content:center;gap:7px;margin-top:12px}
.st-gal-dot{
  width:9px;height:9px;padding:0;border-radius:50%;
  border:1px solid #b9c0bd;background:#fff;cursor:pointer;transition:.15s;
}
.st-gal-dot.is-on{width:22px;border-radius:5px;background:var(--steel);border-color:var(--steel)}
.st-gal-count{margin-top:8px;text-align:center;font-size:11.5px;color:#9a9e9d}
@media(max-width:900px){
  .st-showcase{grid-template-columns:1fr;gap:22px}
  .st-gal-view{aspect-ratio:4/3}
}
@media (prefers-reduced-motion: reduce){
  .st-gal-slide{transition:none}
}

/* ===== チャットウィジェット（chat-widget.js / 任意導入） ===== */
.cw-btn{
  position:fixed;right:14px;bottom:64px;z-index:120;
  width:56px;height:56px;border-radius:50%;border:none;cursor:pointer;
  background:#911A22;color:#fff;box-shadow:0 4px 14px rgba(0,0,0,.25);
  display:flex;align-items:center;justify-content:center;transition:transform .15s,background .15s;
}
.cw-btn:hover{background:#7d151c;transform:scale(1.06)}
.cw-btn svg{pointer-events:none}
/* アイコン状態：閉＝チャット氣泡（赤）/ 開＝×（濃紺）で明確に切り替え */
.cw-ic-x{display:none}
.cw-btn.on{background:#1a1a2e}
.cw-btn.on:hover{background:#12122a}
.cw-btn.on .cw-ic-chat{display:none}
.cw-btn.on .cw-ic-x{display:block}
.cw-panel{
  position:fixed;right:14px;bottom:130px;z-index:121;
  width:min(360px,calc(100vw - 28px));height:min(540px,calc(100vh - 160px));
  background:#fff;border:1px solid #e5e5e5;border-radius:14px;
  box-shadow:0 10px 34px rgba(0,0,0,.22);display:flex;flex-direction:column;overflow:hidden;
  /* 開閉アニメーション：cw-open クラスで制御（visibility で遷移を保持） */
  opacity:0;transform:translateY(14px) scale(.97);transform-origin:100% 100%;
  visibility:hidden;pointer-events:none;
  transition:opacity .22s ease,transform .22s ease,visibility 0s linear .22s;
}
.cw-panel.cw-open{
  opacity:1;transform:none;visibility:visible;pointer-events:auto;
  transition:opacity .22s ease,transform .22s ease;
}
.cw-head{background:#911A22;color:#fff;padding:12px 14px;display:flex;align-items:center;gap:10px;flex:none}
.cw-head .cw-mark{width:26px;height:22px;flex:none;background:#fff;color:#911A22;
  -webkit-mask:url("logo-mark.png?v=c4581eb8") center/contain no-repeat;mask:url("logo-mark.png?v=c4581eb8") center/contain no-repeat}
.cw-title{font-size:14px;font-weight:700;line-height:1.2}
.cw-sub{font-size:11px;opacity:.85}
.cw-close{margin-left:auto;background:none;border:none;color:#fff;font-size:22px;line-height:1;cursor:pointer;padding:2px 6px}
.cw-msgs{flex:1 1 0;min-height:112px;overflow-y:auto;padding:14px 12px;background:#f7f7f8;display:flex;flex-direction:column;gap:10px}
.cw-msg{display:flex}
.cw-me{justify-content:flex-end}
.cw-bubble{max-width:82%;padding:9px 13px;border-radius:14px;font-size:13.5px;line-height:1.6;word-break:break-word}
.cw-bot .cw-bubble{background:#fff;border:1px solid #e8e8e8;border-top-left-radius:4px}
.cw-me .cw-bubble{background:#1a1a2e;color:#fff;border-top-right-radius:4px}
.cw-agent{flex-direction:column;align-items:flex-start}
.cw-agent .cw-bubble{background:#fdf7ec;border:1px solid #e8d4a8;border-top-left-radius:4px}
.cw-who{font-size:11px;color:#a8874d;font-weight:700;padding:0 0 2px 3px}
.cw-sys{justify-content:center}
.cw-sys .cw-bubble{background:#eee;color:#777;font-size:12px;max-width:88%;text-align:center;border-radius:8px}
.cw-typing .cw-bubble{display:flex;gap:4px;padding:12px 14px}
.cw-dots i{width:6px;height:6px;border-radius:50%;background:#bbb;animation:cwblink 1.2s infinite}
.cw-dots i:nth-child(2){animation-delay:.2s}.cw-dots i:nth-child(3){animation-delay:.4s}
@keyframes cwblink{0%,80%,100%{opacity:.3}40%{opacity:1}}
.cw-chips{display:flex;flex-wrap:wrap;gap:6px;padding:8px 12px;border-top:1px solid #eee;background:#fff;flex:none}
.cw-chip{border:1px solid #d9d9de;background:#fff;border-radius:16px;padding:6px 12px;font-size:12px;cursor:pointer;color:#333}
.cw-chip:hover{border-color:#911A22;color:#911A22}
.cw-chip-handoff{border-color:#911A22;color:#911A22;font-weight:600;flex-basis:100%}
.cw-chip-handoff:hover{background:#fdf3f3}
.cw-actions{display:flex;align-items:center;gap:8px;padding:7px 12px;border-top:1px solid #eee;background:#fbfbfc;flex:none}
.cw-handoff{border:1px solid #d9d9de;background:#fff;border-radius:14px;padding:5px 12px;font-size:12px;
  cursor:pointer;color:#911A22;font-family:inherit;white-space:nowrap}
.cw-handoff:hover:not(:disabled){border-color:#911A22;background:#fff5f5}
.cw-handoff:disabled{cursor:default;color:#1d6b2f;border-color:#b7e0c4;background:#eef7f1}
.cw-note{font-size:11px;color:#888;line-height:1.4}
.cw-live .cw-inputrow{border-top-color:#b7e0c4;background:#f6fbf8}
.cw-inputrow{display:flex;gap:8px;padding:10px 12px;border-top:1px solid #eee;background:#fff;flex:none}
.cw-inputrow input{flex:1;border:1px solid #d9d9de;border-radius:8px;padding:9px 12px;font-size:14px;font-family:inherit}
.cw-send{background:#911A22;color:#fff;border:none;border-radius:8px;padding:9px 16px;font-size:14px;cursor:pointer;font-family:inherit}
.cw-send:hover{background:#7d151c}
.cw-send:disabled{opacity:.55;cursor:default}
/* チャット内からお問い合わせページへのリンク（フォーム廃止に伴い追加） */
.cw-link{color:#911A22;font-weight:700;text-decoration:underline;text-underline-offset:3px}
.cw-link:hover{color:#7d151c}
@media (max-width:520px){
  .cw-panel{right:8px;left:8px;width:auto;bottom:120px;height:min(70vh,560px)}
  .cw-btn{bottom:60px;right:10px}
}

/* ===========================================================
   本社・工場 所在地（company.html / #access） — .hq-*
   書き方は .st-*（门店ネットワークのカード＋地図）に合わせている
   =========================================================== */
.hq-sec{padding:8px 0 56px}
.hq-title{font-size:26px;font-weight:700;line-height:1.5;margin:0 0 14px}
.hq-lead{font-size:15px;color:var(--ink-soft);line-height:1.95;margin:0 0 28px;max-width:760px}
.hq-board{display:grid;grid-template-columns:360px 1fr;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fff}
.hq-info{padding:24px 22px 22px;border-right:1px solid var(--line);min-width:0}
.hq-dl{display:grid;grid-template-columns:78px 1fr;gap:4px 12px;margin:0 0 16px;font-size:14px;line-height:1.8}
.hq-dl dt{color:var(--ink-soft);font-size:13px}
.hq-dl dd{margin:0;font-weight:700;color:var(--ink);word-break:break-word}
.hq-coord{margin:0 0 18px;font-size:12px;color:#8b8f8e;letter-spacing:.01em;word-break:break-word}
.hq-actions{margin:0}
.hq-mapwrap{position:relative;min-height:420px;background:#f2f4f3}
.hq-map{position:absolute;inset:0}
/* ⚠ Tencent Maps GL 会在容器内注入一层 z-index:1000 的透明 div 承接拖拽/缩放事件，
   覆盖层（縮小ボタン・注記・エラー表示）必须高于 1000，否则看得见但点不动（实测踩过）。 */
.hq-ctrls{position:absolute;right:12px;top:12px;z-index:1100;display:flex;flex-direction:column;gap:6px}
.hq-ctrls button{width:36px;height:36px;border:1px solid #dfe3e2;background:#fff;color:var(--ink);border-radius:8px;font:inherit;font-size:17px;line-height:1;cursor:pointer;box-shadow:0 1px 3px rgba(0,0,0,.12);transition:.15s}
.hq-ctrls button:hover{border-color:var(--steel);color:var(--steel)}
.hq-ctrls button.reset{width:auto;padding:0 11px;font-size:12px;letter-spacing:.02em}
.hq-maptip{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:24px;font-size:13px;color:#8b8f8e;background:#f2f4f3;z-index:1200}
.hq-mapnote{position:absolute;left:12px;bottom:10px;z-index:1100;font-size:11px;color:#7b7f7e;background:rgba(255,255,255,.86);border:1px solid #e3e6e5;border-radius:6px;padding:4px 9px}
@media (max-width:782px){
  .hq-board{grid-template-columns:1fr}
  .hq-info{border-right:0;border-bottom:1px solid var(--line);padding:20px 18px}
  .hq-mapwrap{min-height:320px}
}
@media (max-width:480px){
  .hq-dl{grid-template-columns:1fr;gap:1px 0;margin-bottom:14px}
  .hq-dl dt{font-size:12px;letter-spacing:.04em}
  .hq-mapwrap{min-height:280px}
}

/* ===========================================================
   About us — 媒体叙事版（2026-10-19）
   -----------------------------------------------------------
   设计参照 protoshoedesign.com/#company 的「节奏」而非视觉：
   大视觉打底 → 图文交错 → 网格留白。
   配色/字体/圆角一律沿用本站既存变量，不引入新色。
   =========================================================== */
/* ★ 2026-10-20：about-us の Hero を首页と**同規格**に統一した。
     ・高さ＝100svh（首页 .hp-hero と同じ。旧 clamp(400px,56vh,620px) は帯状で別物だった）
     ・動画＝首页と同一ファイル hero-workshop-mono12s.mp4（1600×725 / 12.00s）を
       object-fit:cover で全幅・全面に敷く（左右の余白ゼロ）
     ・文字＝首页 .hp-inner と同じ「左下」配置。左基準は --ab-gutter（首页 --hp-gutter と同値）
     ・压暗＝首页 .hp-dark と同じ二方向グラデ（左の文字帯＋上下）で、見え方も揃える */
.ab-hero{
  --ab-gutter:clamp(24px,4vw,72px);   /* 首页 --hp-gutter と同値 */
  position:relative;
  height:100vh;height:100svh;min-height:560px;
  /* ★ section{padding:44px 0} の通用値を打ち消す。残ると文字が 44px 浮いて
     首页と下マチが揃わない（実測 118px vs 74px） */
  padding:0;
  overflow:hidden;background:#14181c;display:flex;align-items:flex-end;
  color:#fff;isolation:isolate;
}
.ab-hero-v{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center center;z-index:0;display:block}
.ab-hero-mask{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(90deg,rgba(2,3,6,.58) 0%,rgba(2,3,6,.50) 20%,rgba(2,3,6,.38) 40%,rgba(2,3,6,.20) 56%,rgba(2,3,6,0) 74%),
    linear-gradient(180deg,rgba(2,3,6,.62) 0%,rgba(2,3,6,.08) 24%,rgba(2,3,6,.10) 62%,rgba(2,3,6,.78) 100%),
    rgba(3,5,8,.30)}
.ab-hero-body{position:relative;z-index:2;width:100%;max-width:1920px;margin:0 auto;color:#fff;
  padding:clamp(76px,8vw,96px) var(--ab-gutter) clamp(48px,6vw,74px)}
.ab-kicker{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);font-weight:700;margin:0 0 14px}
.ab-title{font-size:clamp(23px,3.3vw,38px);font-weight:700;line-height:1.46;margin:0 0 16px;text-shadow:0 2px 18px rgba(0,0,0,.38);letter-spacing:.01em}
.ab-lead{font-size:clamp(13px,1.15vw,15px);line-height:1.95;color:rgba(255,255,255,.9);max-width:620px;margin:0}

.ab-sec{padding:clamp(44px,6.6vw,82px) 0}
.ab-sec+.ab-sec{padding-top:0}
.ab-h2{font-size:clamp(21px,2.2vw,27px);font-weight:700;line-height:1.5;margin:0 0 10px}
.ab-sub{font-size:14px;color:var(--ink-soft);line-height:1.9;margin:0 0 clamp(26px,3.6vw,42px);max-width:680px}

/* --- 图文交错两栏 --- */
.ab-2col{display:grid;grid-template-columns:1fr 1fr;gap:clamp(26px,3.6vw,54px);align-items:center}
.ab-2col .page-band{margin-bottom:22px}
.ab-fig{margin:0;overflow:hidden;border-radius:var(--radius);background:var(--mist)}
.ab-fig img{display:block;width:100%;height:auto}
.ab-fig figcaption{font-size:12px;color:#8b8f8e;line-height:1.7;padding:10px 2px 0}

/* --- Philosophy / Mission / Vision：左右交替 --- */
.ab-pillar{display:grid;grid-template-columns:1fr 1fr;gap:clamp(26px,4vw,60px);align-items:center;margin-bottom:clamp(40px,6vw,76px)}
.ab-pillar:last-child{margin-bottom:0}
.ab-pillar.rev>.ab-pillar-fig{order:2}
.ab-pillar-fig{margin:0;overflow:hidden;border-radius:var(--radius);background:var(--mist)}
.ab-pillar-fig img{display:block;width:100%;height:auto}
.ab-pillar-body .page-band{margin-bottom:20px}
.ab-pillar-body h6{font-size:clamp(17px,1.7vw,20px);font-weight:700;line-height:1.6;margin:0 0 14px;letter-spacing:.02em}
.ab-pillar-body p{font-size:15px;line-height:1.95;color:var(--ink-soft);margin:0}

/* --- 能力三连：竖版视频卡 --- */
.ab-caps{background:var(--mist);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.ab-cap-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,2vw,26px)}
.ab-cap{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column}
.ab-cap-media{position:relative;aspect-ratio:9/16;background:#e9eceb;overflow:hidden}
.ab-cap-v{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
/* 2026-10-31 画像 SEO：<video> に alt は無いため、同じ絵を <img> で下に敷く。
   動画は DOM 上あと（＝上）に来るので、読み込めばそのまま覆う＝見た目は不変。
   JS 無効・省通信・減少モーションで動画を出さない環境では、この img が封面になる。 */
.ab-cap-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.ab-cap-no{position:absolute;left:12px;top:10px;z-index:2;font-size:11px;font-weight:700;letter-spacing:.14em;
  color:#fff;background:rgba(12,16,20,.42);border-radius:4px;padding:3px 7px;backdrop-filter:blur(2px)}
.ab-cap-body{padding:18px 18px 22px}
.ab-cap-en{font-size:10.5px;letter-spacing:.2em;color:var(--gold);font-weight:700;margin:0 0 6px}
.ab-cap-body h3{font-size:16.5px;font-weight:700;margin:0 0 8px;line-height:1.5}
.ab-cap-body p{font-size:13px;line-height:1.85;color:var(--ink-soft);margin:0}

/* --- 工場の風景：六格 --- */
.ab-scene-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(8px,1.2vw,14px)}
.ab-scene{margin:0;position:relative;overflow:hidden;border-radius:8px;background:var(--mist);aspect-ratio:4/3}
.ab-scene img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.ab-scene:hover img{transform:scale(1.04)}
.ab-scene figcaption{position:absolute;left:0;right:0;bottom:0;font-size:11.5px;color:#fff;line-height:1.4;
  padding:22px 10px 9px;background:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.62) 100%)}

/* --- 无 JS / 减少动效 兜底 --- */
html:not(.ab-js) .ab-cap-v{opacity:0}

@media (max-width:782px){
  .ab-2col{grid-template-columns:1fr}
  /* 手机上保持「見出し → 本文 → 図」の順。図を先頭に出すと
     page-band の見出しが画像の後ろに落ちて、セクションの区切りが読めなくなる。 */
  .ab-2col .ab-fig{order:0}
  .ab-pillar{grid-template-columns:1fr;gap:18px;margin-bottom:clamp(34px,7vw,52px)}
  .ab-pillar.rev>.ab-pillar-fig{order:0}
  .ab-cap-grid{grid-template-columns:1fr 1fr;gap:12px}
  .ab-scene-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:480px){
  .ab-hero{height:100vh;height:100svh}
  .ab-hero-body{padding-top:104px;padding-bottom:96px}
  .ab-title br.sp{display:none}
  .ab-sec{padding:38px 0}
  .ab-cap-grid{grid-template-columns:1fr}
  .ab-cap-media{aspect-ratio:16/10}
  .ab-cap-v{object-position:center 45%}
  .ab-cap-body{padding:16px 16px 20px}
  .ab-scene-grid{gap:8px}
  .ab-scene figcaption{font-size:10.5px;padding:18px 8px 7px}
}

/* ============================================================
   页内配图（page figure）—— 全站共用
   ------------------------------------------------------------
   设计约束：
   · 一律 16:9（1200×675），与 build_page_media.py 输出一致。
     统一比例是「看起来像一个整体」的第一要素，混用比例会立刻显乱。
   · aspect-ratio + 浅灰底：图片未到位时容器先占好正确高度，
     不会在加载瞬间把下方正文顶下去（CLS = 0）。
   · 圆角 12px 与 --radius 一致，与既有「レ」卡片语言保持同一套。
   · caption 不是装饰：每张图都配一句说明 who/what，
     让用户知道这张图为旁边的论点提供了什么证据。
   ============================================================ */
.pfig{
  margin:30px 0 34px;
}
.pfig-frame{
  display:block;
  border-radius:var(--radius);
  overflow:hidden;
  background:var(--band);
  aspect-ratio:1200/675;
  box-shadow:0 2px 10px rgba(51,51,51,.07);
}
.pfig-frame img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.pfig figcaption{
  margin-top:9px;
  font-size:12.5px;
  line-height:1.65;
  color:var(--ink-soft);
}
.pfig figcaption .cap-t{
  color:var(--ink);
  font-weight:500;
}
/* 白背景ページでは淡い影だけで輪郭を出す（.hero の doodle と同じ陰影言語） */
@media (max-width:600px){
  .pfig{margin:22px 0 26px}
  .pfig-frame{border-radius:8px}
  .pfig figcaption{font-size:11.5px;margin-top:7px}
}

/* ===========================================================
   首页 首屏 Hero（2026-10-19 v2：轮播版）
   -----------------------------------------------------------
   ・.hp-carousel に「画像スライド」と「動画スライド」を混在。
     切替は assets/site.js のカルーセル制御が担当（現れた項の video だけ play、
     それ以外は pause。autoplay / muted / loop / playsinline は HTML 側のまま）
   ・どのスライドの上にも .hp-dark の黒幕を重ねる → 「ほぼ黒・でもディテールは残る」
   ・文字は .wrap の中央寄せをやめ、ページヘッダのロゴと同じ左基準線に揃えた
   ・SCROLL は横向きのダッシュ → 縦向きの細線（｜）に変更
   ・調整は下の変数だけで完結（溶解時間・左インデント・圧暗・針車の取景）
   =========================================================== */
.hp-hero{
  /* --- レイアウト --- */
  --hp-max:1920px;               /* 実質「上限なし」。文字は中央寄せせず左基準で置く */
  --hp-gutter:clamp(24px,4vw,72px);
      /* 左インデント。1440 → 57.6px / 1280 → 51px / 1024 → 41px。
         参考サイト同様に見出しを画面左に寄せる（旧 .wrap 居中是 189px，与 logo 对齐是 120px） */
  --hp-dur:1100ms;               /* スライドのクロスフェード時間 */

  /* --- 再生リズムとカメラワーク（2026-10-20 v6）---------------------------------
     全スライドで「停留時間・ズーム量・移動方向・イージング・始終状態」を完全に統一する。
      ★ --hp-hold は HTML 側の data-hold と**必ず同じ値**にすること。
        （site.js は data-hold を見て切替タイミングを決める。CSS はこの値から
           カメラワークの長さを算出する。ズレると「動き終わる前に切替」になる） */
  --hp-hold:12000ms;              /* 各スライドの停留。①動画 12000 / ②針車 12000（＝黒化動画 12.00s を 1 周で最後まで見せる） */
  --hp-kb-scale:1.08;            /* カメラワークの倍率：1.00 → 1.08（8% のゆっくり寄り） */
  --hp-kb-x:-1.5%;               /* 終点の横移動。8% のズーム余白（片側 4%）に収まる範囲 */
  --hp-kb-y:-1%;                 /* 終点の縦移動。全スライド同じ方向（左上へ）で統一 */
  --hp-kb-ease:cubic-bezier(.42,0,.58,1);
      /* 始終の速度が 0 になるイージング。切替の瞬間に「速度の段差」が出ない。
         リニアにすると切替直後から一定速度で動き出し、カット感が出る */

  /* --- 明るさと色（2026-10-19 23:45 改：素材は原図、見え方はここで統一）---
     素材ファイルは一切レタッチしない（hero-sew は原図をそのまま縮小・エンコードしただけ）。
     色の統一は**表示側の filter だけ**でやる：
       ・動画も静止画も saturate を .40〜.45 まで落とす → 青いコンテナ等の「色の雑多さ」が消え、
          工場のシルエットと質感だけが残る「灰黒＋少し色」
       ・brightness は .88〜.90 を維持（暗すぎると何も見えないため）
       ・contrast を 1.05〜1.08 に少し上げ、灰黒にしても締まりを残す
     白文字は text-shadow で守る（旧設定は veil .74 で全域を潰していた） */
  --hp-video-filter:brightness(.90) saturate(.45) contrast(1.05);
  --hp-still-filter:brightness(.88) saturate(.40) contrast(1.08);
  --hp-veil:rgba(3,5,8,.30);     /* ← 旧 .74。ここが一番効く */

  /* --- 針車（静的図）＝ 轮播の 2 枚目。v5 で「半透明の重ね」から「1 枚の図」に戻した ---
     ★ v4 の失敗：針車を opacity .34 + mix-blend-mode で全面に重ねた → 実質「背景」に
       なってしまい「不是当背景，只是加一个图进去」と指摘された。
       今は .hp-slide の一枚として**不透明で普通に**出す。
     ★ 寸法比は HTML/画像側で統一済み（どちらも 1600×624 / 2.564:1）。
       ここでいじるのは「满屏 cover したときどこを残すか」だけ。
     ・桌面：cover で上下はほぼ裁たれず、左右だけ裁たれる → X だけ指定すれば足りる
     ・横 64% ＝ 機械の並びの中心寄り。左端の壁と右端の掛物を両方避ける */

  position:relative;
  width:100%;
  /* ★ 参考サイト同様「首屏＝画面いっぱい」に。旧 aspect-ratio:1600/624（1440 で 562px）をやめ、
     ビューポート高さいっぱいに取る。object-fit:cover なので伸縮はせず左右を裁くだけ。
     動画 1600×624 を 1440×900 に cover すると約 1.44 倍の拡大になる（超広幅画面ではさらに）—
     原図主義の副作用。気になる場合は 2560 幅のソースを撮り直す。*/
  height:100vh;
  height:100svh;                 /* モバイルのアドレスバー出入りで高さが跳ねない */
  min-height:560px;              /* 極端に低いウィンドウでも首屏として成立させる */
  overflow:hidden;
  background:#04060a;
  color:#fff;
  isolation:isolate;
}

/* ── 底図：工場の全景（動画）。v4 ではこの上に針車を重ねて「一整张」にする ── */
.hp-carousel{position:absolute;inset:0;z-index:0;background:#04060a}
.hp-slide{
  position:absolute;inset:0;
  opacity:0;visibility:hidden;
  transition:opacity var(--hp-dur) ease, visibility 0s linear var(--hp-dur);
}
.hp-slide.is-active{
  opacity:1;visibility:visible;
  transition:opacity var(--hp-dur) ease, visibility 0s linear 0s;
}
.hp-slide picture{display:block;width:100%;height:100%}
.hp-slide-media{
  display:block;width:100%;height:100%;
  object-fit:cover;object-position:var(--hp-pos,center center);
  transform:scale(var(--hp-zoom,1));
  transform-origin:50% 50%;
  background:#04060a;
  /* 表示を外れた瞬間にアニメーションが消えると transform が一気に 1.0 へ跳ねる。
     クロスフェードと同じ時間で戻すことで、消え際の「カクッ」を消す。 */
  transition:transform var(--hp-dur) ease;
}

/* ── カメラワーク（Ken Burns）全スライド共通 ──────────────────────
   ① 動画 も ② 針車 も**まったく同じ**動きをする（方向・速度・倍率・
   イージング・始終状態すべて共通の変数から作る）。
     · 種類：ゆっくり寄り（dolly in）＋ ごく僅かな左上への平行移動
     · 倍率：1.00 → 1.08（--hp-kb-scale）
     · 移動：(0,0) → (-1.5%, -1%)（--hp-kb-x / --hp-kb-y）
     · 時間：--hp-hold（12000ms）＝ 停留時間と**同じ**。
             ★ hold + dur（8100ms）にすると停留が終わる時点で 86% しか進んでおらず
               終点 1.08 に一度も到達しない（実測 6.0s 時点で 1.0703 で切替 → 不整合）。
               停留と同じ長さにすれば「見えている間にちょうど動き終わる」。
               切替後は .hp-slide-media の transition で --hp-dur かけて 1.0 へ戻る
               （クロスフェードと同時なので「縮みながら消える」＝不自然さなし）。
     · 始終：0% = scale(1) translate(0,0) ／ 100% = scale(1.08) translate(-1.5%,-1%)
             is-active が付くたび 0% から再生される → 毎回同じ始終状態
   ⚠ 動画も同じ倍率で寄るため、cover の拡大（1600×624 → 1440×900 で約 1.44 倍）
     と合わせて最終的に約 1.56 倍になる。静止画と揃えるための意図的な選択で、
     気になる場合は --hp-kb-scale を 1.05 などに下げる（全スライド一括で変わる）。 */
@keyframes hp-kb{
  from{transform:scale(1) translate(0,0)}
  to  {transform:scale(var(--hp-kb-scale)) translate(var(--hp-kb-x),var(--hp-kb-y))}
}
.hp-slide.is-active .hp-slide-media{
  animation:hp-kb var(--hp-hold) var(--hp-kb-ease) both;
}
/* 動画 / 静止画で圧暗の掛け方をわずかに変える（静止画のほうが元が明るい） */
.hp-slide[data-type="video"] .hp-slide-media{filter:var(--hp-video-filter)}
.hp-slide[data-type="image"] .hp-slide-media{filter:var(--hp-still-filter)}
/* ── 針車（轮播 2 枚目）：一枚の「図」として不透明で出す ──────────
   v4 では opacity .34 + mix-blend-mode で全面に重ねていたが、
   それは実質「背景」であり「只是加一个图进去」ではない → v5 で廃止。
   （参考：mix-blend-mode は親に z-index があると層叠上下文に閉じ込められて
     効かなくなる。重ね表現を復活させる時は z-index:auto を維持すること。）
   取景だけ --hp-pos で指定。灰黒は [data-type="image"] 側の
   --hp-still-filter が掛けるので、ここでは触らない。
   ★ 2026-10-21 v9：針車は**手机（≤782px）だけ**の輪播 2 枚目に戻す
     （＝2026-10-19 dev-carousel 構成の復活。ユーザー指示）。
     桌面は display:none ＋ site.js も除外 → 桌面は v8 と同じ「動画 1 本 loop」
     で見た目・挙動ともゼロ変更。取景は dev-hero 時の値をそのまま使う：
     桌面 64% 82%（機械の並びの中心）/ 手机 38% 50%（竖幅で左右だけ見せる）。 */
.hp-slide--sew{display:none}
.hp-slide--sew .hp-slide-media{--hp-pos:64% 82%}

/* ── 統一圧暗：轮播（動画・針車どちらが出ていても）の上にまとめて掛ける ── */
.hp-dark{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    /* 左：文字が乗る帯（〜56%）だけを沈め、右側はほぼ素通しで工場を見せる */
    linear-gradient(90deg,rgba(2,3,6,.58) 0%,rgba(2,3,6,.50) 20%,rgba(2,3,6,.38) 40%,rgba(2,3,6,.20) 56%,rgba(2,3,6,0) 74%),
    /* 上：ナビ、下：SCROLL と次セクションへの繋ぎ。中段は明るいまま */
    linear-gradient(180deg,rgba(2,3,6,.62) 0%,rgba(2,3,6,.08) 24%,rgba(2,3,6,.10) 62%,rgba(2,3,6,.78) 100%),
    var(--hp-veil);
}

/* ── 文字ブロック：中央寄せをやめてロゴと同じ左基準線へ ──────── */
.hp-inner{
  position:absolute;left:0;right:0;top:0;bottom:0;z-index:3;
  max-width:var(--hp-max);margin:0 auto;
  /* ★ 2026-10-20 指示：文字とボタンをひと塊のまま「左下」へ寄せる。
       column 方向なので center→flex-end が「下端寄せ」。左は padding の
       --hp-gutter によって既にロゴと同じ左基準。上下 padding・字号・
       行間・ボタン間隔は**一切変更しない**。画面中央〜右（動画の見せ場）
       は空けたまま → 主体が文字に隠れない。スマホ側は従来から flex-end。 */
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:clamp(76px,8vw,96px) var(--hp-gutter) clamp(48px,6vw,74px);
}
.hp-kicker{
  font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;
  color:rgba(255,255,255,.92);margin-bottom:20px;
  text-shadow:0 1px 2px rgba(0,0,0,.85),0 0 10px rgba(0,0,0,.62);
}
.hp-title{
  max-width:min(980px,94%);     /* 太窄会把「に」挤成孤字；980 刚好容下第 2 行 */
  font-size:clamp(25px,3.15vw,46px);
  line-height:1.42;font-weight:700;letter-spacing:.02em;
  color:#fff;
  /* 首屏は左右で明暗差が大きい（左は暗幕、右は窓の明かり）。
     右へ伸びた行末が明るい面に乗るので、近接〜中距離のハローを三層で足す */
  text-shadow:0 1px 3px rgba(0,0,0,.72),0 0 14px rgba(0,0,0,.62),0 2px 34px rgba(0,0,0,.85);
}
.hp-lead{
  margin-top:22px;max-width:620px;
  font-size:clamp(12.5px,1.02vw,14.5px);line-height:2.05;
  color:rgba(255,255,255,.94);
  /* 小さい文字ほどハローが効く。近接 2px + 中距離 12px の二層で、明るい床や機械の上でも沈まない */
  text-shadow:0 1px 2px rgba(0,0,0,.88),0 0 12px rgba(0,0,0,.62),0 2px 22px rgba(0,0,0,.50);
}
.hp-act{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.hp-btn{
  display:inline-flex;align-items:center;justify-content:center;
  height:46px;padding:0 26px;border-radius:999px;
  border:1px solid rgba(255,255,255,.52);
  background:rgba(255,255,255,.08);
  text-shadow:0 1px 8px rgba(0,0,0,.55);
  color:#fff;font-size:12.5px;letter-spacing:.08em;
  transition:background .25s,color .25s,border-color .25s;
}
.hp-btn:hover{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.72)}
.hp-btn.main{background:#fff;color:#1a1a1a;border-color:#fff}
.hp-btn.main:hover{background:var(--gold);border-color:var(--gold);color:#1a1a1a}

/* ── 左下角分隔样式：v5 起全部撤掉 ──────────────────────
   演变：v2 两颗圆点（.hp-dots，暗示「两个模块」）→ v4 一条横线（.hp-rule）
   → v5 用户要求「左下角的横线不要了」→ 圆点与横线**都不再输出**。
   ⚠ 不要再补任何指示器：轮播是自动交叉溶解，没有指示反而更像「一张图」。 */

/* ── SCROLL 指示：縦向きの細線（｜）。位置と役割は v1 のまま ── */
.hp-scroll{
  position:absolute;right:30px;bottom:28px;z-index:3;
  display:flex;flex-direction:column;align-items:center;gap:14px;
  font-size:9.5px;letter-spacing:.3em;color:rgba(255,255,255,.55);
}
.hp-scroll span{writing-mode:vertical-rl;text-orientation:mixed;line-height:1}
.hp-scroll::after{
  content:"";flex:0 0 auto;
  width:1px;height:56px;                      /* ← v1 の width:56px;height:1px を縦に */
  background:linear-gradient(180deg,rgba(255,255,255,.78) 0%,rgba(255,255,255,.10) 100%);
  transform-origin:50% 0;
  animation:hp-cue 2.4s ease-in-out infinite;
}
@keyframes hp-cue{
  0%,100%{transform:scaleY(.5);opacity:.55}
  50%{transform:scaleY(1);opacity:1}
}

/* -----------------------------------------------------------
   透過ヘッダー：ヒーロー上では透明＋白文字、スクロールで実色
   対象＝ body.home（index）と body.hero-overlay（about-us）。
   ★ 2つのスコープは**必ず同じルールを共有**する（片方だけ直すと色がズレる）。
      首页 .hp-hero / about .ab-hero はどちらも 100svh の暗い全面動画なので、
      「暗い面＝透明＋白 / 白い本文＝実色」の切り替え条件も共通で成立する。
   ----------------------------------------------------------- */
body.home header,
body.hero-overlay header{
  position:fixed;top:0;left:0;right:0;
  background:transparent;border-bottom:1px solid transparent;
  transition:background .38s ease,border-color .38s ease,box-shadow .38s ease;
}
body.home header.nav-solid,
body.home.nav-open header,
body.hero-overlay header.nav-solid,
body.hero-overlay.nav-open header{
  background:rgba(255,255,255,.96);
  -webkit-backdrop-filter:saturate(1.4) blur(10px);
  backdrop-filter:saturate(1.4) blur(10px);
  border-bottom-color:var(--line);
  box-shadow:0 2px 16px rgba(0,0,0,.06);
}
body.home header .logo img,
body.hero-overlay header .logo img{transition:filter .38s ease}
body.home:not(.nav-open) header:not(.nav-solid) .logo img,
body.hero-overlay:not(.nav-open) header:not(.nav-solid) .logo img{filter:brightness(0) invert(1)}
body.home:not(.nav-open) header:not(.nav-solid) nav.gnav a,
body.hero-overlay:not(.nav-open) header:not(.nav-solid) nav.gnav a{color:rgba(255,255,255,.92)}
body.home:not(.nav-open) header:not(.nav-solid) nav.gnav a:hover,
body.hero-overlay:not(.nav-open) header:not(.nav-solid) nav.gnav a:hover{background:rgba(255,255,255,.12)}
body.home:not(.nav-open) header:not(.nav-solid) nav.gnav .acc-btn svg path,
body.hero-overlay:not(.nav-open) header:not(.nav-solid) nav.gnav .acc-btn svg path{stroke:rgba(255,255,255,.60)}
body.home:not(.nav-open) header:not(.nav-solid) .nav-toggle span,
body.hero-overlay:not(.nav-open) header:not(.nav-solid) .nav-toggle span{background:#fff}
/* サブメニューは白パネルなので、透過時も中身は濃色のまま */
body.home:not(.nav-open) header:not(.nav-solid) nav.gnav .sub-menu a,
body.hero-overlay:not(.nav-open) header:not(.nav-solid) nav.gnav .sub-menu a{color:#333}
body.home:not(.nav-open) header:not(.nav-solid) nav.gnav .sub-menu a:hover,
body.hero-overlay:not(.nav-open) header:not(.nav-solid) nav.gnav .sub-menu a:hover{background:var(--gray-bg)}

/* -----------------------------------------------------------
   モバイル：比率固定だと高さ 150px 程度になり首屏が成立しないため、
   cover で左右を裁って高さを確保（引き伸ばしはしない）
   ----------------------------------------------------------- */
@media (max-width:782px){
  .hp-hero{
    --hp-gutter:24px;
    height:100vh;
    height:100svh;             /* デスクトップと同じく画面いっぱい */
    min-height:520px;
    /* ★ 2026-10-21 v9：手机輪播は 7s（動画）+ 6s（針車）＝ dev-carousel 時の
       リズムに戻す。site.js は HTML の data-hold を読むので、カメラワーク
       （hp-kb）側だけここで長さを合わせる。桌面の --hp-hold:12000 は不変。 */
    --hp-hold:7000ms;
  }
  /* ★ 2026-10-21 v3：手机视频は site.js が「最早版」hero-workshop.mp4
     （1600×624 横版）に差し替える → 取景は dev-hero 時の 58% に戻す
     （机器集中在 x=27%〜56%、58% で画面中央よりやや左に主体）。
     旧 48%（mono12s 主体 x=44% 口径）と center（竖版专用）は廃止。 */
  .hp-slide[data-type="video"] .hp-slide-media{--hp-pos:58% center}
  /* ② 針車：手机だけ表示（桌面は display:none）。竖幅では上下は裁られず
     左右だけ見えるので X が効く → 38%（70% は右の掛物の壁に当たる）。 */
  .hp-slide--sew{display:block}
  .hp-slide--sew .hp-slide-media{--hp-pos:38% 50%}
  .hp-slide--sew.is-active .hp-slide-media{animation-duration:6000ms}
  .hp-dark{
    background:
      linear-gradient(180deg,rgba(4,6,10,.58) 0%,rgba(4,6,10,.06) 20%,rgba(4,6,10,.22) 46%,rgba(4,6,10,.56) 70%,rgba(4,6,10,.78) 100%),
      linear-gradient(0deg,rgba(4,6,10,.72) 0%,rgba(4,6,10,.30) 26%,rgba(4,6,10,0) 62%),
      var(--hp-veil);
  }
  .hp-inner{justify-content:flex-end;padding-top:104px;padding-bottom:96px}
  .hp-title{font-size:clamp(22px,6.1vw,30px);line-height:1.52;max-width:none}
  .hp-lead{font-size:12.5px;line-height:1.95;margin-top:16px;max-width:none}
  .hp-act{gap:10px;margin-top:26px}
  .hp-btn{height:42px;padding:0 20px;font-size:12px}
  .hp-scroll{display:none}
}
@media (max-width:420px){
  .hp-br{display:none}
}

/* 動きを抑える設定では SCROLL のアニメを止め、細線は静止表示にする。
   カメラワーク（寄り）も止める —— 倍率は終点 1.08 のまま固定し、
   「動かないが他と露出が変わらない」状態に揃える。 */
@media (prefers-reduced-motion:reduce){
  .hp-scroll::after{animation:none;transform:scaleY(1);opacity:1}
  .hp-slide.is-active .hp-slide-media{animation:none}
}

/* ══════════ 首页 熊猫布偶 v2（2026-10-20 · panda.js 注入）══════════
   形象＝软胶渲染定稿派生雪碧图 img/panda-atlas.webp（5 姿态 × 384，77KB）：
   0 吃竹 1 下落 2 攀爬 3 蹲跳 4 挥手。单 fixed 层，z90（header 100 之下）。
   轨迹＝文字行盒天际线（panda.js sampleLines/anchorNear），脚底锚 行盒.top-4px。
   降级：reduced-motion / save-data / 2g 时 panda.js 不注入。 */
#panda{position:fixed;left:0;top:0;width:88px;height:88px;z-index:90;
  pointer-events:auto;cursor:pointer;opacity:0;
  will-change:transform,opacity;transition:opacity .28s ease}
#panda.is-on{opacity:1}
#panda .p-sprite{width:100%;height:100%;transform-origin:50% 92%;will-change:transform;
  background:url("img/panda-atlas.webp?v=1ab1696a") 0 0/500% 100% no-repeat}
#panda .p-shadow{position:absolute;left:50%;bottom:-4px;width:58%;height:8px;
  transform:translateX(-50%);border-radius:50%;transition:opacity .2s;
  background:radial-gradient(50% 50% at 50% 50%,rgba(0,0,0,.24),rgba(0,0,0,0))}
/* 梯子（攀爬） */
#panda .p-ladder{position:absolute;left:50%;bottom:70%;width:30px;height:132px;margin-left:-15px;
  opacity:0;transform:translateY(8px);transition:opacity .18s,transform .18s}
#panda.is-climb .p-ladder{opacity:1;transform:translateY(0)}
/* 晕圈（摔倒） */
#panda .p-halo{position:absolute;left:50%;top:-14px;width:96px;height:48px;margin-left:-48px;
  opacity:0;transition:opacity .15s}
#panda.is-faint .p-halo{opacity:1;animation:panda-spin 1s linear infinite;transform-origin:50% 50%}
#panda.is-faint .p-sprite{animation:panda-faint .95s ease-in-out}
/* 瞌睡气泡 */
#panda .p-zzz{position:absolute;right:-6px;top:-16px;font:600 12px/1 var(--font-sans,inherit);
  color:#888780;opacity:0;transition:opacity .2s;letter-spacing:.05em}
#panda.is-sleep .p-zzz{opacity:1;animation:panda-zzz 1.6s ease-in-out infinite}
/* 点击反馈气泡 ♪ / ❤ */
#panda .p-note{position:absolute;right:-4px;top:-14px;font-size:14px;color:#b07a58;
  opacity:0;pointer-events:none}
#panda .p-note.go{animation:panda-note .8s ease-out}
/* 落地挤压 / 打滚 */
#panda .p-sprite.p-land{animation:panda-land .3s cubic-bezier(.3,0,.4,1)}
/* 害羞：缩小侧倾 */
#panda .p-sprite.is-shy{transform:scale(.94) rotate(-8deg) !important}

@keyframes panda-spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}
@keyframes panda-faint{0%{transform:rotate(0)}25%{transform:rotate(-9deg)}55%{transform:rotate(-6deg)}80%{transform:rotate(-9deg)}100%{transform:rotate(0)}}
@keyframes panda-land{0%{transform:scale(1,1)}35%{transform:scale(1.12,.86)}100%{transform:scale(1,1)}}
@keyframes panda-zzz{0%,100%{transform:translateY(0);opacity:.4}50%{transform:translateY(-5px);opacity:1}}
@keyframes panda-note{0%{opacity:0;transform:translateY(2px)}25%{opacity:1}100%{opacity:0;transform:translateY(-14px)}}

@media (max-width:640px){
  #panda{width:64px;height:64px}
}

/* ===========================================================
   Contact セクション（2026-10-21 改）
   -----------------------------------------------------------
   ・上部の写真は廃止。左＝連絡先（LINE 主／フォーム従）、
     右＝3問のクイック inquiry（カード）。下部＝既存の詳細フォーム。
   ・LINE は assets/line-config.js の ID が入るまでは自動でフォーム導線に退避。
   ============================================================ */
.ct-lead{font-size:15px;color:var(--ink-soft);line-height:1.95;margin:0 0 34px;max-width:760px}
.ct-cols{display:grid;grid-template-columns:.86fr 1.14fr;gap:52px;align-items:start;margin:0 0 60px}

/* --- 左：連絡先リスト --- */
.ct-ch{list-style:none;margin:0;padding:0;display:grid;gap:22px}
.ct-ch>li{padding:0 0 22px;border-bottom:1px solid var(--line)}
.ct-ch>li:last-child{padding-bottom:0;border-bottom:0}
.ct-ch-k{display:block;font-size:10.5px;font-weight:700;letter-spacing:.18em;color:var(--gold)}
.ct-ch-v{display:block;font-size:16px;font-weight:700;margin:4px 0 6px;color:var(--ink)}
.ct-ch-note{font-size:13px;line-height:1.8;color:var(--ink-soft);margin:0 0 12px}
.ct-ch-link{font-size:13px;color:var(--steel);text-decoration:underline;text-underline-offset:3px}
.ct-ch-link:hover{color:var(--gold)}
.ct-ch-line{background:var(--mist);border:1px solid #d8e4e0;border-radius:10px;padding:18px 18px 16px}
.ct-ch-line .ct-ch-k{color:#06c755}
.ct-line-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-width:196px;padding:11px 18px;border-radius:999px;
  background:#06c755;color:#fff;font-size:14px;font-weight:700;letter-spacing:.02em;
  transition:background .18s ease,transform .18s ease;
}
.ct-line-btn:hover{background:#05b34c;transform:translateY(-1px)}
.ct-line-off{font-size:12.5px;line-height:1.7;color:#8a7a68;margin:8px 0 0}
.ct-side .dl{margin-top:30px}

/* --- 右：クイック inquiry カード --- */
.iq-card{
  background:#fbfaf7;border:1px solid var(--line);border-radius:14px;
  padding:28px 28px 24px;box-shadow:0 2px 14px rgba(51,51,51,.05);
}
.iq-eyebrow{font-size:10.5px;font-weight:700;letter-spacing:.2em;color:var(--gold);margin:0 0 8px}
.iq-title{font-size:23px;line-height:1.45;font-weight:700;margin:0 0 8px;color:var(--ink)}
.iq-intro{font-size:13px;line-height:1.8;color:var(--ink-soft);margin:0 0 18px}
.iq-steps{display:flex;gap:6px;margin:0 0 22px}
.iq-steps span{height:3px;flex:1;background:#e3e0d9;border-radius:2px;transition:background .25s ease}
.iq-steps span.is-on{background:var(--gold)}
.iq-step{border:0;padding:0;margin:0 0 6px;min-width:0;display:none}
.iq-step.is-on{display:block;animation:iq-fade .28s ease}
@keyframes iq-fade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.iq-step legend,
.iq-hand-t{display:block;width:100%;font-size:15px;font-weight:700;line-height:1.6;
  margin:0 0 14px;padding:0;color:var(--ink)}
.iq-opts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.iq-opts label{
  display:flex;align-items:center;gap:9px;min-height:46px;margin:0;
  padding:10px 12px;border:1px solid #d9d5cc;border-radius:8px;background:#fff;
  cursor:pointer;font-size:13.5px;line-height:1.45;transition:border-color .15s,background .15s;
}
.iq-opts label:hover{border-color:#bfb9ab}
.iq-opts label:has(input:checked),
.iq-opts label.is-on{border-color:var(--steel);background:#f2f6f8}
.iq-opts input{flex:0 0 auto;width:16px;height:16px;margin:0;accent-color:var(--steel)}
.iq-opts label.is-off{opacity:.45}
.iq-step small{display:block;font-size:11.5px;line-height:1.7;color:#8b8b85;margin-top:10px}
.iq-hand-t{font-size:16px}
.iq-sum{list-style:none;margin:0 0 14px;padding:14px 16px;background:#fff;
  border:1px solid var(--line);border-radius:8px;display:grid;gap:6px}
.iq-sum li{font-size:12.5px;line-height:1.6;color:var(--ink-soft);display:flex;gap:10px}
.iq-sum li b{flex:0 0 84px;font-weight:700;color:var(--ink)}
.iq-hand-note{font-size:12px;color:#8b8b85;margin:0 0 14px}
.iq-hand-btns{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.iq-btn{
  display:flex;align-items:center;justify-content:center;text-align:center;
  min-height:48px;padding:12px 14px;border-radius:8px;border:1px solid transparent;
  font-size:14px;font-weight:700;line-height:1.4;cursor:pointer;
  transition:filter .15s ease,background .15s ease,transform .15s ease;
}
.iq-btn-line{background:#06c755;color:#fff}
.iq-btn-line:hover{background:#05b34c;transform:translateY(-1px)}
.iq-btn-form{background:#fff;border-color:#c9c5bb;color:var(--ink)}
.iq-btn-form:hover{border-color:var(--steel);color:var(--steel)}
.iq-hand-alt{font-size:11.5px;line-height:1.7;color:#8a7a68;margin:12px 0 0}
.iq-error{margin:12px 0 0;font-size:12.5px;line-height:1.6;color:#911A22}
.iq-actions{display:flex;gap:9px;margin-top:20px}
.iq-actions button{
  min-height:46px;padding:12px 18px;border-radius:8px;font:inherit;font-size:14px;
  font-weight:700;cursor:pointer;border:1px solid #c9c5bb;background:#fff;color:var(--ink);
}
.iq-actions .iq-next{flex:1;background:var(--navy);border-color:var(--navy);color:#fff}
.iq-actions .iq-next:hover{filter:brightness(1.12)}
.iq-actions .iq-back:hover{border-color:var(--steel);color:var(--steel)}

/* --- 下：詳細フォーム --- */
.ct-formwrap{padding-top:44px;border-top:1px solid var(--line)}
.ct-form-h{font-size:22px;line-height:1.5;font-weight:700;margin:0 0 10px}
.ct-form-lead{font-size:13px;line-height:1.85;color:var(--ink-soft);margin:0 0 26px;max-width:680px}

@media (max-width:900px){
  .ct-cols{grid-template-columns:1fr;gap:34px;margin-bottom:44px}
  .iq-card{padding:22px 18px 20px}
  .iq-opts{grid-template-columns:1fr}
  .iq-hand-btns{grid-template-columns:1fr}
  .iq-title{font-size:20px}
}

/* ===========================================================
   LINE ページ（line.html）／2026-10-21
   =========================================================== */
.ln-steps{list-style:none;margin:0 0 30px;padding:0;display:grid;gap:18px}
.ln-steps li{padding:0 0 18px;border-bottom:1px solid var(--line)}
.ln-num{display:block;font-size:11px;font-weight:700;letter-spacing:.16em;color:var(--gold)}
.ln-steps h3{font-size:15.5px;font-weight:700;margin:5px 0 6px;color:var(--ink)}
.ln-steps p{font-size:13.5px;line-height:1.85;color:var(--ink-soft);margin:0}
.ln-note{background:var(--mist);border:1px solid #d8e4e0;border-radius:10px;padding:20px}
.ln-note-h{font-size:14px;font-weight:700;margin:0 0 12px}
.ln-chips{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.ln-chips li{font-size:12px;line-height:1.4;padding:6px 11px;border-radius:999px;
  background:#fff;border:1px solid #d9e3df;color:var(--ink-soft)}
.ln-note-p{font-size:12.5px;line-height:1.8;color:var(--ink-soft);margin:0}
.ln-fallback{font-size:13px;line-height:1.85;color:var(--ink-soft);margin:24px 0 0}
.ln-fallback a{color:var(--steel);text-decoration:underline;text-underline-offset:3px}
.ln-card .ln-add{width:100%;margin-top:6px}
.ln-qr{margin:0 0 18px;text-align:center}
.ln-qr img{width:180px;height:180px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:8px}
.ln-qr-cap{font-size:11.5px;color:#8b8b85;margin:8px 0 0}
.ln-id{font-size:13px;color:var(--ink);margin:12px 0 0;text-align:center}
.ln-id b{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.02em}
.ln-hours{font-size:12px;color:#8b8b85;margin:6px 0 0;text-align:center}
.ln-off{margin-top:16px;padding:16px;border:1px dashed #d9cbb6;border-radius:10px;background:#fdf9f2}
.ln-off-t{font-size:13.5px;font-weight:700;color:#8a6b3f;margin:0 0 6px}
.ln-off-p{font-size:12.5px;line-height:1.8;color:#7d7365;margin:0 0 12px}
.ln-priv{font-size:11.5px;line-height:1.75;color:#9a9389;margin:18px 0 0;padding-top:14px;border-top:1px solid var(--line)}
.ln-priv a{text-decoration:underline}
.ln-faq{margin-top:8px}
.ln-faq details{border-top:1px solid var(--line);padding:16px 0}
.ln-faq details:last-of-type{border-bottom:1px solid var(--line)}
.ln-faq summary{font-size:14.5px;font-weight:700;cursor:pointer;list-style:none;position:relative;padding-right:26px}
.ln-faq summary::-webkit-details-marker{display:none}
.ln-faq summary::after{content:"+";position:absolute;right:2px;top:-2px;font-size:19px;color:var(--gold)}
.ln-faq details[open] summary::after{content:"−"}
.ln-faq p{font-size:13.5px;line-height:1.9;color:var(--ink-soft);margin:10px 0 0}

/* [hidden] は各所の display 指定より優先させる（LINE 未設定時の退避表示など） */
[hidden]{display:none!important}

/* [hidden] は各所の display 指定より優先させる（LINE 未設定時の退避表示など） */
[hidden]{display:none!important}
/* a 要素ボタンの下線を消す（.prose 内のリンク既定に被打つため） */
.ct-line-btn,.iq-btn{text-decoration:none}
/* a 要素ボタンの下線を消す（.prose 内のリンク既定に被打つため） */
.ct-line-btn,.iq-btn{text-decoration:none}

/* ※ 旧「LINE 引き継ぎバブル（line.html #send）」スタイルは廃止
   （inquiry → LINE が oaMessage 直接遷移になったため中継画面不要） */
.ct-ch-v b{font-weight:700}
/* iq-hnad-btns が <a> 前提だったため <button> にもフォントを効かせる */
button.iq-btn{font-family:inherit}
/* ボタン系 <a> の下線（.prose a の既定に勝たせる） */
.prose .ct-line-btn,.prose .iq-btn{text-decoration:none}

/* --- Contact 左：公式情報（リンク遷移なし・1行1項目でコンパクトに） --- */
.ct-info{margin:0 0 24px;border-top:1px solid var(--line)}
.ct-info-row{display:grid;grid-template-columns:74px 1fr;gap:10px;align-items:baseline;padding:11px 0;border-bottom:1px solid var(--line)}
.ct-info-k{font-size:10px;font-weight:700;letter-spacing:.16em;color:var(--gold)}
.ct-info-v{font-size:14.5px;line-height:1.55;font-weight:600;color:var(--ink);min-width:0;overflow-wrap:anywhere}
.ct-info-v b{font-weight:700}
.ct-info-v a{color:var(--ink);text-decoration:none;border-bottom:1px solid rgba(0,0,0,.16)}
.ct-info-v a:hover{color:var(--steel);border-bottom-color:var(--steel)}
.ct-info-sub{display:block;font-size:12px;font-weight:400;line-height:1.5;color:var(--ink-soft);margin-top:1px}
.ct-side .dl{margin-top:20px}
.ct-side .dl-lead{font-size:12.5px;line-height:1.7;margin-bottom:8px}
@media (max-width:900px){
  .ct-info-row{grid-template-columns:66px 1fr}
}

/* --- LINE 公式アカウント表記（アイコン＋ID バッジ） --- */
.ct-line-id{
  display:inline-flex;align-items:center;gap:8px;
  padding:5px 13px 5px 7px;
  background:#f3fbf6;border:1px solid #cfe8d8;border-radius:999px;
}
.ct-line-ico{width:19px;height:19px;flex:0 0 auto;display:block}
.ct-line-id b{
  font-size:14px;font-weight:700;line-height:1;color:#0b7a3d;letter-spacing:.01em;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
}
.ln-id .ct-line-id{margin:2px auto 0}

/* Contact 導語は1行で見せる（.wrap 内に収まる幅なら折り返さない） */
.ct-sec .ct-lead{max-width:none}

/* Contact 左：2 カラムの高さ合わせ（v21 で単一ルールに統一）
   ---------------------------------------------------------
   ① 行の高さ = 左右の高いほう（align-items:stretch）
   ② 左カラムの中身は「自分の高さの中で」垂直中央（.ct-side を flex + justify-content:center）
   この 2 つで、両方のケースが自動的に正しくなる：
     ・左が高い → 余白ゼロなので中身は上端から＝左右とも天井が揃う（下に空白が残らない）
     ・右（inquiry）が高い → 左カラムが行の高さまで伸び、中身だけ中央に寄る
   ※ 以前は align-items:center のみで、左が高いとき右カードまで中央に寄り天井がずれていた。 */
.ct-sec .ct-cols{align-items:stretch}
.ct-sec .ct-side{display:flex;flex-direction:column;justify-content:center}
/* flex 化で margin の相殺が起きなくなる（26+24=50 に広がる）ため、従来の 26px に戻す。
   併せて末尾の 26px を外す：残すと「左が高いとき」下端に 26px の空白が残り、
   「右が高いとき」中央寄せが上 96 / 下 120 と非対称になる。 */
.ct-sec .ct-side .dl{margin-top:0;margin-bottom:0}
/* 資料パックの末尾に残っていた「20px の余白 + 1px の区切り線」を撤去。
   旧ブロックレイアウト時代の区切り線で、いまは下のフォーム区画が自前の border-top を持つため二重。
   これが「左カラム下の余分な空白と浮いた横線」の正体だった。 */
.ct-sec .ct-side .dl.dl-inline{padding-bottom:0;border-bottom:0}
@media (max-width:900px){
  .ct-sec .ct-cols{align-items:stretch}
  /* 1 カラム時は下の inquiry カードとの間隔として 26px を戻す（grid gap 34 + 26 = 60） */
  .ct-sec .ct-side .dl{margin-bottom:26px}
}

/* --- LINE Login 連携（β）／line.html --- */
.ln-auth{margin:0 0 34px;padding:22px 24px 20px;background:#f3fbf6;border:1px solid #cfe8d8;border-radius:14px}
.ln-auth-h{font-size:14.5px;font-weight:700;color:var(--ink);margin:0 0 8px}
.ln-auth-p{font-size:13px;line-height:1.85;color:var(--ink-soft);margin:0 0 16px}
.ln-auth .ct-line-btn{width:100%}
.ln-auth-note{font-size:11.5px;line-height:1.7;color:#7f8b84;margin:10px 0 0}
.ln-linked{margin:0 0 30px;padding:12px 16px;border-radius:10px;background:#eaf7ef;border:1px solid #c9e6d5;
  font-size:13px;line-height:1.7;color:#12633a}
.ln-linked-err{background:#fdf1f1;border-color:#f0d2d2;color:#8d1f1f}

/* --- Contact 左：LINE 行＝ID テキスト＋β 連携ボタン（ボタンは右端・垂直中央） --- */
.ct-info-row--line{grid-template-columns:74px 1fr auto;align-items:center}
.ct-line-id-txt{font-size:14.5px;font-weight:700;color:var(--ink);letter-spacing:.01em}
.ct-line-add-btn{justify-self:end;border:0;cursor:pointer}
.ct-line-btn-sm{min-width:0;padding:6px 13px 6px 9px;font-size:12px;gap:6px}
.ct-line-btn-sm .ct-line-ico{width:15px;height:15px}
@media (max-width:600px){
  .ct-info-row--line{grid-template-columns:64px 1fr}
  .ct-line-add-btn{grid-column:2;justify-self:start;margin-top:8px}
}

/* ===========================================================
   ヘッダー右端：TikTok 入口 ＋ 言語切替（2026-10-21）
   ＝ ナビと同じ行・垂直センタ。国旗ボタン → 国/言語メニュー
   ============================================================ */
html.i18n-loading body{visibility:hidden}
.hdr-tools{display:flex;align-items:center;gap:4px;flex:0 0 auto}
.hdr-ico{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:9px;color:inherit;opacity:.8;transition:opacity .16s ease,background .16s ease}
.hdr-ico:hover{opacity:1;background:rgba(0,0,0,.055)}
.hdr-ico:focus-visible,.lang-btn:focus-visible{outline:2px solid #06c755;outline-offset:2px}
.hdr-ico svg{width:17px;height:17px;display:block}
.lang-wrap{position:relative}
.lang-btn{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 8px;border:0;background:none;border-radius:9px;font:inherit;font-size:11.5px;font-weight:700;letter-spacing:.05em;color:inherit;cursor:pointer;transition:background .16s ease}
.lang-btn:hover{background:rgba(0,0,0,.055)}
.lang-flag{width:19px;height:13.3px;display:block;border-radius:2px;overflow:hidden;flex:0 0 auto;box-shadow:0 0 0 .5px rgba(0,0,0,.12)}
.lang-flag svg{width:100%;height:100%;display:block}
.lang-menu{position:absolute;right:0;top:calc(100% + 9px);min-width:176px;margin:0;padding:6px;list-style:none;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.13);z-index:130;display:none}
.lang-menu.open{display:block}
.lang-menu button{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border:0;background:none;border-radius:8px;font:inherit;font-size:13px;color:var(--ink);text-align:left;cursor:pointer}
.lang-menu button:hover{background:var(--band)}
.lang-menu button[aria-selected="true"]{font-weight:700;background:var(--band)}
.lang-menu .lf{width:20px;height:14px;display:block;border-radius:2px;overflow:hidden;flex:0 0 auto;box-shadow:0 0 0 .5px rgba(0,0,0,.12)}
.lang-menu .lf svg{width:100%;height:100%;display:block}
/* ホームの透過ヘッダー（白文字）でもアイコンが沈まないように
   ★ 2026-10-30 修正：.nav-solid / .nav-open が付くのは body ではなく **header**。
     旧セレクタ（body:not(.nav-solid) header …）は常に真 → スクロールして白帯に
     なっても文字とアイコンが白のままで、白地に白＝不可視だった
     （＝ユーザー報告「下にスクロールしても icon が見えない」の原因）。
     他の同種ルール（1113-1122 行）と同じ `header:not(.nav-solid)` に揃える。 */
body.home:not(.nav-open) header:not(.nav-solid) .hdr-tools,
body.hero-overlay:not(.nav-open) header:not(.nav-solid) .hdr-tools{color:#fff}
body.home:not(.nav-open) header:not(.nav-solid) .hdr-ico:hover,
body.hero-overlay:not(.nav-open) header:not(.nav-solid) .hdr-ico:hover,
body.home:not(.nav-open) header:not(.nav-solid) .lang-btn:hover,
body.hero-overlay:not(.nav-open) header:not(.nav-solid) .lang-btn:hover{background:rgba(255,255,255,.18)}

/* -----------------------------------------------------------
   SNS アイコンの配色（2026-10-30 ユーザー指示 / 同日 19:45 追補）
   ・基本＝全ページで各サービスの公式ブランドカラー
     TikTok #010101 / Facebook #1877F2 / LinkedIn #0A66C2
   ・例外＝ホームの「ヒーロー映像に重なる透過ヘッダー」のときだけ白
     （header に .nav-solid が付いて白帯へ戻ったら下の base ルールが効いて
      ブランドカラーに戻る＝2026-10-30 追加指示「下にスクロールしたら公式色」）
   色は .hdr-ico に直接指定（SVG は fill="currentColor" なので色だけ差し替わる）。
   ----------------------------------------------------------- */
header .hdr-ico{opacity:1}
header .hdr-ico.hdr-tiktok{color:#010101}
header .hdr-ico.hdr-facebook{color:#1877F2}
header .hdr-ico.hdr-linkedin{color:#0A66C2}
header .hdr-ico.hdr-tiktok:hover{background:rgba(1,1,1,.08)}
header .hdr-ico.hdr-facebook:hover{background:rgba(24,119,242,.12)}
header .hdr-ico.hdr-linkedin:hover{background:rgba(10,102,194,.12)}
/* ホーム：透過ヘッダーのあいだだけ白（＝従来の見た目を完全に維持） */
body.home:not(.nav-open) header:not(.nav-solid) .hdr-ico{color:#fff}
body.home:not(.nav-open) header:not(.nav-solid) .hdr-ico:hover{background:rgba(255,255,255,.18)}
@media(max-width:900px){
  .hdr-tools{gap:0}
  .hdr-ico{width:30px;height:30px}
  .lang-btn{height:30px;padding:0 6px;gap:5px}
  .lang-cur{display:none}
  .lang-menu{min-width:160px}
}

/* ===========================================================
   2026-10-21 v2→v3：手机顶部视频「按宽度适配」（aspect-ratio 3/4）方案
   ★★ v4 已废止（2026-10-21 用户指示回退）：手机改回「最早版」横版视频
   hero-workshop.mp4 + 100svh 全屏 cover（＝2026-10-19 dev-hero 时代观感），
   轮播两项（7s 動画 + 6s 針車）も復活。基础规则的 100svh 就地生效。
   （保留教训：aspect-ratio 与 min-height / max-height 併用会把宽度反推爆
    （560×3/4=420>390 撑爆 ICB；钳制时 740→633）。要用 aspect-ratio 必须
    width:100% + min-height:0 显式写死。）
   ============================================================ */

/* ===========================================================
   2026-10-21 v11：手机顶部视频＝1361×768（≈16:9 横带）规格（用户指定）
   ・盒宽＝100% 屏宽，盒高＝宽×768/1361（390px 屏→约 220px 高）
   ・動画/画像 object-fit:cover 敷满 → 只裁切不变形（画像 1600×902≈同比例几乎无裁）
   ・帯が矮いので文字区余白を詰め、lead 文は収まらないため帯内では非表示
   ・本節はファイル末尾＝同特異度で最後 → ≤480px の 100svh 上書きも効く
   ・桌面（>782px）は一切不変
   ============================================================ */
@media (max-width:782px){
  .hp-hero{width:100%;height:auto;aspect-ratio:1361/768;min-height:0;max-height:none}
  .ab-hero{width:100%;height:auto;aspect-ratio:1361/768;min-height:0;max-height:none}
  .hp-inner{padding-top:16px;padding-bottom:20px}
  .hp-lead{display:none}
  /* 帯が 390px→220px と矮いので、タイトルを 1 段小さくして
     kicker〜ボタンが全部帯内に収まるようにする（桌面不変） */
  .hp-title{font-size:clamp(18px,4.8vw,24px);line-height:1.45}
  .hp-act{margin-top:14px}
  .ab-hero-body{padding-top:16px;padding-bottom:20px}
  .ab-lead{display:none}
}

/* ============================================================
   2026-10-21 v12：手机 hero 文字带外移＋按钮删除＋about 轮播化（用户指示）
   ① index 手机：hero 内 .hp-inner（kicker/标题/lead/按钮）全部非表示、
     视频带の下に .hp-text-mob（白地＋濃色文字＋水色マーカー）を表示。
     样図どおり：文字は画像の下・青マーカー。ボタンは手机では出さない。
   ② about 手机：.ab-hero-body（文字）非表示 + .ab-hero-v 単一動画も非表示、
     .ab-carousel-m（動画→針車の輪播）を表示。帯の高さは v11 の
     aspect-ratio:1361/768 をそのまま共用。
   ③ 桌面（>782px）：新要素 .hp-text-mob/.ab-carousel-m は両方 display:none
     → 桌面の見た目・挙動はゼロ変更。
   ============================================================ */
.hp-text-mob{display:none}
.ab-carousel-m{display:none}
@media (max-width:782px){
  .hp-inner{display:none}
  .ab-hero-body{display:none}
  .ab-hero-v{display:none}
  .ab-carousel-m{display:block}
  .hp-text-mob{display:block;background:#fff;padding:30px 22px 12px}
  .hp-title-m{
    margin:0;
    font-size:clamp(18px,5.2vw,26px);
    line-height:1.7;
    font-weight:700;
    color:#2b2f33;
    letter-spacing:.01em;
    /* 水色マーカー：行全体に薄い青帯（样図どおりの蛍光マーカー風） */
    background:linear-gradient(180deg,transparent 6%,#b7e0f6 6%,#b7e0f6 96%,transparent 96%);
    -webkit-box-decoration-break:clone;
    box-decoration-break:clone;
    padding:0 3px;
  }
}

/* ============================================================
   2026-10-21 v13：手机 hero＝桌面同款 12s 成片・单视频原生 loop（用户指示）
   ① 视频源：手机不再切 hero-workshop.mp4（v9/v12 的切换模块已从 site.js
     删除）——HTML 的 mono12s src/data-src/poster 两端共通，与桌面完全一致。
   ② 轮播废止：.hp-slide--sew / .ab-carousel-m 在手机也 display:none
     → site.js slides 过滤后=1 项 → 走「単動画 loop」分支（与桌面 v8 同型）。
     about 恢复显示 .ab-hero-v 单一视频（about-media.js 懒加载照常）。
   ③ 去黑边：.hp-dark / .ab-hero-mask 压暗遮罩、--hp-video-filter 滤镜、
     取景偏移全部撤掉 → 视频原样铺满 1361×768 带。
   ④ 间距：.hp-text-mob 上 32px 下 4px；与下方 About 板块的间距交给
     既有的 .sec-band margin-top:64px（与他板块同风格）。
   ⑤ 桌面（>782px）：本节全部规则都在 ≤782 媒体内 → 桌面零变化。
   ============================================================ */
@media (max-width:782px){
  .hp-slide--sew{display:none}
  .ab-carousel-m{display:none}
  .ab-hero-v{display:block}
  .hp-dark{display:none}
  .ab-hero-mask{display:none}
  .hp-slide[data-type="video"] .hp-slide-media{--hp-pos:center center;filter:none}
  .hp-slide[data-type="image"] .hp-slide-media{filter:none}
  .hp-hero{--hp-hold:12000ms}
  .hp-text-mob{padding:32px 22px 4px}
}

/* ============================================================
   2026-10-21 v13：手机 hero＝桌面同款 12s 成片・单视频原生 loop（用户指示）
   ① 视频源：手机不再切 hero-workshop.mp4（v9/v12 的切换模块已从 site.js
     删除）——HTML 的 mono12s src/data-src/poster 两端共通，与桌面完全一致。
   ② 轮播废止：.hp-slide--sew / .ab-carousel-m 在手机也 display:none
     → site.js slides 过滤后=1 项 → 走「単動画 loop」分支（与桌面 v8 同型）。
     about 恢复显示 .ab-hero-v 单一视频（about-media.js 懒加载照常）。
   ③ 去黑边：.hp-dark / .ab-hero-mask 压暗遮罩、--hp-video-filter 滤镜、
     取景偏移全部撤掉 → 视频原样铺满 1361×768 带。
   ④ 间距：.hp-text-mob 上 32px 下 4px；与下方 About 板块的间距交给
     既有的 .sec-band margin-top:64px（与他板块同风格）。
   ⑤ 桌面（>782px）：本节全部规则都在 ≤782 媒体内 → 桌面零变化。
   ============================================================ */
@media (max-width:782px){
  .hp-slide--sew{display:none}
  .ab-carousel-m{display:none}
  .ab-hero-v{display:block}
  .hp-dark{display:none}
  .ab-hero-mask{display:none}
  .hp-slide[data-type="video"] .hp-slide-media{--hp-pos:center center;filter:none}
  .hp-slide[data-type="image"] .hp-slide-media{filter:none}
  .hp-hero{--hp-hold:12000ms}
  .hp-text-mob{padding:32px 22px 4px}
}

/* ============================================================
   2026-10-21 v15：手机「蓝字标题 → About us」间距收紧（用户样图指示）
   .hp-text-mob 底部余白归零＋首个 .sec-band 的 64px（内联样式）在手机
   压到 22px。仅 ≤782px；桌面 64px 不变（!important 只在手机媒体内）。
   ============================================================ */
@media (max-width:782px){
  .hp-text-mob{padding:24px 22px 0}
  .hp-text-mob + .wrap > section:first-of-type .sec-band{margin-top:22px !important}
}

/* ============================================================
   2026-10-22 v16：チャットウィジェット v2 の見た目（调研基准を実装）
   ・窓：デスクトップ 392×600、モバイルは全画面（8px 余白）
   ・本文 15px / 行間 1.5、吹き出し最大 78%、角丸 16px
   ・AI アバター（H）と担当者アバター（T）は 32px 円形、名前ラベル付き
   ・ようこそ画面の三大入口ボタン／回答ごとの 👍👎／在席ドット
   ・他ページのスタイルには触れない（cw-* 名前空間のみ）
   ============================================================ */
.cw-btn{width:60px;height:60px;right:16px;bottom:66px}
.cw-panel{
  width:min(392px,calc(100vw - 24px));
  height:min(600px,calc(100vh - 150px));
  border-radius:16px;
}
.cw-head{padding:12px 14px;gap:10px}
.cw-av{
  width:32px;height:32px;border-radius:50%;flex:none;
  display:flex;align-items:center;justify-content:center;
  font-size:14px;font-weight:800;letter-spacing:.02em;user-select:none;
}
.cw-av-ai{background:#911A22;color:#fff;box-shadow:inset 0 0 0 2px rgba(255,255,255,.35)}
.cw-av-head{width:34px;height:34px;background:rgba(255,255,255,.16);color:#fff;box-shadow:none;
  border:1.5px solid rgba(255,255,255,.55);font-size:14px}
.cw-av-agent{background:#1f2d3d;color:#fff}
.cw-headtx{min-width:0}
.cw-title{font-size:14.5px;font-weight:700;line-height:1.25}
.cw-sub{font-size:11.5px;opacity:.92;display:flex;align-items:center;gap:5px;margin-top:2px}
.cw-dot{width:7px;height:7px;border-radius:50%;background:#9aa3ab;flex:none;display:inline-block}
.cw-dot-on{background:#3ddc84;box-shadow:0 0 0 3px rgba(61,220,132,.22)}
.cw-dot-live{background:#ffd166;box-shadow:0 0 0 3px rgba(255,209,102,.22)}

/* メッセージ列 */
.cw-msgs{padding:14px 12px;gap:14px}
.cw-msg{gap:8px;align-items:flex-start}
.cw-col{min-width:0;max-width:calc(100% - 40px);display:flex;flex-direction:column;gap:4px}
.cw-who{font-size:11px;font-weight:700;color:#8a8f96;padding-left:2px;letter-spacing:.02em}
.cw-agent .cw-who{color:#a8874d}
.cw-bubble{max-width:100%;padding:10px 13px;border-radius:16px;font-size:15px;line-height:1.5;word-break:break-word}
.cw-me .cw-bubble{max-width:78%;border-top-right-radius:5px}
.cw-bot .cw-bubble{background:#fff;border:1px solid #e8e8e8;border-top-left-radius:5px;box-shadow:0 1px 2px rgba(0,0,0,.03)}
.cw-agent .cw-bubble{background:#fdf7ec;border:1px solid #e8d4a8;border-top-left-radius:5px}
.cw-sys .cw-bubble{background:#eef0f2;color:#6b7076;font-size:12px;border-radius:999px;padding:6px 12px;max-width:92%;text-align:center}
.cw-typing .cw-bubble{padding:12px 14px;display:flex}

/* フィードバック（👍👎） */
.cw-fb{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:2px 0 0 2px}
.cw-fb-q{font-size:11.5px;color:#9aa0a6}
.cw-fb-btn{border:1px solid #e2e3e6;background:#fff;border-radius:999px;padding:4px 10px;
  font-size:11.5px;color:#4a5056;cursor:pointer;line-height:1.4}
.cw-fb-btn:hover{border-color:#911A22;color:#911A22;background:#fff7f7}
.cw-fb-done{font-size:11.5px;color:#7b8288}

/* ようこそ画面（三大入口） */
.cw-welcome{background:#fff;border:1px solid #ececee;border-radius:14px;padding:16px 14px 13px;
  box-shadow:0 1px 3px rgba(0,0,0,.04)}
.cw-welcome-hd{font-size:15.5px;font-weight:800;line-height:1.5;color:#1f2429;letter-spacing:.01em}
.cw-welcome-sub{font-size:12px;color:#8a9096;line-height:1.6;margin-top:6px}
.cw-start{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.cw-start-btn{
  width:100%;text-align:left;border:1.5px solid #e6d3d4;background:#fff;color:#911A22;
  border-radius:11px;padding:11px 13px;font-size:14px;font-weight:700;cursor:pointer;
  display:flex;align-items:center;justify-content:space-between;transition:background .15s,border-color .15s;
}
.cw-start-btn::after{content:'→';font-weight:400;color:#c9959a}
.cw-start-btn:hover{background:#fdf4f4;border-color:#911A22}
.cw-welcome-foot{font-size:11.5px;color:#9aa0a6;margin-top:11px;line-height:1.55}

/* 続き質問チップ */
.cw-chips{padding:8px 12px;gap:6px}
.cw-chip{font-size:12.5px;padding:6px 12px;border-radius:999px}
.cw-chip-handoff{border-color:#911A22;color:#911A22}

/* 下部：担当者ボタン */
.cw-actions{padding:8px 12px;gap:8px}
.cw-handoff{padding:7px 14px;border-radius:999px;font-size:12.5px;font-weight:700;
  border:1px solid #911A22;color:#911A22;background:#fff}
.cw-note{font-size:11px;color:#8a9096}

/* 入力欄 */
.cw-inputrow{padding:9px 10px}
.cw-inputrow input{font-size:15px;padding:10px 12px;border-radius:11px}
.cw-send{width:42px;height:42px;border-radius:11px;display:flex;align-items:center;justify-content:center}

/* モバイル：全画面（余白 8px） */
@media (max-width:520px){
  .cw-panel{
    right:8px;left:8px;bottom:8px;top:8px;
    width:auto;height:auto;max-height:none;
    border-radius:14px;
  }
  .cw-msgs{padding:12px 12px}
  .cw-btn{width:56px;height:56px;right:14px;bottom:64px}
}

/* v16b：担当者アバターの写真表示（chat-widget.js の AGENT_AVATAR） */
.cw-av-img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}

/* v16b：担当者アバターの写真表示（chat-widget.js の AGENT_AVATAR） */
.cw-av-img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}

/* ===== v17：Contact 左欄（連絡先 ＋ 資料パック）の排版統一 2026-10-22 ===== */
/* ① 3行の情報表：ラベル幅・行高・字サイズを揃え、値の左端を完全に一致させる */
.ct-side .ct-info{margin:0 0 26px}
.ct-side .ct-info-row{
  grid-template-columns:76px minmax(0,1fr);
  column-gap:16px;
  align-items:center;
  padding:12px 0;
}
.ct-side .ct-info-row--line{grid-template-columns:76px minmax(0,1fr) auto}
.ct-side .ct-info-k{font-size:9.5px;line-height:1.4;letter-spacing:.15em;padding-top:0}
.ct-side .ct-info-v{font-size:15px;line-height:1.45;font-weight:600}
.ct-side .ct-info-sub{margin-top:3px;font-size:12px;line-height:1.45;color:var(--ink-soft)}
.ct-line-id-txt{font-size:15px;letter-spacing:.02em}
/* メールは常時下線を外し、hover でだけ示す（LINE / HOURS と階層を揃える） */
.ct-side .ct-info-v a{border-bottom:1px solid transparent}
.ct-side .ct-info-v a:hover{border-bottom-color:var(--steel)}
/* ② 「友だち追加」：行内に収まるコンパクトなピルへ（文字の邪魔をしない大きさ） */
.ct-info-row--line .ct-line-btn-sm{
  height:30px;padding:0 13px 0 10px;font-size:11.5px;font-weight:700;letter-spacing:.02em;
  gap:6px;align-self:center;box-shadow:0 1px 2px rgba(6,199,85,.26);
}
.ct-info-row--line .ct-line-btn-sm .ct-line-ico{width:15px;height:15px}
/* ③ 資料パック：3件を等幅・等間隔に（狭い時は縦1列で完全に揃える） */
.ct-side .dl{margin-top:24px}
.ct-side .dl-lead{font-size:12.5px;line-height:1.65;margin-bottom:12px}
.dl-inline .dl-list{display:grid;grid-template-columns:1fr;gap:8px}
.dl-inline .dl-list li{display:flex;min-width:0}
.dl-inline .dl-list a{
  flex:1;min-width:0;
  flex-direction:row;align-items:center;justify-content:space-between;
  gap:12px;padding:13px 16px;font-size:13.5px;line-height:1.4;
  border-radius:8px;background:#fff;border:1px solid #dde5ea;
}
.dl-inline .dl-list span{flex:0 0 auto;font-size:11px;letter-spacing:.05em;color:#98a1aa;white-space:nowrap}
.dl-inline .dl-list a:hover{border-color:var(--teal-btn);box-shadow:0 2px 10px rgba(0,0,0,.05)}
/* 左欄は常に 400-450px 幅（右カードとの 2 カラム時）→ 3 列にすると必ず潰れる。
   よって資料 3 件は全幅で縦に積み、行高・左右パディング・PDF 表記の右端を完全に揃える。 */
.dl-inline .dl-list a{min-height:46px}
.dl-inline .dl-list a:hover{transform:translateY(-1px)}
@media (prefers-reduced-motion:no-preference){
  .dl-inline .dl-list a{transition:border-color .18s,box-shadow .18s,transform .18s}
}

/* v18：再訪時の未読バッジ（chat-widget.js の setBadge） */
.cw-badge{
  position:absolute;top:1px;right:1px;width:11px;height:11px;border-radius:50%;
  background:#e11d48;box-shadow:0 0 0 2px #fff;pointer-events:none;
}

/* ===== v19：WhatsApp 導線（2026-10-22） ===== */
.ct-wa-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  height:30px;padding:0 13px 0 10px;border-radius:999px;
  background:#128c7e;color:#fff;font-size:11.5px;font-weight:700;letter-spacing:.02em;
  text-decoration:none;box-shadow:0 1px 2px rgba(18,140,126,.30);
  align-self:center;justify-self:end;
  transition:background .18s,transform .18s;
}
.ct-wa-btn:hover{background:#075e54;transform:translateY(-1px)}
.ct-wa-btn .ct-line-ico{width:15px;height:15px}
@media (max-width:600px){
  .ct-info-row--wa .ct-wa-btn{grid-column:2;justify-self:start;margin-top:8px}
}
/* フォーム送信完了後の WhatsApp 導線 */
.wa-after{margin:6px 0 0}.wa-after a{
  display:inline-flex;align-items:center;gap:9px;
  padding:10px 18px 10px 13px;border-radius:999px;
  background:#128c7e;color:#fff;font-size:13.5px;font-weight:700;
  text-decoration:none;box-shadow:0 2px 8px rgba(18,140,126,.28);
  transition:background .18s,transform .18s;
}
.wa-after a:hover{background:#075e54;transform:translateY(-1px)}
.wa-after .ct-line-ico{width:20px;height:20px}
.wa-after .wa-note{display:block;margin-top:8px;font-size:12px;color:var(--ink-soft);line-height:1.6}

/* v19b：番号は空白なし表示＋クリックで全選択（そのままコピーできる） */
[data-wa-id]{user-select:all;-webkit-user-select:all;cursor:text;letter-spacing:0}

/* ===== v20：LINE / WhatsApp ボタンの幅を統一 ＋ inquiry 第4步の WhatsApp 導線（2026-10-22） ===== */
/* ① 「友だち追加」と「チャット開始」を完全に同じ幅に。
      言語を切り替えると文字数が変わる（Add as friend / 添加好友 / 友だち追加）ため、
      内容幅ではなく min-width で固定し、中身は中央揃えにする。 */
.ct-side .ct-info-row--line .ct-line-btn-sm,
.ct-side .ct-info-row--wa .ct-wa-btn{
  min-width:126px;justify-content:center;white-space:nowrap;
}
/* ② .prose a の text-decoration:underline を打ち消す。
      .ct-wa-btn は <a> 単体なので詳細度で .prose a（0,1,1）に負けていた → 下線が出ていた。 */
.ct-side a.ct-wa-btn,
.ct-side a.ct-wa-btn:hover,
.ct-side a.ct-wa-btn:focus{text-decoration:none;border-bottom:0}
/* ③ inquiry 第4步：LINE / WhatsApp を 1 段目に並べ、「メールで送る」は全幅で 2 段目 */
.iq-btn-wa{background:#128c7e;color:#fff}
.iq-btn-wa:hover{background:#075e54;transform:translateY(-1px)}
.iq-hand-btns .iq-btn-form{grid-column:1 / -1}

/* ===== v22：ナビの「ページ切替時のガタつき」を根絶（2026-10-22） =====
   原因は 2 つ、どちらも「レイアウト幅がページごとに変わる」こと：
     ① 現在ページの強調を font-weight:700 で行っていた → ラベルの送り幅が +1.8〜5.1px 変わる
        （実測: Privacy policy +5.08 / Contact +3.02 / About us +3.00 / OEM-ODM +2.50 / HUITE +1.84）
        ナビは内容幅で中央寄せ（left:50% + translateX(-50%)）なので、合計幅が変わるたびに
        全項目が横へ 1〜2.5px ずれる。ページを行き来すると往復でガタついて見える。
     ② 強調の付け方を「太らせる」から「輪郭を太らせる」へ変更。text-stroke は
        レイアウトに一切影響しないため、ラベルの送り幅は 400 のまま完全に一定になる。 */
nav.gnav a.current,
nav.gnav li.has-sub.current > a,
nav.gnav .sub-menu a.current{
  font-weight:400;
  -webkit-text-stroke:.5px currentColor;
  paint-order:stroke fill;
}
/* 念のため：ナビは常に同じ幅で中央に固定（内容幅が変わっても箱の中心が動かない） */
nav.gnav{will-change:auto}

/* ===== v23：LINE / WhatsApp ボタンのアイコン位置を完全に揃える（2026-10-22） =====
   等幅（min-width:126px）＋内容中央寄せのままだと、アイコンの位置が
   「文字列の長さ」で動いてしまう（修正前のアイコン左端オフセット実測：
     日本語 LINE 21.7 / WA 15.8 → 6px ずれ
     English LINE 12.8 / WA 22.9 → 10px ずれ
     中文    両方 27.5 → たまたま一致）
   そこで内容を左詰めにする。両ボタンとも padding-left は 10px なので、
   アイコンは常に同じ X に来て、文字もそのすぐ右から始まる（＝語順も揃う）。
   余った幅は右側に回るが、等幅ピルとしては自然な見え方になる。 */
.ct-side .ct-info-row--line .ct-line-btn-sm,
.ct-side .ct-info-row--wa .ct-wa-btn{
  justify-content:flex-start;
}


/* ============================================================
   v25（2026-10-23）about-us Hero：品牌墙档案影片 + 左下文字重设计
   ・影片は浅色（象牙紙／暖フィルム）に差し替え → 旧 .ab-hero-mask（濃紺の
     多重グラデ）は前提が崩れるため廃止し、左下だけを暖白で持ち上げる
     `.ab-hero-scrim` に置き換える（黒调は使わない）。
   ・浅い映像の上では白文字が読めない → 本文はインク色、ヘッダーも
     body.hero-light でアイコン/ロゴ/ナビを濃色へ切り替える（.nav-solid
     になった後は既定の白ヘッダーにそのまま戻る）。
   ★ 手机（≤782px）は .ab-hero-body{display:none} なので影響なし。
   ============================================================ */
.ab-hero{background:#f4f0e7}
.ab-hero-mask{display:none}
/* 左下角だけ暖白で持ち上げる（単一の放射グラデ＝重ね掛けより予測しやすい）。
   ★ v26：濃すぎた（.99/.96）ので一段薄く、範囲は広く取る。
     「紙が敷いてある」ではなく「光が当たっている」程度の存在感に落とし、
     可読性は書体側（墨色＋極薄のハロー）で担保する。 */
.ab-hero-scrim{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:radial-gradient(68% 64% at 0% 100%,
    rgba(250,247,241,.84) 0%,rgba(250,247,241,.72) 38%,
    rgba(250,247,241,.36) 72%,rgba(250,247,241,0) 100%)}

body.hero-light .ab-hero-body{color:#232220}
body.hero-light .ab-eyebrow{display:flex;align-items:center;gap:10px;margin:0 0 18px;
  font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#6e665c;font-weight:700;line-height:1;
  text-shadow:0 0 7px rgba(255,252,247,.9),0 0 2px rgba(255,252,247,.9)}
body.hero-light .ab-eyebrow .dot{width:7px;height:7px;background:#b01e28;flex:0 0 auto;display:block}
body.hero-light .ab-eyebrow .sep{color:#c2b8a8;font-weight:400;letter-spacing:0}
body.hero-light .ab-title{font-size:clamp(26px,3.5vw,42px);line-height:1.38;letter-spacing:.005em;
  font-weight:700;color:#232220;text-shadow:0 0 12px rgba(255,252,247,.75);margin:0 0 15px}
body.hero-light .ab-lead{color:#4c463e;font-size:clamp(13px,1.1vw,14.5px);line-height:1.95;
  max-width:560px;margin:0;text-shadow:0 0 7px rgba(255,252,247,.92)}

/* ヘッダー：映像に完全に溶け込ませる（＝白帯を置かない。画像がページ最上端まで届く）。
   可読性は「映像側に焼いた上部の紙霧」＋「墨色＋ごく薄いハロー」で確保する。
   スクロールで .nav-solid が付いたら従来どおり白地・濃字に戻る。 */
body.hero-overlay.hero-light:not(.nav-open) header:not(.nav-solid){background:none;border-bottom-color:transparent}
body.hero-overlay.hero-light:not(.nav-open) header:not(.nav-solid) .logo img{filter:none;
  filter:drop-shadow(0 0 4px rgba(255,252,246,.85)) drop-shadow(0 0 10px rgba(255,252,246,.55))}
body.hero-overlay.hero-light:not(.nav-open) header:not(.nav-solid) nav.gnav a{color:#1f1c18;
  text-shadow:0 0 3px rgba(255,252,246,.98),0 0 10px rgba(255,252,246,.95),0 0 20px rgba(255,252,246,.75)}
body.hero-overlay.hero-light:not(.nav-open) header:not(.nav-solid) nav.gnav a:hover{background:rgba(0,0,0,.05)}
body.hero-overlay.hero-light:not(.nav-open) header:not(.nav-solid) .hdr-tools{color:#2f2b26}
body.hero-overlay.hero-light:not(.nav-open) header:not(.nav-solid) nav.gnav .acc-btn svg path{stroke:#b0a89c}
body.hero-overlay.hero-light:not(.nav-open) header:not(.nav-solid) .nav-toggle span{background:#3a352f}
body.hero-overlay.hero-light:not(.nav-solid) header .hdr-tools{color:#3a352f}
body.hero-overlay.hero-light:not(.nav-solid) header .lang-btn:hover{background:rgba(0,0,0,.06)}

@media (max-width:782px){
  .ab-hero-scrim{display:none}
}

/* ── v27 年号バッジ（映像の外へ出す）───────────────────────────
   これまでは映像の右下に焼き込んでいたが：
     ① PC では右下のチャット紅丸（right:14px / bottom:64px / 56px）に隠れる
     ② 手机では映像が 1/4 に縮み、焼き込み 17px が実質 4px で読めない
   → HTML オーバーレイに変更。位置は「底部中央」：
     object-fit:cover でも画面中央は絶対に切られず（左右は最大 ~150px 裁切）、
     左下のコピー（padding-bottom ≥48px）とも右の紅丸とも重ならない。
   色は v26 の紙／墨に合わせる（黒调は使わない）。 */
.ab-year{
  position:absolute;z-index:2;left:50%;bottom:clamp(14px,2vw,26px);
  transform:translateX(-50%);
  padding:5px 10px 5px 14px;border-radius:3px;
  font-size:clamp(11px,.85vw,13px);line-height:1.5;font-weight:600;
  letter-spacing:.3em;font-variant-numeric:tabular-nums;
  color:#6b6255;background:rgba(251,247,239,.82);
  border:1px solid rgba(186,175,158,.45);
  box-shadow:0 8px 18px -14px rgba(60,50,40,.55);
  pointer-events:none;user-select:none;white-space:nowrap;
  transition:opacity .28s ease;
}
.ab-year::before,.ab-year::after{
  content:"";position:absolute;top:50%;width:22px;height:1px;
  background:rgba(150,140,126,.5);
}
.ab-year::before{right:calc(100% + 7px)}
.ab-year::after{left:calc(100% + 7px)}
.ab-year.is-off{opacity:0}
@media (max-width:782px){
  .ab-year{bottom:9px;padding:3px 8px 3px 11px;letter-spacing:.26em;
    background:rgba(251,247,239,.8);font-size:11px}
  .ab-year::before,.ab-year::after{width:13px}
}

/* ===========================================================
   About us — History / Brand Strength の「数字バッジ」カード
   （2026-10-25 追加）月桂冠＋数字を薄い紙色カードで受け止める。
   配色は既存トークン（--gold #c8a86b / --beige #f8f5f0 / --line #e0ddd7）。
   =========================================================== */
.kn-sprite{position:absolute;width:0;height:0;overflow:hidden}
.kn-row{
  display:grid;grid-template-columns:repeat(4,1fr);gap:14px;
  margin:6px 0 26px;
}
.kn-card{
  position:relative;display:flex;align-items:center;justify-content:center;
  min-height:198px;padding:22px 12px 20px;border-radius:16px;
  background:
    radial-gradient(120% 86% at 50% 0%,rgba(255,255,255,.92) 0%,rgba(255,255,255,0) 62%),
    linear-gradient(180deg,#fffdf9 0%,#f8f3ea 100%);
  border:1px solid rgba(200,168,107,.30);
  box-shadow:0 10px 26px rgba(80,62,36,.07),0 1px 3px rgba(80,62,36,.05);
  transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease;
  overflow:hidden;
}
.kn-card:hover{
  transform:translateY(-3px);
  border-color:rgba(200,168,107,.46);
  box-shadow:0 16px 34px rgba(80,62,36,.11),0 2px 6px rgba(80,62,36,.06);
}
.kn-lw{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  color:var(--gold);pointer-events:none;
  filter:drop-shadow(0 1px 1px rgba(150,115,60,.16));
}
.kn-lw svg{display:block;height:calc(100% - 16px);width:auto;max-width:92%;aspect-ratio:200/176}
.kn-tx{
  position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;
  text-align:center;gap:3px;padding:0 4px;max-width:100%;
}
.kn-k{
  font-size:10px;font-weight:600;letter-spacing:.14em;line-height:1.4;
  color:#9c8d76;max-width:190px;text-wrap:balance;
}
.kn-l{
  font-size:14px;font-weight:700;line-height:1.35;color:#3a332b;letter-spacing:.01em;
  max-width:196px;text-wrap:balance;
}
.kn-f{
  font-size:clamp(20px,2.25vw,26px);font-weight:800;line-height:1.2;color:#241f1a;
  letter-spacing:-.01em;margin-top:3px;max-width:100%;text-wrap:balance;
}
/* 英語は語が長いので一段小さく・字間も詰める（html[lang] は lang.js が切替時に更新） */
html[lang="en"] .kn-k{font-size:9.5px;letter-spacing:.055em;max-width:152px}
html[lang="en"] .kn-l{font-size:12.5px;line-height:1.3;letter-spacing:0;max-width:156px}
html[lang="en"] .kn-f{font-size:clamp(16px,1.62vw,19px);letter-spacing:-.005em;max-width:196px}
html[lang="zh"] .kn-k{letter-spacing:.10em}
@media (max-width:940px){
  .kn-row{grid-template-columns:repeat(2,1fr);gap:12px}
  .kn-card{min-height:226px}
}
@media (max-width:430px){
  .kn-row{grid-template-columns:1fr;gap:11px;margin-bottom:22px}
  .kn-card{min-height:216px;padding:18px 10px 16px}
  .kn-l{font-size:13.5px}
  .kn-f{font-size:22px}
  html[lang="en"] .kn-k{max-width:190px}
  html[lang="en"] .kn-l{max-width:210px}
  html[lang="en"] .kn-f{font-size:18px}
}
@media (prefers-reduced-motion:reduce){
  .kn-card,.kn-card:hover{transition:none;transform:none}
}

/* 沿革表下の守秘注記（2026-10-25 ブランド非開示対応） */
.kn-note{
  margin:9px 0 24px;font-size:12.5px;line-height:1.6;color:#9a8d7a;
}
@media (max-width:430px){
  .kn-note{margin:-12px 0 22px}
}

/* 問い合わせ 3 問フロー：PC で回答をコピーしたときのヒント（2026-10-26） */
.iq-hint{
  margin:10px 0 0;font-size:12.5px;line-height:1.7;color:#6b7a72;
  background:#f2f7f4;border:1px solid #dfe9e3;border-radius:8px;padding:8px 12px;
}

/* ===========================================================
   首页 Brands 分组双色墙 v2（2026-10-31）
   ・ロゴ画像は使わない（商標・VI リスク回避）。社名のテキストのみ。
   ・.rel-card の 5 色は「色＝遷移先ページ」の意味を持つため流用しない
     （navy=N321 / steel=ホワイトラベル / beige=OEM・ODM / sand=開発品 / mist=現物）。
     本ブロック専用のパネル色を以下の 2 値だけ新規定義する。
   ・7 件を 3 列に割ると必ず 1 件余る → 3 列グリッドのまま 7 件目だけ
     grid-column:2 に固定して完全中央に置く（:has() 非依存・flex-wrap の行高不揃いも回避）。
     スマホの 2 列は 4 列グリッド＋span 2 で同じ手を使う
     （2 列グリッドでは半幅のカードを中央に置けないため）。
   =========================================================== */
.bw-lead{margin:0 0 22px;font-size:14px;line-height:1.95;color:#5c5c5c}

/* --- 組パネル --- */
.bw-group{--bw-panel:#faf4ea;--bw-edge:rgba(120,96,64,.10);--bw-shadow:rgba(60,48,32,.10);
  background:var(--bw-panel);border:1px solid var(--bw-edge);border-radius:16px;padding:18px 18px 20px}
.bw-group--eu{--bw-panel:#f1f4f5;--bw-edge:rgba(70,86,92,.10);--bw-shadow:rgba(38,52,58,.10)}
.bw-group + .bw-group{margin-top:26px}

/* --- 組見出し（.sec-band の 21.3px 大見出しと明確に区別する小ラベル） --- */
.bw-group-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:0 0 14px}
.bw-group-title{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;letter-spacing:.16em;line-height:1.4;color:#6e6252}
.bw-group-title::before{content:"";width:16px;height:1px;background:currentColor;opacity:.55}
.bw-group-desc{margin:0;font-size:11.5px;line-height:1.6;color:#6e6252;opacity:.9}

/* --- 壁 --- */
.bw-wall{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;list-style:none;margin:0;padding:0}
.bw-tile{position:relative;isolation:isolate;display:flex;align-items:center;justify-content:center;min-height:86px;padding:18px 14px;overflow:hidden;background:#fff;border:1px solid rgba(0,0,0,.07);border-radius:12px;transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}
.bw-tile:hover{transform:translateY(-3px);border-color:rgba(0,0,0,.14);box-shadow:0 8px 20px var(--bw-shadow)}
.bw-group--jp .bw-tile:nth-child(7){grid-column:2}   /* 7 件目を完全中央に */

.bw-name{position:relative;z-index:2;font-family:'Lato','Noto Sans JP',sans-serif;font-size:14px;font-weight:700;letter-spacing:.06em;line-height:1.4;color:#3a332b;text-align:center;text-wrap:balance}

/* --- 頭文字ウォーターマーク（装飾 / aria-hidden / レイアウト非関与） --- */
.bw-wm{position:absolute;right:10px;bottom:2px;z-index:1;font-family:'Lato','Noto Sans JP',sans-serif;font-size:52px;font-weight:700;line-height:.82;letter-spacing:-.02em;color:#2f2a24;opacity:.055;pointer-events:none;user-select:none;white-space:nowrap}
.bw-wm--3{font-size:40px}

.bw-note{margin:14px 0 0;font-size:12px;line-height:1.7;color:#7e7261}  /* 旧 #9a8d7a は対比 3.25:1 で不足、4.7:1 へ */
@media (max-width:760px){
  .bw-group{padding:14px 12px 16px;border-radius:14px}
  .bw-group + .bw-group{margin-top:18px}
  .bw-group-head{gap:4px 10px;margin-bottom:11px}
  .bw-group-title{font-size:11px;letter-spacing:.14em}
  .bw-group-title::before{width:12px}
  .bw-group-desc{flex-basis:100%;font-size:10.5px;line-height:1.55}
  .bw-wall{grid-template-columns:repeat(4,1fr);gap:9px}
  .bw-tile{grid-column:span 2;min-height:74px;padding:14px 10px}
  .bw-group--jp .bw-tile:nth-child(7){grid-column:2 / span 2}   /* 2–3 列＝中央 */
  .bw-name{font-size:12.5px;letter-spacing:.03em}
  .bw-wm{display:none}   /* 小画面は面積が足りず、水印が社名に重なるため非表示 */
}
@media (prefers-reduced-motion:reduce){.bw-tile{transition:none}.bw-tile:hover{transform:none}}

/* ===========================================================
   カテゴリメニュー（2026-11-01）— ナビの「現物」「開発品」
   ・クリックで開き、カテゴリを選んでから遷移する（直接 /stock・/lineup へ飛ばさない）
   ・.desktop はクリック＋ホバー、モバイルはアコーディオン（既存 .has-sub の挙動を継承）
   =========================================================== */
nav.gnav li.nav-cat > a{cursor:pointer}
nav.gnav .sub-menu--cat{display:block;padding:2px 0 0}   /* nav.gnav ul の flex を打ち消す（これが無いと横一列に並ぶ） */
nav.gnav .sub-menu--cat .sm-t{
  font-size:11px;letter-spacing:.15em;color:#7a6c58;
  padding:12px 20px 5px;border-top:0;line-height:1.4;cursor:default;
}
nav.gnav .sub-menu--cat a{padding:10px 20px;border-top:0;font-size:13px;line-height:1.5}
nav.gnav .sub-menu--cat li + li a{border-top:1px solid #f7f4ef}
nav.gnav .sub-menu--cat .sm-all a{
  margin-top:2px;border-top:1px solid #ece7df;font-weight:700;color:#8a6a3b;
}
nav.gnav .sub-menu--cat .sm-all a:hover{background:#faf7f2}
@media (min-width:961px){
  nav.gnav .sub-menu--cat{width:252px}
  /* 右寄せ基準にする：中央寄せだと 1440px で右端が画面外へ出て横スクロールが出る */
  nav.gnav li.nav-cat .sub-menu--cat{left:auto;right:0;transform:translateY(6px)}
  nav.gnav li.nav-cat.open .sub-menu--cat,
  nav.gnav li.nav-cat:hover .sub-menu--cat{transform:translateY(0)}
}
@media (max-width:960px){
  /* ● 2026-11-01：PC 用の display:block（ul の flex 打ち消し）が携帯でも効いてしまい、
     閉じたメニューが高さだけ取って隙間になる。携帯では開いた時だけ block に戻す。 */
  nav.gnav .sub-menu--cat{width:100%;left:auto;right:auto;transform:none;display:none}
  nav.gnav li.has-sub.open > .sub-menu--cat{display:block}
  nav.gnav .sub-menu--cat .sm-t{padding:10px 8px 4px}
  nav.gnav .sub-menu--cat a{padding:11px 8px 11px 18px}
  nav.gnav .sub-menu--cat .sm-all a{padding-left:8px}
}

/* ===========================================================
   2026-11-01 マトリクス落地（L2 引用注記 / L3 報道・認証）
   -----------------------------------------------------------
   ・.cite … 本文中の出典上表記。12px グレー＋点線下線で、
     行内に収まる（行高・余白を変えない＝既存レイアウト無風）。
   ・.sr-only … 見出しに語を足すが画面には出さない（a11y 用途）。
   ・.pr-* … /press 専用。.wrap(1110px) 前提、カード・ロゴ無し。
   =========================================================== */
.cite{
  font-size:12px;color:#8a8a8a;text-decoration:none;
  border-bottom:1px dotted #cfcac2;margin-left:4px;white-space:nowrap;
  line-height:1.4;vertical-align:baseline;
}
.cite:hover{color:var(--terra);border-bottom-color:var(--terra)}
.cite:focus-visible{outline:2px solid var(--terra);outline-offset:2px}
.sr-only{
  position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;
}

.pr-hero{background:var(--band);padding:42px 0 34px;border-bottom:1px solid var(--line)}
.pr-eyebrow{
  font-family:'Lato',sans-serif;font-size:11.5px;letter-spacing:.18em;
  text-transform:uppercase;color:#8a8a8a;margin:0 0 9px;
}
.pr-hero h1{font-size:clamp(23px,3.1vw,31px);font-weight:700;line-height:1.4;margin:0 0 13px;letter-spacing:.02em}
.pr-lead{font-size:14.5px;line-height:1.95;color:var(--ink-soft);margin:0;max-width:780px}
.pr-body{padding:42px 0 60px}
.pr-body h2{font-size:20px;font-weight:700;margin:0 0 7px;letter-spacing:.02em}
.pr-sub{font-size:13px;line-height:1.8;color:#8a8a8a;margin:0 0 26px}
.pr-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.pr-item{display:grid;grid-template-columns:118px minmax(0,1fr);gap:26px;padding:22px 0;border-bottom:1px solid var(--line)}
.pr-meta{font-family:'Lato',sans-serif;font-size:12.5px;line-height:1.75;color:#8a8a8a}
.pr-meta time{display:block;letter-spacing:.03em}
.pr-meta .pr-org{display:block;font-family:inherit;color:var(--ink-soft);word-break:break-word}
.pr-title{margin:0 0 7px;font-size:15px;font-weight:700;line-height:1.75;color:var(--ink)}
.pr-sum{margin:0 0 9px;font-size:13.5px;line-height:1.95;color:var(--ink-soft)}
.pr-src{margin:0;font-size:12.5px;line-height:1.7}
.pr-src a{color:var(--terra);text-decoration:none;border-bottom:1px solid rgba(176,122,88,.35);padding-bottom:1px}
.pr-src a:hover{border-bottom-color:var(--terra)}
.pr-src .pr-inner{color:#8a8a8a}
.pr-note{margin:26px 0 0;font-size:12.5px;line-height:1.9;color:#8a8a8a}
.pr-cta{margin:34px 0 0;padding-top:24px;border-top:1px solid var(--line);font-size:14px;line-height:1.9;color:var(--ink-soft)}
.pr-cta a{color:var(--terra);text-decoration:none;border-bottom:1px solid rgba(176,122,88,.35)}
.pr-cta a:hover{border-bottom-color:var(--terra)}
@media (max-width:720px){
  .pr-hero{padding:30px 0 26px}
  .pr-body{padding:30px 0 44px}
  .pr-item{grid-template-columns:1fr;gap:7px;padding:18px 0}
  .pr-meta time,.pr-meta .pr-org{display:inline}
  .pr-meta .pr-org{margin-left:10px}
}
