/* ============================================================
   page-hitokami.css — hitokami LP 専用スタイル
   トークンは variables-hitokami.css。色は全て var() 経由。
   ============================================================ */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:88px}
body{line-break:strict;font-family:var(--ser);background:var(--paper);color:var(--sumi);font-weight:300;
 font-size:15px;line-height:2.15;letter-spacing:.06em;-webkit-font-smoothing:antialiased;
 overflow-x:hidden}
/* <picture> はレイアウト上透過させる。box が挟まると子 img の % 指定が
   <picture> を基準に解決され、ロゴ等が原寸で表示される（CQS rev2 是正） */
picture{display:contents}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
::selection{background:var(--gold);color:var(--sumi)}

.hd{position:fixed;top:0;left:0;right:0;z-index:900;height:88px;display:flex;align-items:center;
 justify-content:space-between;padding:0 var(--pad);transition:1s var(--ease)}
.hd.solid{background:rgb(var(--paper-rgb) / .92);backdrop-filter:blur(16px);height:70px;
 border-bottom:1px solid var(--line)}
.hd__logo{height:clamp(44px,5.4vw,62px);width:auto;flex-shrink:0;display:flex;align-items:center;
 transition:height .8s var(--ease),opacity .8s var(--ease)}
.hd.solid .hd__logo{height:clamp(38px,4.4vw,50px)}
.hd__logo img{height:100%;width:auto;display:block}
.hd__logo .lw{display:block}.hd__logo .lb{display:none}
.hd.solid .hd__logo .lw{display:none}.hd.solid .hd__logo .lb{display:block}
.gnav{display:flex;align-items:center;gap:clamp(16px,2.4vw,40px);font-size:12.5px;letter-spacing:.14em;font-weight:400}
.gnav a{color:var(--wh);position:relative;padding:8px 0;transition:color .8s var(--ease)}
.hd.solid .gnav a{color:var(--sumi)}
.gnav a::after{content:"";position:absolute;left:0;bottom:2px;width:0;height:1px;background:var(--gold);
 transition:width .9s var(--ease)}
.gnav a:hover::after{width:100%}
.hd__mb{display:none;width:26px;height:12px;position:relative;flex-shrink:0}
.hd__mb span{position:absolute;left:0;width:100%;height:1px;background:var(--wh);transition:.7s var(--ease)}
.hd.solid .hd__mb span{background:var(--sumi)}
.hd__mb span:nth-child(1){top:0}.hd__mb span:nth-child(2){top:11px}
.hd__mb.open span:nth-child(1){top:5px;transform:rotate(45deg)}
.hd__mb.open span:nth-child(2){top:5px;transform:rotate(-45deg)}
.mnav{position:fixed;inset:0;z-index:890;background:var(--sumi);padding:110px var(--pad) 40px;
 display:none;flex-direction:column;overflow:auto}
.mnav.open{display:flex}
.mnav a{color:var(--wh);font-size:18px;letter-spacing:.12em;padding:18px 0;border-bottom:1px solid var(--line-d)}

.wrap{padding:0 var(--pad)}
.inner{max-width:1120px;margin:0 auto}
.sec{padding-top:clamp(78px,12vw,168px);padding-bottom:clamp(78px,12vw,168px)}
.lbl{font-family:var(--eng);font-size:clamp(13px,1.4vw,17px);letter-spacing:.34em;color:var(--gold2);
 font-weight:400;display:block;margin-bottom:16px}
.ttl{font-size:clamp(19px,2.6vw,32px);font-weight:400;line-height:1.9;letter-spacing:.14em}
.lead{font-size:clamp(13.5px,1.05vw,15.5px);line-height:2.4;color:var(--gy2);font-weight:300}
.center{text-align:center}
.hr{height:1px;background:var(--line);transform:scaleX(0);transform-origin:left;
 transition:transform var(--slower) var(--ease)}
.hr.in{transform:scaleX(1)}
.btn{display:inline-flex;align-items:center;gap:16px;font-size:12.5px;letter-spacing:.18em;
 border:1px solid var(--sumi);padding:17px 38px;transition:1s var(--ease);font-weight:400}
.btn i{width:20px;height:1px;background:currentColor;transition:width 1s var(--ease)}
.btn:hover{background:var(--sumi);color:var(--paper)}
.btn:hover i{width:32px}

.btn--w{border-color:rgb(var(--wh-rgb) / .45);color:var(--wh)}
.btn--w:hover{background:var(--wh);color:var(--sumi)}

.rv{opacity:0;transform:translateY(28px);
 transition:opacity var(--slower) var(--ease),transform var(--slower) var(--ease)}
.rv.in{opacity:1;transform:none}
.rv2{transition-delay:.22s}.rv3{transition-delay:.44s}.rv4{transition-delay:.66s}
.im{overflow:hidden}
.im img{width:100%;transform:scale(1.1);transition:transform 2.6s var(--ease)}
.im.in img{transform:scale(1)}

.hero{position:relative;min-height:100svh;display:grid;place-items:center;overflow:hidden;background:var(--sumi)}
.hero__bg{position:absolute;inset:0}
.hero__bg img{width:100%;height:100%;object-fit:cover;transform:scale(1.14);
 animation:kb 26s var(--ease) forwards;opacity:0;animation:kb 26s var(--ease) forwards, fin 2.6s var(--ease) forwards}
@keyframes kb{to{transform:scale(1)}}
@keyframes fin{to{opacity:1}}
.hero__bg::after{content:"";position:absolute;inset:0;
 background:linear-gradient(180deg,rgb(var(--ink-rgb) / .68) 0%,rgb(var(--ink-rgb) / .60) 34%,
  rgb(var(--ink-rgb) / .62) 62%,rgb(var(--ink-rgb) / .76) 100%)}
.hero__in{position:relative;z-index:2;text-align:center;color:var(--wh);
 padding:clamp(104px,13vh,150px) var(--pad) clamp(72px,9vh,110px)}
.hero__logo{width:clamp(110px,11vw,155px);margin:0 auto clamp(34px,5vw,58px);
 opacity:0;animation:up 2.4s .5s var(--ease) forwards}
.hero__cc{writing-mode:vertical-rl;margin:0 auto;font-size:clamp(19px,2.3vw,30px);font-weight:300;
 line-height:2.05;letter-spacing:.18em;color:var(--gold);
 height:max-content;white-space:nowrap;
 opacity:0;animation:up 2.6s 1.1s var(--ease) forwards}
.hero__sub{font-size:clamp(11px,1.15vw,13px);letter-spacing:.3em;margin-top:clamp(28px,4vw,44px);
 color:rgb(var(--wh-rgb) / .72);opacity:0;animation:up 2.4s 1.8s var(--ease) forwards}
@keyframes up{0%{opacity:0;transform:translateY(24px)}100%{opacity:1;transform:none}}
.hero__ln{position:absolute;left:50%;bottom:0;width:1px;height:clamp(60px,9vh,110px);
 background:rgb(var(--wh-rgb) / .28);z-index:2;overflow:hidden}
.hero__ln::after{content:"";position:absolute;inset:0;background:var(--gold);
 animation:drop 3.4s 2.4s infinite var(--ease)}
@keyframes drop{0%{transform:translateY(-100%)}55%,100%{transform:translateY(100%)}}

.cnc{display:grid;grid-template-columns:.85fr 1fr;gap:clamp(30px,6vw,96px);align-items:center}
.cnc__t{writing-mode:vertical-rl;font-size:clamp(19px,2.3vw,30px);font-weight:300;line-height:2.05;
 letter-spacing:.18em;color:var(--gold2);height:max-content;white-space:nowrap;margin:0 auto}

.feat{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(30px,5vw,84px);align-items:center}
.feat__t{font-size:clamp(18px,2.3vw,28px);font-weight:400;line-height:2;letter-spacing:.12em;margin-bottom:26px}
.feat__t em{font-style:normal;color:var(--aka)}
.hitokami-x{font-size:clamp(21px,3vw,36px);font-weight:400;letter-spacing:.16em;line-height:1.8}
.hitokami-x span{color:var(--gold2)}

.items{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);
 margin-top:clamp(38px,5vw,66px);border:1px solid var(--line)}
.it{background:var(--paper);padding:clamp(18px,2.2vw,30px);transition:1s var(--ease)}
.it:hover{background:var(--wh)}
.it__im{overflow:hidden;aspect-ratio:5/4;background:var(--sumi)}
.it__im img{width:100%;height:100%;object-fit:cover;transition:transform 2.2s var(--ease)}
.it:hover .it__im img{transform:scale(1.06)}
.it__n{font-size:clamp(14px,1.3vw,16.5px);font-weight:400;letter-spacing:.1em;margin:18px 0 10px;
 display:flex;align-items:center;gap:10px;line-height:1.7}
.it__d{width:11px;height:11px;border-radius:50%;flex-shrink:0}
.it__b{font-size:12.5px;line-height:2;color:var(--gy2);font-weight:300}

.box{background:var(--sumi);color:var(--wh)}
.box .lead{color:rgb(var(--wh-rgb) / .62)}
.box .lbl{color:var(--gold)}
.box__g{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(30px,5vw,80px);align-items:center}
.scene{margin-top:clamp(28px,3.4vw,44px);border-top:1px solid var(--line-d)}
.scene li{list-style:none;padding:15px 2px;border-bottom:1px solid var(--line-d);font-size:14px;
 display:flex;align-items:baseline;gap:14px;color:rgb(var(--wh-rgb) / .85)}
.scene li::before{content:"";width:5px;height:5px;background:var(--gold);flex-shrink:0}

.ach{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,44px);margin-top:clamp(34px,4.4vw,60px)}
.ach__c{border-top:1px solid var(--gold2);padding-top:24px}
.ach__n{font-family:var(--eng);font-size:clamp(34px,4.6vw,58px);font-weight:300;line-height:1;color:var(--gold2)}
.ach__n small{font-family:var(--ser);font-size:14px;margin-left:6px;letter-spacing:.08em}
.ach__t{font-size:14px;font-weight:400;margin:14px 0 8px;letter-spacing:.08em}
.ach__b{font-size:12.5px;line-height:2;color:var(--gy2)}

.logo-s{background:var(--paper2);text-align:center}
.logo-s__m{width:clamp(140px,15vw,210px);margin:0 auto clamp(26px,3.4vw,44px)}

.tools{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:clamp(30px,4vw,52px)}
.srch{position:relative;flex:1 1 260px;min-width:220px}
.srch input{width:100%;border:0;border-bottom:1px solid var(--line);background:none;
 padding:14px 4px 14px 26px;font:inherit;font-size:14px;transition:.8s var(--ease)}
.srch input:focus{outline:0;border-color:var(--gold2)}
.srch::before{content:"";position:absolute;left:2px;top:50%;width:11px;height:11px;margin-top:-8px;
 border:1px solid var(--gy);border-radius:50%}
.srch::after{content:"";position:absolute;left:11px;top:50%;width:7px;height:1px;margin-top:2px;
 background:var(--gy);transform:rotate(45deg)}
.chips{display:flex;gap:0}
.chip{border:1px solid var(--line);border-left:0;padding:12px 22px;font-size:12.5px;letter-spacing:.1em;
 transition:.7s var(--ease)}
.chip:first-child{border-left:1px solid var(--line)}
.chip:hover{background:var(--paper2)}
.chip.on{background:var(--sumi);border-color:var(--sumi);color:var(--paper)}
.cnt{font-size:12.5px;color:var(--gy);margin-top:20px;letter-spacing:.08em}
.shops{margin-top:12px;border-top:1px solid var(--line)}
.sp{border-bottom:1px solid var(--line)}
.sp__q{width:100%;display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;
 padding:clamp(22px,2.6vw,30px) 2px;text-align:left;transition:.8s var(--ease)}
.sp__q:hover{padding-left:10px}
.sp__tag{font-size:10.5px;letter-spacing:.14em;border:1px solid var(--gold2);color:var(--gold2);
 padding:5px 12px;white-space:nowrap}
.sp__tag--dlv{border-color:var(--gy);color:var(--gy)}
.sp__n{font-size:clamp(16px,1.9vw,21px);font-weight:400;letter-spacing:.1em;display:block}
.sp__a{display:block;font-size:12.5px;color:var(--gy2);margin-top:5px;font-weight:300}
.sp__ic{width:16px;height:16px;position:relative;flex-shrink:0}
.sp__ic::before,.sp__ic::after{content:"";position:absolute;left:50%;top:50%;background:var(--sumi);
 transition:.8s var(--ease)}
.sp__ic::before{width:16px;height:1px;transform:translate(-50%,-50%)}
.sp__ic::after{width:1px;height:16px;transform:translate(-50%,-50%)}
.sp.open .sp__ic::after{transform:translate(-50%,-50%) rotate(90deg);opacity:0}
.sp__body{display:grid;grid-template-rows:0fr;transition:grid-template-rows 1s var(--ease)}
.sp.open .sp__body{grid-template-rows:1fr}
.sp__body>div{overflow:hidden}
.sp__in{padding:0 2px clamp(26px,3vw,36px);display:grid;grid-template-columns:1fr 1.1fr;
 gap:clamp(20px,3vw,44px);align-items:start}
.sp__r{display:grid;grid-template-columns:76px 1fr;gap:14px;padding:12px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.sp__r dt{color:var(--gy);font-size:12px}
.sp__map{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--paper2);border:1px solid var(--line)}
.sp__map::after{content:"地図を読み込んでいます…";position:absolute;inset:0;display:grid;place-items:center;
 font-size:12px;color:var(--gy);pointer-events:none}
.sp__map iframe{position:relative;z-index:1;width:100%;height:100%;border:0;display:block}
.sp__acts{display:flex;gap:20px;flex-wrap:wrap;margin-top:20px}
.sp__acts a{font-size:12.5px;letter-spacing:.1em;border-bottom:1px solid var(--line);padding-bottom:4px;transition:.7s}
.sp__acts a:hover{color:var(--gold2);border-color:var(--gold2)}
.noresult{padding:56px 0;text-align:center;font-size:13.5px;color:var(--gy)}

.fc{background:var(--sumi);color:var(--wh);text-align:center}
.fc .lead{color:rgb(var(--wh-rgb) / .6)}
.fc__t{font-size:clamp(19px,2.6vw,32px);font-weight:300;line-height:2;letter-spacing:.16em}
.fc__t span{color:var(--gold)}

.ft{background:var(--sumi2);color:var(--wh);padding:clamp(52px,6.5vw,84px) var(--pad) 24px;text-align:center}
.ft__logo{width:clamp(84px,8vw,110px);margin:0 auto clamp(24px,3vw,36px)}
.ft__nav{display:flex;gap:clamp(14px,2.4vw,34px);justify-content:center;flex-wrap:wrap;font-size:12.5px;letter-spacing:.1em}
.ft__nav a{color:rgb(var(--wh-rgb) / .62);transition:.7s}
.ft__nav a:hover{color:var(--gold)}
.ft__bt{margin-top:clamp(28px,3.4vw,44px);padding-top:22px;border-top:1px solid var(--line-d);
 font-size:11px;letter-spacing:.1em;color:rgb(var(--wh-rgb) / .4);
 display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap}
.ft__bt a{color:rgb(var(--wh-rgb) / .55)}.ft__bt a:hover{color:var(--wh)}










@media(max-width:1000px){
  .gnav{display:none}.hd__mb{display:block}
  .cnc,.feat,.box__g,.sp__in{grid-template-columns:1fr}
  .items{grid-template-columns:repeat(2,1fr)}
  .ach{grid-template-columns:1fr}
  .cnc__t,.hero__cc{writing-mode:horizontal-tb;height:auto;white-space:normal;text-align:center}
  /* 横組み時はコピーが写真中央の明部に載るためスクリムを増す（CQS-90 Q13: 4.5:1） */
  .hero__bg::after{background:linear-gradient(180deg,rgb(var(--ink-rgb) / .78) 0%,rgb(var(--ink-rgb) / .80) 40%,
   rgb(var(--ink-rgb) / .82) 68%,rgb(var(--ink-rgb) / .86) 100%)}
}
@media(max-width:600px){
  .items{grid-template-columns:1fr}
  .chips{flex-wrap:wrap}.chip{border-left:1px solid var(--line)}
  body{font-size:14px}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition-duration:.01ms!important}
 .rv{opacity:1;transform:none}.im img{transform:none}.hero__logo,.hero__cc,.hero__sub{opacity:1}}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* 本文へスキップ（A11Y-002） */
.skip-link{position:fixed;left:50%;top:0;z-index:1000;transform:translate(-50%,-130%);
 background:var(--sumi);color:var(--wh);font-size:13px;letter-spacing:.06em;
 padding:12px 26px;border-radius:0 0 4px 4px;transition:transform .25s var(--ease)}
.skip-link:focus{transform:translate(-50%,0);outline:2px solid var(--gold);outline-offset:2px}

/* --- ユーティリティ（旧インラインstyleの受け皿・CQS CSS-004） --- */
.u-mt-20{margin-top:20px}
.u-mt-22{margin-top:22px}
.u-mt-26{margin-top:26px}
.u-mt-28{margin-top:28px}
.u-mt-1-4em{margin-top:1.4em}
.u-mt-1-6em{margin-top:1.6em}
.u-mt-fluid{margin-top:clamp(32px,4vw,50px)}
.u-mb-18{margin-bottom:18px}
.u-mb-fluid{margin-bottom:clamp(50px,7vw,96px)}
.u-pt-0{padding-top:0}
.u-center{text-align:center}
.u-fs-m{font-size:clamp(18px,2.3vw,28px)}
.u-fs-s{font-size:12.5px}
.u-aka{font-style:normal;color:var(--aka)}
.u-bg-paper2{background:var(--paper2)}

/* デリバリー店：外部注文サイトへのリンク行（開閉なし） */
.sp--link .sp__q{cursor:pointer}
.sp--link .sp__q:hover .sp__n{color:var(--gold2)}
.sp__ex{justify-self:end;width:11px;height:11px;position:relative;flex-shrink:0}
.sp__ex::before{content:"";position:absolute;inset:2px 0 0 2px;width:8px;height:8px;
 border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg)}
.sp__ex::after{content:"";position:absolute;left:0;bottom:0;width:8px;height:1px;background:currentColor;opacity:.55}

/* 見出しの折返し最適化（1文字だけ次行に落ちるのを避ける・対応ブラウザのみ） */
h1,h2,h3,.ttl,.ttl-s,.lead,p{text-wrap:pretty}
