
:root{
  --omega-red:#8f0f18;
  --omega-red-dark:#6f0b12;
  --ink:#151515;
  --muted:#bcbcbc;
  --header-h:78px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;background:#fff}
a{color:inherit;text-decoration:none}
button{font:inherit}

.site-header{
  height:var(--header-h);position:fixed;z-index:50;inset:0 0 auto 0;background:rgba(255,255,255,.94);
  backdrop-filter:blur(12px);display:flex;align-items:center;padding:0 clamp(18px,3vw,54px);border-bottom:1px solid #ddd;
}
.brand{display:flex;align-items:center;min-width:0}
.brand-mark{width:44px;height:44px;border-radius:50%;object-fit:cover;margin-right:10px}
.brand-tagline-wrap{position:relative;display:inline-block;width:7.4em;height:1.45em;overflow:hidden;margin-right:.35em}
.brand-tagline{position:absolute;inset:0;display:flex;align-items:center;justify-content:flex-end;font-size:clamp(14px,1.25vw,20px);font-weight:700;letter-spacing:.03em;white-space:nowrap;text-align:right;opacity:0;filter:blur(8px);transition:opacity .55s ease, filter .55s ease}
.brand-tagline.is-visible{opacity:1;filter:blur(0)}
.brand-name{font-size:clamp(20px,1.75vw,29px);font-weight:900;white-space:nowrap;letter-spacing:.02em;flex-shrink:0}
.desktop-nav{margin-left:auto;display:flex;gap:clamp(18px,2.3vw,42px);align-items:center}
.desktop-nav a{font-size:14px;letter-spacing:.11em;position:relative;padding:8px 0}
.desktop-nav a::after{content:"";position:absolute;left:0;right:100%;bottom:2px;height:1px;background:var(--omega-red);transition:right .28s ease}
.desktop-nav a:hover::after{right:0}
.menu-button{display:none;margin-left:auto;width:48px;height:48px;background:none;border:0;cursor:pointer;position:relative;z-index:70}
.menu-button span{position:absolute;left:9px;width:30px;height:2px;background:#111;transition:.3s ease}
.menu-button span:nth-child(1){top:14px}.menu-button span:nth-child(2){top:23px}.menu-button span:nth-child(3){top:32px}
.menu-button.is-open span:nth-child(1){transform:translateY(9px) rotate(45deg)}
.menu-button.is-open span:nth-child(2){opacity:0}
.menu-button.is-open span:nth-child(3){transform:translateY(-9px) rotate(-45deg)}

.menu-overlay{position:fixed;z-index:40;inset:0;background:var(--omega-red);color:#fff;opacity:0;visibility:hidden;transform:translateY(-2%);transition:.35s ease;padding-top:var(--header-h)}
.menu-overlay.is-open{opacity:1;visibility:visible;transform:none}
.menu-overlay-inner{height:100%;padding:10vh 8vw 7vh;display:flex;flex-direction:column}
.menu-kicker{font-size:12px;letter-spacing:.25em;opacity:.65;margin:0 0 3vh}
.mobile-nav{display:grid;gap:0}
.mobile-nav a{display:grid;grid-template-columns:42px 1fr auto;align-items:baseline;border-top:1px solid rgba(255,255,255,.35);padding:2.2vh 0;font-size:clamp(25px,7vw,54px);letter-spacing:.04em;font-weight:800}
.mobile-nav a:last-child{border-bottom:1px solid rgba(255,255,255,.35)}
.mobile-nav a span{font-size:11px;font-weight:400;opacity:.55}
.mobile-nav a small{font-size:12px;font-weight:400;opacity:.72;letter-spacing:.04em}
.menu-message{margin:auto 0 0;font-weight:700;letter-spacing:.08em;opacity:.78}

.hero{position:relative;overflow:hidden;padding-top:var(--header-h);height:100svh;min-height:720px;background:#fbfbfb;border-bottom:14px solid var(--omega-red)}
.hero-track{position:absolute;inset:var(--header-h) 0 0 0;height:calc(100% - var(--header-h));display:flex;will-change:transform}
.hero.is-paused .hero-track{animation-play-state:paused}
.cycle-two{width:200vw;animation:loop2 21s linear infinite}
.cycle-three{width:300vw;animation:loop3 52s linear infinite}
.hero-copy-track{z-index:8;animation-duration:21s}
.hero-video-track{z-index:5;animation-duration:52s}
.hero-still-track-top{z-index:4;animation-duration:110s}
.hero-still-track-bottom{z-index:4;animation-duration:95s}
@keyframes loop2{from{transform:translateX(0)}to{transform:translateX(-100vw)}}
@keyframes loop3{from{transform:translateX(0)}to{transform:translateX(-200vw)}}
@keyframes loopY2{from{transform:translateY(0)}to{transform:translateY(calc(0px - var(--mobile-stage)))}}
@keyframes loopY3{from{transform:translateY(0)}to{transform:translateY(calc(0px - var(--mobile-stage) - var(--mobile-stage)))}}
.hero-panel{position:relative;flex:0 0 100vw;height:100%}

.hero-copy{position:absolute;left:8vw;top:48%;transform:translateY(-50%);display:flex;align-items:baseline;gap:2vw;white-space:nowrap;color:#c1c1c1;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .45s ease,visibility .45s ease}
.hero-copy.is-active{opacity:1;visibility:visible}
.hero-copy .phrase{font-size:clamp(48px,5.4vw,98px);font-weight:800;letter-spacing:-.06em}
.hero-copy .company{font-size:clamp(84px,9.6vw,172px);font-weight:950;letter-spacing:-.07em}
.hero-copy.copy-b .phrase{font-size:clamp(42px,4.85vw,86px)}

.visual{position:absolute;margin:0}
.visual img,.visual video{width:100%;height:100%;display:block}
.visual video{object-fit:cover}
.visual img{object-fit:contain}
.still{filter:drop-shadow(0 15px 16px rgba(0,0,0,.10));animation:float 6.5s ease-in-out infinite alternate}
.still img{
  width:100%;
  height:auto;
  display:block;
  transform:translateZ(0) scale(var(--still-scale-min,.94));
  transform-origin:center center;
  will-change:transform;
  animation:still-scale var(--still-scale-speed,12s) ease-in-out var(--still-scale-delay,0s) infinite;
}
@keyframes still-scale{
  0%,100%{transform:translateZ(0) scale(var(--still-scale-min,.94))}
  50%{transform:translateZ(0) scale(var(--still-scale-max,1.08))}
}
.hero.is-paused .still img{animation-play-state:paused}

/* v164 TOP first view：外観写真をカード表示に変更（切り抜きではなく全面写真） */
.still-photo{
  overflow:hidden;
  border-radius:22px;
  background:#e6e6e6;
  filter:none;
  box-shadow:0 18px 32px rgba(0,0,0,.18);
}
.still-photo::after{
  content:"";
  position:absolute;
  inset:0;
  border:1px solid rgba(255,255,255,.32);
  border-radius:inherit;
  pointer-events:none;
}
.still-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

/* v164：外観写真を見せやすいように一部のサイズを調整 */
.machine-p{left:24vw;top:2.5%;width:min(11.2vw,178px);animation-delay:-1.6s}
.pancake{left:73vw;top:6.2%;width:min(16vw,250px);animation-delay:-1.8s}
.machine-s{left:8vw;bottom:2.8%;width:min(11.4vw,182px);animation-delay:-3s}
.yakiniku{left:46vw;bottom:1.8%;width:min(20.5vw,320px);animation-delay:-3.4s}
.store-black{left:56vw;bottom:6.2%;width:min(18vw,285px);animation-delay:-2.4s}



/* v165 TOP first view refresh */
.ramen.still-photo,.coffee.still-photo,.hotpot.still-photo,.store-black.still-photo{
  overflow:hidden;
  border-radius:22px;
  background:#e6e6e6;
  filter:none;
  box-shadow:0 18px 32px rgba(0,0,0,.18);
}
.ramen.still-photo::after,.coffee.still-photo::after,.hotpot.still-photo::after,.store-black.still-photo::after{
  content:"";
  position:absolute;
  inset:0;
  border:1px solid rgba(255,255,255,.32);
  border-radius:inherit;
  pointer-events:none;
}
.ramen.still-photo img,.coffee.still-photo img,.hotpot.still-photo img,.store-black.still-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 72%;
  display:block;
}

/* broaden a few slots now used as building photos */
.ramen{width:min(17vw,268px); left:45.5vw; top:4.8%; animation-delay:-2s;}
.coffee{left:14vw; bottom:3.8%; width:min(14vw,220px); animation-delay:-7s;}
.store-black{left:54.5vw; bottom:4.8%; width:min(22vw,345px); animation-delay:-2.4s;}

/* FIRST VIEW static-image scale variation: each item breathes at a different tempo. */
.store-wood{--still-scale-min:.95;--still-scale-max:1.07;--still-scale-speed:13s;--still-scale-delay:-3s}
.machine-p{--still-scale-min:.93;--still-scale-max:1.10;--still-scale-speed:9s;--still-scale-delay:-5s}
.ramen{--still-scale-min:.94;--still-scale-max:1.09;--still-scale-speed:12s;--still-scale-delay:-2s}
.udon{--still-scale-min:.95;--still-scale-max:1.08;--still-scale-speed:11s;--still-scale-delay:-6s}
.hotpot{--still-scale-min:.94;--still-scale-max:1.09;--still-scale-speed:14s;--still-scale-delay:-4s}
.pancake{--still-scale-min:.95;--still-scale-max:1.08;--still-scale-speed:10s;--still-scale-delay:-1s}
.coffee{--still-scale-min:.94;--still-scale-max:1.09;--still-scale-speed:12.5s;--still-scale-delay:-7s}
.yakiniku{--still-scale-min:.93;--still-scale-max:1.10;--still-scale-speed:15s;--still-scale-delay:-3s}
.machine-s{--still-scale-min:.93;--still-scale-max:1.10;--still-scale-speed:9.5s;--still-scale-delay:-5.5s}
.store-black{--still-scale-min:.95;--still-scale-max:1.07;--still-scale-speed:13.5s;--still-scale-delay:-8s}
@keyframes float{from{transform:translateY(-4px) rotate(-.5deg)}to{transform:translateY(7px) rotate(.6deg)}}

.visual-video{border-radius:20px;overflow:hidden;box-shadow:0 18px 28px rgba(0,0,0,.18);background:#111;isolation:isolate}
.visual-video::after{content:"";position:absolute;inset:0;border:1px solid rgba(255,255,255,.08);border-radius:inherit;pointer-events:none}
.visual-video figcaption,.visual-video > figcaption{position:absolute;left:14px;bottom:14px;background:rgba(0,0,0,.62);color:#fff;font-size:10px;letter-spacing:.18em;border-radius:999px;padding:6px 10px;backdrop-filter:blur(8px)}
/* v233: poster-first video loading. Poster is shown until the lazy-loaded MP4 has a frame. */
.visual-video video{background:#111}
/* v223: hide VIDEO label text while keeping video behavior unchanged */
.visual-video figcaption,.visual-video > figcaption{display:none}

/* video positions */
.visual-sports{left:9vw;top:10%;width:22.5vw;max-width:380px;aspect-ratio:1.58}
.visual-building{left:30vw;bottom:8%;width:16.5vw;max-width:275px;aspect-ratio:.96}
.visual-omega-logo{left:50vw;bottom:10%;width:22.5vw;max-width:380px;aspect-ratio:16/9}

/* upper stills: middle copy areaを空ける */
.store-wood{left:51vw;top:5.6%;width:min(19vw,300px);animation-delay:-2.1s}
.machine-p{left:24vw;top:2.5%;width:min(11.2vw,178px);animation-delay:-1.6s}
.ramen{left:79vw;top:4.4%;width:min(14vw,220px);animation-delay:-0.8s}
.udon{left:4vw;top:7.4%;width:min(15vw,235px);animation-delay:-1.1s}
.hotpot{left:29vw;top:3.1%;width:min(17vw,265px);animation-delay:-2.7s}
.pancake{left:73vw;top:6.2%;width:min(16vw,250px);animation-delay:-1.8s}

/* lower stills: middle copy areaを空ける */
.coffee{left:10vw;bottom:4.8%;width:min(14vw,220px);animation-delay:-2.8s}
.yakiniku{left:46vw;bottom:1.8%;width:min(20.5vw,320px);animation-delay:-3.4s}
.machine-s{left:8vw;bottom:2.8%;width:min(11.4vw,182px);animation-delay:-3s}
.store-black{left:56vw;bottom:6.2%;width:min(18vw,285px);animation-delay:-2.4s}

.prototype-controls{position:absolute;z-index:15;right:24px;bottom:22px;display:flex;align-items:center;gap:7px;background:rgba(255,255,255,.92);border:1px solid #ddd;border-radius:999px;padding:7px 9px 7px 13px;box-shadow:0 6px 25px rgba(0,0,0,.09)}
.prototype-controls>span{font-size:10px;letter-spacing:.12em;color:#777;margin-right:3px}
.prototype-controls button{height:30px;min-width:30px;border-radius:999px;border:1px solid #bbb;background:#fff;cursor:pointer;font-size:11px;font-weight:800}
.prototype-controls button.active{background:var(--omega-red);border-color:var(--omega-red);color:#fff}
.prototype-controls .pause-button{padding:0 11px;font-weight:600}
.speed-guide{position:absolute;z-index:12;right:24px;bottom:72px;display:flex;gap:12px;align-items:center;font-size:10px;letter-spacing:.12em;color:#8b8b8b;background:rgba(255,255,255,.68);padding:8px 12px;border-radius:999px;border:1px solid rgba(0,0,0,.08)}
.scroll-guide{position:absolute;z-index:10;left:25px;bottom:22px;display:flex;gap:8px;align-items:center;color:#888;font-size:9px;letter-spacing:.2em;transform:rotate(90deg);transform-origin:left bottom}
.scroll-guide i{display:block;width:42px;height:1px;background:#aaa;position:relative;overflow:hidden}
.scroll-guide i::after{content:"";position:absolute;inset:0;background:#111;transform:translateX(-100%);animation:scroll-line 1.8s ease-in-out infinite}
@keyframes scroll-line{50%,100%{transform:translateX(100%)}}


@media (min-width: 981px){
  /* PCヘッダー：社名位置を固定し、可変コピーは社名の直前で右端を揃える */
  .brand-mark{margin-right:14px}
  .brand-tagline-wrap{
    flex:0 0 185px;
    width:185px;
    margin-right:10px;
    overflow:visible;
  }
  .brand-tagline{
    width:100%;
    font-size:clamp(13px,1.05vw,17px);
    letter-spacing:.035em;
    text-align:right;
  }
  .brand-tagline.is-short{
    letter-spacing:.22em;
  }
  .brand-name{
    flex:0 0 auto;
  }
}

@media (max-width: 980px){
  :root{--header-h:68px}
  .site-header{padding:0 16px}
  .brand-mark{width:38px;height:38px;margin-right:5px}
  .brand-tagline-wrap{
    flex:0 0 126px;
    width:126px;
    margin-right:6px;
    overflow:visible;
  }
  .brand-tagline{
    width:100%;
    font-size:11.5px;
    justify-content:flex-end;
    text-align:right;
    letter-spacing:.01em;
  }
  .brand-tagline.is-short{letter-spacing:.14em}
  .brand-name{font-size:21px;flex:0 0 auto}
  .desktop-nav{display:none}
  .menu-button{display:block}

  /* SP ONLY：PCの横ループは触らず、スマホだけ下→上へ流す */
  .hero{
    --mobile-stage:calc(112svh - var(--header-h));
    height:112svh;
    min-height:760px;
    padding-top:var(--header-h);
    border-bottom-width:10px;
  }
  .hero-track{
    top:var(--header-h);right:0;bottom:auto;left:0;
    width:100%;height:auto;
    display:flex;flex-direction:column;
    will-change:transform;
  }
  .hero-panel{
    flex:0 0 var(--mobile-stage);
    width:100%;height:var(--mobile-stage);
  }
  .cycle-two{
    width:100%;height:auto;
    animation-name:loopY2;
    animation-duration:21s;
  }
  .cycle-three{
    width:100%;height:auto;
    animation-name:loopY3;
  }
  .hero-copy-track{animation-duration:21s}
  .hero-video-track{animation-duration:50s}
  .hero-still-track-top{animation-duration:110s}
  .hero-still-track-bottom{animation-duration:98s}

  /* コピーはスマホ専用に「1行の文字列を回転」する見せ方へ */
  .hero-copy{
    left:24vw; top:8%;
    width:max-content;
    display:inline-flex;
    align-items:baseline;
    gap:4.2vw;
    white-space:nowrap;
    transform:rotate(90deg);
    transform-origin:left top;
  }
  .hero-copy .phrase{
    display:inline-block;
    max-width:none;
    font-size:clamp(40px,10vw,68px);
    line-height:1;
    letter-spacing:-.06em;
  }
  .hero-copy .company{
    position:static;
    writing-mode:horizontal-tb;
    font-size:clamp(82px,19vw,138px);
    line-height:.92;
    opacity:1;
    letter-spacing:-.075em;
  }
  .hero-copy.copy-b .phrase{
    font-size:clamp(34px,8.5vw,58px);
    line-height:1;
  }

  /* 動画：縦一列ではなく左右に振る */
  .visual-sports{left:7vw;top:7%;width:48vw;max-width:none}
  .visual-building{left:53vw;bottom:8%;width:34vw;max-width:none}
  .visual-omega-logo{left:48vw;bottom:15%;width:40vw;max-width:none}

  /* 静止画：縦方向でもジグザグ。中央コピー付近は少し空ける */
  .store-wood{left:54vw;top:6%;width:36vw;max-width:none}
  .machine-p{left:8vw;top:12%;width:23vw;max-width:none}
  .ramen{left:68vw;top:24%;width:27vw;max-width:none}

  .udon{left:5vw;top:8%;width:30vw;max-width:none}
  .hotpot{left:49vw;top:15%;width:36vw;max-width:none}
  .pancake{left:9vw;top:25%;width:29vw;max-width:none}

  .coffee{left:8vw;bottom:12%;width:29vw;max-width:none}
  .yakiniku{left:48vw;bottom:3%;width:48vw;max-width:none}
  .machine-s{left:13vw;bottom:24%;width:18vw;max-width:none}
  .store-black{left:50vw;bottom:17%;width:40vw;max-width:none}

  .prototype-controls{right:12px;bottom:12px;gap:4px;padding:6px}
  .prototype-controls>span{display:none}
  .prototype-controls .pause-button{padding:0 9px}
  .speed-guide{display:none}
  .scroll-guide{display:none}
}

@media (max-width: 520px){
  .brand-mark{margin-right:4px}
  .brand-tagline-wrap{
    flex:0 0 104px;
    width:104px;
    margin-right:5px;
  }
  .brand-tagline{
    font-size:10.5px;
    justify-content:flex-end;
    text-align:right;
    letter-spacing:0;
  }
  .brand-tagline.is-short{letter-spacing:.12em}
  .brand-name{font-size:19px;flex:0 0 auto}
  .menu-overlay-inner{padding-top:7vh}
  .mobile-nav a{grid-template-columns:30px 1fr;gap:2px;padding:2.6vh 0}
  .mobile-nav a small{grid-column:2;font-size:11px;margin-top:4px}

  .hero{
    --mobile-stage:calc(118svh - var(--header-h));
    height:118svh;
    min-height:760px;
  }
  .hero-copy{left:34vw;top:8%}
  .hero-copy .phrase{font-size:clamp(38px,10vw,58px);max-width:none}
  .hero-copy .company{font-size:clamp(78px,20vw,124px)}

  .visual-sports{left:5vw;top:7%;width:52vw}
  .visual-building{left:55vw;bottom:9%;width:37vw}
  .visual-omega-logo{left:46vw;bottom:15%;width:42vw}

  .store-wood{left:53vw;top:6%;width:40vw}
  .machine-p{left:6vw;top:12%;width:24vw}
  .ramen{left:68vw;top:25%;width:29vw}
  .udon{left:3vw;top:8%;width:33vw}
  .hotpot{left:48vw;top:16%;width:39vw}
  .pancake{left:7vw;top:26%;width:31vw}

  .coffee{left:6vw;bottom:12%;width:31vw}
  .yakiniku{left:47vw;bottom:4%;width:43vw}
  .machine-s{left:10vw;bottom:25%;width:20vw}
  .store-black{left:53vw;bottom:19%;width:37vw}
}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .hero-track{transform:none!important}
}

/* =========================================================
   PEOPLE & PLACE
   Desktop: one-screen mosaic / Mobile: stacked mosaic
   ========================================================= */
.sr-only{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
.people-place{
  --pp-gap:6px;
  position:relative;
  overflow:hidden;
  padding:6px 0 26px;
  background:#f6f6f5;
}
.people-mosaic{
  position:relative;
  display:grid;
  grid-auto-flow:row dense;
  width:100%;
  max-width:1920px;
  margin:0 auto;
  padding:0 6px;
  gap:var(--pp-gap);
  background:#fff;
}
.people-tile{
  position:relative;
  min-width:0;
  min-height:0;
  margin:0;
  overflow:hidden;
  background:#eee;
}
.people-tile img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  transition:transform .7s cubic-bezier(.2,.65,.3,1);
}
.people-tile:hover img{transform:scale(1.025)}
.people-copy{
  position:relative;
  z-index:3;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  min-width:0;
  min-height:0;
  padding:8% 14% 8% 10%;
  overflow:hidden;
  background:#fff;
}
.people-kicker{
  position:absolute;
  top:50%;
  right:4.2%;
  margin:0;
  transform:translateY(-50%) rotate(-90deg);
  transform-origin:center;
  color:var(--omega-red);
  font-size:10px;
  font-weight:800;
  letter-spacing:.28em;
  white-space:nowrap;
}
.people-maincopy{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:.03em;
  color:#242424;
  font-weight:800;
  line-height:1.05;
  letter-spacing:.01em;
}
.people-maincopy span{
  display:block;
  font-size:clamp(34px,3.2vw,62px);
  white-space:nowrap;
}
.people-maincopy strong{
  display:block;
  margin-top:.16em;
  font-size:clamp(52px,5.2vw,94px);
  line-height:.98;
  letter-spacing:.02em;
  white-space:nowrap;
}

/* Crop tuning for the current provisional photo set. */
.pp06 img{object-position:center 35%}
.pp07 img{object-position:center 36%}
.pp08 img{object-position:center 28%}
.pp09 img{object-position:center 42%}
.pp11 img{object-position:center 54%}
.pp12 img{object-position:center 55%}
.pp13 img{object-position:center 50%}
.pp14 img{object-position:center 52%}
.pp16 img{object-position:center 35%}
.pp17 img{object-position:center 37%}
.pp19 img,.pp20 img,.pp21 img,.pp22 img,.pp23 img,.pp24 img,.pp25 img,.pp27 img,.pp29 img,.pp30 img,.pp31 img{object-position:center 22%}

@media (min-width:981px){
  .people-place{padding:6px 0 24px}
  .people-mosaic{
    grid-template-columns:repeat(10,minmax(0,1fr));
    grid-template-rows:repeat(6,minmax(0,1fr));
    aspect-ratio:10 / 6;
  }
  .people-tile{grid-column:span 1;grid-row:span 1}

  /* Four large 2x2 squares. */
  .pp09{grid-column:1 / 3;grid-row:1 / 3}
  .pp11{grid-column:9 / 11;grid-row:1 / 3}
  .pp12{grid-column:1 / 3;grid-row:5 / 7}
  .pp13{grid-column:9 / 11;grid-row:5 / 7}

  /* Central copy: fixed white block. */
  .people-copy{grid-column:3 / 9;grid-row:2 / 5}
}

@media (max-width:980px){
  .people-place{
    --pp-gap:6px;
    padding:6px 0 26px;
  }
  .people-mosaic{
    grid-template-columns:repeat(4,minmax(0,1fr));
    grid-auto-rows:calc((100vw - 30px) / 4);
    padding:0 6px;
  }
  .people-tile{grid-column:span 1;grid-row:span 1}
  .pp09,.pp11,.pp12,.pp13{grid-column:span 2;grid-row:span 2}
  .people-copy{
    grid-column:1 / -1;
    grid-row:span 2;
    min-height:calc(((100vw - 30px) / 4) * 2 + 6px);
    padding:9% 12% 9% 7%;
  }
  .people-kicker{
    right:4%;
    font-size:9px;
  }
  .people-maincopy span{font-size:clamp(30px,7.6vw,46px)}
  .people-maincopy strong{font-size:clamp(42px,11vw,68px)}
}

@media (max-width:520px){
  .people-mosaic{grid-auto-rows:calc((100vw - 30px) / 4)}
  .people-copy{padding:8% 13% 8% 6%}
  .people-kicker{right:3.5%;font-size:8px}
  .people-maincopy span{font-size:clamp(23px,6.8vw,34px)}
  .people-maincopy strong{font-size:clamp(34px,9.6vw,48px)}
}

/* v195: スマホ PEOPLE & PLACE は上２枚を大、次の４枚を横一列の小タイルに。
   PC表示とファーストビューは変更しない。元写真は加工せずCSS表示のみ変更。 */
@media (max-width:600px){
  .people-mosaic > .pp06,
  .people-mosaic > .pp07,
  .people-mosaic > .pp18,
  .people-mosaic > .pp27,
  .people-mosaic > .pp28,
  .people-mosaic > .pp03,
  .people-mosaic > .pp20,
  .people-mosaic > .pp05,
  .people-mosaic > .pp31,
  .people-mosaic > .pp23,
  .people-mosaic > .pp25,
  .people-mosaic > .pp29,
  .people-mosaic > .pp10{display:none}

  /* 上段：２枚を正方形の大タイルで維持 */
  .people-mosaic > .pp09{grid-column:1 / 3;grid-row:1 / 3}
  .people-mosaic > .pp01{grid-column:3 / 5;grid-row:1 / 3}

  /* その下：人物・店舗・料理の４枚を同じ高さで横並び */
  .people-mosaic > .pp21{grid-column:1;grid-row:3}
  .people-mosaic > .pp15{grid-column:2;grid-row:3}
  .people-mosaic > .pp19{grid-column:3;grid-row:3}
  .people-mosaic > .pp11{grid-column:4;grid-row:3}
  .people-mosaic > .people-copy{grid-column:1 / 5;grid-row:4 / 6}

  /* 下段：前版で承認済みの11枚を維持し、１行上へ詰める */
  .people-mosaic > .pp22{grid-column:1 / 3;grid-row:6 / 8}
  .people-mosaic > .pp02{grid-column:3;grid-row:6}
  .people-mosaic > .pp08{grid-column:4;grid-row:6}
  .people-mosaic > .pp14{grid-column:3;grid-row:7}
  .people-mosaic > .pp16{grid-column:4;grid-row:7}
  .people-mosaic > .pp12{grid-column:1 / 3;grid-row:8 / 10}
  .people-mosaic > .pp13{grid-column:3 / 5;grid-row:8 / 10}
  .people-mosaic > .pp17{grid-column:1;grid-row:10}
  .people-mosaic > .pp24{grid-column:2;grid-row:10}
  .people-mosaic > .pp04{grid-column:3;grid-row:10}
  .people-mosaic > .pp30{grid-column:4;grid-row:10}
}

/* =========================================================
   OUR BUSINESS
   ========================================================= */
.our-business{
  --business-red:#d90000;
  position:relative;
  min-height:clamp(220px,15vw,285px);
  overflow:hidden;
  isolation:isolate;
  background:var(--business-red);
}
.business-photo,.business-red-overlay,.business-diagonal{
  position:absolute;
  inset:0;
  pointer-events:none;
}
.business-photo{
  z-index:0;
  background-position:center;
  background-size:cover;
  opacity:0;
  transform:scale(1.025);
  transition:opacity .42s ease,transform .8s cubic-bezier(.2,.65,.3,1);
}
.business-photo-amusement{background-image:url("assets/business/amusement.webp")}
.business-photo-food{background-image:url("assets/business/food.webp")}
.business-red-overlay{
  z-index:1;
  background:rgba(208,0,0,.72);
  transition:background .35s ease;
}
.business-diagonal{
  z-index:2;
  opacity:.9;
  background:linear-gradient(132deg,transparent 0 20%,rgba(115,0,0,.22) 20% 31%,transparent 31% 48%,rgba(115,0,0,.20) 48% 58%,transparent 58% 100%);
}
.business-inner{
  position:relative;
  z-index:3;
  display:grid;
  width:min(100%,1920px);
  min-height:inherit;
  margin:0 auto;
  padding:34px clamp(32px,4.3vw,84px);
  grid-template-columns:auto minmax(420px,1fr);
  grid-template-rows:1fr auto;
  align-items:center;
  column-gap:clamp(44px,5vw,96px);
}
.our-business h2{
  grid-column:1;
  grid-row:1;
  margin:0;
  color:#fff;
  font-size:clamp(38px,3.35vw,64px);
  line-height:1;
  letter-spacing:-.045em;
  white-space:nowrap;
}
.business-links{
  grid-column:2;
  grid-row:1;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:clamp(10px,1.15vw,20px);
}
.business-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:clamp(200px,17vw,310px);
  min-height:clamp(50px,4vw,66px);
  padding:0 24px;
  border:2px solid #fff;
  border-radius:999px;
  background:#fff;
  color:#c80000;
  font-size:clamp(16px,1.3vw,23px);
  font-weight:600;
  letter-spacing:.09em;
  text-decoration:none;
  transition:background .28s ease,color .28s ease,transform .28s ease,box-shadow .28s ease;
}
.business-link:hover,.business-link:focus-visible{
  transform:translateY(-1px);
  box-shadow:0 8px 28px rgba(85,0,0,.16);
  outline:none;
}
.business-brand{
  grid-column:1/-1;
  grid-row:2;
  justify-self:end;
  align-self:end;
  margin:0;
  color:rgba(255,255,255,.29);
  font-size:clamp(13px,1.05vw,19px);
  font-weight:700;
  letter-spacing:.015em;
}
.business-brand strong{font-size:1.45em;font-weight:900;margin-left:.18em}
.our-business[data-active="amusement"] .business-photo-amusement,
.our-business[data-active="food"] .business-photo-food{opacity:.86;transform:scale(1)}
.our-business[data-active] .business-red-overlay{background:rgba(202,0,0,.68)}
.our-business[data-active="amusement"] .business-link[data-business="food"],
.our-business[data-active="food"] .business-link[data-business="amusement"]{background:rgba(170,0,0,.20);color:#fff}
.our-business[data-active="amusement"] .business-link[data-business="amusement"],
.our-business[data-active="food"] .business-link[data-business="food"]{background:#fff;color:#c80000}

@media (min-width:981px){
  .business-diagonal{
    top:0;
    bottom:0;
    left:auto;
    right:-300px;
    width:62%;
    height:100%;
    opacity:.92;
    background:linear-gradient(132deg,transparent 0 28%,rgba(120,0,0,.24) 28% 46%,transparent 46% 54%,rgba(120,0,0,.24) 54% 72%,transparent 72% 100%);
  }
  .business-inner{
    padding:34px clamp(44px,5.4vw,104px);
    grid-template-columns:auto minmax(500px,1fr);
    column-gap:clamp(56px,5.8vw,112px);
  }
  .business-brand{
    position:absolute;
    right:0;
    bottom:clamp(24px,2vw,38px);
    margin:0;
    font-size:clamp(13px,1.03vw,18px);
    letter-spacing:.02em;
    justify-self:auto;
    align-self:auto;
    white-space:nowrap;
  }
}

@media (max-width:980px){
  .our-business{min-height:auto}
  .business-inner{
    padding:34px 22px 30px;
    grid-template-columns:1fr;
    grid-template-rows:auto auto auto;
    row-gap:24px;
  }
  .our-business h2{grid-column:1;grid-row:1;font-size:clamp(34px,8.7vw,54px)}
  .business-links{grid-column:1;grid-row:2;width:100%;gap:10px}
  .business-link{flex:1;width:auto;min-width:0;min-height:52px;padding:0 12px;font-size:clamp(14px,3.8vw,18px)}
  .business-brand{grid-column:1;grid-row:3;font-size:12px}
  .business-photo{display:none}
  .business-red-overlay{background:rgba(208,0,0,.12)}
}

/* =========================================================
   NEWS
   ========================================================= */
.news-section{
  background:#fff;
  color:#171717;
  padding:clamp(74px,7.4vw,132px) clamp(34px,6vw,116px) clamp(82px,7.6vw,138px);
  border-top:1px solid #ececec;
}
.news-inner{
  width:min(100%,1720px);
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(220px,30%) minmax(0,1fr);
  column-gap:clamp(74px,8vw,154px);
  align-items:start;
}
.news-heading{
  position:sticky;
  top:calc(var(--header-h) + 34px);
  align-self:start;
}
.news-kicker{
  margin:0 0 12px;
  color:var(--omega-red);
  font-size:10px;
  font-weight:800;
  letter-spacing:.26em;
}
.news-heading h2{
  margin:0;
  font-size:clamp(58px,6.2vw,118px);
  line-height:.82;
  letter-spacing:-.065em;
  font-weight:900;
}
.news-view-all{
  display:inline-flex;
  align-items:center;
  gap:14px;
  margin-top:clamp(38px,4.2vw,72px);
  font-size:12px;
  font-weight:700;
  letter-spacing:.16em;
  padding-bottom:7px;
  border-bottom:1px solid #222;
  transition:color .25s ease,border-color .25s ease;
}
.news-view-all span{
  font-size:15px;
  transform:translateY(-1px);
}
.news-view-all:hover,
.news-view-all:focus-visible{
  color:var(--omega-red);
  border-color:var(--omega-red);
  outline:none;
}
.news-list{
  border-top:1px solid #cfcfcf;
}
.news-item{
  min-height:clamp(116px,8.4vw,156px);
  display:grid;
  grid-template-columns:clamp(96px,8vw,132px) clamp(112px,10vw,162px) minmax(0,1fr) 86px;
  gap:clamp(20px,2.2vw,42px);
  align-items:center;
  border-bottom:1px solid #d8d8d8;
  position:relative;
  overflow:hidden;
}
.news-item::before{
  content:"";
  position:absolute;
  inset:0;
  background:#fafafa;
  transform:translateX(-101%);
  transition:transform .42s cubic-bezier(.2,.68,.25,1);
  z-index:0;
}
.news-item > *{position:relative;z-index:1}
.news-item time{
  color:#666;
  font-size:12px;
  letter-spacing:.08em;
  white-space:nowrap;
}
.news-category{
  justify-self:start;
  min-width:104px;
  padding:7px 11px 6px;
  border:1px solid #cfcfcf;
  border-radius:999px;
  color:#6f6f6f;
  font-size:10px;
  font-weight:700;
  letter-spacing:.13em;
  text-align:center;
  transition:border-color .3s ease,color .3s ease;
}
.news-title{
  font-size:clamp(15px,1.08vw,19px);
  line-height:1.7;
  font-weight:600;
  letter-spacing:.015em;
  transition:transform .35s ease,color .3s ease;
}
.news-arrow{
  justify-self:end;
  width:72px;
  display:flex;
  align-items:center;
  gap:10px;
}
.news-arrow i{
  display:block;
  width:34px;
  height:1px;
  background:#bcbcbc;
  transform-origin:right center;
  transition:width .35s ease,background .3s ease;
}
.news-arrow b{
  font-size:16px;
  line-height:1;
  font-weight:500;
  transition:transform .35s ease,color .3s ease;
}
.news-item:hover::before,
.news-item:focus-visible::before{transform:translateX(0)}
.news-item:hover .news-title,
.news-item:focus-visible .news-title{
  transform:translateX(8px);
  color:var(--omega-red);
}
.news-item:hover .news-category,
.news-item:focus-visible .news-category{
  color:var(--omega-red);
  border-color:rgba(143,15,24,.45);
}
.news-item:hover .news-arrow i,
.news-item:focus-visible .news-arrow i{
  width:48px;
  background:var(--omega-red);
}
.news-item:hover .news-arrow b,
.news-item:focus-visible .news-arrow b{
  transform:translate(2px,-2px);
  color:var(--omega-red);
}
.news-item:focus-visible{outline:2px solid rgba(143,15,24,.25);outline-offset:-2px}

@media(max-width:980px){
  .news-section{padding:64px 22px 72px}
  .news-inner{grid-template-columns:1fr;row-gap:42px}
  .news-heading{position:static}
  .news-heading h2{font-size:clamp(52px,15vw,92px)}
  .news-view-all{margin-top:28px}
  .news-item{
    min-height:0;
    padding:24px 0 26px;
    grid-template-columns:auto 1fr 38px;
    grid-template-rows:auto auto;
    column-gap:14px;
    row-gap:12px;
  }
  .news-item time{grid-column:1;grid-row:1}
  .news-category{grid-column:2;grid-row:1;justify-self:start;min-width:0;padding:5px 9px}
  .news-title{grid-column:1/3;grid-row:2;font-size:15px;line-height:1.65}
  .news-arrow{grid-column:3;grid-row:1/3;width:38px;justify-self:end}
  .news-arrow i{display:none}
}

/* =========================================================
   MORE ABOUT DAIICHI BUSSAN
   ========================================================= */
.more-about{
  --more-red:#d90000;
  position:relative;
  overflow:hidden;
  isolation:isolate;
  padding:clamp(76px,6.5vw,118px) clamp(38px,6vw,116px) clamp(84px,7vw,128px);
  background:var(--more-red);
  color:#fff;
}
.more-about::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-2;
  background:linear-gradient(132deg,transparent 0 9%,rgba(108,0,0,.34) 9% 28%,transparent 28% 43%,rgba(108,0,0,.28) 43% 64%,transparent 64% 100%);
}
.more-about::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(90deg,rgba(217,0,0,.08),rgba(217,0,0,.34));
  pointer-events:none;
}
.more-about-inner{position:relative;z-index:2;width:min(100%,1460px);margin:0 auto}
.more-about-kicker{margin:0 0 10px;color:rgba(255,255,255,.72);font-size:10px;font-weight:800;letter-spacing:.28em}
.more-about h2{margin:0 0 clamp(44px,4.2vw,70px);font-size:clamp(42px,4vw,72px);line-height:1.08;letter-spacing:-.045em;font-weight:900}
.more-about-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(26px,3.2vw,56px);align-items:start}
.more-card{display:block;min-width:0;color:#fff}
.more-card-image{position:relative;margin:0;overflow:hidden;aspect-ratio:1/1;background:#870000}
.more-card-image::after{content:"";position:absolute;inset:0;background:rgba(109,0,0,.16);transition:background .45s ease;pointer-events:none}
.more-card-image img{display:block;width:100%;height:100%;object-fit:cover;filter:brightness(.78) saturate(.82);transform:scale(1.01);transition:transform .65s cubic-bezier(.2,.65,.3,1),filter .5s ease}
.more-card:nth-child(1) .more-card-image img{object-position:center center}
.more-card:nth-child(2) .more-card-image img{object-position:center center}
.more-card:nth-child(3) .more-card-image img{object-position:center 20%}
.more-card-body{position:relative;padding:22px 46px 0 0}
.more-card-en{display:inline-block;margin:0 0 14px;padding-bottom:4px;border-bottom:1px solid rgba(255,255,255,.82);font-size:clamp(16px,1.35vw,22px);font-weight:700;letter-spacing:.02em}
.more-card h3{margin:0;font-size:clamp(23px,2vw,34px);line-height:1.32;letter-spacing:.015em;font-weight:800}
.more-card-arrow{position:absolute;right:2px;top:22px;font-size:21px;opacity:.68;transition:transform .35s ease,opacity .35s ease}
.more-card:hover .more-card-image img,.more-card:focus-visible .more-card-image img{transform:scale(1.045);filter:brightness(.98) saturate(1)}
.more-card:hover .more-card-image::after,.more-card:focus-visible .more-card-image::after{background:rgba(109,0,0,0)}
.more-card:hover .more-card-arrow,.more-card:focus-visible .more-card-arrow{transform:translate(4px,-4px);opacity:1}
.more-card:focus-visible{outline:2px solid rgba(255,255,255,.65);outline-offset:8px}
.more-about-brand{position:absolute;z-index:3;right:60px;bottom:clamp(24px,2vw,38px);margin:0;color:rgba(255,255,255,.29);font-size:clamp(13px,1.03vw,18px);font-weight:700;letter-spacing:.02em;white-space:nowrap}
.more-about-brand strong{font-size:1.45em;font-weight:900;margin-left:.18em}

@media (max-width:980px){
  .more-about{padding:66px 22px 78px}
  .more-about h2{font-size:clamp(36px,9.5vw,58px);margin-bottom:38px}
  .more-about-cards{grid-template-columns:1fr;gap:42px}
  .more-card{display:grid;grid-template-columns:minmax(132px,42vw) minmax(0,1fr);gap:20px;align-items:center}
  .more-card-image{aspect-ratio:1/1}
  .more-card-body{padding:0 32px 0 0}
  .more-card-en{margin-bottom:9px;font-size:14px}
  .more-card h3{font-size:clamp(20px,5.5vw,28px)}
  .more-card-arrow{top:0}
  .more-about-brand{right:22px;bottom:22px;font-size:12px}
}
@media (max-width:520px){
  .more-about{padding:58px 18px 68px}
  .more-about-kicker{font-size:9px;letter-spacing:.2em}
  .more-card{grid-template-columns:42vw minmax(0,1fr);gap:16px}
}

/* =========================================================
   BRANDS
   ========================================================= */
.brands-section{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  padding:clamp(82px,7vw,118px) clamp(36px,6vw,110px) clamp(90px,7.6vw,126px);
  background:#efefef;
  color:#1f1f1f;
}
.brands-section::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:#d90000}
.brands-inner{position:relative;z-index:2;width:min(100%,1460px);margin:0 auto}
.brands-heading{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(0,1.2fr);gap:clamp(20px,3vw,56px);align-items:end;margin-bottom:clamp(30px,3.2vw,46px)}
.brands-kicker{margin:0 0 10px;color:#9d0d12;font-size:11px;font-weight:800;letter-spacing:.24em}
.brands-heading h2{margin:0;font-size:clamp(50px,5vw,78px);line-height:.95;letter-spacing:-.04em;font-weight:900}
.brands-lead{max-width:56ch;margin:0 0 8px;color:#5f5f5f;font-size:clamp(14px,1.25vw,18px);line-height:1.9}
.brands-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(18px,2vw,28px)}
.brand-tile{position:relative;display:flex;flex-direction:column;min-width:0;min-height:270px;padding:20px 20px 22px;border:1px solid #dcdcdc;background:#fff;box-shadow:0 10px 24px rgba(0,0,0,.04)}
.brand-tile::before{content:"";position:absolute;left:0;top:0;width:100%;height:3px;background:transparent}
.brand-tile.is-core::before{background:#d90000}
.brand-category{display:block;margin:0 0 14px;color:#7c7c7c;font-size:10px;font-weight:800;letter-spacing:.22em}
.brand-logo-wrap{flex:1;display:flex;align-items:center;justify-content:center;min-height:138px;padding:12px;border:1px solid #efefef;background:#fafafa}
.brand-logo-wrap img{display:block;max-width:100%;max-height:96px;width:auto;height:auto;object-fit:contain}
.brand-logo-picture{display:flex;align-items:center;justify-content:center;width:100%;height:100%}
.brand-logo-picture img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.brand-logo-wrap-omega img{max-height:64px}
.brand-logo-wrap-nandaimon img{max-height:118px}
.brand-logo-wrap-pancake img{max-height:124px}
.brand-logo-wrap-tenkaippin img{max-height:78px}
.brand-logo-wrap-asp img{max-height:108px}
.brand-logo-wrap-pegopa img{max-height:96px}
.brand-logo-wrap-hanamaru img{max-height:72px}
.brand-logo-wrap-omoni img{max-height:110px}
.brand-name-ja{margin:18px 0 4px;font-size:clamp(18px,1.55vw,24px);line-height:1.35;font-weight:800;letter-spacing:.01em}
.brand-name-ja.small{font-size:clamp(17px,1.35vw,22px)}
.brand-caption{margin:0;color:#6a6a6a;font-size:13px;line-height:1.65}

.brands-office-link-wrap{
  display:flex;
  justify-content:flex-end;
  margin-top:clamp(34px,3.5vw,52px);
}
.brands-office-link{
  position:relative;
  display:grid;
  grid-template-columns:auto auto 22px;
  align-items:center;
  gap:18px;
  min-width:min(100%,430px);
  padding:18px 0 13px;
  border-top:1px solid #a9a9a7;
  border-bottom:1px solid #202020;
  color:#202020;
  text-decoration:none;
  transition:color .25s ease,border-color .25s ease;
}
.brands-office-link-en{
  font-size:9px;
  font-weight:850;
  letter-spacing:.22em;
  white-space:nowrap;
}
.brands-office-link-ja{
  color:#5d5d5d;
  font-size:13px;
  font-weight:700;
  justify-self:end;
  transition:color .25s ease;
}
.brands-office-link b{
  justify-self:end;
  font-size:17px;
  font-weight:400;
  transition:transform .25s ease;
}
.brands-office-link:hover{
  color:var(--omega-red);
  border-top-color:rgba(157,13,18,.45);
  border-bottom-color:var(--omega-red);
}
.brands-office-link:hover .brands-office-link-ja{
  color:var(--omega-red);
}
.brands-office-link:hover b{
  transform:translate(3px,-3px);
}

.brands-diagonal{position:absolute;z-index:1;right:-22px;top:-150px;bottom:-150px;display:flex;gap:28px;pointer-events:none}
.brands-diagonal i{display:block;width:68px;height:100%;background:rgba(115,120,124,.18);transform:skewX(-34deg);transform-origin:center;flex:0 0 68px}

@media (max-width:1100px){
  .brands-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:980px){
  .brands-section{padding:72px 22px 82px}
  .brands-heading{grid-template-columns:1fr;gap:10px}
  .brands-heading h2{font-size:clamp(42px,12vw,64px)}
  .brands-lead{max-width:none;font-size:14px;line-height:1.85}
  .brands-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
  .brand-tile{min-height:228px;padding:18px 16px 18px}
  .brand-logo-wrap{min-height:118px;padding:10px}
  .brand-name-ja{font-size:clamp(17px,4.6vw,22px)}
  .brands-office-link-wrap{margin-top:30px}
  .brands-office-link{min-width:390px}
  .brands-diagonal{display:none}
}
@media (max-width:520px){
  .brands-section{padding:56px 14px 64px}
  .brands-inner{width:100%}
  .brands-heading{gap:8px;margin-bottom:22px}
  .brands-kicker{margin-bottom:8px;font-size:10px;letter-spacing:.22em}
  .brands-heading h2{font-size:clamp(46px,13vw,58px)}
  .brands-lead{font-size:14px;line-height:1.75}
  .brands-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .brand-tile{min-height:0;padding:12px 12px 14px;box-shadow:none}
  .brand-category{margin:0 0 10px;font-size:8.5px;letter-spacing:.2em}
  .brand-logo-wrap{flex:none;min-height:100px;height:100px;padding:8px}
  .brand-logo-picture{width:100%;height:100%}
  .brand-logo-picture img{max-width:92%;max-height:86px}
  .brand-logo-wrap-omega .brand-logo-picture img{max-width:96%;max-height:62px}
  .brand-logo-wrap-nandaimon .brand-logo-picture img{max-width:76%;max-height:88px}
  .brand-logo-wrap-omoni .brand-logo-picture img{max-width:76%;max-height:88px}
  .brand-logo-wrap-pancake .brand-logo-picture img{max-width:82%;max-height:88px}
  .brand-logo-wrap-asp .brand-logo-picture img{max-width:82%;max-height:88px}
  .brand-logo-wrap-pegopa .brand-logo-picture img{max-width:82%;max-height:86px}
  .brand-logo-wrap-tenkaippin .brand-logo-picture img{max-width:92%;max-height:82px}
  .brand-logo-wrap-hanamaru .brand-logo-picture img{max-width:94%;max-height:78px}
  .brand-name-ja{margin:10px 0 4px;font-size:clamp(12px,3.9vw,17px);line-height:1.35}
  .brand-name-ja.small{font-size:clamp(11.5px,3.65vw,15px)}
  .brand-caption{font-size:11px;line-height:1.45}
  .brands-office-link-wrap{justify-content:stretch;margin-top:26px}
  .brands-office-link{
    width:100%;
    min-width:0;
    grid-template-columns:1fr 20px;
    gap:10px;
    padding:15px 0 11px;
  }
  .brands-office-link-en{grid-column:1;font-size:8.5px}
  .brands-office-link-ja{grid-column:1;justify-self:start;font-size:12px}
  .brands-office-link b{grid-column:2;grid-row:1 / span 2;align-self:center}
}

/* =========================================================
   FOOTER
   ========================================================= */
.site-footer{
  position:relative;
  background:#111;
  color:#fff;
  border-top:4px solid var(--omega-red);
  padding:clamp(64px,5.8vw,104px) clamp(36px,6vw,110px) 30px;
}
.footer-inner{
  width:min(100%,1460px);
  margin:0 auto;
}
.footer-top{
  display:grid;
  grid-template-columns:minmax(280px,.78fr) minmax(600px,1.55fr);
  gap:clamp(72px,8vw,150px);
  align-items:start;
}
.footer-brand{
  display:inline-flex;
  align-items:center;
  gap:16px;
}
.footer-brand-mark{
  width:52px;
  height:52px;
  border-radius:50%;
  object-fit:cover;
  flex:0 0 auto;
}
.footer-brand-copy{
  display:flex;
  align-items:baseline;
  gap:8px;
  white-space:nowrap;
}
.footer-brand-copy span{
  color:rgba(255,255,255,.72);
  font-size:clamp(14px,1vw,17px);
  font-weight:700;
  letter-spacing:.05em;
}
.footer-brand-copy strong{
  font-size:clamp(24px,1.9vw,32px);
  font-weight:900;
  letter-spacing:.02em;
}
.footer-message{
  margin:28px 0 0;
  color:rgba(255,255,255,.46);
  font-size:13px;
  line-height:1.9;
  letter-spacing:.04em;
}
.footer-nav{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  column-gap:clamp(32px,3vw,58px);
  row-gap:0;
  border-top:1px solid rgba(255,255,255,.18);
}
.footer-nav a{
  position:relative;
  min-height:105px;
  padding:22px 28px 20px 0;
  border-bottom:1px solid rgba(255,255,255,.18);
  transition:color .28s ease,padding-left .28s ease;
}
.footer-nav a::after{
  content:"↗";
  position:absolute;
  right:2px;
  top:22px;
  color:rgba(255,255,255,.32);
  font-size:16px;
  transition:color .28s ease,transform .28s ease;
}
.footer-nav a span{
  display:block;
  font-size:clamp(16px,1.22vw,20px);
  font-weight:800;
  letter-spacing:.06em;
}
.footer-nav a small{
  display:block;
  margin-top:8px;
  color:rgba(255,255,255,.45);
  font-size:11px;
  letter-spacing:.04em;
}
.footer-nav a:hover,
.footer-nav a:focus-visible{
  color:#fff;
  padding-left:8px;
  outline:none;
}
.footer-nav a:hover::after,
.footer-nav a:focus-visible::after{
  color:var(--omega-red);
  transform:translate(3px,-3px);
}
.footer-divider{
  height:1px;
  margin:clamp(52px,5vw,82px) 0 24px;
  background:rgba(255,255,255,.16);
}
.footer-bottom{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:32px;
}
.footer-utility{
  display:flex;
  flex-wrap:wrap;
  gap:10px 28px;
}
.footer-utility a{
  color:rgba(255,255,255,.55);
  font-size:11px;
  letter-spacing:.03em;
  transition:color .25s ease;
}
.footer-utility a:hover,
.footer-utility a:focus-visible{
  color:#fff;
  outline:none;
}
.footer-copyright{
  margin:0;
  color:rgba(255,255,255,.35);
  font-size:10px;
  letter-spacing:.08em;
  white-space:nowrap;
}

@media(max-width:980px){
  .site-footer{padding:58px 22px 26px}
  .footer-top{grid-template-columns:1fr;gap:48px}
  .footer-nav{grid-template-columns:repeat(2,minmax(0,1fr))}
  .footer-nav a{min-height:92px}
  .footer-bottom{align-items:flex-start;flex-direction:column;gap:26px}
  .footer-copyright{align-self:flex-end}
}

@media(max-width:520px){
  .site-footer{padding:50px 18px 24px}
  .footer-brand-mark{width:46px;height:46px}
  .footer-brand-copy{display:block}
  .footer-brand-copy span{display:block;margin-bottom:2px;font-size:12px}
  .footer-brand-copy strong{font-size:24px}
  .footer-message{margin-top:22px;font-size:12px}
  .footer-nav{grid-template-columns:1fr}
  .footer-nav a{min-height:76px;padding:18px 26px 16px 0}
  .footer-nav a::after{top:18px}
  .footer-divider{margin:44px 0 22px}
  .footer-utility{display:grid;gap:13px}
  .footer-copyright{align-self:flex-start;margin-top:6px}
}

/* v166 TOP first view: keep store entrances/signage visible when cards shrink */
.hero-panel .still-photo img{object-position:center 72%;}
.hero-panel .store-wood.still-photo img,
.hero-panel .machine-p.still-photo img,
.hero-panel .machine-s.still-photo img,
.hero-panel .store-black.still-photo img,
.hero-panel .coffee.still-photo img,
.hero-panel .ramen.still-photo img,
.hero-panel .hotpot.still-photo img{object-position:center 76%;}
@media (max-width: 1023px){
  .hero-panel .still-photo img{object-position:center 75%;}
}
@media (max-width: 767px){
  .hero-panel .still-photo img{object-position:center 78%;}
}


/* v167 TOP first view: no-shrink zoom for store-photo cards */
.still-photo img{
  transform-origin:center 62%;
}
.still-photo.store-wood,
.still-photo.machine-p,
.still-photo.ramen,
.still-photo.udon,
.still-photo.pancake,
.still-photo.coffee,
.still-photo.machine-s,
.still-photo.store-black{
  --still-scale-min:1;
  --still-scale-max:1.06;
}
@media (max-width: 1023px){
  .still-photo.store-wood,
  .still-photo.machine-p,
  .still-photo.ramen,
  .still-photo.udon,
  .still-photo.pancake,
  .still-photo.coffee,
  .still-photo.machine-s,
  .still-photo.store-black{
    --still-scale-max:1.05;
  }
}


/* =========================================================
   v207 TOP FIRST VIEW：鷺山部長指定 9動画＋10静止画
   動画は3画面分＋先頭クローン。1画面通過約28秒。
   ========================================================= */
.cycle-four{width:400vw;animation:loop4 84s linear infinite}
@keyframes loop4{from{transform:translateX(0)}to{transform:translateX(-300vw)}}
@keyframes loopY4{from{transform:translateY(0)}to{transform:translateY(calc(0px - var(--mobile-stage) - var(--mobile-stage) - var(--mobile-stage)))}}
.hero-video-track{animation-duration:84s}

/* video positions / screen A: 店舗→人→食 */
.video-store-collage{left:6vw;top:7%;width:min(18vw,300px);aspect-ratio:1/1}
.video-staff{left:73vw;top:8%;width:min(17vw,285px);aspect-ratio:1/1}
.video-nandaimon{left:53vw;bottom:4%;width:min(25vw,420px);aspect-ratio:16/9}
/* screen B: 地域→採用→食 */
.video-hockey{left:7vw;top:9%;width:min(25vw,420px);aspect-ratio:16/9}
.video-recruit{left:69vw;top:8%;width:min(23vw,385px);aspect-ratio:16/9}
.video-pancake{left:40vw;bottom:4%;width:min(24vw,400px);aspect-ratio:16/9}
/* screen C: エンタメ→麺→未来 */
.video-omega-o{left:7vw;top:8%;width:min(25vw,420px);aspect-ratio:16/9}
.video-noodles{left:74vw;top:5%;width:min(14vw,230px);aspect-ratio:3/4}
.video-building{left:42vw;bottom:4%;width:min(23vw,390px);aspect-ratio:16/9}

/* 透過静止画はカード化せず、素材の輪郭を活かす */
.machine-p img,.hotpot img,.pancake img,.yakiniku img{object-fit:contain}
.machine-p,.hotpot,.pancake,.yakiniku{filter:drop-shadow(0 15px 18px rgba(0,0,0,.14))}
/* 静止画の新素材に合わせた微調整 */
.store-wood img{object-position:center center}
.ramen img{object-position:center center}
.udon img{object-position:center center}
.coffee img{object-position:center center}
.machine-s img{object-position:center 62%}
.store-black img{object-position:center center}

@media (max-width:980px){
  .cycle-four{width:100%;height:auto;animation-name:loopY4;animation-duration:84s}
  .hero-video-track{animation-duration:84s}
  /* screen A */
  .video-store-collage{left:5vw;top:6%;width:42vw;max-width:none}
  .video-staff{left:54vw;top:24%;width:40vw;max-width:none}
  .video-nandaimon{left:9vw;bottom:8%;width:61vw;max-width:none}
  /* screen B */
  .video-hockey{left:5vw;top:7%;width:61vw;max-width:none}
  .video-recruit{left:38vw;top:34%;width:57vw;max-width:none}
  .video-pancake{left:10vw;bottom:8%;width:59vw;max-width:none}
  /* screen C */
  .video-omega-o{left:5vw;top:7%;width:61vw;max-width:none}
  .video-noodles{left:62vw;top:29%;width:30vw;max-width:none}
  .video-building{left:9vw;bottom:8%;width:60vw;max-width:none}
}

@media (max-width:520px){
  .video-store-collage{left:4vw;top:6%;width:44vw}
  .video-staff{left:55vw;top:25%;width:40vw}
  .video-nandaimon{left:7vw;bottom:8%;width:65vw}
  .video-hockey{left:4vw;top:7%;width:65vw}
  .video-recruit{left:40vw;top:35%;width:56vw}
  .video-pancake{left:7vw;bottom:8%;width:63vw}
  .video-omega-o{left:4vw;top:7%;width:65vw}
  .video-noodles{left:64vw;top:30%;width:29vw}
  .video-building{left:7vw;bottom:8%;width:63vw}
}


/* v208 TOP FV tweak: pachinko smaller, omega-o moved down, meat & ramen as cutouts */
.ramen,.coffee{filter:drop-shadow(0 15px 18px rgba(0,0,0,.14))}
.ramen img,.coffee img,.machine-p img,.hotpot img,.pancake img,.yakiniku img{object-fit:contain}
/* desktop */
.ramen{left:80vw;top:4.5%;width:min(13vw,210px);animation-delay:-0.8s}
.pancake{left:73vw;bottom:8%;top:auto;width:min(12vw,190px);animation-delay:-1.8s}
.coffee{left:9vw;bottom:4.2%;width:min(15vw,230px);animation-delay:-2.8s}
.yakiniku{left:46vw;bottom:2%;width:min(10.5vw,165px);animation-delay:-3.4s}
@media (max-width:980px){
  .ramen{left:72vw;top:18%;width:22vw;max-width:none}
  .pancake{left:73vw;bottom:17%;top:auto;width:19vw;max-width:none}
  .coffee{left:5vw;bottom:8%;width:30vw;max-width:none}
  .yakiniku{left:47vw;bottom:4%;width:24vw;max-width:none}
}
@media (max-width:520px){
  .ramen{left:71vw;top:19%;width:23vw}
  .pancake{left:72vw;bottom:18%;top:auto;width:21vw}
  .coffee{left:4vw;bottom:8%;width:32vw}
  .yakiniku{left:48vw;bottom:5%;width:25vw}
}


/* v209 MORE ABOUT: RECRUIT photo replacement */
.more-card:nth-child(3) .more-card-image img{object-position:center 38%}

/* =========================================================
   v216 TOP MESSAGE / TOP NEXT NAV
   ========================================================= */
.people-place-poster{
  width:100%;
  margin:0;
  padding:0;
  background:#c90000;
  overflow:hidden;
}
.people-place-poster img{
  display:block;
  width:100%;
  max-width:none;
  height:auto;
  margin:0;
}

/* TOP下部：他ページと同系統の2分割ナビ */
.top-next-nav{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  background:#f3f3f1;
  border-top:1px solid #ddd;
}
.top-next-card{
  position:relative;
  min-height:250px;
  padding:48px clamp(40px,5vw,90px);
  display:flex;
  align-items:flex-end;
  gap:26px;
  border-right:1px solid #d5d5d5;
  overflow:hidden;
  color:#202020;
  text-decoration:none;
  transition:.35s ease;
}
.top-next-card:last-child{border-right:0}
.top-next-card::before{
  content:"";
  position:absolute;
  inset:0;
  background:var(--omega-red);
  transform:translateY(101%);
  transition:transform .38s cubic-bezier(.2,.7,.25,1);
}
.top-next-card>*{position:relative;z-index:2}
.top-next-card:hover{color:#fff}
.top-next-card:hover::before{transform:none}
.top-next-no{
  align-self:flex-start;
  color:#aaa;
  font-size:10px;
  letter-spacing:.12em;
}
.top-next-card small{
  display:block;
  margin-bottom:10px;
  color:#999;
  font-size:9px;
  font-weight:800;
  letter-spacing:.18em;
}
.top-next-card strong{
  display:block;
  font-size:clamp(28px,3vw,50px);
  letter-spacing:-.04em;
}
.top-next-card p{margin:8px 0 0;color:#777;font-size:12px}
.top-next-card>b{
  margin-left:auto;
  font-size:24px;
  color:#aaa;
  align-self:center;
}
.top-next-card:hover small,
.top-next-card:hover p,
.top-next-card:hover .top-next-no,
.top-next-card:hover>b{color:rgba(255,255,255,.7)}

@media (max-width:980px){
  .top-next-card{min-height:210px;padding:38px 30px}
}
@media (max-width:640px){
  .top-next-nav{grid-template-columns:1fr}
  .top-next-card{
    min-height:165px;
    padding:28px 22px;
    border-right:0;
    border-bottom:1px solid #d5d5d5;
  }
  .top-next-card strong{font-size:31px}
  .top-next-card>b{font-size:20px}
}


/* =========================================================
   v220 TOP FIRST VIEW FINAL TUNING
   - hero copy fixed / PAUSE only
   - staff, yakiniku, noodles videos = circle
   - existing omega-o still = fast fly-by under copy
   ========================================================= */
.hero-copy-layer{
  position:absolute;
  z-index:9;
  inset:var(--header-h) 0 0 0;
  pointer-events:none;
}
.hero-copy-layer .hero-copy{visibility:visible;opacity:1}

/* round video frames */
.visual-video.video-round{
  aspect-ratio:1/1!important;
  border-radius:50%;
}
.visual-video.video-round::after{border-radius:50%}
.visual-video.video-round video{
  width:100%;height:100%;object-fit:cover;
}
.video-staff.video-round video{object-position:center center}
.video-nandaimon.video-round video{object-position:center center}
.video-noodles.video-round video{object-position:center center}
.video-round figcaption{
  left:50%;bottom:12px;transform:translateX(-50%);
  white-space:nowrap;
}
/* keep visual weight close to the former rectangle/portrait frames */
.video-nandaimon{width:min(21vw,350px)}
.video-noodles{width:min(18vw,300px);aspect-ratio:1/1}

/* existing OMEGA-O still: front-layer fast fly-by, just below the copy */
.hero-fly-omega{
  position:absolute;
  z-index:7;
  left:0;
  top:60%;
  width:min(18vw,290px);
  margin:0;
  pointer-events:none;
  opacity:0;
  filter:drop-shadow(0 18px 18px rgba(0,0,0,.16));
  will-change:transform,opacity;
  animation:omega-fast-fly 12s linear infinite;
}
.hero-fly-omega img{display:block;width:100%;height:auto}
.hero.is-paused .hero-fly-omega{animation-play-state:paused}
@keyframes omega-fast-fly{
  0%{opacity:0;transform:translate3d(112vw,8px,0) rotate(-8deg) scale(.88)}
  1.5%{opacity:1}
  8%{opacity:1;transform:translate3d(75vw,-7px,0) rotate(-4deg) scale(.94)}
  15%{opacity:1;transform:translate3d(30vw,7px,0) rotate(1deg) scale(1)}
  22%{opacity:1;transform:translate3d(-26vw,-5px,0) rotate(5deg) scale(1.04)}
  23.5%,100%{opacity:0;transform:translate3d(-34vw,-5px,0) rotate(5deg) scale(1.04)}
}

/* control is intentionally PAUSE only */
.prototype-controls-pause-only{
  padding:7px;
}
.prototype-controls-pause-only .pause-button{
  min-width:66px;
  padding:0 14px;
}

@media (max-width:980px){
  .video-nandaimon{width:50vw;max-width:none}
  .video-noodles{left:59vw;top:28%;width:34vw;max-width:none}
  .hero-fly-omega{top:62%;width:34vw;max-width:250px}
}
@media (max-width:520px){
  .video-nandaimon{left:7vw;bottom:8%;width:52vw}
  .video-noodles{left:58vw;top:29%;width:36vw}
  .hero-fly-omega{top:63%;width:38vw;max-width:210px}
}

@media (prefers-reduced-motion: reduce){
  .hero-fly-omega{animation:none!important;display:none}
}


/* =========================================================
   v221 TOP COPY / OMEGA-O / MOBILE BRANDS
   ========================================================= */

/* Copy: restore the former moving loop; wording remains fixed to copy A.
   The control UI remains PAUSE/PLAY only. */
.hero-copy-track{
  z-index:9;
  animation-duration:21s;
}
.hero-copy-track .hero-copy{
  visibility:visible;
  opacity:1;
}
.hero.is-paused .hero-copy-track{
  animation-play-state:paused;
}

/* Existing flying OMEGA-O: 50% of v220 display size. */
.hero-fly-omega{
  width:min(9vw,145px);
}
@media (max-width:980px){
  .hero-fly-omega{
    width:17vw;
    max-width:125px;
  }
}
@media (max-width:520px){
  .hero-fly-omega{
    width:19vw;
    max-width:105px;
  }
}

/* Smartphone BRANDS:
   keep every logo display frame square, but keep the layout stable.
   Reset the default figure margin so the square frame does not shift or overflow,
   and keep the OMEGA logo inside its square frame. */
@media (max-width:520px){
  .brands-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
  }
  .brand-tile{
    padding:12px 10px 14px;
  }
  .brand-logo-wrap{
    margin:0;
    flex:none;
    width:100%;
    min-height:0 !important;
    height:auto !important;
    aspect-ratio:1 / 1;
    padding:8px;
    box-sizing:border-box;
    overflow:hidden;
  }
  .brand-logo-picture{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:100%;
  }
  .brands-grid .brand-logo-wrap .brand-logo-picture img{
    display:block;
    width:auto;
    height:auto;
    max-width:92% !important;
    max-height:92% !important;
    object-fit:contain;
  }

  .brands-grid .brand-logo-wrap-omega .brand-logo-picture img{
    width:auto !important;
    max-width:92% !important;
    max-height:60% !important;
  }

  .brand-name-ja{
    margin-top:12px;
  }
}

/* v223: ensure the Nandaimon online-shop main visual shows the centered logo cleanly */
.food-online-card-nandaimon .food-online-visual{background:#2b1c12}
.food-online-card-nandaimon .food-online-visual img{object-fit:contain;object-position:center center;background:#2b1c12}

/* v230: confirmed corporate catch copy in header/footer */
@media (max-width:520px){
  .footer-brand-copy{gap:6px}
  .footer-brand-copy span{font-size:10.5px;letter-spacing:.02em}
}
