/* ============================================================
   株式会社帝愛 共通スタイル
   墨黒 #0B0B0D × 骨白 #EFEBE3 × 緋 #B3121F ／ 劇画×ざわめき
   ============================================================ */
:root{
  --ink:#0B0B0D;
  --bone:#EFEBE3;
  --hi:#B3121F;
  --muted:rgba(239,235,227,.56);
  --hair:rgba(239,235,227,.16);
  --gold:#F5C518;
  --mincho:'Shippori Mincho B1',serif;
  --gothic:'Zen Kaku Gothic New',sans-serif;
  --mono:'IBM Plex Mono',monospace;
  --kaki:'Reggae One',var(--mincho),serif;
  --antique:'Shippori Antique B1',serif;
  --aori:'Dela Gothic One',sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--ink);
  color:var(--bone);
  font-family:var(--gothic);
  font-weight:400;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
::selection{background:var(--hi);color:var(--bone)}
a{color:inherit}
img{max-width:100%}

/* ---- 全面オーバーレイ（粒子・四隅の暗がり・ざわ層） ---- */
.grain{
  position:fixed;inset:0;z-index:90;pointer-events:none;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='240'%20height='240'%3E%3Cfilter%20id='n'%3E%3CfeTurbulence%20type='fractalNoise'%20baseFrequency='0.9'%20numOctaves='2'/%3E%3CfeColorMatrix%20type='saturate'%20values='0'/%3E%3C/filter%3E%3Crect%20width='100%25'%20height='100%25'%20filter='url(%23n)'/%3E%3C/svg%3E");
}
.vignette{
  position:fixed;inset:0;z-index:80;pointer-events:none;
  background:radial-gradient(120% 120% at 50% 50%,transparent 58%,rgba(0,0,0,.42) 100%);
}
#zawaLayer{position:fixed;inset:0;z-index:70;pointer-events:none;overflow:hidden}
.zawa{
  position:absolute;
  font-family:var(--kaki);
  color:#F2EEE3;mix-blend-mode:difference;
  white-space:nowrap;opacity:0;
  animation:zawaPop ease-in-out forwards;
  will-change:opacity,transform;
}
@keyframes zawaPop{
  0%{opacity:0;transform:scale(.86) rotate(var(--rot,0deg))}
  12%{opacity:var(--peak,.75);transform:scale(1) rotate(var(--rot,0deg))}
  70%{opacity:var(--peak,.75)}
  100%{opacity:0;transform:scale(1.04) rotate(var(--rot,0deg))}
}
.zawa-img{height:auto}
.creep{
  position:absolute;
  font-family:var(--kaki);
  font-size:15px;color:#F2EEE3;mix-blend-mode:difference;
  transform:rotate(-4deg);
  opacity:0;transition:opacity 2.2s ease;
}
.creep.on{opacity:.55}

/* ---- ヘッダー ---- */
.site-head{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;
  padding:1.3rem clamp(1.2rem,4vw,3rem);
  mix-blend-mode:difference;
}
.brand{
  display:inline-flex;align-items:center;gap:.6em;
  font-family:var(--mincho);font-weight:700;font-size:.95rem;
  letter-spacing:.3em;text-decoration:none;
}
.brand-mark{width:1.55em;height:1.55em;display:block}
@media (max-width:640px){ .brand-mark{width:1.4em;height:1.4em} }
.site-head nav a{
  font-size:.74rem;font-weight:500;letter-spacing:.18em;
  text-decoration:none;margin-left:1.6em;opacity:.6;transition:opacity .4s;
  padding-bottom:.3em;
}
.site-head nav a:hover{opacity:1}
.site-head nav a.on{opacity:1;border-bottom:1px solid var(--bone)}
@media (max-width:640px){
  /* スマホは黒帯ヘッダーにして確実に読めるようにする（反転合成をやめる） */
  .site-head{
    padding:.75rem 1rem;
    mix-blend-mode:normal;
    background:rgba(9,9,11,.92);
    -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
    border-bottom:1px solid var(--hair);
    align-items:center;
  }
  .brand{font-size:.8rem;letter-spacing:.14em;color:var(--bone)}
  .brand-mark{width:1.35em;height:1.35em}
  .site-head nav a{margin-left:.85em;font-size:.64rem;letter-spacing:.06em;color:var(--bone);opacity:.72}
  .site-head nav a.on{opacity:1}
}

/* ---- トップのヒーロー ---- */
.hero{
  position:relative;height:100vh;height:100svh;min-height:600px;
  background:var(--ink);
  overflow:hidden;
}
/* デスクトップ: 左60%をアップの絵で埋める */
.hero-art{
  position:absolute;top:0;left:0;bottom:0;width:60vw;
}
.hero-art img{
  display:block;width:100%;height:100%;
  object-fit:cover;object-position:center 18%;
}
.hero-art::after{
  content:'';position:absolute;inset:0;
  box-shadow:inset 0 0 100px 42px #0B0B0D;
}
.hero-shade{display:none;position:absolute;inset:0}
.hero-label{
  position:absolute;top:19vh;left:clamp(1.2rem,6vw,5rem);
  font-family:var(--mono);font-size:.68rem;letter-spacing:.3em;
  color:var(--muted);text-shadow:0 1px 8px rgba(0,0,0,.95);
}
.hero-title{
  position:absolute;top:50%;right:clamp(1.2rem,9vw,9rem);
  transform:translateY(-50%);
  writing-mode:vertical-rl;
  font-family:var(--mincho);font-weight:800;
  font-size:min(clamp(2.5rem,7vw,5.6rem),6.8svh);
  line-height:1.6;letter-spacing:.14em;
  white-space:nowrap;
  text-shadow:0 2px 18px rgba(0,0,0,.85);
}
.hero-title.flick{opacity:.5;filter:blur(1px);letter-spacing:.18em}
.hero-zawas{position:absolute;inset:0;pointer-events:none}
.hz{
  position:absolute;
  font-family:var(--kaki);
  color:#F2EEE3;opacity:.06;white-space:nowrap;
  transform:rotate(var(--rot,0deg));
  animation:hzPulse var(--period,6s) ease-in-out infinite;
  animation-delay:var(--d,0s);
}
@keyframes hzPulse{0%,100%{opacity:.05}50%{opacity:var(--peak,.8)}}
.hz1{top:13%;left:42%;font-size:2.3rem;--d:.4s;--rot:-7deg;--period:5.2s}
.hz2{top:27%;left:11%;font-size:1.5rem;--d:2.1s;--rot:4deg;--period:6.4s;--peak:.6}
.hz3{top:45%;left:28%;font-size:2.9rem;--d:3.4s;--rot:-3deg;--period:7.1s;--peak:.9}
.hz4{top:63%;left:47%;font-size:1.3rem;--d:1.2s;--rot:8deg;--period:5.8s;--peak:.55}
.hz5{top:77%;left:40%;font-size:1.9rem;--d:4.5s;--rot:-10deg;--period:6.9s;--peak:.7}
.hz6{top:7%;left:68%;font-size:1.2rem;--d:5.3s;--rot:6deg;--period:7.6s;--peak:.5}
.hz7{top:56%;left:64%;font-size:1.6rem;--d:2.8s;--rot:-5deg;--period:6.1s;--peak:.65}
.hero-wrap{position:relative}
/* PC: 絵の上にオーバーレイ */
.intro{
  position:absolute;bottom:12vh;left:clamp(1.2rem,6vw,5rem);z-index:3;
  max-width:32em;
  font-size:.92rem;line-height:2.3;color:rgba(239,235,227,.85);
  background:rgba(11,11,13,.74);
  padding:1.3em 1.7em;border-left:2px solid var(--hi);
}
.intro p+p{margin-top:1.6em}
.hero-scroll{
  position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);
  font-family:var(--mono);font-size:.62rem;letter-spacing:.4em;
  color:var(--muted);text-align:center;
}
.hero-scroll::after{
  content:'';display:block;width:1px;height:46px;margin:.9em auto 0;
  background:linear-gradient(to bottom,var(--muted),transparent);
  animation:drip 3.2s ease-in-out infinite;transform-origin:top;
}
@keyframes drip{0%{transform:scaleY(0)}55%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}
@media (max-width:640px){
  /* モバイル: 縦画像×縦画面の相性が良いのでcover表示 */
  .hero{background:var(--ink) url('../img/hero-color.jpg') no-repeat center 20%/cover}
  .hero-art{display:none}
  .hero-shade{
    display:block;
    background:
      linear-gradient(to right,rgba(11,11,13,.2) 0%,rgba(11,11,13,0) 40%,rgba(11,11,13,.55) 66%,rgba(11,11,13,.92) 86%),
      linear-gradient(to top,rgba(11,11,13,.96) 0%,rgba(11,11,13,.55) 26%,rgba(11,11,13,0) 48%);
  }
  .hero-title{right:clamp(1.2rem,7vw,3rem);font-size:min(clamp(2.1rem,10vw,3rem),6.4svh)}
  .hero-label{max-width:52vw;line-height:2;top:22vh}
  /* スマホ: オーバーレイをやめ、ヒーローの下に独立セクションとして置く */
  .intro{
    position:static;max-width:none;z-index:auto;
    margin:0;padding:11vh clamp(1.4rem,7vw,2rem) 3vh;
    background:var(--ink);border-left:none;border-top:2px solid var(--hi);
    font-size:1rem;line-height:2.5;color:rgba(239,235,227,.9);
  }
  .intro p+p{margin-top:1.5em}
  .hero-scroll{bottom:1.1rem}
  .hz6,.hz7{display:none}
  .hz1{left:18%;font-size:1.7rem}
  .hz3{left:6%;font-size:2rem}
  .hz5{left:30%}
}

/* ---- 下層ページのヒーロー帯 ---- */
.page-hero{
  position:relative;height:58vh;min-height:400px;
  background-color:var(--ink);
  background-repeat:no-repeat;background-position:center 28%;background-size:cover;
  overflow:hidden;
}
.ph-shade{
  position:absolute;inset:0;
  background:linear-gradient(to top,var(--ink) 4%,rgba(11,11,13,.35) 46%,rgba(11,11,13,.25) 100%);
}
.ph-inner{
  position:absolute;left:0;right:0;bottom:clamp(1.6rem,6vh,3.6rem);
  max-width:880px;margin:0 auto;padding:0 clamp(1.4rem,5vw,3rem);
}
.ph-label{
  font-family:var(--mono);font-size:.64rem;letter-spacing:.34em;
  color:var(--muted);margin-bottom:1.1em;
}
.ph-label .no{color:var(--hi);font-family:var(--mincho);font-weight:700;font-size:1rem;margin-right:1.2em;letter-spacing:0}
.ph-title{
  font-family:var(--mincho);font-weight:800;
  font-size:clamp(1.9rem,5vw,3.2rem);
  letter-spacing:.1em;line-height:1.7;
  text-shadow:0 2px 16px rgba(0,0,0,.9);
}
.ph-lead{
  margin-top:1.4em;font-size:.92rem;line-height:2.2;color:rgba(239,235,227,.8);
  max-width:38em;text-shadow:0 1px 8px rgba(0,0,0,.9);
}

/* ---- ざわめき語録（トップ・煽りテロップ体） ---- */
.goroku-strip{padding:16vh clamp(1.4rem,5vw,3rem);text-align:center}
.goroku{
  font-family:var(--aori);font-weight:400;
  display:inline-block;transform:skewX(-7deg);
  font-size:clamp(1.25rem,3vw,1.9rem);letter-spacing:.04em;line-height:2;
  min-height:2.4em;color:#fff;
  text-shadow:0 4px 22px rgba(0,0,0,.75);
  opacity:1;transition:opacity .9s ease;
}
.goroku.fade{opacity:0}
.goroku-strip .who{
  display:block;margin-top:2.2em;
  font-family:var(--mono);font-size:.62rem;letter-spacing:.3em;color:var(--muted);
}

/* ---- セクション共通 ---- */
.section{max-width:880px;margin:0 auto;padding:14vh clamp(1.4rem,5vw,3rem)}
.section.tight{padding-top:9vh}
.sec-head{display:flex;align-items:baseline;gap:1.4em;margin-bottom:4.5rem}
.sec-no{font-family:var(--mincho);font-weight:700;font-size:1.05rem;color:var(--hi)}
.sec-label{font-family:var(--mono);font-size:.62rem;letter-spacing:.34em;color:var(--muted)}
.section h2{
  font-family:var(--mincho);font-weight:800;
  font-size:clamp(1.7rem,4vw,2.6rem);
  letter-spacing:.1em;line-height:1.9;
  margin-bottom:3rem;
}
.lead-text{font-size:.95rem;line-height:2.3;color:var(--muted);max-width:40em}

/* ---- 漫画のコマ ---- */
.koma{position:relative;margin:4.5rem 0 5rem;max-width:520px;transform:rotate(-1.6deg)}
/* コマに重ねるフキダシ（縦書き） */
.serifu{
  position:absolute;top:-1.4rem;z-index:1;
  writing-mode:vertical-rl;
  background:#fff;color:#0B0B0D;
  border:2.5px solid #0B0B0D;border-radius:50%/44%;
  padding:1.6em 1.1em;
  font-family:var(--antique);font-weight:700;
  font-size:.95rem;line-height:2;letter-spacing:.1em;
  box-shadow:0 5px 16px rgba(0,0,0,.55);
}
.serifu.l{left:-1.2rem}
.serifu.r{right:-1.2rem}
/* 幕タイトル */
.act-title{
  font-family:var(--aori);display:inline-block;transform:skewX(-6deg);
  color:var(--gold);font-size:clamp(1.15rem,2.6vw,1.65rem);
  letter-spacing:.02em;margin:3.5rem 0 1rem;
  text-shadow:0 4px 18px rgba(0,0,0,.7);
}
@media (max-width:640px){
  .serifu{font-size:.8rem;padding:1.2em .85em;top:-1rem}
  .serifu.l{left:-.4rem}
  .serifu.r{right:-.4rem}
}
.koma:nth-of-type(even){margin-left:auto;transform:rotate(1.3deg)}
.koma img{display:block;width:100%;height:auto;border:4px solid var(--bone)}
.koma.tall{max-width:390px}
@media (max-width:640px){
  .koma{max-width:88%;margin:3.2rem 0 3.8rem}
  .koma.tall{max-width:72%}
}

/* ---- マニフェスト ---- */
.manifesto-lines p{
  font-family:var(--mincho);font-weight:400;
  font-size:clamp(1.1rem,2.1vw,1.42rem);
  line-height:2.5;letter-spacing:.08em;
  margin-bottom:2.4em;max-width:36em;
}
.manifesto-lines p.accent{
  font-family:var(--aori);font-weight:400;color:var(--hi);
  display:inline-block;transform:skewX(-6deg);
  font-size:clamp(1.6rem,3.6vw,2.4rem);letter-spacing:.04em;
  margin-top:2.6em;
  text-shadow:3px 3px 0 #000,-3px 3px 0 #000,3px -3px 0 #000,-3px -3px 0 #000,0 6px 26px rgba(0,0,0,.6);
}

/* ---- 福本節ナレーション（縦書きの細長ボックス） ---- */
.fukumoto{display:flex;justify-content:center;padding:9vh clamp(1.4rem,5vw,3rem)}
.fukumoto p{
  writing-mode:vertical-rl;
  font-family:var(--antique);font-size:1.02rem;line-height:2.5;letter-spacing:.16em;
  color:var(--bone);background:#000;border:1px solid var(--hair);
  padding:2.4em 1.5em;margin:0;
}
@media (max-width:640px){
  .fukumoto{padding:6vh 1.4rem}
  .fukumoto p{font-size:.92rem;padding:2em 1.1em}
}

/* ---- 金の断定（数字・成果の強調） ---- */
.kin{font-family:var(--aori);color:var(--gold);font-size:1.08em;letter-spacing:.02em}

/* ---- トップの扉カード ---- */
.door-grid{display:grid;grid-template-columns:1fr 1fr;gap:2.6rem 2.2rem}
.door{
  display:block;text-decoration:none;
  border:4px solid var(--bone);
  transform:rotate(var(--tilt,-1deg));
  transition:transform .45s ease,border-color .45s ease;
  background:#000;
}
.door:nth-child(even){--tilt:1deg}
.door:hover{transform:rotate(0deg) scale(1.015);border-color:var(--hi)}
.door img{display:block;width:100%;height:340px;object-fit:cover;object-position:center 18%}
.door-body{display:block;padding:1.3rem 1.4rem 1.5rem;border-top:4px solid var(--bone)}
.door:hover .door-body{border-top-color:var(--hi)}
.door-label{
  display:block;font-family:var(--mincho);font-weight:800;
  font-size:1.2rem;letter-spacing:.16em;margin-bottom:.5em;
}
.door-lead{display:block;font-size:.8rem;line-height:1.9;color:var(--muted)}
.door.wide{grid-column:1/-1}
.door.wide img{height:300px;object-position:center 24%}
/* 画像を使わない文字ゴマの扉 */
.door.text .door-body{
  border-top:none;min-height:340px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:1.9em;text-align:center;padding:3rem 1.5rem;
}
.door.text .door-no{
  font-family:var(--mincho);font-weight:700;font-size:1rem;
  color:var(--hi);letter-spacing:0;
}
.door.text .door-label{
  writing-mode:vertical-rl;
  font-size:clamp(1.6rem,3vw,2.1rem);letter-spacing:.3em;
  margin:0;line-height:1;
}
.door.text:hover .door-label{color:var(--hi)}
.door.text .door-lead{max-width:20em}
.door.text.wide .door-body{min-height:220px;gap:1.4em}
@media (max-width:640px){
  .door.text .door-body{min-height:250px;gap:1.4em;padding:2.2rem 1.2rem}
}
@media (max-width:640px){
  .door-grid{grid-template-columns:1fr;gap:2rem}
}

/* ---- 事業 ---- */
.svc-lead{
  font-family:var(--mincho);font-size:clamp(1rem,1.9vw,1.2rem);
  letter-spacing:.1em;color:var(--muted);margin:-1.4rem 0 4.5rem;
}
.svc{border-top:1px solid var(--hair);padding:3.4rem 0;position:relative;min-height:300px}
.svc:last-of-type{border-bottom:1px solid var(--hair)}
.svc h3{max-width:calc(100% - 280px)}
.svc .svc-img{
  position:absolute;right:0;top:3.6rem;
  width:225px;height:auto;
  border:3px solid var(--bone);transform:rotate(1.2deg);
}
.svc:nth-of-type(odd) .svc-img{transform:rotate(-1.2deg)}
.svc .no{font-family:var(--mono);font-size:.66rem;letter-spacing:.3em;color:var(--muted)}
.svc h3{
  font-family:var(--mincho);font-weight:700;
  font-size:clamp(1.15rem,2.4vw,1.45rem);
  letter-spacing:.08em;line-height:1.9;margin:1.1rem 0 1.2rem;
}
.svc .svc-line{
  font-family:var(--aori);font-weight:400;color:var(--gold);
  display:inline-block;transform:skewX(-7deg);transform-origin:left bottom;
  font-size:1.02rem;letter-spacing:.02em;margin-bottom:1.2rem;
  max-width:calc(100% - 280px);
  text-shadow:0 3px 14px rgba(0,0,0,.6);
}
.svc p.body{font-size:.94rem;line-height:2.2;color:var(--muted);max-width:min(42em,calc(100% - 270px))}
@media (max-width:640px){
  .svc{min-height:0}
  .svc h3,.svc p.body,.svc .svc-line{max-width:100%}
  .svc .svc-img{position:static;margin-top:1.8rem;width:64%}
}

/* ---- 流儀・三箇条 ---- */
.ryugi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2.2rem;margin-top:1rem}
.ryugi{border:3px solid var(--bone);background:#000;transform:rotate(var(--tilt,-0.8deg))}
.ryugi:nth-child(2){--tilt:0.9deg}
.ryugi:nth-child(3){--tilt:-0.5deg}
.ryugi img{display:block;width:100%;height:340px;object-fit:cover;border-bottom:3px solid var(--bone)}
.ryugi-body{padding:1.4rem 1.3rem 1.6rem}
.ryugi-body h3{
  font-family:var(--aori);font-weight:400;font-size:.96rem;
  letter-spacing:.02em;line-height:1.9;margin-bottom:.9em;
  transform:skewX(-5deg);
}
.ryugi-body p{font-size:.82rem;line-height:2;color:var(--muted)}
@media (max-width:640px){
  .ryugi-grid{grid-template-columns:1fr;gap:1.8rem}
  .ryugi img{height:300px}
}

/* ---- ざわざわ劇場 ---- */
.gallery{columns:2;column-gap:2.4rem}
.gpiece{break-inside:avoid;margin:0 0 3.2rem;transform:rotate(var(--tilt,-1deg))}
.gpiece:nth-child(even){--tilt:1.1deg}
.gpiece img{display:block;width:100%;height:auto;border:4px solid var(--bone)}
.gpiece figcaption{
  margin-top:.9em;font-family:var(--mono);font-size:.72rem;
  letter-spacing:.16em;color:var(--muted);
}
.gpiece.color img{border-color:var(--hi)}
@media (max-width:640px){
  .gallery{columns:1}
}

/* ---- 会社: 代表挨拶・概要・沿革 ---- */
.greeting{position:relative;min-height:380px}
.greeting .g-img{
  position:absolute;right:0;top:0;
  width:250px;height:auto;border:3px solid var(--bone);transform:rotate(1.4deg);
}
.greeting h3{
  font-family:var(--mincho);font-weight:800;font-size:clamp(1.2rem,2.6vw,1.6rem);
  letter-spacing:.1em;line-height:2;margin-bottom:2rem;
  max-width:calc(100% - 300px);
}
.greeting p{
  font-size:.94rem;line-height:2.4;color:var(--muted);
  max-width:min(38em,calc(100% - 290px));margin-bottom:1.8em;
}
.greeting .sign{
  font-family:var(--mincho);font-weight:700;color:var(--bone);
  letter-spacing:.2em;font-size:.95rem;
}
@media (max-width:640px){
  .greeting{min-height:0}
  .greeting h3,.greeting p{max-width:100%}
  .greeting .g-img{position:static;width:58%;margin:0 0 2rem}
}
.datalist{border-top:1px solid var(--hair)}
.datalist .row{
  display:grid;grid-template-columns:minmax(8.5em,11em) 1fr;
  gap:1em;padding:1.5em .2em;border-bottom:1px solid var(--hair);
}
.datalist dt{
  font-size:.78rem;font-weight:500;letter-spacing:.24em;
  color:var(--muted);padding-top:.2em;
}
.datalist dd{font-size:.95rem;line-height:2;letter-spacing:.04em}
.datalist .row.motto dd{font-family:var(--mincho);font-weight:700;letter-spacing:.1em}
.kun-note{
  margin-top:2.2rem;font-size:.85rem;line-height:2.2;color:var(--muted);max-width:40em;
}
@media (max-width:640px){
  .datalist .row{grid-template-columns:1fr;gap:.3em;padding:1.2em .2em}
}

/* ---- 関わり方・三段（指カード） ---- */
.plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2.2rem}
.plan{border:3px solid var(--bone);background:#000;transform:rotate(var(--tilt,-0.8deg))}
.plan:nth-child(2){--tilt:0.8deg}
.plan:nth-child(3){--tilt:-0.4deg}
.plan img{display:block;width:100%;height:400px;object-fit:cover;object-position:center 20%;border-bottom:3px solid var(--bone)}
.plan-body{padding:1.4rem 1.3rem 1.6rem}
.plan-body h3{
  font-family:var(--mincho);font-weight:800;font-size:1.05rem;
  letter-spacing:.12em;margin-bottom:.8em;
}
.plan-body p{font-size:.82rem;line-height:2;color:var(--muted)}
@media (max-width:640px){
  .plan-grid{grid-template-columns:1fr;gap:1.8rem}
  .plan img{height:380px}
}

/* ---- 灯 ---- */
.lantern{
  height:32vh;display:flex;align-items:center;justify-content:center;
  opacity:0;transition:opacity 3s ease;
}
.lantern.on{opacity:1}
.flame{
  width:9px;height:9px;border-radius:50%;
  background:#E7C590;
  box-shadow:0 0 60px 26px rgba(231,197,144,.16),0 0 150px 80px rgba(231,197,144,.06);
  animation:flame 6.5s ease-in-out infinite;
}
@keyframes flame{0%,100%{transform:scale(1);opacity:.95}50%{transform:scale(.84);opacity:.7}}

/* ---- お問い合わせ（骨白の反転） ---- */
.contact{background:var(--bone);color:var(--ink)}
.contact-inner{
  max-width:880px;margin:0 auto;padding:14vh clamp(1.4rem,5vw,3rem);
  position:relative;
}
.contact-inner h2,.contact .lead,.contact .note{max-width:calc(100% - 320px)}
.contact-img{
  position:absolute;right:clamp(1.4rem,5vw,3rem);top:50%;
  width:260px;height:auto;border:4px solid var(--ink);
  transform:translateY(-50%) rotate(1.5deg);
}
@media (max-width:640px){
  .contact-inner h2,.contact .lead,.contact .note{max-width:100%}
  .contact-img{position:static;width:62%;margin-top:2.6rem;transform:rotate(1.5deg)}
}
.contact .sec-label{color:rgba(11,11,13,.62)}
.contact h2{
  font-family:var(--mincho);font-weight:800;
  font-size:clamp(1.7rem,4vw,2.6rem);letter-spacing:.1em;line-height:1.9;
  margin-bottom:3rem;
}
.contact .lead{
  font-family:var(--mincho);font-weight:700;
  font-size:clamp(1.2rem,2.6vw,1.7rem);
  line-height:2.3;letter-spacing:.08em;margin-bottom:2.2rem;
}
.contact .note{
  font-size:.94rem;line-height:2.2;color:rgba(11,11,13,.72);
  max-width:40em;margin-bottom:4rem;
}
.cta{
  display:inline-block;border:1px solid var(--ink);
  padding:1.15em 3.2em;
  font-family:var(--mincho);font-weight:700;font-size:.95rem;letter-spacing:.26em;
  text-decoration:none;transition:color .4s,border-color .4s,background .4s;
}
.cta:hover{color:var(--hi);border-color:var(--hi);background:rgba(179,18,31,.05)}
.cta.ghost{border-color:var(--bone);color:var(--bone)}
.cta.ghost:hover{border-color:var(--hi);color:var(--hi);background:rgba(179,18,31,.08)}
.cta-pending{
  font-family:var(--mono);font-size:.78rem;letter-spacing:.2em;
  color:rgba(11,11,13,.72);
}
/* ---- お問い合わせフォーム ---- */
.cform{max-width:480px}
.cform label{
  display:block;margin-bottom:1.6rem;
  font-size:.78rem;font-weight:500;letter-spacing:.18em;
  color:rgba(11,11,13,.72);
}
.cform input,.cform select,.cform textarea{
  display:block;width:100%;margin-top:.6em;
  padding:.85em 1em;
  font-family:var(--antique);font-size:.95rem;color:var(--ink);
  background:#fff;border:1.5px solid var(--ink);border-radius:0;
}
.cform input:focus,.cform select:focus,.cform textarea:focus{
  outline:2px solid var(--hi);outline-offset:1px;
}
.cform button{cursor:pointer;background:transparent;margin-top:.8rem}
.form-note{
  margin-top:1.4rem;font-family:var(--mono);font-size:.68rem;
  letter-spacing:.14em;color:rgba(11,11,13,.55);
}
#formMsg{margin-top:1.2rem;font-size:.85rem;color:var(--hi);font-weight:700}
.cta-row{display:flex;gap:1.6rem;flex-wrap:wrap;margin-top:4rem}
/* お問い合わせCTAの背後にだけ集中線 */
#ctaArea{position:relative}
#ctaArea::before{
  content:'';position:absolute;left:38%;top:50%;width:560px;height:560px;
  transform:translate(-50%,-50%);
  background:repeating-conic-gradient(rgba(11,11,13,.09) 0deg 1.6deg,transparent 1.6deg 6.6deg);
  border-radius:50%;
  -webkit-mask-image:radial-gradient(circle,#000 28%,transparent 68%);
  mask-image:radial-gradient(circle,#000 28%,transparent 68%);
  pointer-events:none;
}
#ctaArea>*{position:relative}

/* ---- フッター（黒服モブのシルエット列つき） ---- */
footer{
  position:relative;
  padding:11vh clamp(1.4rem,5vw,3rem) 8vh;
  text-align:center;
}
footer::before{
  content:'';display:block;height:90px;max-width:720px;margin:0 auto 4.5rem;
  background:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='150'%20height='90'%3E%3Cg%20fill='%231a1a20'%3E%3Ccircle%20cx='38'%20cy='28'%20r='14'/%3E%3Cpath%20d='M10%2090q7-46%2028-46t28%2046z'/%3E%3Ccircle%20cx='108'%20cy='20'%20r='15'/%3E%3Cpath%20d='M78%2090q8-50%2030-50t30%2050z'/%3E%3C/g%3E%3C/svg%3E") bottom center repeat-x;
  background-size:auto 90px;
}
.seal-logo{
  width:78px;height:78px;margin:0 auto 3rem;display:block;
  opacity:.92;
}
.foot-nav{margin-bottom:2.6rem}
.foot-nav a{
  font-size:.74rem;letter-spacing:.16em;text-decoration:none;
  color:var(--muted);margin:0 1em;transition:color .4s;
}
.foot-nav a:hover{color:var(--bone)}
footer .addr{font-size:.78rem;letter-spacing:.12em;color:var(--muted);line-height:2.2}
footer .copy{font-family:var(--mono);font-size:.64rem;letter-spacing:.26em;color:var(--muted);margin-top:2.2rem}
footer .zawa-static{
  position:absolute;right:clamp(1.5rem,6vw,4rem);bottom:8vh;
  width:68px;height:auto;opacity:.18;transform:rotate(-6deg);
}

/* ---- 出現アニメーション ---- */
.reveal{
  opacity:0;filter:blur(8px);transform:translateY(10px);
  transition:opacity 1.2s ease,filter 1.2s ease,transform 1.2s ease;
}
.reveal.revealed{opacity:1;filter:blur(0);transform:none}
html.no-js .reveal{opacity:1;filter:none;transform:none}
html.no-js .lantern{opacity:1}

/* ---- 読点・三点リーダの呼吸 ---- */
.breath{animation:breath 7s ease-in-out infinite}
@keyframes breath{0%,100%{opacity:1}50%{opacity:.32}}

/* ---- ナレーション系は漫画写植風（アンチック体）に統一 ---- */
.manifesto-lines p,.lead-text,.hero-sub,.greeting p,.svc p.body,.contact .note,
.door-lead,.ryugi-body p,.plan-body p,.svc-lead,.ph-lead,.kun-note{font-family:var(--antique)}

/* ---- モーション抑制 ---- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{transition:none;opacity:1;filter:none;transform:none}
  .breath,.flame,.hero-scroll::after{animation:none}
  .lantern{transition:none;opacity:1}
  .zawa,.creep{display:none}
  .hz{animation:none;opacity:.12}
  .goroku{transition:none}
}
