@import url('https://fonts.googleapis.com/css2?family=Shippori+Mincho:wght@400;600;800&family=Zen+Kaku+Gothic+New:wght@400;500;700;900&family=Yuji+Boku&display=swap');

:root{
  --paper:#fdfcfa;
  --paper-2:#f6f3ec;
  --panel:#ffffff;
  --ink:#26201a;
  --ink-soft:#5b5042;
  --muted:#8a7d68;
  --brick:#a3352a;
  --brick-soft:#c65445;
  --coral:#e2703a;
  --coral-deep:#c8562a;
  --brass:#93762f;
  --line:#e9e3d5;
  --shadow: 0 14px 30px rgba(38,32,26,.08);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;overflow-x:hidden;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'Zen Kaku Gothic New', sans-serif;
  line-height:1.85;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,svg{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;margin:0;padding:0;}
.wrap{max-width:1080px;margin:0 auto;padding:0 24px;}

/* ---------- Header ---------- */
header{
  position:sticky;top:0;z-index:100;
  background:rgba(253,252,250,.92);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}
.nav{
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 24px;max-width:1080px;margin:0 auto;
}
.brand{display:flex;align-items:center;gap:12px;flex:none;}
.stamp{width:38px;height:38px;flex:none;}
.brand-name{font-family:'Shippori Mincho', serif;font-weight:800;font-size:16px;letter-spacing:.05em;}
.brand-name span{display:block;font-size:9px;color:var(--brass);letter-spacing:.28em;font-weight:500;margin-top:2px;}
.nav-links{display:flex;align-items:center;gap:30px;flex-wrap:nowrap;white-space:nowrap;}
nav ul{display:flex;gap:26px;}
nav a{font-size:13px;letter-spacing:.06em;color:var(--ink-soft);transition:color .2s;position:relative;}
nav a:hover, nav a.active{color:var(--brick);}
.nav-cta{
  border:1px solid var(--brick);color:var(--brick);
  padding:9px 20px;border-radius:999px;font-size:12.5px;font-weight:700;letter-spacing:.08em;
}

/* transparent header that floats over a hero photo, until the page scrolls past it */
header.header-overlay{
  position:fixed;top:0;left:0;right:0;z-index:100;
  background:transparent;border-bottom:none;backdrop-filter:none;
  transition:background .3s ease, border-color .3s ease, backdrop-filter .3s ease;
}
header.header-overlay .brand-name{color:#fff;}
header.header-overlay .brand-name span{color:#e8d9ad;}
header.header-overlay nav a{color:#f1e8d4;}
header.header-overlay nav a:hover, header.header-overlay nav a.active{color:#fff;}
header.header-overlay .nav-cta{border-color:#f1e8d4;color:#f1e8d4;}
header.header-overlay .burger{color:#fff;}
header.header-overlay .stamp circle{stroke:#fff;}
header.header-overlay .stamp text{fill:#fff;}

header.header-overlay.solid{
  background:rgba(253,252,250,.92);border-bottom:1px solid var(--line);backdrop-filter:blur(6px);
}
header.header-overlay.solid .brand-name{color:var(--ink);}
header.header-overlay.solid .brand-name span{color:var(--brass);}
header.header-overlay.solid nav a{color:var(--ink-soft);}
header.header-overlay.solid nav a:hover, header.header-overlay.solid nav a.active{color:var(--brick);}
header.header-overlay.solid .nav-cta{border-color:var(--brick);color:var(--brick);}
header.header-overlay.solid .burger{color:var(--ink);}
header.header-overlay.solid .stamp circle{stroke:#a3352a;}
header.header-overlay.solid .stamp text{fill:#a3352a;}

/* the mobile dropdown always has a light opaque background, so its text must stay dark
   even while the header itself is in its transparent "floating over a photo" state */
header.header-overlay .nav-links.open a{color:var(--ink-soft);}
header.header-overlay .nav-links.open a:hover, header.header-overlay .nav-links.open a.active{color:var(--brick);}
header.header-overlay .nav-links.open .nav-cta{border-color:var(--brick);color:var(--brick);}

/* ---------- floating back-to-top button ---------- */
.to-top{
  position:fixed;right:22px;bottom:22px;z-index:90;
  width:52px;height:52px;border-radius:50%;border:none;cursor:pointer;
  background:var(--ink);color:#f2e9d8;font-size:11px;font-weight:700;letter-spacing:.04em;
  display:flex;align-items:center;justify-content:center;flex-direction:column;gap:2px;
  box-shadow:0 10px 24px rgba(38,32,26,.22);
  opacity:0;transform:translateY(12px);pointer-events:none;
  transition:opacity .25s ease, transform .25s ease, background .2s ease;
}
.to-top.show{opacity:1;transform:none;pointer-events:auto;}
.to-top:hover{background:#3a2f24;}
.to-top svg{width:16px;height:16px;}
@media(max-width:600px){.to-top{right:16px;bottom:16px;width:46px;height:46px;}}
.burger{display:none;background:none;border:none;color:var(--ink);font-size:24px;cursor:pointer;}
@media(max-width:820px){
  .nav-links{
    position:absolute;top:100%;left:0;right:0;background:var(--panel);
    flex-direction:column;align-items:flex-start;padding:20px 24px;gap:18px;
    display:none;border-bottom:1px solid var(--line);
  }
  .nav-links.open{display:flex;}
  nav ul{flex-direction:column;gap:14px;width:100%;}
  .burger{display:block;}
}

/* ---------- Page header photo banner (inner pages) ---------- */
.page-hero{
  position:relative;overflow:hidden;
  min-height:340px;
}
.page-hero-photos{position:absolute;inset:0;display:flex;}
.page-hero-photos > div{flex:1;height:100%;overflow:hidden;position:relative;min-width:0;}
.page-hero-photos img{width:100%;height:100%;object-fit:cover;display:block;animation:kenburns 16s ease-in-out infinite alternate;}
.page-hero-photos > div:nth-child(1) img{transform-origin:30% 30%;}
.page-hero-photos > div:nth-child(2) img{transform-origin:70% 40%;animation-delay:-4s;}
.page-hero-photos > div:nth-child(3) img{transform-origin:50% 60%;animation-delay:-9s;}
@keyframes kenburns{
  0%{transform:scale(1);}
  100%{transform:scale(1.12);}
}

/* continuous marquee: all photos placed in one strip that scrolls sideways forever */
.page-hero-marquee{position:absolute;inset:0;overflow:hidden;display:flex;}
.marquee-track{display:flex;animation:marqueeScroll 36s linear infinite;will-change:transform;}
.marquee-track img, .marquee-track video{flex:0 0 33.334vw;width:33.334vw;height:100%;object-fit:cover;display:block;}
@keyframes marqueeScroll{
  0%{transform:translateX(0);}
  100%{transform:translateX(-50%);}
}
@media(max-width:820px){
  .marquee-track img, .marquee-track video{flex:0 0 60vw;width:60vw;}
}
.page-hero::after{
  content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(90deg, rgba(20,14,9,0) 45%, rgba(20,14,9,.55) 68%, rgba(20,14,9,.72) 100%);
}
.page-hero-bigtext{
  position:absolute;left:-14px;top:50%;z-index:1;
  transform:translateY(-50%) rotate(-90deg);transform-origin:left center;
  font-family:'Zen Kaku Gothic New';font-weight:900;letter-spacing:.06em;
  font-size:clamp(46px,9vw,110px);color:rgba(255,255,255,.16);white-space:nowrap;
  pointer-events:none;
}
.page-hero-content{
  position:absolute;z-index:2;left:50%;top:50%;right:auto;bottom:auto;
  transform:translate(-50%,-50%);
  max-width:600px;color:#fff;
  text-align:center;padding:36px 24px;
}
.page-hero-eyebrow{
  font-family:'Zen Kaku Gothic New';font-weight:700;letter-spacing:.3em;font-size:12px;
  color:#e8d9ad;margin-bottom:18px;
  animation:pageHeroFadeUp .7s ease .1s both;
}
.page-hero-title{
  font-family:'Zen Kaku Gothic New';font-weight:900;letter-spacing:.06em;
  font-size:clamp(28px,4vw,44px);margin:0 0 10px;color:#fff;
  animation:pageHeroFadeUp .8s ease .18s both;
}
.page-hero-sub{
  font-family:'Shippori Mincho',serif;font-weight:700;font-size:clamp(14px,1.6vw,17px);color:#f1e8d4;
  animation:pageHeroFadeUp .8s ease .34s both;
}
.page-hero-desc{
  font-size:13.5px;color:#e6ddc9;margin:14px auto 0;max-width:400px;
  animation:pageHeroFadeUp .8s ease .46s both;
}
.page-hero-cta{
  display:inline-flex;align-items:center;gap:10px;margin-top:22px;
  padding:14px 26px;border:1px solid rgba(255,255,255,.7);color:#fff;
  font-size:13px;font-weight:700;letter-spacing:.03em;
  animation:pageHeroFadeUp .8s ease .58s both;
  transition:background .2s ease;
}
.page-hero-cta:hover{background:rgba(255,255,255,.12);}
@media(max-width:820px){
  .page-hero-bigtext{display:none;}
  .page-hero-content{position:relative;left:auto;top:auto;transform:none;max-width:none;padding:56px 24px 64px;text-align:center;}
}
@keyframes pageHeroFadeUp{
  from{opacity:0;transform:translateY(20px);}
  to{opacity:1;transform:none;}
}
.crumb-row{padding:18px 0 0;}
.crumb{font-size:12px;color:var(--muted);letter-spacing:.05em;}
.crumb a:hover{color:var(--brick);}

/* ---------- generic section ---------- */
section{padding:96px 0;}
.section-head{margin-bottom:52px;max-width:620px;}

.store-list-subhead{
  margin:56px 0 32px;padding-top:40px;border-top:1px solid var(--line);max-width:620px;
}
.store-list-subhead h3{font-family:'Shippori Mincho',serif;font-size:22px;font-weight:800;margin:0 0 8px;}
.store-list-subhead p{color:var(--ink-soft);font-size:14px;margin:0;}
.kicker{
  font-family:'Zen Kaku Gothic New';font-weight:700;
  color:var(--brass);letter-spacing:.3em;font-size:13.5px;margin-bottom:14px;
  display:flex;align-items:center;gap:10px;
}
.kicker::before{content:"";width:22px;height:1px;background:var(--brass);}
.section-title{
  font-family:'Shippori Mincho', serif;font-size:clamp(26px,3.6vw,38px);font-weight:800;margin:0 0 16px;
}
.section-title em{font-style:normal;color:var(--brick);}
.section-desc{color:var(--ink-soft);font-size:15px;max-width:540px;}
.divider{height:1px;background:var(--line);border:none;margin:0;}

.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease, transform .6s ease;}
.reveal.in{opacity:1;transform:none;}

/* ---------- cards ---------- */
.card-grid{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);}
.card{background:var(--panel);padding:38px 32px;}
.card .eyebrow-en{
  font-family:'Zen Kaku Gothic New';font-weight:700;font-size:11px;letter-spacing:.22em;color:var(--brass);
  margin-bottom:10px;
}
.card h3{font-family:'Shippori Mincho', serif;font-size:20px;margin:0 0 10px;}
.card p{color:var(--ink-soft);font-size:14px;margin:0 0 16px;}
.card .go{font-size:12.5px;color:var(--brick);font-weight:700;letter-spacing:.08em;}

/* ---------- buttons ---------- */
.btn{
  padding:15px 30px;font-size:13.5px;font-weight:700;letter-spacing:.08em;
  border-radius:999px;display:inline-flex;align-items:center;gap:10px;border:1px solid transparent;
  transition:transform .15s ease, box-shadow .15s ease;
}
.btn:hover{transform:translateY(-2px);}
.btn-primary{background:var(--brick);color:#fff;box-shadow:var(--shadow);}
.btn-ghost{border-color:var(--brass);color:var(--brass);}
.cta-row{display:flex;gap:14px;flex-wrap:wrap;}

/* ---------- footer ---------- */
footer{background:var(--paper-2);border-top:1px solid var(--line);padding:60px 0 28px;margin-top:0;}
.foot-brand{display:flex;align-items:center;gap:10px;margin-bottom:36px;}
.foot-brand .stamp{width:34px;height:34px;}
.foot-brand strong{font-family:'Shippori Mincho',serif;font-size:16px;}
.foot-cols{display:grid;grid-template-columns:repeat(5,1fr);gap:28px;padding-bottom:32px;}
.foot-col h4, .foot-col summary{
  font-family:'Zen Kaku Gothic New';font-weight:700;font-size:12px;letter-spacing:.12em;
  color:var(--brass);margin:0 0 16px;
  list-style:none;cursor:default;display:flex;align-items:center;justify-content:space-between;gap:8px;
}
.foot-col summary::-webkit-details-marker{display:none;}
.foot-col summary .caret{display:none;font-size:10px;transition:transform .2s ease;flex:none;}
.foot-col ul{display:flex;flex-direction:column;gap:11px;}
.foot-col a, .foot-col span{font-size:13px;color:var(--ink-soft);}
.foot-col a:hover{color:var(--brick);}
@media(max-width:820px){
  .foot-cols{grid-template-columns:repeat(2,1fr);gap:28px 20px;}
  .foot-col summary{cursor:pointer;margin:0;padding:10px 0;}
  .foot-col summary .caret{display:inline-block;}
  .foot-col details[open] summary .caret{transform:rotate(180deg);}
  .foot-col details:not([open]) ul{display:none;}
  .foot-col details ul{padding:2px 0 10px;}
}
@media(min-width:821px){
  .foot-col ul{display:flex !important;}
}
@media(max-width:480px){
  .foot-cols{grid-template-columns:1fr;}
}
.foot-bottom{
  border-top:1px solid var(--line);padding-top:18px;
  display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:8px;
  font-size:11.5px;color:var(--muted);letter-spacing:.05em;text-align:center;
}

/* ---------- misc used across pages ---------- */
.info-table{width:100%;border-collapse:collapse;}
.info-table tr{border-bottom:1px solid var(--line);}
.info-table td{padding:18px 0;vertical-align:top;}
.info-table td:first-child{width:130px;color:var(--brass);font-size:13px;letter-spacing:.06em;font-weight:700;}
.info-table td:last-child{color:var(--ink);font-size:14.5px;}

.ph-block{
  background:var(--paper-2);border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;color:var(--muted);
  font-size:12px;letter-spacing:.08em;
}

/* ---------- small phones ---------- */
@media(max-width:600px){
  .wrap{padding:0 18px;}
  section{padding:64px 0;}
  .page-hero{min-height:260px;}
  .page-hero-content{padding:44px 20px 48px;}
  .section-head{margin-bottom:38px;}
  .card{padding:28px 24px;}
  .btn{padding:14px 22px;font-size:13px;}
  .cta-row{gap:12px;}

  .info-table, .info-table tbody, .info-table tr, .info-table td{display:block;width:100%;}
  .info-table tr{padding:14px 0;border-bottom:1px solid var(--line);}
  .info-table td{padding:2px 0;}
  .info-table td:first-child{color:var(--brass);font-weight:700;font-size:12px;margin-bottom:4px;}
  .info-table td:last-child{font-size:14px;}

  nav a, .nav-cta{font-size:14px;}
  .brand-name{font-size:15px;}

  .store-detail table, .store-detail tbody, .store-detail tr, .store-detail td{display:block;width:100%;}
  .store-detail tr{padding:12px 0;border-bottom:1px solid var(--line);}
  .store-detail td{padding:2px 0;}
  .store-detail td:first-child{color:var(--brass);font-weight:700;font-size:12px;margin-bottom:4px;}
  .store-card summary{padding:22px 24px;}
  .store-card summary::after{right:20px;top:22px;}
  .store-detail{padding:0 24px 24px;}
}

/* ---------- floating side CTA (persistent quick actions) ---------- */
.side-cta{
  position:fixed;right:22px;top:52%;transform:translateY(-50%);z-index:90;
  display:flex;flex-direction:column;gap:10px;
}
.side-cta a{
  width:84px;padding:14px 8px;border-radius:6px;text-align:center;
  font-size:12px;font-weight:700;letter-spacing:.04em;line-height:1.4;
  background:var(--panel);border:1px solid var(--line);color:var(--ink);
  box-shadow:0 10px 24px rgba(38,32,26,.12);
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease;
}
.side-cta a .ico{display:block;font-size:16px;margin-bottom:6px;}
.side-cta a:hover{transform:translateY(-3px);box-shadow:0 14px 28px rgba(38,32,26,.18);}
.side-cta a.dark{background:var(--ink);color:#f2e9d8;border-color:var(--ink);}
.side-cta a.dark:hover{background:#3a2f24;}
@media(max-width:900px){.side-cta{display:none;}}

/* ---------- general motion: hover zoom on photos, lift on cards ---------- */
.img-zoom{overflow:hidden;}
.img-zoom img{transition:transform .6s cubic-bezier(.2,.7,.2,1);}
.img-zoom:hover img{transform:scale(1.06);}

.card, .store-card, .staff-card, .review-card, .mission-card{
  transition:transform .25s ease, box-shadow .25s ease;
}
.card:hover, .store-card:hover, .staff-card:hover, .review-card:hover{
  transform:translateY(-4px);box-shadow:0 16px 30px rgba(38,32,26,.1);
}

/* staggered reveal: children fade up in sequence rather than all at once */
.stagger.in > *{opacity:0;transform:translateY(16px);animation:staggerUp .6s ease forwards;}
.stagger.in > *:nth-child(1){animation-delay:.05s;}
.stagger.in > *:nth-child(2){animation-delay:.15s;}
.stagger.in > *:nth-child(3){animation-delay:.25s;}
.stagger.in > *:nth-child(4){animation-delay:.35s;}
.stagger.in > *:nth-child(5){animation-delay:.45s;}
.stagger.in > *:nth-child(6){animation-delay:.55s;}
@keyframes staggerUp{to{opacity:1;transform:none;}}
@media (prefers-reduced-motion: reduce){
  .img-zoom img{transition:none;}
  .stagger.in > *{animation:none;opacity:1;transform:none;}
}

/* ---------- store detail accordion (shared: index + concept pages) ---------- */
.store-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);align-items:start;}
.store-grid.single{grid-template-columns:1fr;}
@media(max-width:860px){.store-grid{grid-template-columns:1fr;}}
.store-card{background:var(--panel);padding:0;}
.store-grid > .store-card[open]{grid-column:1 / -1;}
.store-card summary{
  padding:26px 32px;cursor:pointer;list-style:none;position:relative;
}
.store-card summary::-webkit-details-marker{display:none;}
.store-card summary::after{
  content:"+";position:absolute;right:28px;top:26px;font-size:20px;color:var(--brass);
  transition:transform .25s ease;
}
.store-card[open] summary::after{transform:rotate(135deg);}
.store-card .brand-tag{font-size:11px;letter-spacing:.16em;color:var(--brass);font-weight:700;margin-bottom:8px;}
.store-card h3{font-family:'Shippori Mincho',serif;font-size:18px;margin:0 0 10px;}
.store-card summary p{margin:0;color:var(--ink-soft);font-size:13.5px;}
.store-detail{padding:0 32px 30px;}
.store-intro{color:var(--ink-soft);font-size:14px;line-height:1.8;margin:0 0 20px;padding-bottom:20px;border-bottom:1px solid var(--line);}
.store-detail table{width:100%;border-collapse:collapse;margin-bottom:20px;}
.store-detail tr{border-bottom:1px solid var(--line);}
.store-detail td{padding:14px 0;vertical-align:top;font-size:13.5px;}
.store-detail td:first-child{width:96px;color:var(--brass);font-weight:700;}
.store-detail td:last-child{color:var(--ink);}
.store-actions{display:flex;gap:10px;flex-wrap:wrap;}
.store-actions a{
  flex:1;min-width:130px;text-align:center;padding:12px 16px;border:1px solid var(--brick);
  border-radius:999px;font-size:12.5px;font-weight:700;color:var(--brick);
}
.store-actions a:hover{background:var(--brick);color:#fff;}
.store-map{aspect-ratio:16/9;border:1px solid var(--line);border-radius:4px;overflow:hidden;margin-bottom:20px;}
.store-map iframe{width:100%;height:100%;border:0;display:block;}

/* ---------- forms (contact / apply) ---------- */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px 24px;max-width:720px;}
.form-field{display:flex;flex-direction:column;gap:8px;}
.form-field.full{grid-column:1 / -1;}
.form-label{font-size:13px;font-weight:700;color:var(--ink);}
.form-label .req{color:var(--brick);font-weight:700;margin-left:4px;font-size:11px;}
.form-label .opt{color:var(--muted);font-weight:500;margin-left:4px;font-size:11px;}
.form-field input, .form-field select, .form-field textarea{
  font-family:'Zen Kaku Gothic New', sans-serif;font-size:14.5px;color:var(--ink);
  background:var(--panel);border:1px solid var(--line);border-radius:2px;
  padding:12px 14px;width:100%;
}
.form-field textarea{resize:vertical;min-height:130px;line-height:1.7;}
.form-field input:focus, .form-field select:focus, .form-field textarea:focus{
  outline:none;border-color:var(--brick);
}
.form-note{grid-column:1 / -1;color:var(--muted);font-size:12.5px;margin-top:-6px;}
.form-submit{grid-column:1 / -1;margin-top:8px;}
@media(max-width:700px){
  .form-grid{grid-template-columns:1fr;}
  .form-field.full{grid-column:1;}
}

/* ---------- store feature (text + photo split, one per store) ---------- */
.store-feature{
  display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center;
  padding:56px 0;border-bottom:1px solid var(--line);
}
.store-feature:last-child{border-bottom:none;padding-bottom:0;}
.store-feature:first-child{padding-top:0;}
.store-feature.reverse .store-feature-media{order:2;}
.store-feature.reverse .store-feature-text{order:1;}
.store-feature-media{aspect-ratio:4/3;border-radius:4px;overflow:hidden;background:var(--paper-2);position:relative;}
.store-feature-media img{width:100%;height:100%;object-fit:cover;display:block;}
.store-feature-media.slideshow img{position:absolute;inset:0;opacity:0;animation:storeFade 10s infinite;}
.store-feature-media.slideshow img:nth-child(1){animation-delay:0s;}
.store-feature-media.slideshow img:nth-child(2){animation-delay:5s;}
.store-feature-media.slideshow img:nth-child(3){animation-delay:10s;}
@keyframes storeFade{
  0%{opacity:0;}
  5%{opacity:1;}
  45%{opacity:1;}
  50%{opacity:0;}
  100%{opacity:0;}
}

.store-feature-text .brand-tag{font-size:11px;letter-spacing:.16em;color:var(--brass);font-weight:700;margin-bottom:10px;}
.store-feature-text h3{font-family:'Shippori Mincho',serif;font-size:24px;margin:0 0 16px;}
.store-feature-text .intro{color:var(--ink-soft);font-size:14.5px;line-height:1.85;margin:0 0 22px;}
.store-feature-info{font-size:13.5px;color:var(--ink-soft);line-height:2.1;margin:0 0 22px;}
.store-feature-info strong{color:var(--brass);font-weight:700;margin-right:10px;display:inline-block;min-width:64px;}
@media(max-width:860px){
  .store-feature{grid-template-columns:1fr;gap:24px;padding:40px 0;}
  .store-feature.reverse .store-feature-media, .store-feature.reverse .store-feature-text{order:initial;}
}

/* contact CTA band, referencing revalues.jp's CONTACT section — shared across all pages */
.contact-cta{position:relative;overflow:hidden;min-height:340px;display:flex;align-items:center;justify-content:center;}
.contact-cta-bg{position:absolute;inset:0;}
.contact-cta-bg img{width:100%;height:100%;object-fit:cover;display:block;}
.contact-cta::after{
  content:"";position:absolute;inset:0;
  background:rgba(20,14,9,.55);
}
.contact-cta-inner{position:relative;z-index:2;padding:64px 0;text-align:center;display:flex;flex-direction:column;align-items:center;}
.contact-cta-inner .page-hero-title{font-size:clamp(30px,4.5vw,48px);}
.contact-cta-inner .page-hero-desc{max-width:600px;}

/* ---------- shop list (concept.html) ---------- */
.shop-list-head{text-align:center;max-width:640px;margin:0 auto 50px;}
.shop-list-head .kicker{justify-content:center;}
.shop-list-head .section-desc{margin:0 auto;}

.brand-block{margin-bottom:80px;text-align:center;}
.brand-block:last-child{margin-bottom:0;}
.brand-mark{
  margin:0 auto 32px;padding-bottom:16px;
  border-bottom:2px solid var(--brass);display:inline-block;
}
.brand-mark span{display:block;font-family:'Zen Kaku Gothic New';font-weight:700;font-size:11px;letter-spacing:.2em;color:var(--brass);margin-bottom:14px;}
.brand-logo{display:block;max-height:300px;width:auto;margin:0 auto;object-fit:contain;}

.store-pill-row{display:flex;flex-wrap:wrap;justify-content:center;gap:20px;}
.store-pill{
  position:relative;flex:0 1 320px;min-height:230px;
  display:flex;align-items:flex-end;justify-content:center;text-align:center;
  border-radius:10px;overflow:hidden;color:#fff;
  transition:transform .25s ease, box-shadow .25s ease;
}
.store-pill:hover{transform:translateY(-3px);box-shadow:0 14px 28px rgba(20,14,9,.18);}
.store-pill img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;}
.store-pill::after{
  content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg, rgba(20,14,9,0) 35%, rgba(20,14,9,.78) 100%);
}
.store-pill .label{position:relative;z-index:2;padding:24px;width:100%;}
.store-pill .brand{display:block;font-weight:700;font-size:13.5px;letter-spacing:.02em;}
.store-pill .store{display:block;font-size:19px;font-weight:800;margin-top:6px;font-family:'Shippori Mincho',serif;}

.store-pill.no-photo{
  background:repeating-linear-gradient(45deg, var(--paper-2), var(--paper-2) 10px, var(--panel) 10px, var(--panel) 20px);
  border:1px solid var(--line);color:var(--ink);
}
.store-pill.no-photo::after{display:none;}
.store-pill.no-photo .brand{color:var(--ink);}
.store-pill.no-photo .store{color:var(--ink-soft);}
.store-pill.no-photo:hover .brand,
.store-pill.no-photo:hover .store{color:var(--brick);}

/* ---------- individual store detail pages ---------- */
.store-detail-page{padding:70px 0 30px;}
.store-detail-page .kicker{justify-content:center;margin-bottom:0;}
.store-detail-page .brand-mark{display:block;text-align:center;margin-top:20px;}

.store-detail-top{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;margin:50px 0 40px;}
.store-detail-photo{
  aspect-ratio:4/3;border-radius:6px;overflow:hidden;
  background:repeating-linear-gradient(45deg, var(--paper-2), var(--paper-2) 10px, var(--panel) 10px, var(--panel) 20px);
  border:1px dashed var(--line);
  display:flex;align-items:center;justify-content:center;
  color:var(--muted);font-size:13px;letter-spacing:.08em;
}
.store-detail-photo img{width:100%;height:100%;object-fit:cover;display:block;}

/* photo carousel */
.store-detail-carousel{position:relative;width:100%;aspect-ratio:4/3;border-radius:6px;overflow:hidden;background:var(--paper-2);}
.store-detail-carousel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .35s ease;}
.store-detail-carousel img.active{opacity:1;}
.carousel-arrow{
  position:absolute;top:50%;right:14px;transform:translateY(-50%);z-index:3;
  width:38px;height:38px;border-radius:50%;border:none;cursor:pointer;
  background:rgba(255,255,255,.88);display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 14px rgba(20,14,9,.18);transition:background .2s ease;
}
.carousel-arrow:hover{background:#fff;}
.carousel-arrow svg{width:18px;height:18px;color:var(--ink);}
.carousel-dots{position:absolute;bottom:12px;left:0;right:0;z-index:3;display:flex;justify-content:center;gap:6px;}
.carousel-dots button{width:7px;height:7px;padding:0;border:none;border-radius:50%;background:rgba(255,255,255,.55);cursor:pointer;}
.carousel-dots button.active{background:#fff;}

.store-detail-main h2{font-family:'Shippori Mincho',serif;font-size:clamp(24px,3vw,32px);margin:0 0 18px;}
.store-detail-desc{color:var(--ink-soft);font-size:14.5px;line-height:1.9;margin:0 0 24px;}

.store-detail-actions{display:flex;flex-wrap:wrap;gap:10px;}
.store-detail-insta, .store-detail-tabelog, .store-detail-reserve{
  display:inline-flex;align-items:center;gap:8px;padding:10px 20px;
  border-radius:999px;font-size:13px;font-weight:700;
  background:var(--paper-2);border:1px solid var(--line);color:var(--ink-soft);
}
.store-detail-insta svg, .store-detail-tabelog svg{width:16px;height:16px;flex:none;}
.store-detail-insta:hover, .store-detail-tabelog:hover{border-color:var(--brick);color:var(--brick);}
.store-detail-reserve{background:var(--brick);border-color:var(--brick);color:#fff;}
.store-detail-reserve:hover{background:#8a2a21;}
@media(max-width:780px){
  .store-detail-top{grid-template-columns:1fr;gap:24px;text-align:center;}
  .store-detail-actions{justify-content:center;}
}

.store-detail-maps{
  display:flex;align-items:center;justify-content:center;
  padding:26px;background:var(--paper-2);border:1px solid var(--line);border-radius:6px;
  font-size:15px;font-weight:700;color:var(--ink);margin-bottom:40px;
  transition:border-color .2s ease, color .2s ease;
}
.store-detail-maps:hover{border-color:var(--brick);color:var(--brick);}

.store-map-embed{position:relative;width:100%;border-radius:6px;overflow:hidden;margin-bottom:40px;border:1px solid var(--line);}
.store-map-embed iframe{display:block;width:100%;height:420px;border:0;}
.store-map-open{
  position:absolute;top:14px;left:14px;z-index:2;
  display:inline-flex;align-items:center;gap:6px;
  background:#fff;padding:10px 16px;border-radius:6px;
  font-size:13px;font-weight:700;color:#1a73e8;
  box-shadow:0 2px 8px rgba(0,0,0,.18);
}
.store-map-open:hover{background:#f6f9ff;}
@media(max-width:700px){.store-map-embed iframe{height:300px;}}

.store-detail-table td:first-child{color:var(--brass);width:120px;font-weight:700;font-size:13px;}
.store-detail-table td{padding:20px 0;}
@media(max-width:600px){
  .store-detail-table td:first-child{display:block;color:var(--brass);font-weight:700;font-size:12px;margin-bottom:4px;}
  .store-detail-table td{display:block;padding:14px 0;}
}

/* ---------- other-shop link (bottom of store detail pages) ---------- */
.other-shop{padding:70px 0;text-align:center;background:var(--paper-2);}
.other-shop .kicker{justify-content:center;}
.other-shop h2{font-family:'Shippori Mincho',serif;font-size:clamp(24px,3vw,32px);margin:16px 0 32px;}
.other-shop-link{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  max-width:560px;margin:0 auto;padding:22px 28px;
  border:1px solid var(--ink);border-radius:2px;
  font-size:15px;font-weight:700;color:var(--ink);
  transition:background .2s ease, color .2s ease;
}
.other-shop-link:hover{background:var(--ink);color:#fff;}
.other-shop-link .arrow{font-size:18px;}
