/* ================= tokens ================= */
:root{
  --paper:#F4F2EF; --paper2:#EAE7E1; --paper3:#DFDBD4;
  --ink:#13171A; --ink2:#1B1F23;
  --warm:#67655B; --concrete:#C9C5BF; --gold:#B0894C;
  --line-l:#DCD8D1; --line-d:#2B3036;
  --txt:#13171A; --txt-sub:#5C5A53; --txt-note:#6A675E;
  --r:28px;
  --max:1180px; --wide:1440px;
  --pad:150px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--paper); color:var(--txt);
  font-family:"Zen Kaku Gothic New",-apple-system,"Hiragino Kaku Gothic ProN",sans-serif;
  font-size:16px; line-height:2.05; -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
img{max-width:100%; display:block}
a{color:inherit; text-decoration:none}
h1,h2,h3,.lead,.btn,summary{word-break:auto-phrase; text-wrap:balance}
p{margin:0 0 1.15em}

/* display / label type */
.dsp{font-family:"Bebas Neue",sans-serif; font-weight:400; letter-spacing:.035em; line-height:.94}
.lbl{font-family:"Barlow Condensed",sans-serif; font-weight:600; text-transform:uppercase;
     font-size:11.5px; letter-spacing:.24em; line-height:1.6}

/* ================= signature motif ================= */
.cln{display:inline-flex; flex-direction:column; justify-content:center; gap:.14em; margin:0 .11em}
.cln i{display:block; width:.2em; height:.2em; background:currentColor}
.mk{display:inline-flex; flex-direction:column; gap:3px; margin-right:13px; vertical-align:middle}
.mk b{display:block; width:7px; height:7px; background:currentColor; opacity:.55}

/* ================= header ================= */
.hd{position:fixed; top:0; left:0; width:100%; z-index:90; background:var(--ink); color:var(--paper)}
.hd-in{max-width:var(--wide); margin:0 auto; padding:22px 40px; display:flex; align-items:center; justify-content:space-between; gap:28px}
.hd-logo{font-family:"Anton",sans-serif; font-size:27px; letter-spacing:.02em; line-height:1;
         display:flex; align-items:center; color:var(--paper)}
.hd-logo .cln i{background:rgba(244,242,239,.55)}
.hd-nav{display:flex; align-items:center; gap:22px}
.hd-nav a{font-size:12.5px; font-weight:500; letter-spacing:.07em;
          color:rgba(244,242,239,.74); transition:color .25s; white-space:nowrap}
.hd-nav a:hover{color:var(--paper)}
.hd-cta{display:flex; align-items:center; gap:10px}
.hd-cta a{font-family:"Barlow Condensed",sans-serif; font-weight:600; text-transform:uppercase;
  font-size:11.5px; letter-spacing:.16em; white-space:nowrap; padding:13px 22px; border:1px solid rgba(244,242,239,.32);
  color:var(--paper); transition:.25s}
.hd-cta a.fill{background:var(--paper); border-color:var(--paper); color:var(--ink)}
.hd-cta a:hover{background:var(--gold); border-color:var(--gold); color:var(--paper)}
.nav-sp{display:none}
.burger{display:none; width:46px; height:46px; border:0; background:none; padding:0; cursor:pointer; position:relative; z-index:110}
.burger span{display:block; width:26px; height:2px; background:var(--paper); margin:6px auto; transition:.3s}
.nav-open .burger span{background:var(--ink)}
.nav-open .burger span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.nav-open .burger span:nth-child(2){opacity:0}
.nav-open .burger span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

/* ================= hero ================= */
.hero{position:relative; min-height:100vh; display:flex; align-items:center; justify-content:center;
      text-align:center; color:var(--paper); overflow:hidden; padding:190px 24px 180px}
/* --- FV: fv-77 FocusPull 移植（ピュアCSS／JSなしでも完成形） --- */
.hero-bg{position:absolute; inset:0; z-index:0; overflow:hidden}
.hero-bg img{width:100%; height:100%; object-fit:cover; object-position:56% 50%;
  filter:grayscale(.42) contrast(1.05) brightness(.62) blur(0px); transform:scale(1);
  animation:so-focus 2.4s cubic-bezier(.3,.1,.2,1) .3s backwards}
@keyframes so-focus{
  from{filter:grayscale(.66) contrast(.94) brightness(.5) blur(30px); transform:scale(1.075)}
}
.hero-bg::after{content:''; position:absolute; inset:0;
  background:radial-gradient(120% 90% at 50% 45%, rgba(19,23,26,.28) 0%, rgba(19,23,26,.72) 78%)}
/* 前ボケの光の玉 → 結像 */
.bokeh{position:absolute; inset:0; z-index:1; pointer-events:none; overflow:hidden}
.bokeh span{position:absolute; border-radius:50%; will-change:filter,transform;
  background:radial-gradient(circle at 38% 32%, #FFF8EC, var(--c,#C9A227) 52%, transparent 72%);
  animation:so-bokeh 2.4s cubic-bezier(.3,.1,.2,1) .3s backwards}
@keyframes so-bokeh{from{filter:blur(10px); transform:scale(2.4)}}
.hero-in{position:relative; z-index:2; width:100%; max-width:1180px}
.hero-in > *{animation:so-rise 1.05s ease backwards}
.hero-in > .lbl{animation-delay:1.45s}
.hero-in > .wordmark{animation-delay:1.65s}
.hero-in > h1{animation-delay:1.9s}
.hero-in > .sub{animation-delay:2.05s}
.hero-in > .hero-btns{animation-delay:2.2s}
@keyframes so-rise{from{opacity:0; transform:translateY(20px)}}
.scroll-hint{animation:so-rise 1.05s ease 2.5s backwards}
.hero .lbl{color:rgba(244,242,239,.82); margin-bottom:34px}
.wordmark{font-family:"Anton",sans-serif; font-size:clamp(62px,13vw,196px); line-height:.9;
  letter-spacing:.01em; display:flex; align-items:center; justify-content:center; margin:0 0 34px;
  user-select:none; color:var(--paper)}
.wordmark .cln i{background:rgba(244,242,239,.62); width:.2em; height:.2em}
.hero h1{font-size:clamp(24px,2.9vw,38px); font-weight:500; line-height:1.62; letter-spacing:.055em; margin:0 0 22px}
.hero .sub{font-size:14.5px; line-height:2.1; color:rgba(244,242,239,.72); margin:0 auto 46px; max-width:30em}
.hero-btns{display:flex; gap:14px; justify-content:center; flex-wrap:wrap}
.scroll-hint{position:absolute; left:50%; bottom:34px; transform:translateX(-50%); z-index:1;
  display:flex; flex-direction:column; align-items:center; gap:12px; color:rgba(244,242,239,.6)}
.scroll-hint i{display:block; width:1px; height:56px; background:linear-gradient(180deg,rgba(244,242,239,.7),transparent)}

/* buttons */
.btn{display:inline-flex; align-items:center; gap:14px; padding:19px 34px;
  font-family:"Barlow Condensed",sans-serif; font-weight:600; text-transform:uppercase;
  font-size:12.5px; letter-spacing:.2em; border:1px solid; transition:.3s; cursor:pointer; border-radius:999px}
.btn.jp{font-family:"Zen Kaku Gothic New"; text-transform:none; font-size:13.5px; letter-spacing:.08em; font-weight:500}
.btn-fill{background:var(--paper); color:var(--ink); border-color:var(--paper)}
.btn-fill:hover{background:var(--gold); border-color:var(--gold); color:var(--paper)}
.btn-line{background:transparent; color:var(--paper); border-color:rgba(244,242,239,.45)}
.btn-line:hover{border-color:var(--paper); background:rgba(244,242,239,.1)}
.btn-dark{background:var(--ink); color:var(--paper); border-color:var(--ink)}
.btn-dark:hover{background:var(--gold); border-color:var(--gold)}
.btn-ol{background:transparent; color:var(--ink); border-color:rgba(19,23,26,.4)}
.btn-ol:hover{background:var(--ink); color:var(--paper); border-color:var(--ink)}
.ar{position:relative; width:22px; height:1px; background:currentColor; transition:width .3s; flex:0 0 auto}
.ar::after{content:''; position:absolute; right:0; top:-3px; width:7px; height:7px;
  border-top:1px solid currentColor; border-right:1px solid currentColor; transform:rotate(45deg)}
.btn:hover .ar{width:32px}

/* tagline marquee */
.tagline{background:var(--ink); color:var(--paper); overflow:hidden; padding:19px 0; border-top:1px solid var(--line-d)}
.tagline .tk{display:flex; width:max-content; animation:mqA 44s linear infinite}
.tagline span{font-family:"Bebas Neue",sans-serif; font-size:17px; letter-spacing:.3em;
  color:rgba(244,242,239,.26); padding-right:58px; white-space:nowrap}
.tagline span em{font-style:normal; color:rgba(244,242,239,.6)}

/* ================= layout helpers ================= */
.sec{padding:var(--pad) 0}
.wrap{max-width:var(--max); margin:0 auto; padding:0 40px}
.wide{max-width:var(--wide); margin:0 auto; padding:0 40px}
.eyebrow{display:flex; align-items:center; color:var(--warm); margin-bottom:26px}
.eyebrow.c{justify-content:center}
.h-en{font-family:"Bebas Neue",sans-serif; font-size:clamp(48px,7.4vw,104px); line-height:.92;
  letter-spacing:.035em; margin:0 0 30px; color:var(--ink)}
.h-jp{font-size:clamp(23px,2.6vw,33px); font-weight:500; line-height:1.72; letter-spacing:.05em; margin:0 0 28px}
.lead{font-size:15px; line-height:2.15; color:var(--txt-sub)}
.center{text-align:center}
.narrow{max-width:640px; margin:0 auto}
figure{margin:0}
.rimg{border-radius:var(--r); overflow:hidden}
.rimg img{width:100%; height:100%; object-fit:cover}
.dark{color:var(--paper)}
.dark .eyebrow{color:rgba(244,242,239,.52)}
.dark .h-en,.dark .h-jp{color:var(--paper)}
.dark .lead{color:rgba(244,242,239,.68)}
.dark .txtlink{color:var(--paper)}
.dark .btn-ol{color:var(--paper); border-color:rgba(244,242,239,.4)}
.dark .btn-ol:hover{background:var(--paper); color:var(--ink); border-color:var(--paper)}

/* ================= greeting ================= */
.greet{background:var(--paper)}
.greet .hero-photo{border-radius:var(--r); overflow:hidden; margin:66px 0 0}
.greet .hero-photo img{width:100%; height:min(62vh,560px); object-fit:cover; object-position:50% 42%; filter:grayscale(.18) contrast(1.04)}
.greet-body{display:grid; grid-template-columns:1fr 1fr; gap:72px; margin-top:76px; align-items:start}
.greet-body .sig{font-family:"Bebas Neue",sans-serif; font-size:26px; letter-spacing:.06em; color:var(--ink); margin-top:10px}

/* ================= gallery ================= */
.gal{background:var(--paper2); padding:var(--pad) 0; overflow:hidden}
.gal .wide{margin-bottom:56px}
.mq{overflow:hidden; margin-bottom:18px}
.mq-tk{display:flex; width:max-content; gap:18px}
.mq-a .mq-tk{animation:mqA 92s linear infinite}
.mq-b .mq-tk{animation:mqB 104s linear infinite}
.mq:hover .mq-tk{animation-play-state:paused}
.mq figure{width:250px; flex:0 0 auto; border-radius:20px; overflow:hidden}
.mq img{width:250px; height:312px; object-fit:cover; filter:grayscale(.12) contrast(1.04); transition:filter .5s,transform .7s}
.mq figure:hover img{filter:none; transform:scale(1.05)}
@keyframes mqA{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes mqB{from{transform:translateX(-50%)}to{transform:translateX(0)}}
.gal-foot{max-width:var(--wide); margin:44px auto 0; padding:0 40px; text-align:right}

/* ================= concept ================= */
.cpt{position:relative; background:var(--ink2); color:var(--paper); overflow:hidden; padding:var(--pad) 0}
.cpt::before{content:''; position:absolute; inset:0; background:url('../images/interior-03.jpg') center/cover no-repeat;
  opacity:.1; filter:grayscale(1)}
.cpt-in{position:relative; z-index:1; max-width:var(--wide); margin:0 auto; padding:0 40px;
  display:grid; grid-template-columns:44% 56%; gap:0; align-items:center}
.cpt-fig{border-radius:var(--r); overflow:hidden; position:relative}
.cpt-fig img{width:100%; height:640px; object-fit:cover; object-position:50% 28%; filter:grayscale(.28) contrast(1.05)}
.cpt-fig figcaption{position:absolute; left:0; bottom:0; background:var(--ink);
  font-family:"Barlow Condensed",sans-serif; font-weight:500; font-size:10.5px; letter-spacing:.24em;
  padding:12px 20px; border-radius:0 var(--r) 0 var(--r)}
.cpt-txt{padding-left:86px}
.cpt-def{border-top:1px solid var(--line-d); margin:0 0 36px}
.cpt-def div{display:grid; grid-template-columns:130px 1fr; gap:24px; padding:24px 0; border-bottom:1px solid var(--line-d)}
.cpt-def dt{font-family:"Bebas Neue",sans-serif; font-size:32px; letter-spacing:.07em; line-height:1}
.cpt-def dd{margin:0; font-size:14.5px; line-height:2; color:rgba(244,242,239,.7)}
.txtlink{display:inline-flex; align-items:center; gap:14px; font-family:"Barlow Condensed",sans-serif;
  font-weight:600; text-transform:uppercase; font-size:12px; letter-spacing:.2em;
  border-bottom:1px solid currentColor; padding-bottom:9px; opacity:.75; transition:opacity .25s}
.txtlink:hover{opacity:1}

/* ================= sns ================= */
.sns{background:var(--paper)}
.ig{margin-top:56px}
.ig-head{display:flex; align-items:baseline; justify-content:space-between; gap:20px;
  padding-bottom:16px; border-bottom:1px solid var(--line-l); margin-bottom:18px}
.ig-name{font-family:"Barlow Condensed",sans-serif; font-weight:600; font-size:17px; letter-spacing:.14em}
.ig-grid{display:grid; grid-template-columns:repeat(6,1fr); gap:10px}
.ig-grid a{aspect-ratio:1/1; overflow:hidden; border-radius:12px; background:var(--paper3)}
.ig-grid img{width:100%; height:100%; object-fit:cover; filter:grayscale(.1); transition:transform .6s,filter .4s}
.ig-grid a:hover img{transform:scale(1.07); filter:none}
.sns-grid{display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line-l); margin-top:60px}
.sns-grid a{display:flex; align-items:center; justify-content:space-between; gap:18px;
  padding:36px 30px 36px 6px; border-bottom:1px solid var(--line-l); border-right:1px solid var(--line-l); transition:.3s}
.sns-grid a:last-child{border-right:0}
.sns-grid a:hover{background:var(--ink); color:var(--paper); padding-left:26px}
.sns-grid .lb{display:flex; flex-direction:column; gap:7px}
.sns-grid .lb b{font-family:"Bebas Neue",sans-serif; font-weight:400; font-size:25px; letter-spacing:.09em}
.sns-grid .lb span{font-size:12.5px; color:var(--txt-note)}
.sns-grid a:hover .lb span{color:rgba(244,242,239,.66)}

/* ================= mens x boyish ================= */
.mb{padding:var(--pad) 0; background:var(--paper)}
.mb-row{max-width:var(--wide); margin:0 auto; padding:0 40px; display:grid; grid-template-columns:55% 45%; gap:0; align-items:center}
.mb-row + .mb-row{margin-top:120px}
.mb-fig{border-radius:var(--r); overflow:hidden}
.mb-fig img{width:100%; height:680px; object-fit:cover; filter:grayscale(.15) contrast(1.04)}
.mb-txt{padding-left:86px}
.mb-row.rev{grid-template-columns:45% 55%}
.mb-row.rev .mb-fig{order:2}
.mb-row.rev .mb-txt{order:1; padding-left:0; padding-right:86px}
.mb-num{font-family:"Bebas Neue",sans-serif; font-size:15px; letter-spacing:.32em; color:var(--txt-note); margin-bottom:20px}
.mb-txt h3{font-family:"Bebas Neue",sans-serif; font-size:clamp(46px,6vw,84px); line-height:.94;
  letter-spacing:.035em; margin:0 0 10px; font-weight:400}
.mb-txt .sm{font-size:13px; letter-spacing:.1em; color:var(--txt-note); margin-bottom:26px}

/* ================= menu ================= */
.menu{background:var(--ink); color:var(--paper); padding:var(--pad) 0}
.mlist{margin:60px 0 0; border-top:1px solid var(--line-d)}
.mrow{display:grid; grid-template-columns:1fr auto; gap:44px; align-items:center;
  padding:38px 0 34px; border-bottom:1px solid var(--line-d); transition:.3s}
.mside{display:flex; flex-direction:column; align-items:flex-end; gap:16px}
.mbook{display:inline-flex; align-items:center; gap:12px; white-space:nowrap;
  font-family:"Barlow Condensed",sans-serif; font-weight:600; font-size:11.5px; letter-spacing:.14em;
  padding:12px 22px; border:1px solid rgba(244,242,239,.34); border-radius:999px;
  color:var(--paper); transition:.28s}
.mbook:hover{background:var(--gold); border-color:var(--gold)}
.mbook .ar{width:16px}
.mbook:hover .ar{width:22px}
.mrow:hover{background:rgba(244,242,239,.035)}
.mname{display:flex; flex-direction:column; gap:10px}
.tag{font-family:"Barlow Condensed",sans-serif; font-weight:600; text-transform:uppercase;
  font-size:10.5px; letter-spacing:.2em; color:var(--gold); border:1px solid rgba(176,137,76,.5);
  padding:5px 13px; border-radius:999px; align-self:flex-start}
.nm{font-size:19px; font-weight:500; letter-spacing:.05em}
.ds{font-size:13px; color:rgba(244,242,239,.55); line-height:1.9}
.pr{font-family:"Bebas Neue",sans-serif; font-size:clamp(38px,4.6vw,60px); line-height:.9; letter-spacing:.03em; white-space:nowrap}
.pr small{font-family:"Zen Kaku Gothic New"; font-size:13px; font-weight:400; margin-left:7px; color:rgba(244,242,239,.55)}
.menu-foot{margin-top:46px; display:flex; justify-content:space-between; align-items:center; gap:24px; flex-wrap:wrap}
.menu-note{font-size:12.5px; color:rgba(244,242,239,.6); max-width:34em; line-height:1.9}

/* ================= reservation ================= */
.rsv{background:var(--paper2); padding:110px 0}
.rsv-in{max-width:var(--max); margin:0 auto; padding:0 40px; display:grid; grid-template-columns:1fr auto; gap:56px; align-items:center}
.rsv-btns{display:flex; flex-direction:column; gap:12px; min-width:300px}

/* ================= voice ================= */
.vo{padding:var(--pad) 0; background:var(--paper)}
.vo-grid{display:grid; grid-template-columns:repeat(3,1fr); margin-top:64px; border-top:1px solid var(--line-l)}
.vo-item{padding:46px 40px 40px 0; border-right:1px solid var(--line-l)}
.vo-item:last-child{border-right:0; padding-right:0}
.vo-item:not(:first-child){padding-left:40px}
.vo-n{font-family:"Bebas Neue",sans-serif; font-size:44px; letter-spacing:.06em; color:var(--paper3); line-height:1; margin-bottom:24px}
.vo-item p{font-size:14.5px; line-height:2.1; color:var(--txt-sub); margin:0}

/* ================= products ================= */
.pd{background:var(--ink2); color:var(--paper); padding:var(--pad) 0}
.pd-in{max-width:var(--wide); margin:0 auto; padding:0 40px; display:grid; grid-template-columns:50% 50%; gap:0; align-items:center}
.pd-in > *{min-width:0}
.pd-fig{border-radius:var(--r); overflow:hidden}
.pd-fig img{width:100%; height:660px; object-fit:cover; filter:grayscale(.22) contrast(1.04)}
.pd-txt{padding-left:86px}
.pd-ph{display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:34px 0 36px}
.pd-ph figure{aspect-ratio:1/1; overflow:hidden; border-radius:16px; background:var(--ink)}
.pd-ph img{width:100%; height:100%; object-fit:cover; filter:grayscale(.06) contrast(1.04); transition:transform .7s,filter .5s}
.pd-ph figure:hover img{transform:scale(1.06); filter:none}

/* ================= blog ================= */
.bl{padding:var(--pad) 0; background:var(--paper)}
.bl-in{display:grid; grid-template-columns:320px 1fr; gap:72px}
.bl-list{border-top:1px solid var(--line-l)}
.bl-list a{display:grid; grid-template-columns:140px 1fr; gap:30px; align-items:center;
  padding:26px 0; border-bottom:1px solid var(--line-l); transition:.28s}
.bl-list a:hover{padding-left:14px}
.bl-list .th{border-radius:14px; overflow:hidden}
.bl-list img{width:140px; height:94px; object-fit:cover; filter:grayscale(.18)}
.bl-meta{display:flex; gap:16px; align-items:center; margin-bottom:9px}
.bl-meta time{font-family:"Barlow Condensed",sans-serif; font-weight:500; font-size:13px; letter-spacing:.14em; color:var(--txt-note)}
.bl-meta .cat{font-family:"Barlow Condensed",sans-serif; font-weight:600; font-size:10.5px; letter-spacing:.18em;
  text-transform:uppercase; color:var(--txt-note); border:1px solid var(--line-l); padding:4px 11px; border-radius:999px}
.bl-list h3{font-size:15.5px; font-weight:500; margin:0; line-height:1.75}

/* ================= access ================= */
.ac{background:var(--paper2); padding:var(--pad) 0}
.ac-grid{display:grid; grid-template-columns:1fr 1fr; gap:72px; align-items:start; margin-top:56px}
.ac-map{position:relative; aspect-ratio:4/3; background:var(--paper3); border-radius:var(--r); overflow:hidden}
.ac-map iframe{position:absolute; inset:0; width:100%; height:100%; border:0; filter:grayscale(.9) contrast(1.05)}
.ac-tbl{border-top:1px solid var(--line-l)}
.ac-tbl div{display:grid; grid-template-columns:112px 1fr; gap:24px; padding:22px 0; border-bottom:1px solid var(--line-l)}
.ac-tbl dt{font-family:"Barlow Condensed",sans-serif; font-weight:600; text-transform:uppercase;
  font-size:11px; letter-spacing:.22em; color:var(--txt-note); padding-top:6px}
.ac-tbl dd{margin:0; font-size:15px; line-height:1.95}
.ac-tbl dd small{display:block; font-size:12.5px; color:var(--txt-note); margin-top:8px; line-height:1.85}

/* ================= final cta ================= */
.fcta{position:relative; background:var(--ink); color:var(--paper); overflow:hidden;
  padding:150px 0 230px; text-align:center}
.fcta .big{position:absolute; left:50%; bottom:-30px; transform:translateX(-50%);
  font-family:"Bebas Neue",sans-serif; font-size:clamp(96px,19vw,300px); line-height:.8; letter-spacing:.05em;
  color:transparent; -webkit-text-stroke:1px #333A41; white-space:nowrap; pointer-events:none; user-select:none}
.fcta-in{position:relative; z-index:1; max-width:800px; margin:0 auto; padding:0 40px}

/* ================= footer ================= */
.ft{background:var(--ink2); color:rgba(244,242,239,.62); padding:96px 0 0; font-size:13.5px}
.ft-in{max-width:var(--wide); margin:0 auto; padding:0 40px; display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:56px}
.ft-logo{font-family:"Anton",sans-serif; font-size:36px; color:var(--paper); display:flex; align-items:center; line-height:1; margin-bottom:22px}
.ft-logo .cln i{background:rgba(244,242,239,.5)}
.ft-tag{font-family:"Barlow Condensed",sans-serif; font-weight:500; font-size:12px; letter-spacing:.28em;
  color:rgba(244,242,239,.58); margin-bottom:32px; text-transform:uppercase}
.ft address{font-style:normal; line-height:2.1; font-size:13.5px}
.ft h4{font-family:"Barlow Condensed",sans-serif; font-weight:600; text-transform:uppercase;
  font-size:12px; letter-spacing:.24em; color:var(--paper); margin:0 0 22px}
.ft ul{list-style:none; margin:0; padding:0}
.ft li{margin-bottom:13px}
.ft li a{transition:color .25s}
.ft li a:hover{color:var(--paper)}
.ft-btm{margin-top:80px; border-top:1px solid var(--line-d)}
.ft-btm div{max-width:var(--wide); margin:0 auto; padding:26px 40px; display:flex; justify-content:space-between;
  gap:22px; flex-wrap:wrap; font-family:"Barlow Condensed",sans-serif; font-weight:500;
  font-size:11.5px; letter-spacing:.18em; text-transform:uppercase; color:rgba(244,242,239,.56)}

/* ================= sp fixed cta ================= */
.spcta{display:none; position:fixed; left:0; bottom:0; width:100%; z-index:95; background:var(--ink); border-top:1px solid var(--line-d)}
.spcta a{flex:1; display:flex; align-items:center; justify-content:center; padding:17px 6px;
  font-family:"Barlow Condensed",sans-serif; font-weight:600; text-transform:uppercase;
  font-size:12.5px; letter-spacing:.18em; color:var(--paper)}
.spcta a.p{background:var(--paper); color:var(--ink)}

/* ================= reveal ================= */
.rv{opacity:0; transform:translateY(30px);
    transition:opacity 1.05s cubic-bezier(.22,.7,.25,1), transform 1.05s cubic-bezier(.22,.7,.25,1)}
.rv.in{opacity:1; transform:none}
html:not(.j) .rv{opacity:1; transform:none}

/* ================= responsive ================= */
@media (max-width:1240px){
  .cpt-txt,.mb-txt,.pd-txt{padding-left:52px}
  .mb-row.rev .mb-txt{padding-right:52px}
  .greet-body{gap:48px}
}
@media (max-width:960px){
  :root{--pad:88px; --r:20px}
  .hd-nav,.hd-cta{display:none}
  .burger{display:block}
  .hd-in{padding:16px 22px}
  .hd-logo{font-size:23px}
  .nav-sp{position:fixed; inset:0; background:var(--paper); color:var(--ink); z-index:100;
    display:flex !important; flex-direction:column; justify-content:center; padding:96px 30px;
    transform:translateY(-100%); transition:transform .5s cubic-bezier(.7,0,.2,1); overflow-y:auto}
  .nav-open .nav-sp{transform:translateY(0)}
  .nav-sp a{font-family:"Bebas Neue",sans-serif; font-size:27px; letter-spacing:.06em; padding:16px 0;
    border-bottom:1px solid var(--line-l); display:flex; justify-content:space-between; align-items:baseline; gap:14px}
  .nav-sp a small{font-family:"Zen Kaku Gothic New"; font-size:12px; letter-spacing:.04em; color:var(--txt-note)}
  .nav-sp .sp-btns{margin-top:34px; display:flex; flex-direction:column; gap:11px}
  .nav-sp .sp-btns a{justify-content:center; border-bottom:0; font-family:"Barlow Condensed",sans-serif; font-size:12.5px}
  .spcta{display:flex}
  body{padding-bottom:56px}

  .hero{min-height:0; padding:150px 22px 96px}
  .hero .lbl{margin-bottom:26px; font-size:10.5px; letter-spacing:.2em}
  .wordmark{font-size:clamp(50px,16vw,96px); margin-bottom:26px}
  .hero h1{letter-spacing:.04em}
  .hero .sub{margin-bottom:34px}
  .hero-btns{flex-direction:column; align-items:stretch}
  .hero-btns .btn{justify-content:center}
  .scroll-hint{display:none}

  .wrap,.wide,.mb-row,.cpt-in,.pd-in,.rsv-in,.gal-foot,.ft-in,.ft-btm div,.fcta-in{padding-left:22px; padding-right:22px}
  .fcta .h-jp{font-size:21px; letter-spacing:.03em}
  .greet-body{grid-template-columns:1fr; gap:26px; margin-top:44px}
  .greet .hero-photo{margin-top:44px}
  .greet .hero-photo img{height:300px}
  .cpt-in,.mb-row,.mb-row.rev,.pd-in,.bl-in,.ac-grid,.rsv-in,.sns-grid,.vo-grid{grid-template-columns:1fr; gap:0}
  .cpt-txt,.mb-txt,.mb-row.rev .mb-txt,.pd-txt{padding:44px 0 0}
  .cpt-fig img,.mb-fig img,.pd-fig img{height:360px}
  .cpt-def div{grid-template-columns:1fr; gap:8px; padding:20px 0}
  .mb-row + .mb-row{margin-top:64px}
  .mb-row.rev .mb-fig{order:1}
  .mb-row.rev .mb-txt{order:2}
  .sns-grid a{border-right:0; padding:28px 16px 28px 0}
  .vo-item{border-right:0; border-bottom:1px solid var(--line-l); padding:32px 0 28px !important}
  .vo-item:last-child{border-bottom:0}
  .bl-in,.ac-grid{gap:40px}
  .bl-list a{grid-template-columns:104px 1fr; gap:20px}
  .bl-list img{width:104px; height:74px}
  .rsv-in{gap:30px}
  .rsv-btns{min-width:0}
  .ft-in{grid-template-columns:1fr; gap:44px}
  .ft-btm div{flex-direction:column; gap:10px}
  .mq figure,.mq img{width:172px}
  .mq img{height:215px}
  .mrow{grid-template-columns:1fr; gap:18px; align-items:start}
  .mside{align-items:flex-start; flex-direction:row; align-items:center; gap:18px; flex-wrap:wrap}
  .ig-grid{grid-template-columns:repeat(3,1fr); gap:7px}
  .ig-head{margin-bottom:14px}
  .fcta{padding:88px 0 150px}
  .menu-foot{flex-direction:column; align-items:flex-start}
}
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001s !important; animation-iteration-count:1 !important; transition-duration:.001s !important}
  .rv{opacity:1 !important; transform:none !important}
}

/* =========================================================================
   下層ページ共通コンポーネント
   ========================================================================= */

/* ---------- page head ---------- */
.phead{position:relative; background:var(--ink); color:var(--paper); overflow:hidden;
  padding:214px 0 92px}
.phead::before{content:''; position:absolute; inset:0;
  background:url('../images/textures/texture-concrete-panel-sm.jpg') center/450px 900px repeat;
  opacity:.13; filter:grayscale(1) contrast(1.1)}
.phead::after{content:''; position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(19,23,26,.55) 0%,rgba(19,23,26,.9) 100%)}
.phead-in{position:relative; z-index:1; max-width:var(--wide); margin:0 auto; padding:0 40px}
.phead .lbl{color:rgba(244,242,239,.6); display:flex; align-items:center; margin-bottom:22px}
.phead h1{font-family:"Bebas Neue",sans-serif; font-weight:400;
  font-size:clamp(52px,9vw,124px); line-height:.9; letter-spacing:.035em; margin:0 0 20px}
.phead .jp{font-size:clamp(15px,1.7vw,19px); font-weight:500; letter-spacing:.07em;
  color:rgba(244,242,239,.8); margin:0}
.crumb{position:relative; z-index:1; max-width:var(--wide); margin:44px auto 0; padding:0 40px;
  font-family:"Barlow Condensed",sans-serif; font-weight:500; font-size:11.5px;
  letter-spacing:.16em; text-transform:uppercase; color:rgba(244,242,239,.58)}
.crumb a{color:rgba(244,242,239,.62)}
.crumb a:hover{color:var(--paper)}
.crumb span{margin:0 10px; opacity:.5}

/* ---------- generic sections ---------- */
.sec-a{background:var(--paper); padding:var(--pad) 0}
.sec-b{background:var(--paper2); padding:var(--pad) 0}
.sec-d{background:var(--ink2); color:var(--paper); padding:var(--pad) 0}
.sec-d .h-en,.sec-d .h-jp{color:var(--paper)}
.sec-d .lead{color:rgba(244,242,239,.68)}
.sec-d .eyebrow{color:rgba(244,242,239,.52)}
.h-md{font-family:"Bebas Neue",sans-serif; font-weight:400;
  font-size:clamp(34px,4.6vw,64px); line-height:.95; letter-spacing:.035em; margin:0 0 22px}
.rule{height:1px; background:var(--line-l); border:0; margin:0}
.sec-d .rule{background:var(--line-d)}

/* ---------- oversized pull ---------- */
.pull{font-family:"Bebas Neue",sans-serif; font-weight:400;
  font-size:clamp(40px,7.4vw,104px); line-height:.98; letter-spacing:.03em;
  margin:0; color:var(--ink)}
.pull.out{color:transparent; -webkit-text-stroke:1px rgba(19,23,26,.4)}
.dark .pull,.sec-d .pull{color:var(--paper)}
.sec-d .pull.out{-webkit-text-stroke:1px #39424A}

/* ---------- zig rows (reuses .mb-row skeleton, lighter) ---------- */
.zig{max-width:var(--wide); margin:0 auto; padding:0 40px;
  display:grid; grid-template-columns:52% 48%; align-items:center}
.zig + .zig{margin-top:118px}
.zig-fig{border-radius:var(--r); overflow:hidden}
.zig-fig img{width:100%; height:600px; object-fit:cover; filter:grayscale(.16) contrast(1.04)}
.zig-txt{padding-left:80px}
.zig.rev{grid-template-columns:48% 52%}
.zig.rev .zig-fig{order:2}
.zig.rev .zig-txt{order:1; padding-left:0; padding-right:80px}

/* ---------- definition list (STAND / OUT) ---------- */
.def{border-top:1px solid var(--line-d); margin:0}
.def > div{display:grid; grid-template-columns:150px 1fr; gap:28px;
  padding:28px 0; border-bottom:1px solid var(--line-d)}
.def dt{font-family:"Bebas Neue",sans-serif; font-size:38px; letter-spacing:.07em; line-height:1}
.def dd{margin:0; font-size:14.5px; line-height:2.05; color:rgba(244,242,239,.72)}
.def dd span{display:block}

/* ---------- menu / price ---------- */
.mcat + .mcat{margin-top:104px}
.mcat-head{display:grid; grid-template-columns:1fr 1.15fr; gap:60px; align-items:end;
  padding-bottom:26px; border-bottom:2px solid var(--ink)}
.mcat-head h2{font-family:"Bebas Neue",sans-serif; font-weight:400;
  font-size:clamp(40px,5.6vw,76px); line-height:.92; letter-spacing:.035em; margin:0}
.mcat-head .jp{font-size:16px; font-weight:500; letter-spacing:.08em; margin:0 0 6px}
.mcat-head p{font-size:13.5px; line-height:2.05; color:var(--txt-sub); margin:0}
.prow{display:grid; grid-template-columns:1fr auto; gap:36px; align-items:baseline;
  padding:26px 4px 24px; border-bottom:1px solid var(--line-l); transition:.25s}
.prow:hover{background:var(--paper2); padding-left:14px}
.prow .pn{font-size:16.5px; font-weight:500; letter-spacing:.05em; margin:0}
.prow .pd2{font-size:12.5px; color:var(--txt-note); margin:7px 0 0; line-height:1.85}
.prow .pp{font-family:"Bebas Neue",sans-serif; font-size:34px; letter-spacing:.03em;
  line-height:1; white-space:nowrap}
.prow .pp small{font-family:"Zen Kaku Gothic New"; font-size:12px; margin-left:6px; color:var(--txt-note)}
.callout{background:var(--paper2); border-radius:var(--r); padding:44px 48px; margin-top:46px}
.callout h3{font-size:17px; font-weight:500; letter-spacing:.06em; margin:0 0 14px}
.callout p{font-size:14px; line-height:2.05; color:var(--txt-sub); margin:0}
.sec-d .callout{background:rgba(244,242,239,.055)}
.sec-d .callout p{color:rgba(244,242,239,.7)}

/* ---------- gallery grid ---------- */
.ggrid{display:grid; grid-template-columns:repeat(12,1fr); gap:16px; margin-top:64px}
.ggrid > *{min-width:0}
.ggrid figure{margin:0; overflow:hidden; border-radius:20px; background:var(--paper3)}
.ggrid img{width:100%; height:100%; object-fit:cover; filter:grayscale(.12) contrast(1.04);
  transition:transform .8s cubic-bezier(.2,.7,.3,1), filter .5s}
.ggrid figure:hover img{transform:scale(1.06); filter:none}
.g4{grid-column:span 4; aspect-ratio:4/5}
.g6{grid-column:span 6; aspect-ratio:4/3}
.g8{grid-column:span 8; aspect-ratio:16/10}
.g3{grid-column:span 3; aspect-ratio:3/4}

/* ---------- faq accordion ---------- */
.faq{border-top:1px solid var(--line-l); margin-top:56px}
.faq details{border-bottom:1px solid var(--line-l)}
.faq summary{list-style:none; cursor:pointer; display:grid; grid-template-columns:56px minmax(0,1fr) 28px;
  gap:18px; align-items:baseline; padding:30px 4px; transition:.25s}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{background:var(--paper2); padding-left:14px}
.faq .qn{font-family:"Bebas Neue",sans-serif; font-size:23px; letter-spacing:.06em;
  color:var(--txt-note); line-height:1.3}
.faq .qt{font-size:16px; font-weight:500; letter-spacing:.045em; line-height:1.75; min-width:0; overflow-wrap:anywhere}
.faq .ic{position:relative; width:15px; height:15px; justify-self:end; align-self:center}
.faq .ic::before,.faq .ic::after{content:''; position:absolute; background:var(--ink); transition:.3s}
.faq .ic::before{left:0; top:7px; width:15px; height:1px}
.faq .ic::after{left:7px; top:0; width:1px; height:15px}
.faq details[open] .ic::after{transform:scaleY(0)}
.faq .ans{padding:0 60px 34px 74px; font-size:14.5px; line-height:2.15; color:var(--txt-sub)}
.faq .ans p{margin:0 0 .9em}
.faq .ans p:last-child{margin:0}

/* ---------- voice ---------- */
.vhero{display:grid; grid-template-columns:repeat(3,1fr); gap:0;
  border-top:1px solid var(--line-l); margin-top:60px}
.vhero article{padding:44px 40px 40px 0; border-right:1px solid var(--line-l)}
.vhero article:last-child{border-right:0; padding-right:0}
.vhero article:not(:first-child){padding-left:40px}
.vlist{border-top:1px solid var(--line-l); margin-top:56px}
.vlist article{display:grid; grid-template-columns:132px 1fr; gap:34px;
  padding:38px 0; border-bottom:1px solid var(--line-l)}
.vn{font-family:"Bebas Neue",sans-serif; font-size:46px; letter-spacing:.06em;
  color:var(--paper3); line-height:1}
.vlist p,.vhero p{font-size:14.5px; line-height:2.15; color:var(--txt-sub); margin:0}
.sec-d .vn{color:#39424A}
.sec-d .vlist article{border-color:var(--line-d)}
.sec-d .vlist,.sec-d .vhero{border-color:var(--line-d)}
.sec-d .vlist p,.sec-d .vhero p{color:rgba(244,242,239,.7)}

/* ---------- staff ---------- */
.staff{max-width:var(--wide); margin:0 auto; padding:0 40px;
  display:grid; grid-template-columns:44% 56%; align-items:start}
.staff + .staff{margin-top:120px}
.staff-fig{border-radius:var(--r); overflow:hidden; position:relative}
.staff-fig img{width:100%; height:660px; object-fit:cover; object-position:50% 30%;
  filter:grayscale(.2) contrast(1.04)}
.staff-fig figcaption{position:absolute; left:0; bottom:0; background:var(--ink); color:var(--paper);
  font-family:"Barlow Condensed",sans-serif; font-weight:500; font-size:10.5px;
  letter-spacing:.24em; padding:12px 20px; border-radius:0 var(--r) 0 var(--r)}
.staff-txt{padding-left:80px}
.staff-role{font-family:"Barlow Condensed",sans-serif; font-weight:600; text-transform:uppercase;
  font-size:11.5px; letter-spacing:.24em; color:var(--warm); margin-bottom:16px}
.staff-name{font-size:clamp(26px,3vw,38px); font-weight:500; letter-spacing:.07em; margin:0 0 6px}
.staff-en{font-family:"Bebas Neue",sans-serif; font-size:20px; letter-spacing:.16em;
  color:var(--txt-note); margin:0 0 28px}
.sdl{border-top:1px solid var(--line-l); margin:34px 0 0}
.sdl > div{display:grid; grid-template-columns:96px 1fr; gap:26px; padding:20px 0;
  border-bottom:1px solid var(--line-l)}
.sdl dt{font-family:"Barlow Condensed",sans-serif; font-weight:600; text-transform:uppercase;
  font-size:11px; letter-spacing:.2em; color:var(--txt-note); padding-top:5px}
.sdl dd{margin:0; font-size:14px; line-height:2.05}
.staff-btns{display:flex; gap:11px; flex-wrap:wrap; margin-top:32px}
.staff-btns .btn{padding:15px 26px; font-size:11.5px}

/* ---------- products placeholder ---------- */
.pgrid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px; margin-top:60px}
.pcard figure{aspect-ratio:4/5; border-radius:var(--r); overflow:hidden; background:var(--paper3);
  display:flex; align-items:center; justify-content:center}
.pcard figure img{width:100%; height:100%; object-fit:cover}
.pcard .ph{font-family:"Barlow Condensed",sans-serif; font-weight:600; font-size:11px;
  letter-spacing:.2em; text-transform:uppercase; color:#5B584F}
.pcard h3{font-size:15px; font-weight:500; letter-spacing:.05em; margin:18px 0 6px}
.pcard p{font-size:12.5px; color:var(--txt-sub); margin:0; line-height:1.9}

/* ---------- blog list ---------- */
.blist{border-top:1px solid var(--line-l); margin-top:56px}
.blist a{display:grid; grid-template-columns:240px 1fr auto; gap:36px; align-items:center;
  padding:30px 4px; border-bottom:1px solid var(--line-l); transition:.28s}
.blist a:hover{padding-left:16px; background:var(--paper2)}
.blist .th{border-radius:16px; overflow:hidden; background:var(--paper3)}
.blist .th img{width:100%; aspect-ratio:16/10; object-fit:cover; filter:grayscale(.16)}
.blist h3{font-size:17px; font-weight:500; margin:0; line-height:1.75; letter-spacing:.04em}

/* ---------- form ---------- */
.form{max-width:820px; margin:60px auto 0}
.frow{display:grid; grid-template-columns:210px 1fr; gap:30px; align-items:start;
  padding:26px 0; border-bottom:1px solid var(--line-l)}
.frow:first-child{border-top:1px solid var(--line-l)}
.flab{font-size:14px; font-weight:500; letter-spacing:.06em; padding-top:14px;
  display:flex; align-items:center; gap:10px}
.req{font-family:"Barlow Condensed",sans-serif; font-weight:600; font-size:10px;
  letter-spacing:.14em; color:#fff; background:#A2503F; padding:3px 8px; border-radius:3px}
.opt{font-family:"Barlow Condensed",sans-serif; font-weight:600; font-size:10px;
  letter-spacing:.14em; color:var(--txt-note); border:1px solid var(--line-l);
  padding:2px 8px; border-radius:3px}
.form input[type=text],.form input[type=email],.form input[type=tel],
.form input[type=datetime-local],.form select,.form textarea{
  width:100%; font-family:inherit; font-size:15px; line-height:1.8; color:var(--txt);
  background:var(--paper); border:1px solid var(--line-l); border-radius:10px;
  padding:14px 16px; transition:border-color .25s, box-shadow .25s}
.form textarea{min-height:190px; resize:vertical}
.form select{appearance:none; background-image:
  linear-gradient(45deg,transparent 50%,var(--txt-note) 50%),
  linear-gradient(135deg,var(--txt-note) 50%,transparent 50%);
  background-position:calc(100% - 21px) 22px, calc(100% - 15px) 22px;
  background-size:6px 6px,6px 6px; background-repeat:no-repeat; padding-right:46px}
.form :is(input,select,textarea):focus{outline:none; border-color:var(--ink);
  box-shadow:0 0 0 3px rgba(19,23,26,.08)}
.fhint{font-size:12px; color:var(--txt-note); margin:9px 0 0; line-height:1.8}
.fagree{margin:34px 0 0; font-size:13.5px; text-align:center; color:var(--txt-sub)}
.fagree a{border-bottom:1px solid var(--line-l)}
.fsend{margin-top:26px; text-align:center}
.fsend .btn{padding:21px 60px}
.finfo{display:grid; grid-template-columns:repeat(2,1fr); gap:20px; margin-top:56px}
.finfo a{display:flex; align-items:center; justify-content:space-between; gap:18px;
  border:1px solid var(--line-l); border-radius:var(--r); padding:30px 32px; transition:.28s}
.finfo a:hover{background:var(--ink); color:var(--paper); border-color:var(--ink)}
.finfo b{font-family:"Bebas Neue",sans-serif; font-weight:400; font-size:25px; letter-spacing:.08em}
.finfo span{display:block; font-size:12.5px; color:var(--txt-note); margin-top:6px}
.finfo a:hover span{color:rgba(244,242,239,.66)}

/* ---------- legal ---------- */
.legal{max-width:800px; margin:0 auto}
.legal h2{font-size:18px; font-weight:500; letter-spacing:.06em; margin:56px 0 16px;
  padding-top:26px; border-top:1px solid var(--line-l)}
.legal h2:first-of-type{margin-top:0; padding-top:0; border-top:0}
.legal p,.legal li{font-size:14.5px; line-height:2.15; color:var(--txt-sub)}
.legal ul,.legal ol{padding-left:1.3em; margin:0 0 1.15em}
.legal li{margin-bottom:.5em}
.legal .updated{font-family:"Barlow Condensed",sans-serif; font-weight:500; font-size:12px;
  letter-spacing:.16em; text-transform:uppercase; color:var(--txt-note); margin-top:56px;
  padding-top:22px; border-top:1px solid var(--line-l)}

/* ---------- shared cta band ---------- */
.cta{background:var(--paper2); padding:110px 0}
.cta-in{max-width:var(--max); margin:0 auto; padding:0 40px;
  display:grid; grid-template-columns:1fr auto; gap:56px; align-items:center}
.cta-btns{display:flex; flex-direction:column; gap:12px; min-width:300px}

/* ---------- responsive ---------- */
@media (max-width:1240px){
  .zig-txt,.staff-txt{padding-left:52px}
  .zig.rev .zig-txt{padding-right:52px}
}
@media (max-width:960px){
  .mb-cols{grid-template-columns:1fr !important; gap:26px !important}
  .mb-pair{grid-template-columns:1fr !important; gap:12px !important}
  .mb-cols > *{min-width:0}
  .phead{padding:132px 0 60px}
  .phead-in,.crumb{padding-left:22px; padding-right:22px}
  .crumb{margin-top:30px}
  .zig,.staff,.cta-in{padding-left:22px; padding-right:22px}
  .zig,.zig.rev,.staff,.mcat-head,.cta-in,.finfo,.pgrid,.vhero{grid-template-columns:1fr; gap:0}
  .zig + .zig,.staff + .staff{margin-top:60px}
  .zig-txt,.zig.rev .zig-txt,.staff-txt{padding:38px 0 0}
  .zig.rev .zig-fig{order:1}
  .zig.rev .zig-txt{order:2}
  .zig-fig img,.staff-fig img{height:340px}
  .def > div{grid-template-columns:1fr; gap:8px; padding:20px 0}
  .mcat + .mcat{margin-top:64px}
  .mcat-head{gap:14px; padding-bottom:18px}
  .mcat-head p{margin-top:12px}
  .prow{grid-template-columns:1fr; gap:12px}
  .prow .pp{font-size:29px}
  .callout{padding:30px 24px}
  .ggrid{grid-template-columns:repeat(6,1fr); gap:10px; margin-top:40px}
  .g4,.g3{grid-column:span 3}
  .g6,.g8{grid-column:span 6}
  .faq summary{grid-template-columns:36px minmax(0,1fr) 20px; gap:10px; padding:24px 4px}
  .faq .qt{font-size:15px}
  .faq .ans{padding:0 6px 28px 52px}
  .vhero article{border-right:0; border-bottom:1px solid var(--line-l);
    padding:30px 0 26px !important}
  .vhero article:last-child{border-bottom:0}
  .vlist article{grid-template-columns:1fr; gap:14px; padding:30px 0}
  .vn{font-size:34px}
  .sdl > div{grid-template-columns:1fr; gap:6px; padding:16px 0}
  .pgrid{gap:20px}
  .blist a{grid-template-columns:1fr; gap:16px; padding:24px 4px}
  .blist .th{max-width:100%}
  .frow{grid-template-columns:1fr; gap:10px; padding:20px 0}
  .flab{padding-top:0}
  .finfo{gap:12px}
  .cta{padding:70px 0}
  .cta-btns{min-width:0}
  .legal h2{margin-top:40px}
}


/* =========================================================================
   WordPress（wp_nav_menu が <ul><li> を出すためのブリッジ）
   ========================================================================= */
.hd-nav ul,.nav-sp ul{list-style:none; margin:0; padding:0}
.hd-nav ul{display:flex; align-items:center; gap:22px}
.hd-nav li{margin:0}
.nav-sp ul{display:flex; flex-direction:column}
.nav-sp li{margin:0}
/* 現在地 */
.hd-nav .current-menu-item > a{color:var(--paper)}
.nav-sp .current-menu-item > a{opacity:1}
/* 投稿本文（the_content）を既存のトーンに合わせる */
.entry{max-width:760px}
.entry > *{margin:0 0 1.15em}
.entry h2{font-size:19px; font-weight:500; letter-spacing:.06em; margin:56px 0 16px;
  padding-top:26px; border-top:1px solid var(--line-l)}
.entry h3{font-size:16.5px; font-weight:500; letter-spacing:.05em; margin:40px 0 12px}
.entry p,.entry li{font-size:15px; line-height:2.15; color:var(--txt-sub)}
.entry img{border-radius:var(--r); margin:34px 0}
.entry blockquote{margin:34px 0; padding:22px 26px; background:var(--paper2);
  border-radius:var(--r); font-size:14.5px; line-height:2.05}
.entry blockquote p:last-child{margin:0}
.entry a{border-bottom:1px solid var(--line-l)}
.wp-pagenavi,.nav-links{display:flex; gap:10px; flex-wrap:wrap; margin-top:44px;
  font-family:"Barlow Condensed",sans-serif; font-weight:600; letter-spacing:.14em}
.nav-links a,.nav-links .current{padding:11px 18px; border:1px solid var(--line-l); border-radius:999px}
.nav-links .current{background:var(--ink); color:var(--paper); border-color:var(--ink)}
