:root{
  --ink:#1E1C1A; --sub:#5E5853; --body:#4A4540; --line:#E4E1DD; --soft:#F4F1EC;
  --accent:#1F3557; --white:#FFFFFF; --ph:#EFECE8;
  --en:'Jost', 'Helvetica Neue', Arial, sans-serif;
  --ja:'Zen Kaku Gothic New', 'Hiragino Sans', 'Yu Gothic', sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0; background:var(--white); color:var(--ink); font-family:var(--ja); font-size:15px; line-height:1.8; -webkit-font-smoothing:antialiased}
img{max-width:100%; height:auto; display:block}
a{color:inherit; text-decoration:none}
a:hover{color:var(--accent)}
:focus-visible{outline:2px solid var(--accent); outline-offset:3px}
.en{font-family:var(--en); font-weight:500; letter-spacing:.2em}
.wrap{max-width:1248px; margin:0 auto; padding:0 48px}

/* ---------- intro ---------- */
.intro{position:fixed; inset:0; z-index:100; background:var(--white); display:flex; align-items:center; justify-content:center; transition:opacity .9s ease, visibility .9s}
.intro__logo{font-family:var(--en); font-weight:500; font-size:clamp(28px,4vw,44px); letter-spacing:.14em; opacity:0; transform:translateY(8px); animation:introIn 1.1s ease .2s forwards}
@keyframes introIn{to{opacity:1; transform:none}}
body.is-loaded .intro{opacity:0; visibility:hidden}
.has-intro .page{opacity:0; transition:opacity 1s ease}
.has-intro.is-loaded .page{opacity:1}

/* ---------- scroll reveal ---------- */
.reveal{opacity:0; transform:translateY(24px); transition:opacity .9s ease, transform .9s ease}
.reveal.is-visible{opacity:1; transform:none}
.reveal-d1{transition-delay:.08s}.reveal-d2{transition-delay:.16s}.reveal-d3{transition-delay:.24s}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  .intro__logo{transform:none}
  .reveal{transform:none}
}

/* ---------- top bar / hero / nav ---------- */
.notice{background:var(--ink); color:#F4F1EC; text-align:center; padding:10px 16px; font-size:13px; letter-spacing:.08em}
.notice p{margin:0}.notice span{white-space:nowrap}.notice__sp{display:none}
.notice .sep{margin:0 .6em}
.nb{display:inline-block}
.hero{position:relative; height:min(620px,78vh); min-height:420px; display:flex; align-items:center; justify-content:center; overflow:hidden; background:#3E4A55}
.hero__slides{position:absolute; inset:0; margin:0; padding:0; list-style:none}
.hero__slides li{position:absolute; inset:0; opacity:0; transition:opacity 1.6s ease}
.hero__slides li.is-active{opacity:1}
.hero__slides img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 60%; transform:scale(1.04); transition:transform 7s linear}
.hero__slides li.is-active img{transform:scale(1)}
.hero__dots{position:absolute; left:50%; bottom:20px; transform:translateX(-50%); z-index:2; display:flex; gap:10px}
.hero__dots button{width:24px; height:2px; padding:0; border:0; background:rgba(255,255,255,.45); cursor:pointer}
.hero__dots button[aria-current="true"]{background:#fff}
.hero__dots button::before{content:""; display:block; height:18px; margin-top:-8px}
.hero::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(20,26,32,.2) 0%, rgba(20,26,32,.42) 55%, rgba(20,26,32,.3) 100%)}
.hero__copy{position:relative; z-index:1; color:#fff; text-align:center; padding:0 24px; display:flex; flex-direction:column; align-items:center; gap:20px; text-shadow:0 1px 12px rgba(0,0,0,.25)}
.hero__copy h1{margin:0; font-size:15px; font-weight:500; letter-spacing:.18em}
.hero__big{margin:0; font-family:var(--en); font-weight:500; font-size:clamp(40px,6vw,64px); letter-spacing:.14em; line-height:1.15}
.hero__season{margin:0; font-family:var(--en); font-size:14px; font-weight:500; letter-spacing:.3em}
.btn-line{display:inline-block; border:1px solid currentColor; padding:12px 32px; font-family:var(--en); font-size:13px; font-weight:500; letter-spacing:.2em}
.hero .btn-line{color:#fff}

.gnav{position:sticky; top:0; z-index:20; background:rgba(255,255,255,.96); backdrop-filter:saturate(1.2); display:flex; align-items:center; justify-content:space-between; gap:16px 32px; padding:18px 48px; border-bottom:1px solid var(--line); font-family:var(--en); font-size:13px; font-weight:500; letter-spacing:.16em}
.gnav__side{display:flex; gap:28px; flex:1 1 0}
.gnav__side--r{justify-content:flex-end}
.gnav__logo{font-size:28px; letter-spacing:.12em; white-space:nowrap}

/* ---------- sections ---------- */
section{scroll-margin-top:72px}
.sec-head{display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; gap:12px 16px}
.sec-title{margin:0; font-family:var(--en); font-size:15px; font-weight:600; letter-spacing:.2em}
.sec-title span{font-family:var(--ja); font-weight:500; letter-spacing:.05em; color:var(--sub); margin-left:12px}
.eyebrow{margin:0; font-family:var(--en); font-size:13px; font-weight:500; letter-spacing:.3em; color:var(--accent)}
.h2{margin:0; font-size:26px; font-weight:500; letter-spacing:.1em; line-height:1.6}
.link-more{display:block; text-align:center; border:1px solid #CFCAC4; padding:14px; font-family:var(--en); font-size:12px; font-weight:500; letter-spacing:.2em}

.items{display:flex; flex-wrap:wrap; gap:48px; padding-top:72px; padding-bottom:32px}
.items__main{flex:999 1 560px; min-width:0; display:flex; flex-direction:column; gap:28px}
.grid-items{display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:40px 28px}
.card{display:flex; flex-direction:column; gap:10px}
.card img{width:100%; aspect-ratio:4/5; object-fit:cover; background:var(--ph); transition:opacity .3s}
.card:hover img{opacity:.85}
.card__no{margin:0; font-family:var(--en); font-size:12px; letter-spacing:.16em; color:var(--sub)}
.card__name{margin:0; font-size:14px; line-height:1.6}
.card__price{margin:0; font-size:13px; color:var(--sub)}
.journal{flex:1 1 280px; min-width:0; display:flex; flex-direction:column; gap:28px; border-left:1px solid var(--line); padding-left:40px}
.post{display:flex; flex-direction:column; gap:10px}
.post img{width:100%; aspect-ratio:3/2; object-fit:cover; background:var(--ph)}
.post__title{margin:0; font-size:14px; line-height:1.6; font-weight:500}
.post__meta{margin:0; font-family:var(--en); font-size:12px; letter-spacing:.1em; color:var(--sub)}
.post__meta b{font-weight:500; color:var(--accent)}

.brands{margin-top:72px; padding:88px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); text-align:center}
.brands .wrap{display:flex; flex-direction:column; align-items:center; gap:40px}
.logo-grid{width:100%; display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); border-top:1px solid var(--line); border-left:1px solid var(--line)}
.logo-grid > *{height:112px; padding:16px 24px; display:flex; align-items:center; justify-content:center; border-right:1px solid var(--line); border-bottom:1px solid var(--line); background:#fff}
.logo-grid img{max-height:40px; width:auto; object-fit:contain; transition:opacity .3s}
.logo-grid a:hover img{opacity:.6}
.logo-grid .more{font-family:var(--en); font-size:15px; letter-spacing:.2em; color:var(--sub)}
.btn-accent{border:1px solid var(--accent); color:var(--accent); padding:12px 40px; font-family:var(--en); font-size:12px; font-weight:500; letter-spacing:.2em; transition:background .3s, color .3s}
.btn-accent:hover{background:var(--accent); color:#fff}

.concept{padding:104px 48px; display:flex; flex-wrap:wrap; gap:64px; align-items:center}
.concept img{flex:1 1 420px; min-width:0; width:100%; aspect-ratio:4/3; object-fit:cover; background:var(--ph)}
.concept__text{flex:1 1 380px; min-width:0; display:flex; flex-direction:column; gap:24px}
.concept__text p.body{margin:0; line-height:2.1; color:var(--body)}
.underline{align-self:flex-start; border-bottom:1px solid var(--ink); padding-bottom:4px; font-family:var(--en); font-size:12px; font-weight:500; letter-spacing:.2em}

.insta{padding-bottom:104px}
.insta__head{display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-end; gap:16px; margin-bottom:32px}
.insta__head > div{display:flex; flex-direction:column; gap:8px}
.btn-insta{display:inline-flex; align-items:center; gap:10px; border:1px solid var(--accent); color:var(--accent); padding:12px 28px; font-family:var(--en); font-size:13px; font-weight:500; letter-spacing:.12em; transition:background .3s, color .3s}
.btn-insta:hover{background:var(--accent); color:#fff}
.feed{display:grid; grid-template-columns:repeat(8,minmax(0,1fr)); gap:8px}
.feed img{width:100%; aspect-ratio:3/4; object-fit:cover; background:var(--ph); transition:opacity .3s}
.feed a{position:relative; display:block}
.feed a:hover img{opacity:.8}
.feed__reel{position:absolute; top:6px; right:6px; color:#fff; filter:drop-shadow(0 1px 2px rgba(0,0,0,.5))}

.order{background:var(--soft); padding:88px 0}
.order .wrap{display:flex; flex-direction:column; gap:40px}
.order__head{text-align:center; display:flex; flex-direction:column; gap:12px}
.order__head p.lead{margin:0; font-size:14px; color:var(--body)}
.steps{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:24px}
.steps li{background:#fff; padding:32px; display:flex; flex-direction:column; gap:10px}
.steps .num{font-family:var(--en); font-size:28px; font-weight:500; color:var(--accent)}
.steps .t{font-size:16px; font-weight:700}
.steps .d{font-size:14px; color:var(--body)}
.order__btns{display:flex; flex-wrap:wrap; justify-content:center; gap:16px}
.btn-solid{background:var(--ink); color:#fff; padding:16px 40px; font-size:14px; letter-spacing:.12em}
.btn-solid:hover{background:var(--accent); color:#fff}
.btn-ghost{border:1px solid var(--ink); padding:15px 40px; font-size:14px; letter-spacing:.12em}

.shop{padding:104px 48px; display:flex; flex-wrap:wrap; gap:64px}
.shop__info{flex:1 1 380px; min-width:0; display:flex; flex-direction:column; gap:24px}
.shop dl{margin:0; display:grid; grid-template-columns:96px minmax(0,1fr); gap:14px 16px; font-size:14px}
.shop dt{color:var(--sub)} .shop dd{margin:0}
.shop__btns{display:flex; flex-wrap:wrap; gap:12px}
.shop__btns a{border:1px solid #CFCAC4; padding:12px 24px; font-size:13px; letter-spacing:.08em}
.map{flex:1 1 420px; min-width:0; aspect-ratio:4/3; background:#E3DFDA}
.map{position:relative}
.map iframe{width:100%; height:100%; border:0; display:block; filter:grayscale(1) sepia(.1) contrast(.85) brightness(1.1)}
.map__canvas{position:absolute; inset:0; opacity:0; transition:opacity .6s}
.map.is-styled .map__canvas{opacity:1}
.map.is-styled iframe{visibility:hidden}

.footer{background:var(--ink); color:#D9D2C9; padding:56px 48px 40px}
.footer__inner{max-width:1248px; margin:0 auto; display:flex; flex-wrap:wrap; justify-content:space-between; gap:32px; align-items:flex-end}
.footer__brand{display:flex; flex-direction:column; gap:8px}
.footer__logo{font-family:var(--en); font-size:24px; font-weight:500; letter-spacing:.12em; color:#F4F1EC}
.footer__nav{display:flex; flex-wrap:wrap; gap:16px 24px; font-family:var(--en); font-size:12px; font-weight:500; letter-spacing:.16em}
.footer__nav a{color:#F4F1EC}
.footer__nav a:hover{color:#B9C7DB}
.footer__copy{max-width:1248px; margin:40px auto 0; font-size:12px; color:#A9A097}

/* ---------- business calendar ---------- */
.bizcal{display:flex; flex-direction:column; gap:14px; padding-bottom:28px; border-bottom:1px solid var(--line)}
.bizcal__head{display:flex; flex-direction:column; gap:14px}
.bizcal__nav{display:flex; align-items:center; justify-content:space-between; gap:6px; font-family:var(--en); font-size:14px; font-weight:500; letter-spacing:.12em}
.bizcal__nav button{width:28px; height:28px; border:1px solid var(--line); background:#fff; color:var(--ink); cursor:pointer; display:flex; align-items:center; justify-content:center; padding:0; transition:border-color .2s, color .2s}
.bizcal__nav button:hover:not(:disabled){border-color:var(--accent); color:var(--accent)}
.bizcal__nav button:disabled{opacity:.3; cursor:default}
.bizcal__month{min-width:72px; text-align:center}
.bizcal table{width:100%; border-collapse:collapse; table-layout:fixed; font-family:var(--en); font-size:13px; text-align:center}
.bizcal th{font-weight:500; font-size:11px; letter-spacing:.08em; color:var(--sub); padding:0 0 6px}
.bizcal th.sun{color:#B4544A} .bizcal th.sat{color:var(--accent)}
.bizcal td{padding:3px 0}
.bizcal td span{display:inline-flex; width:30px; height:30px; align-items:center; justify-content:center; border-radius:50%}
.bizcal td.off span{background:var(--accent); color:#fff}
.bizcal td.today span{box-shadow:inset 0 0 0 1px var(--ink)}
.bizcal td.off.today span{box-shadow:inset 0 0 0 2px #fff, 0 0 0 1px var(--accent)}
.bizcal td.past span{opacity:.4}
.bizcal__legend{margin:0; display:flex; flex-wrap:wrap; gap:6px 16px; font-size:12px; color:var(--sub)}
.bizcal__legend i{display:inline-block; width:10px; height:10px; border-radius:50%; background:var(--accent); margin-right:6px; vertical-align:-1px}
.bizcal__hours{margin:0; font-size:12px; line-height:1.8; color:var(--body)}
.bizcal__extra{margin:0; padding:10px 12px; background:var(--soft); font-size:12px; line-height:1.8; color:var(--ink)}

/* ---------- back to top ---------- */
.totop{position:fixed; right:24px; bottom:96px; z-index:30; width:48px; height:48px; border-radius:50%; border:1px solid var(--accent); background:#fff; color:var(--accent); display:flex; align-items:center; justify-content:center; cursor:pointer; opacity:0; visibility:hidden; transform:translateY(8px); transition:opacity .4s, transform .4s, visibility .4s, background .3s, color .3s}
.totop.is-shown{opacity:1; visibility:visible; transform:none}
.totop:hover{background:var(--accent); color:#fff}

/* ---------- mobile bottom menu ---------- */
.sp-menu{display:none}

@media (max-width:820px){
  .notice{font-size:11px; letter-spacing:.04em; line-height:1.7; padding:8px 12px}
  .notice__pc{display:none}.notice__sp{display:block}
  .notice .sep{margin:0 .4em}
  .h2{font-size:20px !important; letter-spacing:.05em !important}
  .h2 .nb{display:block}
  .wrap{padding:0 20px}
  .gnav{padding:14px 20px; justify-content:center}
  .gnav__side{display:none}
  .gnav__logo{font-size:22px}
  .items{padding-top:48px}
  .journal{border-left:none; padding-left:0; border-top:1px solid var(--line); padding-top:40px}
  .grid-items{grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 16px}
  .brands{padding:64px 0}
  .logo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .logo-grid > *{height:88px; padding:12px}
  .logo-grid img{max-height:30px}
  .concept,.shop{padding:72px 20px; gap:32px}
  .feed{grid-template-columns:repeat(4,minmax(0,1fr)); gap:4px}
  .order{padding:64px 0}
  .footer{padding:48px 20px 112px}
  .sp-menu{display:flex; position:fixed; left:0; right:0; bottom:0; z-index:40; background:rgba(239,236,232,.97); border-top:1px solid #CFC9C2; padding-bottom:env(safe-area-inset-bottom)}
  .sp-menu a{flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; min-height:60px; font-size:10px; letter-spacing:.06em; color:var(--ink)}
  .sp-menu a.is-line{color:var(--accent); font-weight:700}
  .sp-menu svg{width:22px; height:22px}
  .sp-menu a + a{border-left:1px solid #D9D3CC}
  .totop{bottom:calc(100px + env(safe-area-inset-bottom)); right:16px; width:44px; height:44px}
}

/* ===== item page ===== */
.crumb{font-size:12px; color:var(--sub); letter-spacing:.06em; padding-top:24px}
.crumb a{color:var(--sub)}
.pd{display:flex; flex-wrap:wrap; gap:64px; padding-top:28px; padding-bottom:72px}
.pd__gallery{flex:1 1 480px; min-width:0; display:flex; flex-direction:column; gap:12px}
.pd__main{position:relative; width:100%; aspect-ratio:4/5; background:var(--ph); overflow:hidden}
.pd__main img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:opacity .45s ease}
.pd__thumbs{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px}
.pd__thumbs button{padding:0; border:0; background:var(--ph); cursor:pointer; outline-offset:2px; position:relative}
.pd__thumbs button::after{content:""; position:absolute; inset:0; border:2px solid transparent; transition:border-color .3s}
.pd__thumbs button[aria-current="true"]::after{border-color:var(--accent)}
.pd__thumbs img{width:100%; aspect-ratio:1/1; object-fit:cover}
.pd__info{flex:1 1 400px; min-width:0; display:flex; flex-direction:column; gap:28px}
.pd__brand{margin:0; font-family:var(--en); font-size:13px; font-weight:500; letter-spacing:.2em; color:var(--sub)}
.pd__name{margin:0; font-size:26px; font-weight:500; letter-spacing:.06em; line-height:1.5}
.pd__price{margin:0; font-size:22px; font-family:var(--en); letter-spacing:.04em}
.pd__price small{font-family:var(--ja); font-size:13px; color:var(--sub); margin-left:4px}
.pd__desc{margin:0; font-size:14px; line-height:2; color:var(--body)}
.pd dl{margin:0; display:grid; grid-template-columns:96px minmax(0,1fr); border-top:1px solid var(--line); font-size:14px}
.pd dt{color:var(--sub); padding:12px 0; border-bottom:1px solid var(--line)}
.pd dd{margin:0; padding:12px 0; border-bottom:1px solid var(--line)}
.cta{display:flex; flex-direction:column; gap:12px}
.btn-lineapp{display:flex; align-items:center; justify-content:center; gap:10px; background:#06C755; color:#fff; padding:18px; font-size:15px; font-weight:700; letter-spacing:.08em; transition:filter .3s, transform .2s}
.btn-lineapp:hover{color:#fff; filter:brightness(.94)}
.btn-lineapp:active{transform:scale(.99)}
.cta__note{margin:0; font-size:12px; color:var(--sub); text-align:center}
.cta__mail{display:block; text-align:center; border:1px solid var(--ink); padding:16px; font-size:14px; letter-spacing:.1em}
.howto{background:var(--soft); padding:24px; display:flex; flex-direction:column; gap:12px; font-size:13px; line-height:1.9; color:var(--body)}
.howto p{margin:0}
.howto ol{margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:8px; counter-reset:s}
.howto li{display:flex; gap:12px; counter-increment:s}
.howto li::before{content:counter(s,decimal-leading-zero); font-family:var(--en); font-weight:500; color:var(--accent)}
.howto__t{font-weight:700; color:var(--ink)}
.more-items{border-top:1px solid var(--line); padding-top:48px; padding-bottom:96px; display:flex; flex-direction:column; gap:28px}
.more-items .grid-items{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
.sp-cta{display:none}
@media (max-width:820px){
  .pd{gap:28px; padding-bottom:48px}
  .pd__name{font-size:22px}
  .pd__thumbs{gap:6px}
  .more-items{padding-bottom:56px}
  .more-items .grid-items{grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 16px}
  .pc-only{display:none}
  .sp-cta{display:flex; position:fixed; left:0; right:0; bottom:0; z-index:40; align-items:center; gap:12px; background:rgba(255,255,255,.97); border-top:1px solid var(--line); padding:10px 16px calc(10px + env(safe-area-inset-bottom)); transform:translateY(110%); transition:transform .35s ease}
  .sp-cta.is-shown{transform:none}
  .sp-cta__p{display:flex; flex-direction:column; line-height:1.3; font-size:11px; color:var(--sub); white-space:nowrap}
  .sp-cta__p b{font-family:var(--en); font-weight:500; font-size:17px; color:var(--ink)}
  .sp-cta .btn-lineapp{flex:1; padding:13px 8px; font-size:14px; border-radius:2px}
  .footer{padding-bottom:112px}
}


/* ===== WordPress theme additions ===== */
.screen-reader-text{position:absolute!important; width:1px; height:1px; overflow:hidden; clip:rect(1px,1px,1px,1px); white-space:nowrap}
.skip-link:focus{position:fixed; top:8px; left:8px; z-index:200; width:auto; height:auto; clip:auto; background:#fff; padding:8px 16px}
.gnav a[aria-current="page"]{color:var(--accent)}
.gnav__logo h1,.gnav__logo p{margin:0; font:inherit}
@media (prefers-reduced-motion: reduce){ .hero__slides li{transition:none} .hero__slides img{transform:none!important; transition:none} }

/* page header */
.phead{padding:72px 0 48px; text-align:center; display:flex; flex-direction:column; align-items:center; gap:10px; border-bottom:1px solid var(--line)}
.phead__en{margin:0; font-family:var(--en); font-size:13px; font-weight:500; letter-spacing:.3em; color:var(--accent)}
.phead__ja{margin:0; font-size:26px; font-weight:500; letter-spacing:.1em; line-height:1.5}
.phead__lead{margin:6px 0 0; font-size:14px; color:var(--body); max-width:640px}
.nw{display:inline-block}
.pbody{padding-top:56px; padding-bottom:104px}
.pbody--narrow{max-width:880px}

/* filter chips */
.chips{display:flex; flex-wrap:wrap; gap:8px; margin:0 0 40px; padding:0; list-style:none; justify-content:center}
.chips a{display:inline-block; border:1px solid var(--line); padding:6px 16px; font-family:var(--en); font-size:12px; letter-spacing:.12em; transition:border-color .2s, color .2s, background .2s}
.chips a:hover{border-color:var(--accent); color:var(--accent)}
.chips a[aria-current="page"]{background:var(--ink); border-color:var(--ink); color:#fff}

/* item card extras */
.card__media{position:relative; display:block}
.badge-sold{position:absolute; top:10px; left:10px; background:rgba(30,28,26,.85); color:#fff; font-family:var(--en); font-size:11px; letter-spacing:.16em; padding:4px 10px}
.card.is-sold img{opacity:.7}
.grid-items--4{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.empty{padding:56px 0; text-align:center; color:var(--sub); font-size:14px}

/* pagination */
.pager{margin-top:56px; display:flex; justify-content:center}
.pager .nav-links{display:flex; flex-wrap:wrap; gap:8px}
.pager .page-numbers{min-width:40px; height:40px; padding:0 10px; display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--line); font-family:var(--en); font-size:13px}
.pager .page-numbers.current{background:var(--ink); color:#fff; border-color:var(--ink)}
.pager a.page-numbers:hover{border-color:var(--accent); color:var(--accent)}

/* brands list */
.brand-list{display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:40px 28px}
.brand-card{display:flex; flex-direction:column; gap:14px; scroll-margin-top:120px}
.brand-card__logo{height:132px; border:1px solid var(--line); display:flex; align-items:center; justify-content:center; padding:20px 28px; background:#fff; transition:border-color .3s}
.brand-card__logo img{max-height:44px; width:auto; object-fit:contain}
.brand-card__logo span{font-family:var(--en); font-size:18px; letter-spacing:.2em}
.brand-card__name{margin:0; font-family:var(--en); font-size:13px; font-weight:500; letter-spacing:.16em}
.brand-card__desc{margin:0; font-size:13px; color:var(--body); line-height:1.9}
.brand-card__links{margin:0; display:flex; gap:18px; flex-wrap:wrap; font-size:12px}
.brand-card__links a{color:var(--accent); border-bottom:1px solid currentColor; padding-bottom:2px}
.brand-card__count{margin:0; font-size:12px; color:var(--sub)}

/* brand detail */
.brand-hero{display:flex; flex-wrap:wrap; gap:56px; align-items:center; padding:56px 0 72px; border-bottom:1px solid var(--line)}
.brand-hero__photo{flex:1 1 440px; min-width:0}
.brand-hero__photo img{width:100%; aspect-ratio:4/3; object-fit:cover; background:var(--ph)}
.brand-hero__text{flex:1 1 380px; min-width:0; display:flex; flex-direction:column; gap:20px}
.brand-hero__logo img{max-height:56px; width:auto}
.brand-hero__logo span{font-family:var(--en); font-size:28px; letter-spacing:.2em}
.brand-hero__desc{font-size:14px; line-height:2.1; color:var(--body)}
.brand-hero__desc p{margin:0 0 1em}
.link-ext{align-self:flex-start; display:inline-flex; gap:8px; align-items:center; border-bottom:1px solid var(--ink); padding-bottom:4px; font-family:var(--en); font-size:12px; font-weight:500; letter-spacing:.16em}

/* news list */
.news-list{list-style:none; margin:0; padding:0; border-top:1px solid var(--line)}
.news-list li{border-bottom:1px solid var(--line)}
.news-list a{display:grid; grid-template-columns:160px minmax(0,1fr); gap:28px; padding:24px 0; align-items:center}
.news-list img,.news-list .ph{width:160px; aspect-ratio:3/2; object-fit:cover; background:var(--ph)}
.news-list__title{margin:0 0 6px; font-size:16px; font-weight:500; line-height:1.6}
.news-list__ex{margin:6px 0 0; font-size:13px; color:var(--sub); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden}

/* article */
.article__meta{margin:0; font-family:var(--en); font-size:12px; letter-spacing:.12em; color:var(--sub)}
.article__meta b{font-weight:500; color:var(--accent); margin-left:10px}
.article__title{margin:10px 0 0; font-size:26px; font-weight:500; letter-spacing:.06em; line-height:1.6}
.entry{font-size:15px; line-height:2.1; color:var(--body)}
.entry > *:first-child{margin-top:0}
.entry p{margin:0 0 1.2em}
.entry p:empty{display:none}
.entry img{height:auto; margin:8px 0}
.entry .aligncenter{margin-left:auto; margin-right:auto}
.entry a{color:var(--accent); border-bottom:1px solid currentColor}
.entry h2{font-size:20px; font-weight:500; margin:2em 0 .8em; padding-bottom:.4em; border-bottom:1px solid var(--line)}
.entry h3{font-size:17px; font-weight:700; margin:1.6em 0 .6em}
.entry ul,.entry ol{padding-left:1.4em}
.entry table{width:100%; border-collapse:collapse; font-size:14px}
.entry th,.entry td{border-bottom:1px solid var(--line); padding:12px 8px; text-align:left; vertical-align:top}
.article__foot{margin-top:64px; padding-top:28px; border-top:1px solid var(--line); display:flex; justify-content:space-between; gap:16px; font-size:13px}
.article__foot a{max-width:45%}

/* concept */
.concept-page{display:flex; flex-wrap:wrap; gap:64px; align-items:center}
.concept-page__img{flex:1 1 440px; min-width:0}
.concept-page__img img{width:100%; aspect-ratio:4/5; object-fit:cover; background:var(--ph)}
.concept-page__text{flex:1 1 380px; min-width:0; font-size:16px; line-height:2.4; letter-spacing:.08em}
.concept-page__text p{margin:0 0 1.4em}

/* order guide */
.guide{display:flex; flex-direction:column; gap:72px}
.guide__block{display:flex; flex-direction:column; gap:24px}
.guide__cta{display:flex; flex-wrap:wrap; gap:16px; justify-content:center}
.btn-solid--line{background:#06C755; display:inline-flex; gap:10px; align-items:center}
.btn-solid--line:hover{background:#05b04b; color:#fff}
.pay{display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:24px}
.pay > div{border-top:1px solid var(--ink); padding-top:20px; display:flex; flex-direction:column; gap:8px; font-size:14px; color:var(--body)}
.pay h3{margin:0; font-size:16px; color:var(--ink)}
.notes{margin:0; padding:24px 28px; background:var(--soft); list-style:none; display:flex; flex-direction:column; gap:8px; font-size:14px; color:var(--body)}
.notes li::before{content:"・"}

/* access */
.access{display:flex; flex-wrap:wrap; gap:56px}
.access__info{flex:1 1 380px; min-width:0; display:flex; flex-direction:column; gap:28px}
.access__side{flex:1 1 360px; min-width:0; display:flex; flex-direction:column; gap:32px}
.access .map{aspect-ratio:4/3; flex:none}

/* contact form (Contact Form 7) */
.form-wrap{max-width:720px; margin:0 auto}
.form-wrap .wpcf7 p{margin:0 0 20px; font-size:14px}
.form-wrap .wpcf7 label{display:block; font-weight:500}
.form-wrap input[type=text],.form-wrap input[type=email],.form-wrap input[type=tel],.form-wrap textarea,.form-wrap select{width:100%; margin-top:8px; padding:12px 14px; border:1px solid #CFCAC4; border-radius:0; font:inherit; font-size:16px; background:#fff; color:var(--ink)}
.form-wrap input:focus,.form-wrap textarea:focus{outline:2px solid var(--accent); outline-offset:0; border-color:var(--accent)}
.form-wrap .wpcf7-list-item{margin:6px 16px 0 0; display:inline-block}
.form-wrap input[type=submit]{appearance:none; border:0; background:var(--ink); color:#fff; padding:16px 56px; font:inherit; font-size:14px; letter-spacing:.16em; cursor:pointer}
.form-wrap input[type=submit]:hover{background:var(--accent)}
.form-wrap .wpcf7-not-valid-tip{font-size:12px; color:#B4544A; margin-top:4px}
.contact-alt{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px; margin-bottom:56px}
.contact-alt a{border:1px solid var(--line); padding:24px; display:flex; flex-direction:column; gap:6px; text-align:center; transition:border-color .2s}
.contact-alt a:hover{border-color:var(--accent)}
.contact-alt b{font-size:15px}
.contact-alt span{font-size:12px; color:var(--sub)}

/* 404 */
.notfound{padding:120px 0; text-align:center; display:flex; flex-direction:column; gap:20px; align-items:center}

@media (max-width:820px){
  .phead{padding:48px 0 32px}
  .phead__ja{font-size:21px}
  .pbody{padding-top:40px; padding-bottom:72px}
  .chips{justify-content:flex-start; margin-bottom:28px}
  .brand-list{grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 14px}
  .brand-card__logo{height:96px; padding:12px}
  .brand-card__logo img{max-height:30px}
  .brand-hero{padding:32px 0 48px; gap:28px}
  .news-list a{grid-template-columns:96px minmax(0,1fr); gap:16px; padding:18px 0}
  .news-list img,.news-list .ph{width:96px}
  .news-list__title{font-size:14px}
  .news-list__ex{display:none}
  .article__title{font-size:21px}
  .concept-page{gap:32px}
  .concept-page__text{font-size:15px; line-height:2.2}
  .guide{gap:56px}
}
.intro-seen .intro{display:none}
.intro-seen .has-intro .page{opacity:1; transition:none}
.form-wrap > div > div > h2, .form-wrap h2:first-child{display:none}
.form-wrap .main_cont, .form-wrap .inner{all:unset; display:block}
.access .bizcal{border-bottom:0}

.entry p.gap{height:1.4em; margin:0}
.single .entry p{margin:0 0 .6em}

/* PCでLINEボタンを押したときのQRコード */
.lineqr{position:fixed; inset:0; z-index:100; display:flex; align-items:center; justify-content:center; padding:16px; background:rgba(30,28,26,.55); opacity:0; visibility:hidden; transition:opacity .25s, visibility .25s}
.lineqr.is-open{opacity:1; visibility:visible}
.lineqr__panel{position:relative; width:100%; max-width:360px; background:#fff; padding:40px 32px 32px; text-align:center}
.lineqr__close{position:absolute; top:8px; right:8px; width:40px; height:40px; border:0; background:none; font-size:24px; line-height:1; color:var(--sub); cursor:pointer}
.lineqr__close:focus-visible{outline:2px solid var(--accent); outline-offset:2px}
.lineqr__title{margin:0 0 20px; font-size:16px; font-weight:500; letter-spacing:.08em; color:var(--ink)}
.lineqr__code{width:200px; height:200px; margin:0 auto 20px; background:var(--soft)}
.lineqr__code svg{display:block; width:100%; height:100%}
.lineqr__text{margin:0 0 20px; font-size:13px; line-height:1.9; color:var(--body); text-align:left}
.lineqr__pc{border-top:1px solid var(--line); padding-top:20px}
.lineqr__or{margin:0 0 10px; font-size:12px; color:var(--sub)}
.lineqr__btn{display:block; padding:12px; background:#06C755; color:#fff; font-size:14px; font-weight:500; letter-spacing:.06em; transition:opacity .2s}
.lineqr__btn:hover{opacity:.85}
.lineqr__note{margin:10px 0 0; font-size:11px; line-height:1.8; color:var(--sub); text-align:left}
@media (prefers-reduced-motion: reduce){.lineqr{transition:none}}

/* ブランド名を同じ書体の文字で（ロゴ画像の代わり） */
.brand-word{display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; color:var(--ink); text-align:center}
.brand-word__name{font-family:var(--en); font-size:17px; font-weight:400; letter-spacing:.18em; line-height:1.4}
.brand-word__sub{font-family:var(--ja); font-size:10px; letter-spacing:.08em; color:var(--sub); transition:color .3s}
a.brand-word:hover .brand-word__name{color:var(--accent)}
a.brand-word:hover .brand-word__sub{color:var(--accent)}
.brand-card__head{margin:0; min-height:120px; display:flex; border:1px solid var(--line); background:#fff; transition:border-color .3s}
.brand-card__head .brand-word{flex:1; padding:20px 16px}
.brand-card__head a.brand-word:hover{background:var(--soft)}
@media (max-width:768px){
  .brand-word__name{font-size:14px; letter-spacing:.14em}
  .brand-card__head{min-height:92px}
}

/* 地図：モノトーンで見えにくい店舗ピンの上に、サイトの紺色のピンを重ねる（地図を触ると消えて本来のピンが見える） */
.map:not(.is-styled)::after{content:""; position:absolute; left:calc(50% - 16px); top:calc(50% - 44px); width:32px; height:44px; background:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='44' viewBox='0 0 36 48'%3E%3Cpath d='M18 1C8.6 1 1 8.4 1 17.6 1 30 18 47 18 47s17-17 17-29.4C35 8.4 27.4 1 18 1z' fill='%231F3557' stroke='%23fff' stroke-width='2'/%3E%3Ccircle cx='18' cy='17.5' r='6' fill='%23fff'/%3E%3C/svg%3E") no-repeat center/contain; pointer-events:none; filter:drop-shadow(0 2px 3px rgba(0,0,0,.25)); transition:opacity .3s}
.map:not(.is-styled):hover::after{opacity:0}

/* ---------- ハンバーガーメニュー（スマホ） ---------- */
.gnav__btn{display:none}
.drawer{position:fixed; inset:0; z-index:90; background:#F4F1EC; display:flex; flex-direction:column; overflow-y:auto; padding:0 24px calc(24px + env(safe-area-inset-bottom)); opacity:0; transition:opacity .25s}
.drawer[hidden]{display:none}
.drawer.is-open{opacity:1}
.drawer__head{display:flex; align-items:center; justify-content:space-between; min-height:60px; border-bottom:1px solid #DDD8D2}
.drawer__logo{font-family:var(--en); font-size:20px; letter-spacing:.12em; color:var(--ink)}
.drawer__close{width:44px; height:44px; margin-right:-10px; border:0; background:none; color:var(--ink); display:flex; align-items:center; justify-content:center; cursor:pointer}
.drawer__nav{display:flex; flex-direction:column; padding:8px 0}
.drawer__nav a{display:flex; align-items:baseline; justify-content:space-between; gap:12px; padding:16px 0; border-bottom:1px solid #DDD8D2; color:var(--ink)}
.drawer__nav a span{font-family:var(--en); font-size:16px; font-weight:500; letter-spacing:.16em}
.drawer__nav a small{font-size:11px; color:var(--sub); letter-spacing:.04em}
.drawer__nav a[aria-current="page"] span{color:var(--accent)}
.drawer__cta{display:flex; flex-direction:column; gap:14px; padding-top:24px}
.drawer__line{display:flex; align-items:center; justify-content:center; gap:10px; padding:15px; background:#06C755; color:#fff; font-size:14px; font-weight:700; letter-spacing:.06em}
.drawer__line svg{width:22px; height:22px}
.drawer__sub{display:flex; gap:10px}
.drawer__sub a{flex:1; text-align:center; padding:13px 8px; border:1px solid var(--ink); font-family:var(--en); font-size:12px; letter-spacing:.12em; color:var(--ink)}
.drawer__info{margin:6px 0 0; font-size:12px; line-height:1.8; color:var(--sub); text-align:center}
body.is-drawer-open{overflow:hidden}
@media (max-width:820px){
  .gnav{position:sticky}
  .gnav__btn{display:flex; flex-direction:column; justify-content:center; gap:6px; position:absolute; right:12px; top:50%; transform:translateY(-50%); width:44px; height:44px; padding:0 11px; border:0; background:none; cursor:pointer}
  .gnav__btn span{display:block; height:1.5px; background:var(--ink)}
}
@media (prefers-reduced-motion: reduce){.drawer{transition:none}}

/* reCAPTCHAのバッジは隠し、お問い合わせフォームの下に表記を出す（Googleの規定に沿った方法） */
.grecaptcha-badge{visibility:hidden !important}
.recaptcha-note{margin:16px 0 0; font-size:11px; line-height:1.8; color:var(--sub)}
.recaptcha-note a{text-decoration:underline}

/* セール表示（セール価格を入れた商品だけ） */
.badge-sale{position:absolute; top:10px; left:10px; background:#A4312B; color:#fff; font-family:var(--en); font-size:11px; letter-spacing:.16em; padding:4px 10px}
.card__price s,.pd__price s{color:var(--sub); text-decoration-thickness:1px}
.card__price .is-sale{color:#A4312B; font-weight:500}
.pd__price--sale{display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 12px}
.pd__price--sale s{font-size:16px}
.pd__price--sale .is-sale{color:#A4312B}
.pd__price--sale small{margin-left:-8px}
.pd__price--sale em{font-style:normal; font-family:var(--en); font-size:12px; letter-spacing:.12em; color:#A4312B; border:1px solid #A4312B; padding:2px 8px; align-self:center}


/* 改行の調整：行末に1〜2文字だけ残らないように（1.0.24） */
p, dd, li, h1, h2, h3, .d, .lead { text-wrap: pretty; }
p, dd, .d, .lead { word-break: auto-phrase; }

/* 営業時間の変更（短縮営業など）の日（1.0.25） */
.bizcal td.short span{box-shadow:inset 0 0 0 1.5px var(--accent); color:var(--accent); font-weight:500}
.bizcal td.short.today span{box-shadow:inset 0 0 0 1.5px var(--accent), 0 0 0 1px var(--ink)}
.bizcal__legend .is-short i{background:transparent; box-shadow:inset 0 0 0 1.5px var(--accent)}
.bizcal__extra{white-space:pre-line}
