/* ============================================================
   Protagonist — Design System (shared foundation)
   全固定ページ共通の基盤：トークン / リセット・ベースタイポ /
   再利用コンポーネント / モーションユーティリティ / ヘッダ・ナビ・
   フッター / カスタムカーソル。
   正は docs/reference/protagonist-studio.html。新規スタイルも必ず
   ここで定義した CSS 変数を使い、ハードコード値を増やさない。
   ============================================================ */

:root{
  --paper:#f4f5f6;--paper-2:#eaecef;--surface:#ffffff;
  --ink:#15171a;--ink-2:#2e3034;--graphite:#636872;--muted:#6b6f78;
  --line:#e1e3e6;--line-2:#e9ebed;--hair:#d3d6da;
  --dark:#0f1013;--dark-2:#16181b;--dark-line:#2a2c30;
  --disp:"Bricolage Grotesque","Zen Kaku Gothic New",system-ui,sans-serif;
  --jp:"Zen Kaku Gothic New",sans-serif;
  --mono:"Space Mono",monospace;
  --maxw:1400px;--pad:clamp(20px,4.2vw,64px);
  --e1:cubic-bezier(.22,.61,.36,1);--e2:cubic-bezier(.65,0,.35,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{font-family:var(--jp);background:var(--paper);color:var(--ink);line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden;cursor:auto}
a{color:inherit;text-decoration:none}
img,svg{display:block;max-width:100%}
::selection{background:var(--ink);color:var(--paper)}

/* skip link（アクセシビリティ） */
.skip-link{position:absolute;left:-9999px;top:0;z-index:9500;background:var(--ink);color:var(--paper);padding:.7rem 1.1rem;font-family:var(--disp);font-weight:500;font-size:.9rem}
.skip-link:focus{left:var(--pad);top:.6rem}

/* grain + grid overlays */
.grain{position:fixed;inset:0;z-index:3;pointer-events:none;opacity:.04;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.gridlines{position:fixed;inset:0;z-index:0;pointer-events:none;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad)}
.gridlines i{position:absolute;top:0;bottom:0;width:1px;background:var(--line);opacity:.5}
.gridlines i:nth-child(1){left:25%}.gridlines i:nth-child(2){left:50%}.gridlines i:nth-child(3){left:75%}
@media(max-width:760px){.gridlines i:nth-child(1),.gridlines i:nth-child(3){display:none}}

/* cursor dot */
.cursor{position:fixed;top:0;left:0;width:9px;height:9px;border-radius:50%;background:var(--ink);z-index:9999;pointer-events:none;mix-blend-mode:difference;transform:translate(-50%,-50%);transition:width .3s var(--e1),height .3s var(--e1),opacity .3s;opacity:0}
@media(pointer:coarse){.cursor{display:none}}

/* type utilities */
.mono{font-family:var(--mono);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--graphite)}
.mono-ink{color:var(--ink)}
.eyebrow{display:inline-flex;align-items:center;gap:.7em;font-family:var(--mono);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink)}
.eyebrow::before{content:"";width:30px;height:1px;background:var(--ink)}
.idx{font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;color:var(--muted)}
.nw{white-space:nowrap}

/* buttons */
.btn{position:relative;display:inline-flex;align-items:center;gap:.85rem;font-family:var(--disp);font-weight:500;font-size:.92rem;letter-spacing:.01em;padding:1.02rem 1.7rem;border-radius:0;border:1px solid var(--ink);overflow:hidden;transition:color .5s var(--e1)}
.btn span{position:relative;z-index:1;display:inline-flex;align-items:center;gap:.85rem;transition:transform .35s var(--e1)}
.btn::before{content:"";position:absolute;inset:0;background:var(--ink);transform:translateY(101%);transition:transform .55s var(--e1);z-index:0}
.btn:hover::before{transform:translateY(0)}
.btn:hover{color:var(--paper)}
.btn .ar{width:15px;height:15px}
.btn .ar path{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.btn-solid{background:var(--ink);color:var(--paper)}
.btn-solid::before{background:var(--paper)}
.btn-solid:hover{color:var(--ink)}

.lk{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--disp);font-weight:500;font-size:.9rem;position:relative;width:fit-content}
.lk svg{width:14px;height:14px;transition:transform .45s var(--e1)}
.lk svg path{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.lk::after{content:"";position:absolute;left:0;bottom:-4px;height:1px;width:100%;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .45s var(--e1)}
.lk:hover::after{transform:scaleX(1);transform-origin:left}
.lk:hover svg{transform:translate(3px,-3px)}

/* header */
header{position:fixed;inset:0 0 auto 0;z-index:100;transition:transform .5s var(--e1)}
header.hide{transform:translateY(-100%)}
.hbar{max-width:var(--maxw);margin-inline:auto;padding:0 var(--pad);height:84px;display:flex;align-items:center;justify-content:space-between;position:relative}
.hbar::after{content:"";position:absolute;left:var(--pad);right:var(--pad);bottom:0;height:1px;background:var(--line);transform:scaleX(0);transform-origin:left;transition:transform .8s var(--e1)}
header.scrolled .hbar::after{transform:scaleX(1)}
header.scrolled{background:rgba(241,240,236,.72);backdrop-filter:saturate(150%) blur(14px)}
.brand{display:flex;align-items:baseline;gap:.5rem;font-family:var(--disp);font-weight:600;font-size:1.5rem;letter-spacing:-.025em}
.brand sup{font-family:var(--mono);font-size:.5rem;letter-spacing:.1em;color:var(--graphite);font-weight:400}
.nav{display:flex;align-items:center;gap:2.4rem}
.nav-links{display:flex;gap:2rem}
.nav-links a{font-family:var(--disp);font-weight:500;font-size:.88rem;color:var(--ink-2);position:relative;padding:.3rem 0}
.nav-links a .en{display:block}
.nav-links a::after{content:"";position:absolute;left:0;bottom:-1px;height:1px;width:100%;background:var(--ink);transform:scaleX(0);transform-origin:right;transition:transform .4s var(--e1)}
.nav-links a:hover::after{transform:scaleX(1);transform-origin:left}
.hcontact{font-family:var(--disp);font-weight:500;font-size:.86rem;display:inline-flex;align-items:center;gap:.6rem;border:1px solid var(--ink);padding:.6rem 1.1rem;transition:background .45s var(--e1),color .45s}
.hcontact:hover{background:var(--ink);color:var(--paper)}
.hcontact svg{width:13px;height:13px}.hcontact svg path{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.burger{display:none;position:relative;width:44px;height:44px;border:none;background:transparent;cursor:pointer;padding:0;margin-right:-6px}
.burger span{position:absolute;left:9px;width:26px;height:1.5px;background:var(--ink);transition:top .35s var(--e1),transform .35s var(--e1)}
.burger span:nth-child(1){top:18px}
.burger span:nth-child(2){top:25px}
@media(max-width:940px){
  .nav-links,.hcontact{display:none}
  .burger{display:block}
  .menu{position:fixed;inset:0;z-index:99;background:var(--paper);transform:translateY(-100%);transition:transform .7s var(--e1);display:flex;flex-direction:column;justify-content:center;padding:var(--pad)}
  .menu.open{transform:none}
  .menu a{font-family:var(--disp);font-weight:500;font-size:clamp(1.6rem,7vw,2.6rem);padding:.5rem 0;border-bottom:1px solid var(--line);display:flex;align-items:baseline;justify-content:space-between;letter-spacing:-.02em}
  .menu a .mono{font-size:.7rem}
  .menu .menu-cta{margin-top:clamp(30px,6vw,48px);font-family:var(--jp);font-size:1rem;font-weight:500;color:var(--paper);background:var(--ink);border-bottom:none;padding:1.1rem 1.4rem;display:flex;align-items:center;justify-content:center;gap:.7rem;letter-spacing:.03em;transition:opacity .4s var(--e1)}
  .menu .menu-cta svg{width:15px;height:15px;flex:none}
  .menu .menu-cta svg path{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
  .menu .menu-cta:hover{opacity:.86}
  .burger.open span:nth-child(1){top:21.25px;transform:rotate(45deg)}
  .burger.open span:nth-child(2){top:21.25px;transform:rotate(-45deg)}
}
.menu{display:none}
@media(max-width:940px){.menu{display:flex}}

/* layout shell */
.shell{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad);position:relative;z-index:2}

/* section scaffolding */
.sec{position:relative;padding-block:clamp(90px,13vw,180px)}
.sec-num{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;color:var(--muted)}
.sec-head{display:grid;gap:1.6rem;margin-bottom:clamp(48px,7vw,84px)}
.sec-head .top{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding-bottom:1.4rem;border-bottom:1px solid var(--line)}
.sec-head h2{font-family:var(--jp);font-weight:500;font-size:clamp(1.5rem,4.4vw,3.4rem);line-height:1.18;letter-spacing:-.015em}
.sec-head h2 .en{display:block;font-family:var(--disp);font-weight:300;font-size:.34em;letter-spacing:.04em;color:var(--graphite);margin-bottom:.7em}
.sec-head .lead{color:var(--graphite);max-width:52ch;font-size:1rem}

/* reveal */
.rv{opacity:0;transform:translateY(34px);transition:opacity 1.05s var(--e1),transform 1.05s var(--e1)}
.rv.in{opacity:1;transform:none}
.rv2{transition-delay:.1s}.rv3{transition-delay:.2s}.rv4{transition-delay:.3s}
.clip{clip-path:inset(0 0 100% 0);transition:clip-path 1.1s var(--e1)}
.clip.in{clip-path:inset(0 0 0 0)}
.reveal-clip .clip{clip-path:inset(0 0 105% 0);transition:clip-path 1.15s var(--e1)}
.reveal-clip.in .clip{clip-path:inset(0 0 0 0)}

/* ticker */
.ticker{overflow:hidden;padding-block:1.5rem;border-bottom:1px solid var(--line);-webkit-mask:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.ticker .track{display:flex;width:max-content;animation:tick 34s linear infinite}
.ticker:hover .track{animation-play-state:paused}
.ticker .it{font-family:var(--disp);font-weight:300;font-size:clamp(1.3rem,3vw,2rem);letter-spacing:-.01em;color:var(--ink-2);padding:0 1.3rem;display:inline-flex;align-items:center;white-space:nowrap}
.ticker .it::after{content:"✕";font-size:.5em;color:var(--muted);margin-left:2.6rem}
@keyframes tick{to{transform:translateX(-50%)}}

/* dark band（Philosophy 等で使う再利用バンド） */
.philo{background:var(--dark);color:var(--paper);position:relative;overflow:hidden;padding-block:clamp(110px,16vw,220px)}
.philo .grain-d{position:absolute;inset:0;opacity:.05;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.philo .shell{position:relative;z-index:2}
.philo .eyebrow{color:var(--paper)}.philo .eyebrow::before{background:var(--paper)}
.philo .pstate{font-family:var(--jp);font-weight:500;font-size:clamp(1.9rem,6vw,5.4rem);line-height:1.18;letter-spacing:-.02em;margin:clamp(28px,4vw,44px) 0;max-width:18ch}
.philo .pstate .en{font-family:var(--disp);font-weight:200;color:#8d8f96}
.philo .psub{color:#a7a9b0;max-width:46ch;font-size:1rem}

/* media grid（カードのヘアライン区切り） */
.media-grid{display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}
@media(min-width:680px){.media-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1040px){.media-grid{grid-template-columns:repeat(3,1fr)}}
.mcard{background:var(--paper);padding:clamp(26px,2.6vw,38px);display:flex;flex-direction:column;min-height:230px;transition:background .5s var(--e1)}
.mcard .mtop{display:flex;justify-content:space-between;align-items:center;margin-bottom:auto}
.mcard .cat{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--graphite)}
.mcard .mno{font-family:var(--mono);font-size:.62rem;color:var(--muted)}
.mcard h3{font-family:var(--jp);font-weight:500;font-size:1.2rem;line-height:1.4;letter-spacing:-.005em;margin:1.4rem 0 .5rem}
.mcard .co{font-family:var(--mono);font-size:.66rem;letter-spacing:.06em;color:var(--graphite);margin-bottom:1.3rem}
.mcard:hover{background:var(--surface)}
.media-foot{display:flex;gap:1.6rem 2.4rem;flex-wrap:wrap;margin-top:2.6rem}

/* 定義リスト / About（会社情報・許認可など。全ページ共通） */
.about-grid{display:grid;gap:clamp(36px,5vw,70px)}
.about-lead{font-family:var(--jp);font-weight:500;font-size:clamp(1.2rem,2.6vw,2rem);line-height:1.5;letter-spacing:-.01em}
.about-lead .en{display:block;font-family:var(--disp);font-weight:300;font-size:.5em;color:var(--graphite);margin-top:1rem}
.about dl{border-top:1px solid var(--ink);max-width:880px}
.about .row{display:grid;grid-template-columns:170px 1fr;gap:1.4rem;padding:1.3rem 0;border-bottom:1px solid var(--line)}
@media(max-width:560px){.about .row{grid-template-columns:1fr;gap:.3rem}}
.about dt{font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--graphite);padding-top:.25rem}
.about dd{font-size:.98rem;color:var(--ink-2)}
.about dd strong{font-weight:700;color:var(--ink)}
.about dd a{text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--hair);transition:text-decoration-color .3s}
.about dd a:hover{text-decoration-color:var(--ink)}
.about dd .s{display:block;font-size:.77rem;color:var(--muted);margin-top:.35rem;line-height:1.5}

/* サブページ共通：page-hero（固定ページの見出し帯） */
.page-hero{position:relative;padding-top:calc(84px + clamp(44px,8vw,104px));padding-bottom:clamp(44px,7vw,88px);border-bottom:1px solid var(--line);overflow:hidden}
.page-hero .shell{position:relative;z-index:2}
.page-hero .eyebrow{margin-bottom:clamp(20px,3vw,30px)}
.page-hero h1{font-family:var(--jp);font-weight:500;font-size:clamp(2.1rem,5.4vw,4.2rem);line-height:1.1;letter-spacing:-.02em}
.page-hero .lead{margin-top:clamp(16px,2.4vw,26px);color:var(--graphite);max-width:62ch;font-size:1.02rem;line-height:1.85}
.page-hero .lead + .lead{margin-top:1rem}

/* サブページ共通：page-cta（クロージング CTA） */
.page-cta{text-align:center}
.page-cta .eyebrow{justify-content:center;margin-inline:auto}
.page-cta h2{font-family:var(--jp);font-weight:500;font-size:clamp(1.7rem,3.6vw,2.8rem);line-height:1.2;letter-spacing:-.02em;margin:clamp(18px,2.4vw,26px) 0 0}
.page-cta .lead{color:var(--graphite);max-width:48ch;margin:1rem auto 0;font-size:1rem}
.page-cta .cta{display:flex;gap:.9rem;justify-content:center;flex-wrap:wrap;margin-top:clamp(28px,4vw,40px)}

/* page-hero 内の CTA 群 */
.page-hero .actions{display:flex;gap:.9rem;flex-wrap:wrap;margin-top:clamp(26px,3.4vw,38px)}

/* approach / 汎用カードグリッド（1px gap ヘアライン。全ページ共通） */
.appr{display:grid;gap:clamp(40px,5vw,2px);background:var(--line)}
@media(min-width:880px){.appr{grid-template-columns:repeat(3,1fr)}}
@media(min-width:760px){.appr.appr--2{grid-template-columns:repeat(2,1fr)}}
.appr-card{background:var(--paper);padding:clamp(30px,3vw,44px) clamp(26px,2.4vw,38px) clamp(40px,4vw,56px)}
.appr-card .n{font-family:var(--disp);font-weight:200;font-size:clamp(2.6rem,4vw,3.6rem);letter-spacing:-.03em;line-height:1;padding-bottom:1.6rem;margin-bottom:1.8rem;border-bottom:1px solid var(--ink);display:block}
.appr-card .role{font-family:var(--mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--graphite);margin-bottom:1rem}
.appr-card h3{font-family:var(--jp);font-weight:500;font-size:1.18rem;line-height:1.5;letter-spacing:-.005em;margin-bottom:1.1rem}
.appr-card p{color:var(--graphite);font-size:.93rem}

/* 決定実績カード（agent-service / cases アーカイブ等で共通） */
.case-grid{display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}
@media(min-width:680px){.case-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.case-grid{grid-template-columns:repeat(3,1fr)}}
.case-card{background:var(--paper);padding:clamp(26px,2.6vw,36px);display:flex;flex-direction:column;gap:.85rem;min-height:200px}
.case-card .c-meta{display:flex;flex-wrap:wrap;gap:.5rem}
.case-card .c-tag,.case-card .c-phase{font-family:var(--mono);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;padding:.32rem .6rem;border:1px solid var(--line);line-height:1}
.case-card .c-tag{color:var(--ink);border-color:var(--hair)}
.case-card .c-phase{color:var(--muted)}
.case-card .c-role{font-family:var(--jp);font-weight:700;font-size:1.05rem;line-height:1.4;letter-spacing:-.005em;margin-top:.2rem}
.case-card .c-summary{color:var(--graphite);font-size:.9rem;line-height:1.7;margin-top:auto}

/* ダークバンド内 CTA（.philo の見出し・ボタン反転。全ページ共通） */
.philo h2{font-family:var(--jp);font-weight:500;font-size:clamp(1.7rem,4vw,3rem);line-height:1.2;letter-spacing:-.02em;color:var(--paper);margin:clamp(18px,2.4vw,26px) 0 0}
.philo .cta{display:flex;gap:.9rem;flex-wrap:wrap;margin-top:clamp(28px,4vw,40px)}
.philo .btn{border-color:var(--paper);color:var(--paper)}
.philo .btn::before{background:var(--paper)}
.philo .btn:hover{color:var(--ink)}
.philo .btn-solid{background:var(--paper);color:var(--ink)}
.philo .btn-solid::before{background:var(--ink)}
.philo .btn-solid:hover{color:var(--paper)}

/* リンク化された決定実績カードのホバー（archive/single） */
a.case-card{transition:background .4s var(--e1)}
a.case-card:hover{background:var(--surface)}

/* prose（WP the_content 出力：汎用ページ・CPT 個別。全ページ共通） */
.prose{max-width:760px;color:var(--ink-2)}
.prose > :first-child{margin-top:0}
.prose h2{font-family:var(--jp);font-weight:500;font-size:clamp(1.4rem,2.6vw,2rem);letter-spacing:-.01em;color:var(--ink);line-height:1.3;margin:2.4rem 0 1rem}
.prose h3{font-family:var(--jp);font-weight:700;font-size:1.2rem;color:var(--ink);margin:2rem 0 .8rem}
.prose h4{font-family:var(--jp);font-weight:700;font-size:1.02rem;color:var(--ink-2);margin:1.6rem 0 .6rem}
.prose p{color:var(--graphite);font-size:1rem;line-height:1.9;margin-bottom:1.1rem}
.prose a{color:var(--ink);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--hair);transition:text-decoration-color .3s}
.prose a:hover{text-decoration-color:var(--ink)}
.prose strong{font-weight:700;color:var(--ink)}
.prose ul,.prose ol{padding-left:1.4rem;color:var(--graphite);font-size:1rem;line-height:1.9;margin-bottom:1.1rem}
.prose li{margin-bottom:.4rem}
.prose blockquote{border-left:2px solid var(--ink);padding-left:1.2rem;color:var(--graphite);margin:1.4rem 0}
.prose img{border:1px solid var(--line);margin:1.2rem 0}
.prose code{font-family:var(--mono);font-size:.88em;background:var(--paper-2);padding:.15em .4em}
.prose table{width:100%;border-collapse:collapse;font-size:.92rem;margin:1.2rem 0}
.prose th,.prose td{border:1px solid var(--line);padding:.7rem .9rem;text-align:left;vertical-align:top;color:var(--graphite)}
.prose th{background:var(--paper-2);color:var(--ink);font-weight:700}
.prose hr{border:none;border-top:1px solid var(--line);margin:2rem 0}

/* chips（タクソノミーのフィルタ／バッジ。全ページ共通） */
.chips-label{font-family:var(--mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:.7rem}
.chips{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none}
.chip{display:inline-flex;font-family:var(--mono);font-size:.66rem;letter-spacing:.04em;color:var(--ink-2);border:1px solid var(--line);padding:.45rem .8rem;transition:border-color .3s,color .3s,background .3s}
.chip:hover{border-color:var(--ink);color:var(--ink)}
.chip.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}

/* pager（the_posts_pagination 出力ラッパ。全ページ共通） */
.pager{margin-top:clamp(40px,6vw,72px);text-align:center}
.pager .nav-links{display:inline-flex;flex-wrap:wrap;gap:.4rem;align-items:center;justify-content:center}
.pager .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;padding:0 .6rem;font-family:var(--mono);font-size:.8rem;color:var(--ink-2);border:1px solid var(--line);transition:border-color .3s,background .3s,color .3s}
.pager .page-numbers:hover{border-color:var(--ink)}
.pager .page-numbers.current{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.pager .page-numbers.dots{border-color:transparent}

/* search form（404 / 検索結果。全ページ共通） */
.search-form{display:flex;gap:.6rem;max-width:520px;flex-wrap:wrap}
.search-form input[type=search],.search-form .search-field{flex:1;min-width:0;font-family:var(--jp);font-size:1rem;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:0;padding:.85rem 1rem}
.search-form input[type=search]:focus,.search-form .search-field:focus{outline:none;border-color:var(--ink)}
.search-form button,.search-form .search-submit{font-family:var(--disp);font-weight:500;font-size:.9rem;color:var(--paper);background:var(--ink);border:1px solid var(--ink);border-radius:0;padding:.85rem 1.4rem;cursor:pointer;transition:opacity .3s}
.search-form button:hover,.search-form .search-submit:hover{opacity:.86}

/* footer */
footer{border-top:1px solid var(--ink);padding-block:clamp(48px,6vw,72px) 30px}
.foot-top{display:grid;gap:2.4rem 1.5rem;grid-template-columns:1fr 1fr;margin-bottom:clamp(48px,7vw,80px)}
@media(min-width:820px){.foot-top{grid-template-columns:1.6fr 1fr 1fr}}
@media(max-width:819px){.foot-brand{grid-column:1 / -1}}
.foot-brand .bw{font-family:var(--disp);font-weight:600;font-size:clamp(2.4rem,6vw,3.6rem);letter-spacing:-.03em;line-height:1;margin-bottom:1.4rem}
.foot-brand address{font-style:normal;font-family:var(--mono);font-size:.72rem;line-height:2;color:var(--graphite)}
.foot-col h4{font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:1.2rem}
.foot-col a{display:block;font-family:var(--disp);font-weight:500;font-size:.92rem;color:var(--ink-2);padding:.34rem 0;transition:color .3s,padding-left .35s var(--e1)}
.foot-col a:hover{color:var(--ink);padding-left:.4rem}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;padding-top:1.8rem;border-top:1px solid var(--line);font-family:var(--mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}

:focus-visible{outline:2px solid var(--ink);outline-offset:3px}

/* reduced-motion（共通・必須） */
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .rv,.clip,.reveal-clip .clip{opacity:1!important;transform:none!important;clip-path:none!important}
}
