@charset "utf-8";
/* ============================================================
   合同会社食革命倶楽部 — common design system
   tokens: design.json / rules: site-design-rules §0
   ============================================================ */
:root{
  --ink:#1D1D1F;
  --ink-soft:rgba(29,29,31,.66);
  --base:#fff;
  --tint:#F3F2EF;
  --dark:#0D1826;
  --brand:#15398E;
  --brand-deep:#0E2660;
  --line:rgba(29,29,31,.22);
  --line-soft:rgba(29,29,31,.12);
  --line-dark:rgba(255,255,255,.26);
  --font-jp:"Noto Sans JP","Hiragino Sans","Yu Gothic",sans-serif;
  --font-en:"Inter","Noto Sans JP",sans-serif;
  --max:1200px;
  --gut:clamp(20px,5vw,48px);
  --sec:clamp(4.2rem,6.4vw,6.5rem);
  --hd-gap:clamp(1.6rem,2.4vw,2.6rem);
  --hdr:78px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;overflow-x:hidden;background:var(--base);color:var(--ink);
  font-family:var(--font-jp);font-size:16.5px;line-height:1.95;font-weight:400;
  font-feature-settings:"palt" 1;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4,p,ul,ol,dl,dd,figure{margin:0;padding:0}
ul,ol{list-style:none}
/* 質感（背景一色ののっぺり回避） */
body::after{
  content:"";position:fixed;inset:0;z-index:9990;pointer-events:none;opacity:.16;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}
.wrap{width:min(100% - var(--gut)*2,var(--max));margin-inline:auto}
.sec{padding-block:var(--sec)}
.sec--tint{background:var(--tint)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- 見出しフォーマット（全セクション共通） ---------- */
.hd-en{display:block;font-family:var(--font-en);font-weight:800;font-size:clamp(44px,6.4vw,104px);line-height:.86;letter-spacing:-.055em;color:var(--ink)}
.hd-jp{display:block;margin-top:clamp(10px,1.3vw,18px);font-size:clamp(17px,1.6vw,21px);font-weight:700;letter-spacing:.04em}
.hd-lead{margin-top:clamp(14px,1.7vw,22px);max-width:38em;font-size:16.5px;line-height:1.95;color:var(--ink-soft)}
.hd{margin-bottom:var(--hd-gap)}
.on-dark .hd-en,.on-dark .hd-jp{color:#fff}
.on-dark .hd-lead{color:rgba(255,255,255,.72)}

/* ---------- ボタン3階層 ---------- */
/* ① 最重要CTA：ヘッダーの問い合わせだけピル型（機能上の識別のため §0 の例外） */
.btn-fill{
  display:inline-flex;align-items:center;justify-content:center;min-height:44px;
  padding:0 22px;border-radius:999px;background:var(--brand);color:#fff;
  font-size:14.5px;font-weight:700;letter-spacing:.06em;width:max-content;
  transition:background-color .25s ease;
}
.btn-fill:hover{background:var(--brand-deep)}
/* ② 主CTA：テキスト＋大きな円形矢印 */
.btn-arrow{display:inline-flex;align-items:center;gap:18px;width:max-content;font-weight:700;letter-spacing:.06em;font-size:15.5px}
.btn-arrow .cir{
  position:relative;display:grid;place-items:center;width:60px;height:60px;border:1px solid var(--line);border-radius:50%;
  overflow:hidden;flex:none;
}
.btn-arrow .cir::before{content:"";position:absolute;inset:0;background:var(--brand);transform:translateX(-101%);transition:transform .45s cubic-bezier(.22,1,.36,1)}
.btn-arrow .cir svg{position:relative;width:19px;height:19px;stroke:var(--ink);stroke-width:1.6;fill:none;transition:stroke .2s ease .12s}
.btn-arrow:hover .cir::before{transform:translateX(0)}
.btn-arrow:hover .cir svg{stroke:#fff}
.on-dark .btn-arrow .cir{border-color:var(--line-dark)}
.on-dark .btn-arrow .cir svg{stroke:#fff}
.on-dark .btn-arrow .cir::before{background:#fff}
.on-dark .btn-arrow:hover .cir svg{stroke:var(--dark)}
/* ③ セクション内リンク：下線が伸びるテキスト */
.link-u{position:relative;display:inline-block;font-weight:700;font-size:15px;letter-spacing:.04em;padding-bottom:3px}
.link-u::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.22,1,.36,1)}
.link-u:hover::after{transform:scaleX(1)}

/* ---------- ヘッダー（body直下・stacking回避） ---------- */
.hdr{position:fixed;inset:0 0 auto;z-index:60;height:var(--hdr);background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line-soft);transition:height .35s cubic-bezier(.22,1,.36,1),box-shadow .35s ease}
.hdr.is-shrunk{height:60px;box-shadow:0 6px 24px rgba(13,24,38,.07)}
.brand-jp,.brand-en{transition:font-size .35s cubic-bezier(.22,1,.36,1)}
.hdr.is-shrunk .brand-jp{font-size:14px}
.hdr.is-shrunk .brand-en{font-size:9.5px}
.hdr-in{display:flex;align-items:center;justify-content:space-between;gap:24px;height:100%;width:min(100% - var(--gut)*2,1440px);margin-inline:auto}
.brand{display:flex;align-items:center}
.brand-txt{display:flex;flex-direction:column;line-height:1.25}
.brand-jp{font-size:15px;font-weight:700;letter-spacing:.04em}
.brand-en{font-family:var(--font-en);font-size:10.5px;font-weight:600;letter-spacing:.2em;color:var(--ink-soft)}
.gnav{display:flex;align-items:center;gap:clamp(16px,2vw,30px)}
.gnav a{display:inline-flex;align-items:center;min-height:34px;font-size:14.5px;font-weight:500;letter-spacing:.04em}
.gnav a.cur{font-weight:700}
.hdr-side{display:flex;align-items:center;gap:18px}
.hdr-tel{display:none;font-family:var(--font-en);font-size:19px;font-weight:700;letter-spacing:.02em}
.burger{display:none;position:relative;z-index:80;width:44px;height:44px;border:0;background:transparent;cursor:pointer;padding:0}
.burger span{position:absolute;left:11px;width:22px;height:1.5px;background:var(--ink);transition:transform .3s ease,opacity .2s ease}
.burger span:nth-child(1){top:16px}
.burger span:nth-child(2){top:22px}
.burger span:nth-child(3){top:28px}
body.nav-open .burger span:nth-child(1){transform:translateY(6px) rotate(45deg)}
body.nav-open .burger span:nth-child(2){opacity:0}
body.nav-open .burger span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.drawer{display:none;position:fixed;inset:0;z-index:55;background:var(--base);padding:calc(var(--hdr) + 26px) var(--gut) 40px;overflow-y:auto}
body.nav-open .drawer{display:block}
body.nav-open{overflow:hidden}
body.nav-open .hdr{z-index:70}
.drawer nav a{display:block;padding:16px 0;border-bottom:1px solid var(--line-soft);font-size:19px;font-weight:700;letter-spacing:.04em}
.drawer .drawer-close{margin-top:28px;display:inline-flex;align-items:center;min-height:44px;padding:0 20px;border:1px solid var(--line);background:transparent;font:inherit;font-size:14px;font-weight:700;cursor:pointer}
.drawer .drawer-info{margin-top:30px;font-size:14px;line-height:2;color:var(--ink-soft)}
@media(min-width:1080px){.hdr-tel{display:block}}
@media(max-width:900px){
  .gnav{display:none}
  .burger{display:block}
  .hdr-side .btn-fill{display:none}
}

/* ---------- FV：左テキスト／右フルブリード ---------- */
.fv{position:relative;padding-top:var(--hdr)}
.fv-grid{display:grid;grid-template-columns:minmax(0,1.06fr) minmax(0,43%);align-items:stretch;min-height:min(80vh,760px)}
.fv-body{
  display:flex;flex-direction:column;justify-content:center;
  padding:clamp(48px,6vw,92px) clamp(28px,4vw,64px) clamp(48px,6vw,92px) max(var(--gut),calc((100vw - var(--max)) / 2));
}
.fv-h1{font-size:15px;font-weight:700;letter-spacing:.08em;line-height:1.7;color:var(--ink-soft);
  padding-bottom:clamp(16px,2vw,24px);margin-bottom:clamp(20px,2.4vw,30px);border-bottom:1px solid var(--line-soft);
  max-width:38em}
.form-h{font-size:clamp(19px,2vw,24px);font-weight:700;letter-spacing:.04em;margin-bottom:clamp(20px,2.4vw,30px)}
.fv-copy{font-size:clamp(29px,4.4vw,56px);font-weight:700;line-height:1.32;letter-spacing:.045em}
.fv-copy span{display:block}
.fv-lead{margin-top:clamp(22px,2.6vw,34px);max-width:32em;font-size:16.5px;line-height:2.05;color:var(--ink-soft)}
.fv-acts{margin-top:clamp(30px,3.4vw,46px);display:flex;flex-wrap:wrap;align-items:center;gap:clamp(20px,3vw,42px)}
.fv-visual{position:relative;overflow:hidden}
.fv-visual img{width:100%;height:100%;object-fit:cover}
.fv-visual::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(64% 52% at 0% 102%,rgba(13,24,38,.62) 0%,rgba(13,24,38,.34) 32%,rgba(13,24,38,.12) 62%,rgba(13,24,38,0) 88%)}
@media(max-width:900px){
  .fv-grid{grid-template-columns:1fr;min-height:0}
  .fv-body{padding:clamp(36px,9vw,56px) var(--gut)}
  .fv-visual{height:clamp(280px,64vw,420px)}
}

/* ---------- 画面端まで抜く2分割（カード置き換え） ---------- */
.bleed{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,46%);align-items:center;border-top:1px solid var(--line-soft)}
.bleed:first-of-type{border-top:0}
.bleed-body{padding:clamp(40px,4.6vw,68px) clamp(28px,4.2vw,64px) clamp(40px,4.6vw,68px) max(var(--gut),calc((100vw - var(--max)) / 2))}
.bleed-photo{overflow:hidden}
.bleed-photo img{width:100%;height:clamp(300px,34vw,520px);object-fit:cover}
.bleed--rev .bleed-body{order:2;padding-left:clamp(28px,4.2vw,64px);padding-right:max(var(--gut),calc((100vw - var(--max)) / 2))}
.bleed--rev .bleed-photo{order:1}
.bleed-t{font-size:clamp(23px,2.5vw,32px);font-weight:700;line-height:1.5;letter-spacing:.03em}
.bleed-s{margin-top:10px;font-size:15px;font-weight:500;color:var(--brand);letter-spacing:.04em}
.bleed-p{margin-top:clamp(16px,1.8vw,22px);max-width:34em;color:var(--ink-soft)}
.bleed-p p{margin-bottom:1.35em}
.bleed-p p:last-child{margin-bottom:0}
.bleed-list{margin-top:22px;border-top:1px solid var(--line)}
.bleed-list li{padding:11px 0;border-bottom:1px solid var(--line-soft);font-size:15px;font-weight:500}
@media(max-width:900px){
  .bleed{grid-template-columns:1fr}
  .bleed-body,.bleed--rev .bleed-body{order:2;padding:clamp(30px,7vw,44px) var(--gut)}
  .bleed-photo,.bleed--rev .bleed-photo{order:1}
  .bleed-photo img{height:clamp(220px,52vw,320px)}
}


/* ---------- 全幅の写真バンド ---------- */
.photo-band{position:relative;overflow:hidden}
.photo-band img{width:100%;height:clamp(240px,30vw,460px);object-fit:cover;object-position:center 42%;display:block}
@media(max-width:760px){.photo-band img{height:clamp(200px,54vw,320px)}}

/* ---------- 罫線だけの行組み ---------- */
.rows{border-top:1px solid var(--line)}
.row{display:grid;grid-template-columns:minmax(0,20em) minmax(0,1fr);gap:clamp(16px,3vw,54px);padding:clamp(24px,3vw,38px) 0;border-bottom:1px solid var(--line-soft)}
.row-t{font-size:clamp(18px,1.9vw,23px);font-weight:700;line-height:1.6;letter-spacing:.03em}
.row-b{color:var(--ink-soft)}
.rows--num .row{grid-template-columns:auto minmax(0,15em) minmax(0,1fr)}
.row-n{font-family:var(--font-en);font-size:clamp(26px,3vw,40px);font-weight:800;line-height:1;letter-spacing:-.04em;color:var(--brand)}
@media(max-width:760px){
  .row{grid-template-columns:1fr;gap:8px}
  .rows--num .row{grid-template-columns:auto 1fr;row-gap:8px}
  .rows--num .row-b{grid-column:1 / -1}
}

/* ---------- ダーク帯（全体で1章のみ） ---------- */
.band-dark{background:var(--dark);color:#fff;padding-block:var(--sec)}
.nums{margin-top:var(--hd-gap);border-top:1px solid var(--line-dark)}
.num{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:24px;padding:clamp(18px,2.4vw,30px) 0;border-bottom:1px solid var(--line-dark)}
.num-l{font-size:15.5px;letter-spacing:.04em;color:rgba(255,255,255,.72)}
.num-v{font-family:var(--font-en);font-weight:800;font-size:clamp(46px,7vw,104px);line-height:.86;letter-spacing:-.05em;white-space:nowrap}
.num-v i{font-style:normal;font-size:.3em;font-weight:700;margin-left:.28em;letter-spacing:0}

/* ---------- ブランド帯CTA ---------- */
.band-brand{background:var(--brand);color:#fff;padding-block:clamp(3.4rem,5vw,5.2rem)}
.band-brand .cta-t{font-size:clamp(26px,3.4vw,44px);font-weight:700;line-height:1.5;letter-spacing:.04em}
.band-brand .cta-p{margin-top:16px;max-width:40em;color:rgba(255,255,255,.8)}
.cta-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:clamp(24px,4vw,60px)}
.cta-side{display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.cta-tel{font-family:var(--font-en);font-size:clamp(28px,3.4vw,42px);font-weight:800;letter-spacing:-.01em;line-height:1}
.cta-note{font-size:13.5px;color:rgba(255,255,255,.72)}
@media(max-width:860px){.cta-grid{grid-template-columns:1fr}}

/* ---------- ページヒーロー（下層） ---------- */
.phero{padding-top:calc(var(--hdr) + clamp(3.4rem,6vw,7rem));padding-bottom:clamp(2.2rem,3.4vw,3.4rem);background:var(--tint)}
.phero .hd-lead{max-width:42em}

/* ---------- お知らせ ---------- */
/* お知らせ一覧のカテゴリータブ（枠なし・下線で現在地を示す） */
.cattabs{display:flex;flex-wrap:wrap;gap:clamp(18px,2.4vw,34px);margin:calc(-1 * clamp(6px,0.8vw,10px)) 0 clamp(24px,2.8vw,36px);border-bottom:1px solid var(--line)}
.cattab{position:relative;display:inline-flex;align-items:center;min-height:44px;padding:0 2px;font-size:15px;font-weight:700;letter-spacing:.04em;color:#6b7280;text-decoration:none;transition:color .25s ease}
.cattab::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--brand);transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.22,1,.36,1)}
.cattab:hover{color:var(--brand)}
.cattab:hover::after{transform:scaleX(1)}
.cattab.is-cur{color:var(--ink)}
.cattab.is-cur::after{transform:scaleX(1)}

.nlist{border-top:1px solid var(--line)}
.nitem{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:clamp(14px,2.4vw,34px);padding:clamp(18px,2.2vw,26px) 0;border-bottom:1px solid var(--line-soft)}
.nitem:hover .nitem-t{text-decoration:underline;text-underline-offset:4px}
.ndate{min-width:6.2em;font-family:var(--font-en);font-size:15px;font-weight:600;letter-spacing:.02em;color:var(--ink-soft)}
.ncat{min-width:7.6em;font-size:13.5px;font-weight:700;letter-spacing:.06em;color:var(--brand)}
.nitem-t{font-size:16.5px;font-weight:500;line-height:1.8}
.nitem-a{width:20px;height:20px;stroke:var(--ink);stroke-width:1.6;fill:none}
@media(max-width:760px){
  .nitem{grid-template-columns:auto auto;row-gap:6px}
  .ndate,.ncat{min-width:0}
  .nitem-t{grid-column:1 / -1}
  .nitem-a{display:none}
}


/* ---------- パンくず ---------- */
.crumb{padding-top:calc(var(--hdr) + 18px);background:var(--tint)}
.crumb ol{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:13px;color:var(--ink-soft)}
.crumb li{display:flex;align-items:center;gap:10px}
.crumb li+li::before{content:"";width:5px;height:5px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg);opacity:.6}
.crumb a{text-decoration:none}
.crumb a:hover{text-decoration:underline;text-underline-offset:3px}
.crumb+.phero{padding-top:clamp(1.6rem,3vw,2.6rem)}

/* ---------- 関連記事・新着 ---------- */
.rel{margin-top:clamp(38px,5vw,64px);padding-top:clamp(26px,3vw,38px);border-top:1px solid var(--line)}
.rel-h{font-size:15px;font-weight:700;letter-spacing:.06em;margin-bottom:14px}

/* ---------- 記事本文 ---------- */
.article{max-width:44em}
.article-head{border-bottom:1px solid var(--line);padding-bottom:clamp(20px,2.4vw,30px)}
.article-meta{display:flex;align-items:center;gap:18px}
.article-t{margin-top:14px;font-size:clamp(25px,3.2vw,40px);font-weight:700;line-height:1.55;letter-spacing:.03em}
.article-body{padding-top:clamp(24px,3vw,38px)}
.article-body p{margin-bottom:1.7em}
.article-body h2{margin:2.2em 0 .9em;font-size:clamp(20px,2.2vw,26px);font-weight:700;line-height:1.6}
.article-body ul{margin-bottom:1.7em}
.article-body ul li{padding-left:1.1em;position:relative}
.article-body ul li::before{content:"";position:absolute;left:0;top:.95em;width:6px;height:1px;background:var(--ink)}
.article-nav{margin-top:clamp(34px,4.4vw,56px);padding-top:24px;border-top:1px solid var(--line)}

/* ---------- 定義リスト（会社概要） ---------- */
.dl{border-top:1px solid var(--line)}
.dl div{display:grid;grid-template-columns:minmax(0,11em) minmax(0,1fr);gap:clamp(14px,3vw,44px);padding:clamp(15px,1.8vw,22px) 0;border-bottom:1px solid var(--line-soft)}
.dl dt{font-weight:700;font-size:15.5px;letter-spacing:.04em}
.dl dd{color:var(--ink-soft)}
@media(max-width:640px){.dl div{grid-template-columns:1fr;gap:4px}}

/* ---------- フォーム ---------- */
.form{max-width:52em}
.f-row{display:grid;grid-template-columns:minmax(0,13em) minmax(0,1fr);gap:clamp(12px,2.4vw,40px);padding:clamp(16px,2vw,24px) 0;border-bottom:1px solid var(--line-soft)}
.f-row:first-child{border-top:1px solid var(--line)}
.f-label{font-size:15.5px;font-weight:700;letter-spacing:.04em;padding-top:12px}
.f-req{margin-left:.6em;font-size:12.5px;font-weight:700;color:#B4231F;letter-spacing:.06em}
.f-any{margin-left:.6em;font-size:12.5px;font-weight:500;color:var(--ink-soft);letter-spacing:.06em}
.f-ctrl input[type=text],.f-ctrl input[type=email],.f-ctrl input[type=tel],.f-ctrl select,.f-ctrl textarea{
  width:100%;padding:13px 14px;border:1px solid var(--line);background:#fff;color:var(--ink);
  font-family:inherit;font-size:16px;line-height:1.7;border-radius:0;-webkit-appearance:none;appearance:none;
}
.f-ctrl select{background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 21px) 50%,calc(100% - 15px) 50%;background-size:6px 6px,6px 6px;background-repeat:no-repeat;padding-right:44px}
.f-ctrl textarea{min-height:190px;resize:vertical}
.f-ctrl input:focus,.f-ctrl select:focus,.f-ctrl textarea:focus{outline:2px solid var(--brand);outline-offset:1px;border-color:var(--brand)}
.f-err{display:none;margin-top:7px;font-size:13.5px;font-weight:700;color:#B4231F}
.f-row.is-err .f-err{display:block}
.f-row.is-err .f-ctrl input,.f-row.is-err .f-ctrl select,.f-row.is-err .f-ctrl textarea{border-color:#B4231F}
.f-agree{margin-top:clamp(24px,3vw,34px);font-size:15px}
.f-agree label{display:inline-flex;gap:10px;align-items:flex-start;cursor:pointer}
.f-agree input{margin-top:.45em;width:17px;height:17px;flex:none;accent-color:var(--brand)}
.f-submit{margin-top:clamp(26px,3.2vw,38px)}
.f-submit button{
  display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:60px;padding:0 44px;
  border:0;background:var(--brand);color:#fff;font-family:inherit;font-size:16px;font-weight:700;letter-spacing:.08em;cursor:pointer;
  transition:background-color .25s ease;
}
.f-submit button:hover{background:var(--brand-deep)}
.f-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.f-notice{margin-bottom:26px;padding:16px 18px;border-left:3px solid #B4231F;background:rgba(180,35,31,.06);font-size:15px;font-weight:500}
@media(max-width:760px){.f-row{grid-template-columns:1fr;gap:6px}.f-label{padding-top:0}}

/* ---------- サンクス ---------- */
.thanks{padding-top:calc(var(--hdr) + clamp(4rem,8vw,8rem));padding-bottom:clamp(4rem,7vw,7rem)}
.thanks-t{font-size:clamp(27px,3.6vw,46px);font-weight:700;line-height:1.5;letter-spacing:.04em}
.thanks-p{margin-top:clamp(18px,2.2vw,28px);max-width:40em;color:var(--ink-soft)}

/* ---------- フッター ---------- */
.ftr{background:var(--dark);color:#fff;padding-block:clamp(3rem,4.6vw,4.8rem) clamp(1.6rem,2.4vw,2.4rem)}
.ftr-top{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,64px);padding-bottom:clamp(28px,3.4vw,44px);border-bottom:1px solid var(--line-dark)}
.ftr-col{display:flex;flex-direction:column;border-left:1px solid var(--line-dark);padding-left:clamp(20px,3vw,44px)}
.ftr-col:first-child{border-left:0;padding-left:0}
.ftr-name{font-size:18px;font-weight:700;letter-spacing:.04em}
.ftr-en{margin-top:6px;font-family:var(--font-en);font-size:11px;font-weight:600;letter-spacing:.22em;color:rgba(255,255,255,.6)}
.ftr-addr{margin-top:18px;font-size:14.5px;line-height:2;color:rgba(255,255,255,.72)}
.ftr-tel{margin-top:14px;font-family:var(--font-en);font-size:26px;font-weight:800;letter-spacing:-.01em}
.ftr-h{font-size:14px;font-weight:700;letter-spacing:.08em;color:rgba(255,255,255,.6)}
.ftr-col nav{margin-top:14px}
.ftr-col nav a{display:block;padding:7px 0;font-size:15px;color:rgba(255,255,255,.86)}
.ftr-col nav a:hover{color:#fff;text-decoration:underline;text-underline-offset:4px}
.ftr-col .foot{margin-top:auto;padding-top:1.1rem}
.ftr-bot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding-top:clamp(16px,2vw,22px);font-size:13px;color:rgba(255,255,255,.6)}
@media(max-width:860px){
  .ftr-top{grid-template-columns:1fr}
  .ftr-col{border-left:0;padding-left:0;border-top:1px solid var(--line-dark);padding-top:24px;margin-top:4px}
  .ftr-col:first-child{border-top:0;padding-top:0;margin-top:0}
}


/* ---------- 表示アニメーション ---------- */
.reveal{opacity:0;transform:translateY(22px);
  transition:opacity .78s cubic-bezier(.22,1,.36,1) var(--d,0s),transform .78s cubic-bezier(.22,1,.36,1) var(--d,0s)}
.reveal.on{opacity:1;transform:none}
/* 画像は下から拭き上げ。
   デコードが終わる前に拭き上げが走ると、絵だけが後から「パッ」と出るので、
   親に .is-ld（読み込み完了）が付くまでアニメーションを始めない。 */
.bleed-photo img,.photo-band img,.fv-visual img{opacity:0;clip-path:inset(0 0 100% 0);transform:scale(1.06);
  transition:opacity .55s ease,clip-path 1.05s cubic-bezier(.22,1,.36,1),transform 1.4s cubic-bezier(.22,1,.36,1)}
.on .bleed-photo.is-ld img,.bleed-photo.is-ld.on img,.photo-band.is-ld.on img,
.is-ready .fv-visual.is-ld img{opacity:1;clip-path:inset(0 0 0 0);transform:none}
/* 画像の入る枠を先に地色で埋めておく（読み込み中の白抜けを防ぐ） */
.bleed-photo,.photo-band,.fv-visual{background:var(--tint)}
/* FVのコピーは行ごとにせり上がる */
.fv-copy span{opacity:0;transform:translateY(30px);
  transition:opacity .9s cubic-bezier(.22,1,.36,1),transform .9s cubic-bezier(.22,1,.36,1)}
.is-ready .fv-copy span{opacity:1;transform:none}
.is-ready .fv-copy span:nth-child(1){transition-delay:.10s}
.is-ready .fv-copy span:nth-child(2){transition-delay:.20s}
.is-ready .fv-copy span:nth-child(3){transition-delay:.30s}
.fv-lead,.fv-acts{opacity:0;transform:translateY(18px);
  transition:opacity .9s cubic-bezier(.22,1,.36,1) .42s,transform .9s cubic-bezier(.22,1,.36,1) .42s}
.fv-acts{transition-delay:.54s}
.is-ready .fv-lead,.is-ready .fv-acts{opacity:1;transform:none}
/* 見出しの英字は少し遅れて出す */
.hd .hd-en{display:block;opacity:0;transform:translateY(26px);
  transition:opacity .85s cubic-bezier(.22,1,.36,1),transform .85s cubic-bezier(.22,1,.36,1)}
.hd.on .hd-en{opacity:1;transform:none}
.hd .hd-jp{transition-delay:.08s}
/* 罫線は左から引く */
.rows,.nlist,.dl,.nums{position:relative}
.rows::before,.nlist::before,.dl::before,.nums::before{content:"";position:absolute;left:0;top:0;width:100%;height:1px;
  background:currentColor;opacity:.22;transform:scaleX(0);transform-origin:left;transition:transform .9s cubic-bezier(.22,1,.36,1)}
.rows.on::before,.nlist.on::before,.dl.on::before,.nums.on::before{transform:scaleX(1)}

/* ---------- 代表メッセージ（写真なし） ---------- */
.msg{display:grid;grid-template-columns:minmax(0,20em) minmax(0,1fr);gap:clamp(24px,5vw,72px);align-items:start}
.msg-hd .hd-en{font-size:clamp(32px,4.1vw,62px);letter-spacing:-.045em}
.msg-hd .hd-jp{margin-top:8px}
.msg-body p{margin-bottom:1.5em;color:var(--ink-soft);font-size:17px;line-height:2.05}
.msg-body p:last-of-type{margin-bottom:0}
.msg-sign{margin-top:clamp(22px,2.6vw,34px)!important;padding-top:18px;border-top:1px solid var(--line);
  font-weight:700;font-size:15.5px;letter-spacing:.04em;color:var(--ink)!important}
@media(max-width:900px){.msg{grid-template-columns:1fr}}

/* ---------- reveal（旧・上書き済み） ---------- */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal,.fv-copy span,.fv-lead,.fv-acts,.hd .hd-en{opacity:1!important;transform:none!important}
  .bleed-photo img,.photo-band img,.fv-visual img{opacity:1!important;clip-path:none!important;transform:none!important}
  .rows::before,.nlist::before,.dl::before,.nums::before{transform:scaleX(1)!important}
}
