/* ============================================================
   Liiivv v2 — site.css  （レガシー準拠：左サイドバー「レール」＋右に本文）
   白 + モノトーン。border-radius / box-shadow なし。3ウェイトのみ。短いフェードのみ。
   ============================================================ */

:root{
  --bg:#ffffff;
  --ink:#111111;
  --muted:#6b6b6b;
  --line:#e5e5e5;
  --line-strong:#cfcfcf;
  --accent:#0c83b8;
  --accent-ink:#0a6a94;

  --font-jp:"Noto Sans JP",-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;
  --font-en:"Inter","Helvetica Neue",Arial,sans-serif;

  --fs-hero:clamp(28px,3.2vw,42px);
  --fs-h1:clamp(30px,4vw,52px);
  --fs-h2:28px;
  --fs-lead:clamp(15px,1.4vw,17px);
  --fs-body:16px;
  --fs-sm:13px;

  --s1:8px; --s2:16px; --s3:24px; --s4:32px; --s5:40px; --s6:48px; --s8:64px; --s10:96px; --s12:128px;

  --maxw:1160px;
  --pad:clamp(24px,4.2vw,56px);
  --rail-w:236px;
}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;border-radius:0;box-shadow:none}
html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--ink);font-family:var(--font-jp);font-weight:400;font-size:var(--fs-body);line-height:1.85;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block;height:auto}
::selection{background:var(--ink);color:var(--bg)}

/* ---- コンテナ ---- */
.wrap,.frame__pad{max-width:var(--maxw);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}
.wrap--narrow{max-width:720px;margin:0 auto}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--ink);color:#fff;padding:10px 16px;z-index:1000}
.skip-link:focus{left:8px;top:8px}

/* ============================================================
   シェル：左レール ＋ 右コンテンツ
   ============================================================ */
.shell{display:flex;align-items:flex-start;min-height:100vh}
.content{flex:1;min-width:0}

.rail{
  width:var(--rail-w);flex-shrink:0;box-sizing:border-box;
  padding:34px 26px;display:flex;flex-direction:column;
  position:sticky;top:0;height:100vh;border-right:1px solid var(--line);background:var(--bg)
}
.rail-logo{display:block;margin-bottom:clamp(36px,8vh,64px)}
.rail-logo img{width:100%;max-width:148px;height:auto}
@media(max-width:900px){.rail-logo{margin-bottom:0}.rail-logo img{max-width:118px}}
.rail-nav{display:flex;flex-direction:column;gap:2px;flex:1}
.rail-nav__link{position:relative;padding:10px 0 10px 16px;font-family:var(--font-en);font-size:13px;font-weight:500;color:var(--ink);transition:color .2s}
.rail-nav__link::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:0;height:1px;background:var(--accent);transition:width .2s}
.rail-nav__link:hover{color:var(--accent)}
.rail-nav__link:hover::before{width:10px}
.rail-nav__link.is-active{color:var(--accent-ink)}
.rail-nav__link.is-active::before{width:10px;background:var(--accent-ink)}
.rail-foot{margin-top:20px;display:flex;flex-direction:column;gap:14px}
.rail-meta{font-family:var(--font-en);font-size:10px;color:var(--muted);line-height:2;border-top:1px solid var(--line);padding-top:16px}
.rail-burger{display:none}
.rail-toggle{position:absolute;opacity:0;pointer-events:none}

.mobile-menu{position:fixed;inset:0;z-index:99;background:var(--bg);display:none;flex-direction:column;align-items:center;justify-content:center;gap:24px}
.mobile-menu nav{display:flex;flex-direction:column;align-items:center;gap:22px}
.mobile-menu a{font-family:var(--font-jp);font-size:17px;font-weight:500;color:var(--ink)}
.mobile-menu__close{position:absolute;top:18px;right:22px;font-size:30px;line-height:1;cursor:pointer;color:var(--ink)}
.mobile-menu__lang{margin-top:8px}
.rail-toggle:checked ~ .mobile-menu{display:flex}

@media(max-width:900px){
  .shell{flex-direction:column}
  .rail{
    position:sticky;top:0;z-index:60;width:100%;height:auto;
    flex-direction:row;align-items:center;justify-content:space-between;
    padding:14px 20px;border-right:none;border-bottom:1px solid var(--line)
  }
  .rail-logo{margin-bottom:0}
  .rail-nav,.rail-foot{display:none}
  .rail-burger{display:flex;flex-direction:column;gap:5px;cursor:pointer;padding:6px}
  .rail-burger span{width:20px;height:1.5px;background:var(--ink)}
}

/* ---- 言語切替 ---- */
.lang{display:inline-flex;border:1px solid var(--line-strong)}
.lang__opt{padding:4px 9px;font-family:var(--font-en);font-size:12px;font-weight:500;letter-spacing:.06em;color:var(--muted);border-right:1px solid var(--line)}
.lang__opt:last-child{border-right:none}
.lang__opt:hover{color:var(--ink)}
.lang__opt.is-current{background:var(--ink);color:#fff}

/* ---- ボタン / リンク ---- */
.btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-en);font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:12px 22px;border:1px solid var(--ink);transition:background .2s,color .2s}
.btn--solid{background:var(--ink);color:#fff}
.btn--solid:hover{background:#fff;color:var(--ink)}
.btn--ghost,.btn--outline{background:transparent;color:var(--ink)}
.btn--ghost:hover,.btn--outline:hover{background:var(--ink);color:#fff}
.btn--text{border-color:transparent;padding:12px 0}
.btn--text:hover{color:var(--accent)}
.link{display:inline-block;font-family:var(--font-en);font-size:13px;border-bottom:1px solid currentColor;padding-bottom:2px}
.link:hover{color:var(--accent)}
.eyebrow,.section__kicker{font-family:var(--font-en);font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}

/* ---- セクション ---- */
.section{padding:clamp(var(--s10),9vw,var(--s12)) 0;border-bottom:1px solid var(--line)}
.section:last-child{border-bottom:none}
.section__kicker{display:block;margin-bottom:var(--s3)}
.section__label{font-family:var(--font-en);font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:var(--s4);display:flex;align-items:center;gap:10px}
.section__num{color:var(--ink)}
.section__title{font-family:var(--font-jp);font-size:var(--fs-h2);font-weight:700;margin-bottom:var(--s3)}
.section__lead{font-size:var(--fs-lead);color:var(--muted);max-width:62ch;margin-bottom:var(--s6);line-height:1.9}
.section__head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s4);flex-wrap:wrap;margin-bottom:var(--s6)}
.section__head .section__title{margin-bottom:0}

/* ---- ヒーロー ---- */
.hero{padding:clamp(var(--s10),11vw,140px) 0 clamp(var(--s8),7vw,100px);border-bottom:1px solid var(--line)}
.hero__eyebrow{font-family:var(--font-en);font-size:12px;font-weight:500;letter-spacing:.22em;color:var(--muted)}
.hero__msg{font-family:var(--font-jp);font-size:var(--fs-hero);font-weight:700;line-height:1.3;letter-spacing:0;margin-top:var(--s3);max-width:20ch}
.hero__sub{font-family:var(--font-en);font-size:var(--fs-lead);color:var(--muted);margin-top:var(--s2)}
.hero__lead{margin-top:var(--s4);max-width:52ch;color:var(--muted);line-height:1.95}
.hero__actions{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s5);align-items:center}
.hero__facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4);margin-top:var(--s8);padding-top:var(--s5);border-top:1px solid var(--line)}
.hero__facts>div{padding:0}
.hero__facts dt{font-family:var(--font-en);font-size:10.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.hero__facts dd{margin-top:6px;font-size:14px}
@media(max-width:680px){.hero__facts{grid-template-columns:1fr;gap:var(--s3)}}

/* ---- Purpose / Vision / Mission ---- */
.pvm{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.pvm__item{background:var(--bg);padding:var(--s5) var(--s4)}
.pvm__label{font-family:var(--font-en);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:var(--s2)}
.pvm__title{font-size:clamp(16px,1.7vw,20px);font-weight:700;line-height:1.7}
@media(max-width:820px){.pvm{grid-template-columns:1fr}}

.pvm-block{padding:clamp(var(--s8),8vw,var(--s10)) 0;border-bottom:1px solid var(--line)}
.pvm-block__label{font-family:var(--font-en);font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:var(--s3)}
.pvm-block__title{font-family:var(--font-jp);font-size:var(--fs-h1);font-weight:700;line-height:1.4;max-width:24ch}
.pvm-block__body{margin-top:var(--s3);max-width:56ch;color:var(--muted)}

/* ---- Ikikata — 7つの詩片 ---- */
.verses{list-style:none;border-top:1px solid var(--ink)}
.verses__item{display:grid;grid-template-columns:56px 1fr;gap:var(--s3);padding:var(--s4) 0;border-bottom:1px solid var(--line)}
.verses__no{font-family:var(--font-en);font-size:13px;color:var(--muted);padding-top:3px}
.verses__title{font-size:clamp(16px,1.7vw,20px);font-weight:700;line-height:1.6}
.verses__sub{display:block;font-family:var(--font-en);font-size:12px;font-weight:500;letter-spacing:.04em;color:var(--muted);margin-top:4px}
.verses__body{margin-top:var(--s2);color:var(--muted);font-size:14px;line-height:1.95;max-width:60ch}
.verses--full .verses__body{font-size:14.5px}
@media(max-width:560px){.verses__item{grid-template-columns:1fr;gap:var(--s1)}}

/* ---- 事業カード ---- */
.cardpair{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3)}
.card{border:1px solid var(--line);padding:var(--s4);display:flex;flex-direction:column;transition:border-color .2s}
.card:hover{border-color:var(--ink)}
.card__no{font-family:var(--font-en);font-size:12px;color:var(--muted)}
.card__title{font-size:clamp(18px,2vw,22px);font-weight:700;margin-top:var(--s2)}
.card__sub{font-family:var(--font-en);font-size:12px;color:var(--muted);margin-top:4px}
.card__desc{color:var(--muted);font-size:14px;margin-top:var(--s3);line-height:1.9;flex:1}
.card__more{margin-top:var(--s4);font-family:var(--font-en);font-size:12px;border-bottom:1px solid var(--ink);padding-bottom:1px;align-self:flex-start}
@media(max-width:760px){.cardpair{grid-template-columns:1fr}}

/* ---- ステートメント / CTA ---- */
.statement{font-family:var(--font-jp);font-size:var(--fs-h2);font-weight:700;line-height:1.6;max-width:40ch}
.section--statement .statement{max-width:44ch;line-height:1.7}
.section--cta{border-bottom:none}
.cta{display:flex;align-items:center;justify-content:space-between;gap:var(--s5);flex-wrap:wrap}
.cta__title{font-family:var(--font-jp);font-size:var(--fs-h2);font-weight:700;max-width:24ch;line-height:1.6}

/* ---- ページ見出し / パンくず ---- */
.pagehead{padding:clamp(var(--s8),7vw,var(--s10)) 0 clamp(var(--s5),5vw,var(--s6));border-bottom:1px solid var(--line)}
.pagehead--center{text-align:left}   /* 左寄せ方針。中央寄せは廃止 */
.pagehead__title{font-family:var(--font-jp);font-size:var(--fs-h1);font-weight:700;line-height:1.35}
.pagehead__desc{font-size:var(--fs-lead);color:var(--muted);max-width:54ch;margin-top:var(--s3);line-height:1.95}
.pagehead__lead{margin-top:var(--s3);max-width:64ch}
.breadcrumb{padding-top:var(--s4)}
.breadcrumb ol{list-style:none;display:flex;flex-wrap:wrap;gap:8px;font-family:var(--font-en);font-size:12px;color:var(--muted)}
.breadcrumb li:not(:last-child)::after{content:"/";margin-left:8px;color:var(--line-strong)}
.breadcrumb a:hover{color:var(--ink)}

/* ---- 縦リスト（事業/採用） ---- */
.stacklist{border-top:1px solid var(--ink)}
.stacklist__row{display:flex;gap:var(--s3);align-items:baseline;padding:var(--s4) 0;border-bottom:1px solid var(--line);transition:color .2s}
.stacklist__row:hover{color:var(--accent-ink)}
.stacklist__idx{font-family:var(--font-en);font-size:13px;color:var(--muted)}
.stacklist__main{flex:1;display:flex;flex-direction:column;gap:5px}
.stacklist__title{font-size:clamp(16px,1.7vw,19px);font-weight:700}
.stacklist__sub{font-family:var(--font-en);font-size:12px;color:var(--muted)}
.stacklist__meta{display:flex;gap:16px;font-family:var(--font-en);font-size:12px;color:var(--muted)}
.stacklist__desc{color:var(--muted);font-size:14px}
.stacklist__more{font-family:var(--font-en);font-size:11px;color:var(--muted);white-space:nowrap}

/* ---- 会社概要テーブル ---- */
.deftable{width:100%;border-collapse:collapse}
.deftable tr{border-bottom:1px solid var(--line)}
.deftable tr:first-child{border-top:1px solid var(--ink)}
.deftable th{text-align:left;font-family:var(--font-en);font-size:12px;font-weight:500;color:var(--muted);padding:16px 20px 16px 0;width:170px;vertical-align:top}
.deftable td{padding:16px 0;font-size:14px;line-height:1.85}

/* ---- 役員 / 沿革 / 地図 ---- */
.people{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--s6) var(--s5)}
.people__card{text-align:left}
.people__photo{width:104px;height:104px;object-fit:cover;margin:0 0 var(--s3);border:1px solid var(--ink)}
.people__photo--ph{display:flex;align-items:center;justify-content:center;background:var(--ink);color:#fff;font-size:30px;font-weight:700}
.people__role{font-family:var(--font-en);font-size:11px;color:var(--muted);letter-spacing:.05em}
.people__name{font-size:16px;font-weight:700;margin:6px 0 10px}
.people__msg{font-size:13px;color:var(--muted);line-height:1.9}
.timeline{list-style:none;border-top:1px solid var(--ink)}
.timeline__row{display:flex;gap:var(--s5);padding:16px 0;border-bottom:1px solid var(--line)}
.timeline__date{font-family:var(--font-en);font-size:13px;color:var(--muted);white-space:nowrap;min-width:84px}
.map{margin-top:var(--s6)}
.map__img{width:100%;max-width:640px;border:1px solid var(--line);background:#f3f4f6}
.map__addr{margin-top:var(--s2);font-size:14px}
.map__link{display:inline-block;margin-top:6px;font-family:var(--font-en);font-size:13px;border-bottom:1px solid currentColor;padding-bottom:2px}
.map__link:hover{color:var(--accent)}

/* ---- SR / 情報開示 ---- */
.sr-hero{padding:clamp(var(--s8),7vw,var(--s10)) 0 clamp(var(--s5),5vw,var(--s6));border-bottom:1px solid var(--line)}
.sr-hero__tag{font-family:var(--font-en);font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--accent-ink)}
.sr-hero__title{font-family:var(--font-jp);font-size:var(--fs-h1);font-weight:700;line-height:1.3;margin-top:var(--s2);max-width:20ch}
.sr-hero__lead{margin-top:var(--s4);max-width:66ch}
.sr-hero__lead.prose{max-width:66ch;padding:0}
.sr-hero__lead.prose p{font-size:var(--fs-lead);color:var(--muted);line-height:1.95;margin-bottom:var(--s2)}

.sr-index{list-style:none;border-top:1px solid var(--ink)}
.sr-index__row{display:grid;grid-template-columns:52px 1fr auto;gap:var(--s3);align-items:center;
  padding:var(--s4) 0;border-bottom:1px solid var(--line);transition:background .15s,padding-left .15s}
.sr-index__row:hover{background:#fafafa;padding-left:8px}
.sr-index__no{font-family:var(--font-en);font-size:13px;color:var(--muted)}
.sr-index__title{font-size:clamp(15px,1.7vw,18px);font-weight:700}
.sr-index__meta{display:flex;align-items:center;gap:12px;font-family:var(--font-en);font-size:12px;color:var(--muted)}
.sr-index__row:hover .sr-index__meta{color:var(--accent-ink)}
@media(max-width:560px){.sr-index__row{grid-template-columns:40px 1fr auto;gap:var(--s2)}}

/* 旧 index-cards（後方互換で残置） */
.index-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.index-cards__item{border:1px solid var(--ink);margin-left:-1px;margin-top:-1px;padding:var(--s4);display:flex;flex-direction:column;gap:10px;transition:color .2s}
.index-cards__item:hover{color:var(--accent-ink)}
.index-cards__title{font-size:14.5px;font-weight:700}
.index-cards__count{font-family:var(--font-en);font-size:11px;color:var(--muted)}
.disclosure{border-top:1px solid var(--ink)}
.disclosure__item{padding:var(--s4) 0;border-bottom:1px solid var(--line)}
.disclosure__meta{display:flex;gap:16px;align-items:baseline}
.disclosure__meta time{font-family:var(--font-en);font-size:12px;color:var(--muted);white-space:nowrap}
.disclosure__title{font-weight:700}
.disclosure__atts-label{font-family:var(--font-en);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:var(--s3)}
.disclosure__atts{list-style:none;margin-top:8px}
.disclosure__atts a{border-bottom:1px solid currentColor}
.section--fine{background:#fafafa}
.fine__heading{font-family:var(--font-en);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.fine__body{font-size:12px;color:var(--muted);line-height:1.9;max-width:74ch}

/* ---- News ---- */
.filters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:var(--s4)}
.filters__btn{font-family:var(--font-en);font-size:11px;font-weight:500;letter-spacing:.03em;border:1px solid var(--line);padding:7px 14px;color:var(--muted);transition:all .2s}
.filters__btn:hover{border-color:var(--ink);color:var(--ink)}
.filters__btn.is-active{background:var(--ink);color:#fff;border-color:var(--ink)}
.news-list{list-style:none;border-top:1px solid var(--ink)}
.news-list__row{display:grid;grid-template-columns:110px 150px 1fr;gap:18px;align-items:baseline;padding:18px 0;border-bottom:1px solid var(--line)}
.news-list__date{font-family:var(--font-en);font-size:12px;color:var(--muted);white-space:nowrap}
.news-list__tag{font-family:var(--font-en);font-size:11px;letter-spacing:.04em;color:var(--muted)}
.news-list__title{font-size:14px}
a.news-list__title:hover{color:var(--accent)}
@media(max-width:640px){.news-list__row{grid-template-columns:1fr;gap:4px}}
.pagination{display:flex;align-items:center;gap:var(--s3);margin-top:var(--s6);font-family:var(--font-en);font-size:13px}
.pagination__status{color:var(--muted)}
.pagination a{border-bottom:1px solid currentColor;padding-bottom:2px}
.empty{padding:var(--s10) 0;text-align:center;color:var(--muted);font-size:13px}

/* ---- 本文（prose） ---- */
.prose{max-width:760px;margin:0;padding:clamp(var(--s8),6vw,var(--s10)) var(--pad)}
.prose--wide{max-width:920px}
.prose--article{max-width:760px}
.prose--sm{padding:var(--s3) 0;font-size:14px}
.prose h1{font-family:var(--font-jp);font-size:clamp(24px,3vw,34px);font-weight:700;line-height:1.4;margin-bottom:var(--s3)}
.prose h2{font-size:19px;font-weight:700;margin:var(--s8) 0 var(--s2);padding-bottom:10px;border-bottom:1px solid var(--ink)}
.prose h3{font-size:15px;font-weight:700;margin:var(--s5) 0 var(--s1)}
.prose h4{font-size:14px;font-weight:700;margin:var(--s4) 0 var(--s1);color:var(--muted)}
.prose p{margin-bottom:var(--s2);line-height:1.95}
.prose ul,.prose ol{padding-left:24px;margin-bottom:var(--s2)}
.prose li{margin-bottom:8px;line-height:1.9}
.prose blockquote{border-left:2px solid var(--line-strong);padding-left:var(--s3);margin:var(--s3) 0;color:var(--muted)}
.prose hr{border:none;border-top:1px solid var(--line);margin:var(--s6) 0}
.prose b,.prose strong{font-weight:700}
.prose .table-scroll{overflow-x:auto;margin-bottom:var(--s3)}
.prose table{width:100%;border-collapse:collapse;font-size:13.5px;font-variant-numeric:tabular-nums}
.prose th,.prose td{border:1px solid var(--line);padding:9px 12px;text-align:left}
.prose thead th{background:#fafafa;font-weight:700}
.prose tbody tr:nth-child(even){background:#fcfcfc}
.prose td+td,.prose th+th{text-align:right}
.prose td:first-child,.prose th:first-child{text-align:left}
.prose__meta{font-family:var(--font-en);font-size:12px;color:var(--muted);margin-bottom:var(--s3);display:flex;gap:16px;align-items:baseline}
.prose__tag{letter-spacing:.05em}
.prose__back{margin-top:var(--s6)}

/* ---- フォーム ---- */
.form{display:flex;flex-direction:column;gap:var(--s3);max-width:640px}
.form__section{border-top:1px solid var(--line);padding-top:var(--s4);margin-top:var(--s2)}
.form__section-title{font-family:var(--font-en);font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:var(--s3)}
.form__row{display:flex;gap:var(--s3)}
.form__row>*{flex:1}
.form__field{display:flex;flex-direction:column;gap:6px}
.form__label{font-size:13px;color:var(--muted)}
.form__label .req{color:var(--accent);font-size:11px;font-weight:600;margin-left:6px}
.form__label .opt{color:var(--muted);font-size:11px;margin-left:6px}
.form input,.form select,.form textarea{font-family:var(--font-jp);font-size:14px;padding:12px 14px;border:1px solid var(--ink);background:var(--bg);color:var(--ink);width:100%}
.form textarea{resize:vertical;min-height:130px}
.form__consent{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--muted)}
.form__consent a{border-bottom:1px solid currentColor}
.form__hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form__actions{margin-top:var(--s2)}
@media(max-width:600px){.form__row{flex-direction:column;gap:var(--s3)}}
.notice{border:1px solid var(--ink);padding:var(--s3);margin-bottom:var(--s4)}
.notice--ok{border-color:var(--accent)}
.notice--err{border-color:#b00020;color:#b00020}
.notice__title{font-weight:700;margin-bottom:4px}

/* ---- フッター ---- */
.site-footer{background:var(--ink);color:#fff;padding:var(--s10) 0 var(--s6)}
.site-footer__inner{display:grid;grid-template-columns:2fr 1fr 1fr;gap:var(--s6)}
.site-footer__logo{font-family:var(--font-en);font-weight:700;font-size:20px}
.site-footer__tagline{color:rgba(255,255,255,.6);font-size:13px;margin-top:8px}
.site-footer__heading{font-family:var(--font-en);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.5);margin-bottom:14px}
.site-footer__col{display:flex;flex-direction:column;gap:10px}
.site-footer__col a{color:rgba(255,255,255,.8);font-size:13px}
.site-footer__col a:hover{color:#fff}
.site-footer__copy{max-width:var(--maxw);margin:var(--s8) auto 0;padding:0 var(--pad);font-family:var(--font-en);font-size:11px;color:rgba(255,255,255,.4)}
@media(max-width:760px){.site-footer__inner{grid-template-columns:1fr}}

/* ---- 出現アニメ / アクセシビリティ ---- */
.reveal{opacity:0;transform:translateY(8px);transition:opacity .5s ease-out,transform .5s ease-out}
.reveal.is-visible{opacity:1;transform:none}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
:focus:not(:focus-visible){outline:none}
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  html{scroll-behavior:auto}
  *{transition-duration:.01ms!important;animation-duration:.01ms!important}
}
@media print{
  .site-header,.site-footer,.breadcrumb,.filters,.pagination,.hero__actions,.btn{display:none}
  .reveal{opacity:1;transform:none}
  .section{padding:16pt 0;border:none}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:9pt;color:#555}
}
