/* 肉そばあつよし 福岡 六本松店 — styles
   トークン・値は design_handoff_atsuyoshi_lp/README.md を正とする。角丸なし・影なし・罫線1px */
:root{
  --kw-sumi:#16161A; --kw-ink:#0B0E1A; --kw-paper:#FAF7F1; --kw-paper-deep:#F1ECE2;
  --kw-shu:#B5442E; --kw-ai:#26333F; --kw-line:#DDD5C7; --kw-muted:#6E685D; --kw-gold:#A98B4F;
  --kw-night:#E0A88F; --kw-hero-gold:#E4C58C; --kw-hero-shu:#E8846A;
  --kw-mincho:"Shippori Mincho","Hiragino Mincho ProN","Yu Mincho","Noto Serif JP","Noto Serif CJK JP",serif;
  --kw-latin:"Cormorant Garamond","Shippori Mincho",serif;
  --font-jp:"M PLUS 1p","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,"Noto Sans CJK JP",sans-serif;
  --ease:cubic-bezier(.22,.61,.36,1);
  --pad-x:clamp(24px,5vw,52px);
  --sec-y:clamp(64px,9vw,128px);
}
html[lang="ko"]{ --kw-mincho:"Noto Serif KR","Shippori Mincho",serif; --kw-latin:"Cormorant Garamond","Noto Serif KR",serif; --font-jp:"Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",sans-serif; }
html[lang^="zh"]{ --kw-mincho:"Noto Serif SC","Songti SC",serif; --kw-latin:"Cormorant Garamond","Noto Serif SC",serif; --font-jp:"Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif; }
html[lang="en"]{ --font-jp:"M PLUS 1p","Hiragino Sans","Helvetica Neue",Arial,sans-serif; }

*,*::before,*::after{ box-sizing:border-box; border-radius:0; }
html{ scroll-behavior:smooth; scroll-padding-top:72px; -webkit-text-size-adjust:100%; }
body{ margin:0; background:var(--kw-paper); color:var(--kw-sumi); font-family:var(--font-jp); overflow-x:hidden; }
a{ color:var(--kw-shu); text-decoration:none; }
a:hover{ color:var(--kw-sumi); }
img{ max-width:100%; }
h1,h2,h3,p,ul,dl,dd{ margin:0; padding:0; }
ul{ list-style:none; }
a,button{ -webkit-tap-highlight-color:transparent; }
:focus-visible{ outline:2px solid var(--kw-shu); outline-offset:3px; }
.sr-only{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.skip{ position:absolute; left:-999px; top:8px; z-index:200; padding:10px 16px; background:var(--kw-sumi); color:var(--kw-paper); }
.skip:focus{ left:8px; }

/* ---- keyframes ---- */
@keyframes kwFade{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }
@keyframes kwZoom{ from{ transform:scale(1.02); } to{ transform:scale(1.16); } }
@keyframes kwRule{ from{ transform:scaleX(0); } to{ transform:scaleX(1); } }
@keyframes kwCue{ 0%{ transform:translateY(0); opacity:.25; } 50%{ transform:translateY(10px); opacity:1; } 100%{ transform:translateY(0); opacity:.25; } }
@keyframes kwRise{ from{ transform:translateY(110%); } to{ transform:translateY(0); } }
@keyframes kwGlow{ 0%{ opacity:.5; } 50%{ opacity:.85; } 100%{ opacity:.5; } }
@keyframes kwMenuIn{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }
@keyframes kwVeil{ from{ clip-path:inset(0 0 100% 0); } to{ clip-path:inset(0 0 0 0); } }

/* ---- 紙の質感 ---- */
.grain{ position:fixed; inset:0; z-index:45; pointer-events:none; opacity:.045;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/></filter><rect width='160' height='160' filter='url(%23n)'/></svg>"); }

/* ---- 共通パーツ ---- */
.en{ font-family:var(--kw-latin); }
.arrow{ display:inline-block; font-size:13px; transition:transform 320ms var(--ease); }
a:hover .arrow{ transform:translateX(6px); }
.wmk{ display:none; position:absolute; right:6px; writing-mode:vertical-rl; font-family:var(--kw-latin); font-weight:300; line-height:.8; letter-spacing:.04em; pointer-events:none; user-select:none; }
@media (min-width:1280px){ .wmk{ display:block; } }
.sec-head{ display:flex; align-items:flex-end; gap:18px; }
.sec-no{ font-family:var(--kw-latin); font-style:italic; font-weight:300; font-size:clamp(30px,4vw,46px); line-height:.9; color:var(--kw-gold); }
.sec-title{ display:flex; flex-direction:column; gap:10px; }
.sec-label{ font-family:var(--kw-latin); font-size:13px; letter-spacing:.4em; color:var(--kw-shu); }
.sec-title h2{ font-family:var(--kw-mincho); font-weight:800; font-size:clamp(25px,4vw,38px); letter-spacing:.12em; line-height:1.4; }
html[lang="en"] h1,html[lang="en"] h2,html[lang="en"] h3{ letter-spacing:.02em !important; }

.reveal-ready [data-reveal]{ opacity:0; transform:translateY(22px); transition:opacity 900ms var(--ease),transform 900ms var(--ease); }
.reveal-ready [data-reveal].kw-in{ opacity:1; transform:none; }

/* ---- Header ---- */
.hdr{ position:sticky; top:0; z-index:50; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 20px; background:rgba(250,247,241,.9); -webkit-backdrop-filter:saturate(1.1) blur(8px); backdrop-filter:saturate(1.1) blur(8px); border-bottom:1px solid var(--kw-line); transition:padding 320ms var(--ease),box-shadow 320ms var(--ease); }
.hdr.is-scrolled{ padding:8px 20px; box-shadow:0 1px 0 rgba(22,22,26,.1); }
.hdr-logo{ display:flex; align-items:center; gap:11px; min-height:44px; min-width:0; flex:0 1 auto; color:var(--kw-sumi); }
.hdr-logo img{ height:30px; width:auto; flex:none; object-fit:contain; transition:height 320ms var(--ease); }
.hdr.is-scrolled .hdr-logo img{ height:26px; }
.hdr-en{ display:none; align-self:center; padding-left:12px; border-left:1px solid var(--kw-line); font-family:var(--kw-latin); font-size:12px; letter-spacing:.34em; color:var(--kw-muted); }
.hdr-nav{ display:none; gap:clamp(14px,1.6vw,26px); align-items:center; flex:none; white-space:nowrap; margin-left:auto; padding-right:clamp(12px,1.6vw,24px); border-right:1px solid var(--kw-line); }
.hdr-nav a{ position:relative; flex:none; color:var(--kw-sumi); font-family:var(--kw-mincho); font-size:15px; letter-spacing:.14em; transition:color 260ms ease; }
.hdr-nav a::after{ content:""; position:absolute; left:0; right:0; bottom:-7px; height:1px; background:var(--kw-shu); transform:scaleX(0); transform-origin:left; transition:transform 380ms var(--ease); }
.hdr-nav a:hover{ color:var(--kw-shu); }
.hdr-nav a:hover::after{ transform:scaleX(1); }
.hdr-right{ display:flex; align-items:center; gap:clamp(8px,1.4vw,18px); flex:none; }
.langsw{ display:flex; align-items:center; gap:2px; }
.langsw a{ position:relative; display:inline-flex; align-items:center; justify-content:center; min-width:34px; height:44px; padding:0 6px; color:var(--kw-muted); font-family:var(--kw-latin); font-size:13px; font-weight:600; letter-spacing:.12em; transition:color 220ms ease; }
.langsw a::after{ content:""; position:absolute; left:50%; bottom:10px; width:14px; height:1.5px; background:var(--kw-shu); transform:translateX(-50%) scaleX(0); transition:transform 260ms var(--ease); }
.langsw a:hover,.langsw a[aria-current="true"]{ color:var(--kw-sumi); }
.langsw a[aria-current="true"]::after{ transform:translateX(-50%) scaleX(1); }
.hdr-cta{ display:none; align-items:center; min-height:44px; padding:0 22px; background:transparent; color:var(--kw-sumi); border:1px solid var(--kw-sumi); font-family:var(--kw-mincho); font-size:14px; letter-spacing:.16em; transition:background 260ms ease,color 260ms ease; }
.hdr-cta:hover{ background:var(--kw-sumi); color:var(--kw-paper); }
.burger{ display:flex; flex-direction:column; justify-content:center; gap:6px; width:48px; height:48px; padding:0 10px; background:transparent; border:1px solid var(--kw-line); cursor:pointer; }
.burger span{ display:block; height:1.5px; background:var(--kw-sumi); transition:transform 320ms var(--ease),opacity 220ms ease; }
.burger:hover span:nth-child(1){ transform:translateX(3px); }
.burger:hover span:nth-child(3){ transform:translateX(-3px); }
.prog{ position:absolute; left:0; bottom:-1px; height:2px; width:100%; background:var(--kw-shu); transform:scaleX(0); transform-origin:left; pointer-events:none; }
@media (min-width:1120px){ .hdr-logo img{ height:38px; } .hdr.is-scrolled .hdr-logo img{ height:30px; } }
@media (min-width:1280px){ .hdr-nav{ display:flex; } .burger{ display:none; } }
@media (min-width:1560px){ .hdr-cta{ display:inline-flex; } }
@media (min-width:1680px){ .hdr-en{ display:block; } }
@media (max-width:600px){ .hdr,.hdr.is-scrolled{ padding-left:16px; padding-right:16px; } }
@media (max-width:420px){ .langsw a{ min-width:30px; padding:0 3px; font-size:12px; letter-spacing:.06em; } }

/* ---- モバイルメニュー ---- */
.mmenu{ position:fixed; inset:0; z-index:90; display:none; flex-direction:column; padding:20px 24px 32px; background:var(--kw-sumi); overflow-y:auto; -webkit-overflow-scrolling:touch; }
.mmenu[data-open]{ display:flex; animation:kwVeil 460ms var(--ease) both; }
.mmenu-top{ display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:48px; }
.mmenu-top img{ height:34px; width:auto; object-fit:contain; }
.mmenu-close{ width:48px; height:48px; background:transparent; border:1px solid rgba(250,247,241,.35); color:var(--kw-paper); font-size:22px; line-height:1; cursor:pointer; }
.mmenu nav{ display:flex; flex-direction:column; margin-top:26px; border-top:1px solid rgba(250,247,241,.18); }
.mmenu nav a{ display:flex; align-items:baseline; gap:14px; padding:13px 2px; border-bottom:1px solid rgba(250,247,241,.18); color:var(--kw-paper); font-family:var(--kw-mincho); font-weight:600; font-size:21px; letter-spacing:.12em; opacity:0; transform:translateY(14px); }
.mmenu nav a span{ font-family:var(--kw-latin); font-weight:400; font-size:12px; letter-spacing:.28em; color:#B8B0A4; }
.mmenu[data-open] nav a{ animation:kwMenuIn 520ms var(--ease) both; }
.mmenu[data-open] nav a:nth-child(1){ animation-delay:60ms; } .mmenu[data-open] nav a:nth-child(2){ animation-delay:120ms; }
.mmenu[data-open] nav a:nth-child(3){ animation-delay:180ms; } .mmenu[data-open] nav a:nth-child(4){ animation-delay:240ms; }
.mmenu[data-open] nav a:nth-child(5){ animation-delay:300ms; }
.mmenu-cta{ display:flex; flex-direction:column; gap:10px; margin-top:auto; padding-top:18px; opacity:0; }
.mmenu[data-open] .mmenu-cta{ animation:kwMenuIn 520ms 380ms var(--ease) both; }
.mmenu-cta a{ display:flex; align-items:center; justify-content:center; }
.mmenu-cta .primary{ min-height:52px; background:var(--kw-shu); color:#fff; font-family:var(--kw-mincho); font-size:16px; letter-spacing:.12em; }
.mmenu-cta .ig{ min-height:48px; border:1px solid rgba(250,247,241,.5); color:var(--kw-paper); font-family:var(--kw-latin); font-size:15px; letter-spacing:.08em; }
body.menu-open{ overflow:hidden; }

/* ---- Hero ---- */
.hero{ position:relative; display:flex; align-items:center; min-height:clamp(620px,96vh,1000px); background:var(--kw-sumi); overflow:hidden; }
.hero-photo{ position:absolute; inset:0; overflow:hidden; }
.hero-zoom{ position:absolute; inset:0; animation:kwZoom 20s cubic-bezier(.45,0,.55,1) infinite alternate both; pointer-events:none; }
.hero-zoom img{ display:block; width:100%; height:100%; object-fit:cover; object-position:center; user-select:none; -webkit-user-drag:none; }
.hero-veil{ position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg,rgba(22,22,26,.7) 0%,rgba(22,22,26,.38) 30%,rgba(22,22,26,.74) 74%,rgba(22,22,26,.96) 100%); }
.hero-seam{ display:none; position:absolute; top:0; width:1px; background:linear-gradient(180deg,rgba(199,158,90,0) 0%,rgba(199,158,90,.5) 20%,rgba(199,158,90,.5) 80%,rgba(199,158,90,0) 100%); pointer-events:none; z-index:3; }
.hero-inner{ position:relative; z-index:2; width:100%; max-width:1180px; margin:0 auto; padding:clamp(96px,13vw,150px) clamp(30px,5vw,52px) clamp(64px,7vw,96px); pointer-events:none; }
.hero-copy{ display:flex; flex-direction:column; gap:22px; animation:kwFade 900ms var(--ease) both; }
.hero-kicker{ display:flex; align-items:center; gap:16px; font-family:var(--kw-latin); font-size:12px; letter-spacing:.4em; color:var(--kw-hero-gold); text-shadow:0 1px 12px rgba(0,0,0,.9); }
.hero-kicker i{ display:block; flex:none; width:clamp(28px,4vw,56px); height:1px; background:rgba(199,158,90,.7); }
.hero h1{ font-family:var(--kw-mincho); font-weight:800; font-size:clamp(42px,8.4vw,98px); line-height:1.16; letter-spacing:.04em; color:var(--kw-paper); text-shadow:0 2px 40px rgba(0,0,0,.72); }
.hero h1 .ln{ display:block; overflow:hidden; padding-bottom:.06em; }
.hero h1 .ln > span{ display:block; animation:kwRise 1100ms 120ms var(--ease) both; }
.hero h1 .ln:nth-child(2) > span{ animation-delay:300ms; }
.hero h1 em{ font-style:normal; color:var(--kw-hero-shu); }
html[lang="en"] .hero h1{ font-size:clamp(38px,6.6vw,82px); }
html[lang="ko"] .hero h1,html[lang^="zh"] .hero h1{ font-size:clamp(38px,7vw,88px); }
.hero-rule{ display:block; width:clamp(64px,9vw,120px); height:1px; background:rgba(250,247,241,.55); transform-origin:left; animation:kwRule 1200ms 500ms var(--ease) both; }
.hero-lead{ max-width:22em; font-size:clamp(15px,1.7vw,17px); line-height:2.2; letter-spacing:.04em; color:#EFE9DD; text-shadow:0 1px 14px rgba(0,0,0,.8); text-wrap:pretty; }
html[lang="en"] .hero-lead{ max-width:28em; line-height:1.9; }
.hero-btns{ display:flex; flex-wrap:wrap; gap:12px; margin-top:10px; pointer-events:auto; }
.btn{ display:inline-flex; align-items:center; gap:12px; min-height:58px; padding:0 32px; font-family:var(--kw-mincho); font-size:16px; letter-spacing:.12em; transition:background 280ms ease,color 280ms ease; }
.btn-shu{ background:var(--kw-shu); color:#fff; }
.btn-shu:hover{ background:var(--kw-paper); color:var(--kw-sumi); }
.btn-ghost{ background:transparent; color:var(--kw-paper); border:1px solid rgba(250,247,241,.7); }
.btn-ghost:hover{ background:var(--kw-paper); color:var(--kw-sumi); }
.hero-vtext{ display:none; position:absolute; z-index:4; top:clamp(110px,14vw,190px); right:clamp(14px,2.4vw,40px); writing-mode:vertical-rl; font-family:var(--kw-mincho); font-weight:500; font-size:clamp(13px,1.6vw,17px); letter-spacing:.62em; color:rgba(250,247,241,.8); text-shadow:0 1px 12px rgba(0,0,0,.7); pointer-events:none; }
.hero-cue{ display:none; position:absolute; z-index:4; right:clamp(30px,4.4vw,64px); bottom:clamp(26px,3.4vw,40px); align-items:center; gap:8px; writing-mode:vertical-rl; font-family:var(--kw-latin); font-size:11px; letter-spacing:.34em; color:rgba(250,247,241,.7); pointer-events:none; }
.hero-cue i{ display:block; width:1px; height:40px; background:linear-gradient(180deg,rgba(250,247,241,.8),rgba(250,247,241,0)); animation:kwCue 2600ms ease-in-out infinite; }
@media (min-width:900px){ .hero-vtext{ display:block; } .hero-inner{ padding-right:96px; } }
html[lang="en"] .hero-vtext,html[lang="ko"] .hero-vtext,html[lang^="zh"] .hero-vtext{ letter-spacing:.18em; font-size:clamp(11px,1.1vw,13px); white-space:nowrap; }
@media (min-width:761px){ html[lang="en"] .hero-vtext,html[lang="ko"] .hero-vtext,html[lang^="zh"] .hero-vtext{ display:none; } }
@media (min-width:1120px){
  .hero-photo{ left:34%; bottom:clamp(40px,5vw,76px); }
  .hero-veil{ background:linear-gradient(90deg,rgba(22,22,26,.95) 0%,rgba(22,22,26,.72) 26%,rgba(22,22,26,.2) 66%,rgba(22,22,26,.46) 100%); }
  .hero-cue{ display:inline-flex; }
}
@media (min-width:1120px) and (max-height:639px){ .hero-cue{ display:none; } }
@media (max-width:760px){
  .hero{ min-height:100svh; align-items:flex-end; }
  .hero-photo{ top:0; left:44px; right:0; bottom:auto; height:66svh; }
  .hero-zoom{ transform-origin:50% 45%; will-change:transform; }
  .hero-veil{ background:linear-gradient(180deg,rgba(22,22,26,.55) 0%,rgba(22,22,26,.1) 26%,rgba(22,22,26,.18) 55%,rgba(22,22,26,.88) 88%,rgba(22,22,26,1) 100%); }
  .hero-seam{ display:block; left:44px; height:66svh; }
  .hero-vtext{ display:block; left:13px; right:auto; top:104px; font-size:12px; letter-spacing:.5em; color:var(--kw-hero-gold); }
  html[lang="en"] .hero-vtext,html[lang="ko"] .hero-vtext,html[lang^="zh"] .hero-vtext{ top:84px; font-size:10px; letter-spacing:.14em; }
  html[lang="en"] .hero-vtext{ letter-spacing:.22em; }
  .hero-inner{ padding:0 22px 40px; pointer-events:auto; }
  .hero-copy{ gap:16px; max-width:none; }
  .hero-kicker{ font-size:11px; letter-spacing:.24em; gap:12px; }
  .hero h1{ font-size:clamp(34px,10.8vw,50px); letter-spacing:.02em; line-height:1.2; }
  html[lang="en"] .hero h1{ font-size:clamp(30px,9vw,44px); }
  html[lang="ko"] .hero h1,html[lang^="zh"] .hero h1{ font-size:clamp(28px,8.4vw,40px); }
  .hero-lead{ font-size:14px; line-height:2; max-width:none; }
  .hero-btns{ display:grid; grid-template-columns:1.3fr 1fr; gap:8px; margin-top:6px; }
  .hero-btns .btn{ justify-content:center; min-height:54px; padding:0 12px; font-size:15px; letter-spacing:.08em; }
}

/* ---- NEWSバー ---- */
.newsbar{ position:relative; background:var(--kw-sumi); color:var(--kw-paper); border-bottom:1px solid rgba(250,247,241,.14); }
.newsbar::before{ content:""; position:absolute; left:0; top:0; width:clamp(80px,14vw,200px); height:2px; background:var(--kw-shu); }
.newsbar-in{ max-width:1180px; margin:0 auto; padding:22px var(--pad-x); display:flex; flex-wrap:wrap; align-items:baseline; gap:10px 24px; }
.newsbar .en{ font-size:12px; letter-spacing:.36em; color:var(--kw-shu); }
.newsbar strong{ font-family:var(--kw-mincho); font-weight:600; font-size:clamp(15px,2vw,19px); letter-spacing:.1em; }
.newsbar span.t{ font-size:13px; letter-spacing:.03em; color:#C9C3B8; }

/* ---- お品書き ---- */
.menu{ position:relative; max-width:1180px; margin:0 auto; padding:var(--sec-y) var(--pad-x); overflow:hidden; }
.menu .wmk{ top:clamp(28px,5vw,60px); font-size:clamp(72px,8vw,124px); color:var(--kw-sumi); opacity:.045; }
.menu-head{ display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:20px; padding-bottom:22px; border-bottom:1px solid var(--kw-line); margin-bottom:clamp(40px,5vw,64px); }
.menu-head h2{ font-family:var(--kw-mincho); font-weight:800; font-size:clamp(27px,4.4vw,42px); letter-spacing:.14em; line-height:1.25; }
.menu-note{ font-size:12px; line-height:1.9; letter-spacing:.04em; color:var(--kw-muted); }
.cards{ display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,272px),1fr)); gap:clamp(34px,4vw,44px) clamp(24px,3vw,34px); margin-bottom:clamp(48px,6vw,76px); }
.card{ display:flex; flex-direction:column; gap:20px; }
.card-ph{ position:relative; overflow:hidden; background:var(--kw-paper-deep); }
.card-ph .ratio{ aspect-ratio:4/5; overflow:hidden; }
.card-ph img{ display:block; width:100%; height:100%; object-fit:cover; transition:transform 1100ms var(--ease); }
.card:hover .card-ph img{ transform:scale(1.05); }
.fuda{ position:absolute; top:0; left:0; display:flex; align-items:center; justify-content:center; width:44px; height:44px; background:var(--kw-paper); font-family:var(--kw-mincho); font-weight:600; font-size:15px; color:var(--kw-sumi); transition:background 320ms ease,color 320ms ease; }
.card:hover .fuda{ background:var(--kw-shu); color:#fff; }
.badge{ position:absolute; top:12px; right:12px; padding:7px 13px; background:var(--kw-shu); color:#fff; font-family:var(--kw-mincho); font-weight:600; font-size:12px; letter-spacing:.18em; }
.card-soon{ background:var(--kw-sumi); }
.card-soon .ratio{ background:radial-gradient(ellipse at 50% 40%,#2A2A30 0%,var(--kw-sumi) 70%); }
.card-soon-txt{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:18px; pointer-events:none; }
.card-soon-txt b{ writing-mode:vertical-rl; font-family:var(--kw-mincho); font-weight:800; font-size:clamp(34px,3.4vw,44px); letter-spacing:.3em; color:var(--kw-paper); text-shadow:0 2px 18px rgba(0,0,0,.6); }
.card-soon-txt .en{ font-size:12px; letter-spacing:.36em; color:var(--kw-hero-gold); }
html[lang="en"] .card-soon-txt b{ writing-mode:horizontal-tb; letter-spacing:.1em; font-size:clamp(24px,2.6vw,32px); }
.card-body{ display:flex; flex-direction:column; gap:10px; }
.card-row{ display:flex; align-items:baseline; gap:12px; }
.card h3{ font-family:var(--kw-mincho); font-weight:600; font-size:21px; letter-spacing:.12em; transition:color 280ms ease; }
.card:hover h3{ color:var(--kw-shu); }
.dots{ flex:1; border-bottom:1px dotted var(--kw-line); transform:translateY(-4px); }
.price{ font-family:var(--kw-latin); font-size:20px; letter-spacing:.04em; white-space:nowrap; }
.price.tba{ font-family:var(--kw-mincho); font-size:14px; letter-spacing:.1em; color:var(--kw-muted); }
.card-en{ font-family:var(--kw-latin); font-size:12px; letter-spacing:.28em; color:var(--kw-gold); }
.card p{ font-size:14px; line-height:2.05; letter-spacing:.03em; color:var(--kw-muted); text-wrap:pretty; }
@media (max-width:600px){ .card h3{ font-size:19px; letter-spacing:.06em; } .card p{ font-size:14px; } }
.lists{ display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,272px),1fr)); gap:clamp(28px,4vw,48px); }
.list{ display:flex; flex-direction:column; gap:2px; }
.list h3{ margin-bottom:14px; padding-bottom:12px; border-bottom:1px solid var(--kw-sumi); font-family:var(--kw-mincho); font-weight:600; font-size:17px; letter-spacing:.2em; }
.list h3.has-note{ margin-bottom:6px; padding-bottom:0; border-bottom:0; }
.list .note{ margin-bottom:10px; padding-bottom:12px; border-bottom:1px solid var(--kw-sumi); font-size:12px; letter-spacing:.06em; color:var(--kw-muted); }
.list .row{ display:flex; justify-content:space-between; gap:12px; padding:11px 0; border-bottom:1px solid var(--kw-line); font-size:15px; letter-spacing:.06em; }
.list .row small{ margin-left:8px; font-size:13px; color:var(--kw-muted); }
.list .row .p{ font-family:var(--kw-latin); font-size:17px; color:var(--kw-muted); white-space:nowrap; }
.list .photo{ position:relative; overflow:hidden; margin-top:16px; background:var(--kw-paper-deep); }
.list .photo .ratio{ aspect-ratio:4/3; overflow:hidden; }
.list .photo img{ display:block; width:100%; height:100%; object-fit:cover; transition:transform 1100ms var(--ease); }
.list .photo:hover img{ transform:scale(1.05); }
.list .photo span{ position:absolute; left:0; bottom:0; padding:7px 12px; background:var(--kw-paper); font-family:var(--kw-mincho); font-size:13px; letter-spacing:.12em; }
@media (max-width:600px){ .list .row{ gap:14px; padding:15px 0; } }

/* ---- よるのあつよし ---- */
.yoru{ position:relative; background:radial-gradient(120% 70% at 12% -10%,#2A2118 0%,#16161A 58%); color:var(--kw-paper); overflow:hidden; }
.yoru-glow{ position:absolute; top:-14%; left:-6%; width:min(58vw,640px); height:min(58vw,640px); border-radius:50%; background:radial-gradient(circle,rgba(216,142,76,.3) 0%,rgba(216,142,76,0) 68%); filter:blur(6px); pointer-events:none; animation:kwGlow 9s ease-in-out infinite; }
.yoru-frame{ position:absolute; inset:clamp(12px,1.8vw,26px); border:1px solid rgba(250,247,241,.12); pointer-events:none; }
.yoru .wmk{ top:clamp(24px,4vw,52px); font-size:clamp(64px,7vw,110px); color:var(--kw-paper); opacity:.07; }
.yoru-in{ position:relative; max-width:1180px; margin:0 auto; padding:clamp(64px,9vw,120px) var(--pad-x); }
.yoru-head{ display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:20px; padding-bottom:22px; border-bottom:1px solid rgba(250,247,241,.24); margin-bottom:clamp(36px,5vw,56px); }
.yoru .sec-no{ color:#C9754F; }
.yoru .sec-label{ color:var(--kw-night); }
.yoru h2{ line-height:0; }
.yoru h2 img{ display:block; width:clamp(240px,34vw,440px); height:auto; margin-top:6px; }
html:not([lang="ja"]) .yoru h2 img{ width:clamp(260px,40vw,520px); }
.yoru-line{ display:block; width:clamp(56px,8vw,104px); height:1px; background:linear-gradient(90deg,var(--kw-night),rgba(224,168,143,0)); }
.yoru-side{ display:flex; flex-direction:column; gap:6px; font-size:12px; line-height:1.9; letter-spacing:.04em; color:#C9C3B8; }
.yoru-side b{ font-family:var(--kw-latin); font-weight:400; font-size:clamp(22px,3vw,32px); line-height:1; letter-spacing:.08em; color:var(--kw-night); }
.yoru-grid{ display:grid; grid-template-columns:1fr; gap:clamp(28px,4vw,48px); }
.yoru-col{ display:flex; flex-direction:column; gap:2px; }
.yoru-col h3{ margin-bottom:14px; padding-bottom:12px; border-bottom:1px solid rgba(250,247,241,.5); font-family:var(--kw-mincho); font-weight:600; font-size:17px; letter-spacing:.2em; }
.yoru-row{ display:flex; justify-content:space-between; gap:12px; padding:11px 0; border-bottom:1px solid rgba(250,247,241,.16); font-size:15px; letter-spacing:.06em; transition:background 260ms ease,padding-left 260ms ease; }
.yoru-row:hover{ background:rgba(250,247,241,.05); padding-left:10px; }
.yoru-row small{ display:block; font-size:12px; color:#A49D91; }
.yoru-row .p{ font-family:var(--kw-latin); font-size:17px; color:#C9C3B8; white-space:nowrap; }
@media (min-width:1120px){
  .yoru-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .yoru-col + .yoru-col{ padding-left:clamp(24px,3vw,44px); border-left:1px solid rgba(250,247,241,.14); }
}

/* ---- 最新情報 ---- */
.sns{ background:var(--kw-paper-deep); border-top:1px solid var(--kw-line); border-bottom:1px solid var(--kw-line); }
.sns-in{ max-width:1180px; margin:0 auto; padding:clamp(64px,9vw,120px) var(--pad-x); display:grid; grid-template-columns:1fr; gap:clamp(40px,5vw,64px); align-items:start; }
.sns-main{ display:flex; flex-direction:column; gap:16px; min-width:0; }
.sns-main .sec-head{ margin-bottom:4px; }
.lead{ max-width:29em; font-size:15px; line-height:2.15; letter-spacing:.03em; color:var(--kw-muted); text-wrap:pretty; }
.sns-rows{ display:flex; flex-direction:column; gap:12px; margin-top:14px; }
.sns-row{ display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:62px; padding:0 24px; font-family:var(--kw-mincho); font-size:16px; letter-spacing:.1em; }
.sns-row.dark{ background:var(--kw-sumi); color:var(--kw-paper); }
.sns-row.dark span{ font-size:14px; letter-spacing:.06em; color:#C9C3B8; }
.sns-row.line{ border:1px solid var(--kw-sumi); color:var(--kw-sumi); transition:background 280ms ease,color 280ms ease; }
.sns-row.line:hover{ background:var(--kw-sumi); color:var(--kw-paper); }
.sns-row.line span{ font-family:var(--kw-latin); font-size:15px; letter-spacing:.06em; }
.sns-tiles{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; min-width:0; }
.sns-tiles a{ position:relative; display:block; aspect-ratio:1; overflow:hidden; background:var(--kw-paper); }
.sns-tiles img{ display:block; width:100%; height:100%; object-fit:cover; transition:transform 1400ms var(--ease); }
.sns-tiles a:hover img{ transform:scale(1.06); }
@media (min-width:1280px){ .sns-in{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:600px){ .sns-row{ padding:0 18px; font-size:15px; } }

/* ---- 求人 ---- */
.recruit{ position:relative; max-width:1180px; margin:0 auto; padding:clamp(64px,9vw,120px) var(--pad-x); overflow:hidden; }
.recruit .wmk{ top:clamp(24px,4vw,52px); font-size:clamp(64px,7vw,110px); color:var(--kw-sumi); opacity:.045; }
.recruit-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr)); gap:clamp(40px,5vw,64px); align-items:start; }
.recruit-main{ display:flex; flex-direction:column; gap:16px; }
.recruit-main .sec-head{ margin-bottom:4px; }
.dl{ display:flex; flex-direction:column; }
.dl-row{ display:flex; gap:22px; padding:17px 0; border-bottom:1px solid var(--kw-line); }
.dl-row dt{ flex:none; width:6.5em; font-family:var(--kw-mincho); font-size:14px; letter-spacing:.18em; color:var(--kw-muted); }
.dl-row dd{ font-size:15px; line-height:1.85; letter-spacing:.03em; }
.dl-row dd small{ display:block; font-size:13px; color:var(--kw-muted); }
.access .dl-row dt{ width:5.2em; }
.access .dl-row dd{ line-height:1.9; }
html:not([lang="ja"]) .dl-row dt,html:not([lang="ja"]) .access .dl-row dt{ width:8em; letter-spacing:.06em; }
.btn-line{ align-self:flex-start; margin-top:28px; min-height:54px; padding:0 28px; border:1px solid var(--kw-sumi); color:var(--kw-sumi); font-size:15px; }
.btn-apply{ min-height:54px; padding:0 28px; font-size:15px; }
.btn-apply:hover{ background:var(--kw-sumi); color:var(--kw-paper); }
@media (max-width:600px){ .dl-row{ gap:14px; padding:15px 0; } .dl-row dt,.access .dl-row dt{ width:4.6em; letter-spacing:.1em; } html:not([lang="ja"]) .dl-row dt,html:not([lang="ja"]) .access .dl-row dt{ width:6.4em; } }

/* ---- アクセス ---- */
.access{ position:relative; border-top:1px solid var(--kw-line); background:var(--kw-paper-deep); overflow:hidden; }
.access .wmk{ top:clamp(24px,4vw,52px); font-size:clamp(64px,7vw,110px); color:var(--kw-sumi); opacity:.05; }
.access-in{ max-width:1180px; margin:0 auto; padding:clamp(64px,9vw,116px) var(--pad-x); display:grid; grid-template-columns:1fr; gap:clamp(40px,5vw,60px); align-items:start; }
.access-main{ display:flex; flex-direction:column; gap:16px; min-width:0; }
.access-main .sec-head{ margin-bottom:6px; }
.access-main h2{ letter-spacing:.14em; }
.btn-dark{ align-self:flex-start; min-height:54px; margin-top:10px; padding:0 28px; background:var(--kw-sumi); color:var(--kw-paper); font-family:var(--font-jp); font-size:14px; letter-spacing:.12em; transition:background 280ms ease; }
.btn-dark:hover{ background:var(--kw-shu); color:#fff; }
.map{ min-width:0; background:var(--kw-paper); padding:10px; }
.map iframe{ display:block; width:100%; height:clamp(320px,46vw,470px); border:0; filter:grayscale(.28) contrast(1.04); }
@media (min-width:900px){ .access-in{ grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr); } }

/* ---- Footer ---- */
.foot{ position:relative; border-top:1px solid var(--kw-line); overflow:hidden; }
.foot-mark{ position:absolute; right:0; bottom:-10%; width:clamp(240px,30vw,400px); height:auto; opacity:.06; pointer-events:none; user-select:none; }
.foot-in{ position:relative; max-width:1180px; margin:0 auto; padding:clamp(44px,5vw,60px) var(--pad-x); display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-end; gap:28px; }
.foot-main{ display:flex; flex-direction:column; gap:8px; }
.foot-name{ font-family:var(--kw-mincho); font-weight:800; font-size:20px; letter-spacing:.16em; }
.foot-en{ font-family:var(--kw-latin); font-size:12px; letter-spacing:.34em; color:var(--kw-muted); }
.foot-main span.s{ font-size:13px; letter-spacing:.03em; color:var(--kw-muted); }
.foot-links{ display:flex; flex-wrap:wrap; align-items:center; gap:8px 20px; }
.foot-links a{ font-family:var(--kw-latin); font-size:14px; letter-spacing:.08em; color:var(--kw-sumi); }
.foot-links a:hover{ color:var(--kw-shu); }
.foot-links span{ font-family:var(--kw-latin); font-size:13px; letter-spacing:.14em; color:var(--kw-muted); }
@media (max-width:600px){ .foot-name{ font-size:17px; letter-spacing:.1em; } .foot-en{ letter-spacing:.2em; font-size:11px; } }

/* ---- 動きを減らす ---- */
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; animation-delay:0ms !important; transition-duration:.001ms !important; }
  .hero-zoom{ animation:none; }
  .yoru-glow{ animation:none; opacity:.65; }
  .reveal-ready [data-reveal]{ opacity:1; transform:none; }
  .hero-cue i{ animation:none; }
}
