/* /shop/ editorial grammar — aligned with /custom/ */
:root{
  --shop-text:#232429;
  --shop-muted:#6c757d;
  --shop-soft:#f5f6f7;
  --shop-line:#e5e7ea;
  --shop-dark:#2b2e31;
}

body{
  color:var(--shop-text);
  background:#fff;
  font-family:-apple-system,BlinkMacSystemFont,"YuGothic","Yu Gothic Medium","Yu Gothic","Hiragino Sans","Noto Sans CJK JP",sans-serif;
}

body a{ color:inherit; }
body a:hover{ color:inherit; }

/* Shared operation notice: intentionally quiet and compact. */
.shop-operation-notice{
  background:#f7f8f9;
  border-top:1px solid var(--shop-line);
  border-bottom:1px solid var(--shop-line);
  color:#666b70;
}
.shop-operation-notice__inner{
  max-width:960px;
  margin:0 auto;
  padding:9px 24px 10px;
}
.shop-operation-notice__title{
  margin:0 0 3px;
  font-size:.58rem;
  line-height:1.45;
  font-weight:700;
  letter-spacing:.04em;
  color:#6b7075;
}
.shop-operation-notice p{
  margin:0;
  font-size:.64rem;
  line-height:1.5;
  color:#6b7075;
}
.shop-operation-notice p + p{
  margin-top:.14rem;
}
@media (max-width:767.98px){
  .shop-operation-notice__inner{
    padding:8px 16px 9px;
  }
  .shop-operation-notice__title{ font-size:.57rem; }
  .shop-operation-notice p{
    font-size:.62rem;
    line-height:1.48;
  }
}

.shop-page{
  display:block;
  overflow:hidden;
}

.shop-breadcrumb-wrap{
  max-width:1380px;
  margin:0 auto;
  padding:22px 32px 0;
}
.shop-breadcrumb-wrap .breadcrumb{
  margin:0;
  padding:0;
  background:transparent;
  border-radius:0;
  font-size:.76rem;
  color:#858a8f;
}
.shop-breadcrumb-wrap .breadcrumb-item + .breadcrumb-item::before{
  color:#b0b4b8;
}
.shop-breadcrumb-wrap .breadcrumb-item.active{ color:#686d72; }
.shop-breadcrumb-wrap a{ text-decoration:none; }

.shop-lead{
  max-width:1380px;
  margin:54px auto 34px;
  padding:0 32px;
}
.shop-lead__copy{ max-width:760px; }
.shop-lead__label{
  margin:0;
  font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;
  font-size:clamp(3rem,5.5vw,4.6rem);
  line-height:.95;
  font-weight:300;
  letter-spacing:-.045em;
  color:var(--shop-text);
}
.shop-lead h1{
  margin:20px 0 0;
  font-size:clamp(1.05rem,1.45vw,1.3rem);
  line-height:1.55;
  font-weight:600;
  letter-spacing:.015em;
}
.shop-lead__text{
  margin:9px 0 0;
  max-width:680px;
  font-size:.94rem;
  line-height:1.62;
  color:var(--shop-muted);
}

.shop-hero{
  max-width:1380px;
  margin:0 auto;
  padding:0 32px 66px;
  display:grid;
  grid-template-columns:minmax(0,1.7fr) minmax(280px,.75fr);
  gap:0;
  align-items:stretch;
}
.shop-hero__image{
  min-height:430px;
  background:#f2f3f4;
  overflow:hidden;
}
.shop-hero__image img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.shop-hero__copy{
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  padding:34px 0 4px 38px;
}
.shop-kicker{
  margin:0 0 12px;
  font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;
  font-size:.72rem;
  font-weight:400;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:#858a8f;
}
.shop-hero__copy h2{
  margin:0;
  font-size:1.08rem;
  line-height:1.5;
  font-weight:600;
  letter-spacing:.01em;
}
.shop-hero__copy p{
  margin:12px 0 0;
  font-size:.88rem;
  line-height:1.72;
  color:var(--shop-muted);
}
.shop-hero__copy .shop-note{
  margin-top:12px;
  font-size:.76rem;
  color:#858a8f;
}
.shop-text-link{
  display:inline-flex;
  align-items:center;
  gap:.42rem;
  width:max-content;
  margin-top:20px;
  font-size:.84rem;
  line-height:1.6;
  color:#4f5963;
  text-decoration:none;
}
.shop-text-link::after{ content:"→"; }
.shop-text-link:hover{ color:#232429; text-decoration:none; }

.shop-section{
  padding:56px 0 76px;
}
.shop-section--soft{ background:var(--shop-soft); }
.shop-section__head{
  max-width:1104px;
  margin:0 auto 30px;
  padding:0 32px;
}
.shop-section__en{
  display:block;
  margin:0;
  font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;
  font-size:clamp(2rem,3.6vw,3.2rem);
  line-height:1;
  font-weight:300;
  letter-spacing:-.025em;
  color:#42464b;
}
.shop-section__jp{
  margin:12px 0 0;
  font-size:clamp(1rem,1.25vw,1.18rem);
  line-height:1.42;
  font-weight:600;
  letter-spacing:.015em;
}
.shop-section__one-line{
  margin:7px 0 0;
  font-size:.86rem;
  line-height:1.5;
  color:var(--shop-muted);
}

.shop-price{
  max-width:920px;
  margin:0 auto;
  padding:0 32px;
}
.shop-price__list{
  list-style:none;
  margin:0;
  padding:0;
  border-top:1px solid #dfe2e5;
}
.shop-price__list li{
  display:grid;
  grid-template-columns:170px 1fr;
  gap:24px;
  padding:14px 0;
  border-bottom:1px solid var(--shop-line);
  font-size:.9rem;
  line-height:1.5;
}
.shop-price__list strong{ font-weight:600; }
.shop-price__list span{ color:var(--shop-muted); }
.shop-price__note{
  margin:14px 0 0;
  font-size:.76rem;
  line-height:1.55;
  color:#858a8f;
}

.shop-products{
  max-width:1380px;
  margin:0 auto;
  padding:0 32px;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:42px 18px;
}
.shop-product{
  min-width:0;
}
.shop-product__image{
  display:block;
  position:relative;
  aspect-ratio:4 / 3;
  overflow:hidden;
  background:#f2f3f4;
}
.shop-product__image img{
  position:absolute;
  inset:10px;
  width:calc(100% - 20px);
  height:calc(100% - 20px);
  object-fit:contain;
  mix-blend-mode:multiply;
  transition:transform .22s ease;
}
.shop-product:hover .shop-product__image img{ transform:scale(1.015); }
.shop-product__body{ padding:14px 2px 0; }
.shop-product h3{
  margin:0;
  font-size:.94rem;
  line-height:1.48;
  font-weight:600;
}
.shop-product p{
  margin:7px 0 0;
  font-size:.81rem;
  line-height:1.55;
  color:var(--shop-muted);
}
.shop-product__link{
  display:inline-flex;
  align-items:center;
  gap:.38rem;
  margin-top:11px;
  font-size:.78rem;
  line-height:1.5;
  color:#555b61;
  text-decoration:none;
}
.shop-product__link::after{ content:"→"; }
.shop-product__link:hover{ color:#202327; text-decoration:none; }

.shop-lower{
  max-width:1100px;
  margin:0 auto;
  padding:68px 32px 74px;
}
.shop-lower__head{
  max-width:920px;
  margin:0 auto 34px;
}
.shop-faq{
  max-width:920px;
  margin:0 auto;
}
.shop-faq__item{
  padding:0 0 26px;
  margin:0 0 26px;
  border-bottom:1px solid var(--shop-line);
}
.shop-faq__item:last-child{ margin-bottom:0; }
.shop-faq__item h3{
  margin:0 0 9px;
  font-size:.96rem;
  line-height:1.5;
  font-weight:700;
}
.shop-faq__item p{
  margin:0;
  font-size:.9rem;
  line-height:1.62;
  color:#4d5257;
}

.shop-b2b{
  max-width:1104px;
  margin:0 auto;
  padding:0 32px;
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);
  align-items:stretch;
}
.shop-b2b__image{
  min-height:330px;
  background:#f2f3f4;
  overflow:hidden;
}
.shop-b2b__image img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}
.shop-b2b__copy{
  padding:32px 0 4px 38px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.shop-b2b__copy h2{
  margin:0;
  font-size:1.05rem;
  line-height:1.5;
  font-weight:600;
}
.shop-b2b__copy p{
  margin:11px 0 0;
  font-size:.84rem;
  line-height:1.62;
  color:var(--shop-muted);
}

.shop-related{
  max-width:1104px;
  margin:0 auto;
  padding:0 32px;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}
.shop-related__item{ min-width:0; }
.shop-related__image{
  display:block;
  aspect-ratio:4 / 3;
  overflow:hidden;
  background:#f2f3f4;
}
.shop-related__image img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}
.shop-related__body{ padding:13px 2px 0; }
.shop-related__body h3{
  margin:0;
  font-size:.92rem;
  line-height:1.45;
  font-weight:600;
}
.shop-related__body p{
  margin:6px 0 0;
  font-size:.79rem;
  line-height:1.52;
  color:var(--shop-muted);
}
.shop-related__current{
  margin-top:10px;
  font-size:.75rem;
  color:#92979c;
}

.shop-rule{
  max-width:1104px;
  margin:0 auto;
  border:0;
  border-top:1px solid var(--shop-line);
}

@media (max-width:991.98px){
  .shop-hero{
    grid-template-columns:1.45fr .8fr;
  }
  .shop-hero__image{ min-height:360px; }
  .shop-products{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .shop-b2b{ grid-template-columns:1.2fr .8fr; }
}

@media (max-width:767.98px){
  .shop-breadcrumb-wrap{ padding:18px 18px 0; }
  .shop-lead{
    margin:42px auto 28px;
    padding:0 18px;
  }
  .shop-lead__label{ font-size:clamp(2.65rem,13vw,3.8rem); }
  .shop-lead h1{ margin-top:16px; }
  .shop-lead__text{ line-height:1.58; }

  .shop-hero{
    padding:0 18px 52px;
    grid-template-columns:1fr;
  }
  .shop-hero__image{ min-height:0; aspect-ratio:4 / 3; }
  .shop-hero__copy{ padding:24px 0 0; }

  .shop-section{ padding:46px 0 58px; }
  .shop-section__head{
    margin-bottom:24px;
    padding:0 18px;
  }
  .shop-section__en{ font-size:clamp(1.9rem,9vw,2.5rem); }
  .shop-section__one-line{ line-height:1.46; }

  .shop-price{ padding:0 18px; }
  .shop-price__list li{
    grid-template-columns:1fr;
    gap:3px;
  }

  .shop-products{
    padding:0 18px;
    grid-template-columns:1fr 1fr;
    gap:34px 10px;
  }
  .shop-product__image img{
    inset:6px;
    width:calc(100% - 12px);
    height:calc(100% - 12px);
  }
  .shop-product__body{ padding-top:10px; }
  .shop-product h3{ font-size:.84rem; }
  .shop-product p{ font-size:.75rem; line-height:1.48; }
  .shop-product__link{ font-size:.74rem; }

  .shop-lower{ padding:50px 18px 56px; }
  .shop-lower__head{ margin-bottom:28px; }
  .shop-faq__item{ padding-bottom:22px; margin-bottom:22px; }
  .shop-faq__item p{ line-height:1.58; }

  .shop-b2b{
    padding:0 18px;
    grid-template-columns:1fr;
  }
  .shop-b2b__image{ min-height:0; aspect-ratio:4 / 3; }
  .shop-b2b__copy{ padding:24px 0 0; }

  .shop-related{
    padding:0 18px;
    grid-template-columns:1fr;
    gap:34px;
  }
  .shop-rule{ margin-left:18px; margin-right:18px; }
}

@media (prefers-reduced-motion:reduce){
  .shop-product__image img{ transition:none; }
  .shop-product:hover .shop-product__image img{ transform:none; }
}

/* =========================================================
   Editorial normalization for existing /shop/ pages.
   Applied with body.shop-editorialized so older Bootstrap markup
   can share the same visual grammar without rewriting content.
   ========================================================= */
.shop-editorialized{
  color:var(--shop-text);
  background:#fff;
}
.shop-editorialized #header{ background:#fff; }
.shop-editorialized main.container,
.shop-editorialized main#content.container,
.shop-editorialized > .container{
  max-width:1380px;
  padding-left:32px;
  padding-right:32px;
}
.shop-editorialized .breadcrumb{
  margin:22px 0 0;
  padding:0;
  background:transparent;
  border-radius:0;
  font-size:.76rem;
  color:#858a8f;
}
.shop-editorialized .breadcrumb a{ color:inherit; text-decoration:none; }
.shop-editorialized .breadcrumb-item + .breadcrumb-item::before{ color:#b0b4b8; }

/* Old hero / jumbotron -> quiet editorial lead */
.shop-editorialized .jumbotron{
  margin:0;
  padding:54px 0 38px !important;
  background:#fff !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  color:var(--shop-text) !important;
}
.shop-editorialized .jumbotron .display-4,
.shop-editorialized .jumbotron h1.display-4,
.shop-editorialized .jumbotron h2.display-4,
.shop-editorialized .display-4{
  margin:0;
  font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;
  font-size:clamp(3rem,5.5vw,4.6rem) !important;
  line-height:.95 !important;
  font-weight:300 !important;
  letter-spacing:-.045em;
  color:var(--shop-text) !important;
}
.shop-editorialized .jumbotron .lead,
.shop-editorialized .lead{
  max-width:720px;
  margin-top:14px;
  font-size:.94rem !important;
  line-height:1.62;
  font-weight:400;
  color:var(--shop-muted) !important;
}
.shop-editorialized .shop-injected-label{
  margin:54px 0 0;
  font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;
  font-size:clamp(3rem,5.5vw,4.6rem);
  line-height:.95;
  font-weight:300;
  letter-spacing:-.045em;
  color:var(--shop-text);
}
.shop-editorialized .shop-injected-label + h1,
.shop-editorialized .shop-injected-label + .h1{
  margin-top:20px !important;
}

/* Primary page titles */
.shop-editorialized main > h1:not(.display-4),
.shop-editorialized main > .row h1:not(.display-4),
.shop-editorialized main > section:first-of-type h1:not(.display-4){
  font-size:clamp(1.05rem,1.45vw,1.3rem) !important;
  line-height:1.55;
  font-weight:600 !important;
  letter-spacing:.015em;
}

/* Sections follow custom: generous chapter spacing, no boxes */
.shop-editorialized main > section,
.shop-editorialized .container > section{
  margin-top:0 !important;
  margin-bottom:0 !important;
  padding-top:56px;
  padding-bottom:64px;
  border-top:1px solid var(--shop-line);
}
.shop-editorialized main > section:first-of-type,
.shop-editorialized .container > section:first-of-type{ border-top:0; }
.shop-editorialized section > h2,
.shop-editorialized section > .row > [class*="col-"] > h2,
.shop-editorialized section > .row > [class*="col-"] > div > h2{
  margin:0 0 11px !important;
  font-size:clamp(1rem,1.25vw,1.18rem) !important;
  line-height:1.42;
  font-weight:600 !important;
  letter-spacing:.015em;
}
.shop-editorialized section > h2::before{
  display:block;
  margin:0 0 12px;
  font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;
  font-size:clamp(2rem,3.6vw,3.2rem);
  line-height:1;
  font-weight:300;
  letter-spacing:-.025em;
  color:#42464b;
}
.shop-editorialized section[data-editorial-label] > h2::before{ content:attr(data-editorial-label); }
.shop-editorialized .text-muted,
.shop-editorialized .lead-note,
.shop-editorialized .rep-note,
.shop-editorialized .local-note{ color:var(--shop-muted) !important; }
.shop-editorialized .lead-note,
.shop-editorialized .rep-note,
.shop-editorialized .local-note,
.shop-editorialized section > p{
  max-width:760px;
  font-size:.88rem;
  line-height:1.68;
}

/* Bootstrap product cards -> editorial product cells */
.shop-editorialized .card{
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  background:transparent !important;
}
.shop-editorialized .portfolio-item .card,
.shop-editorialized .row > [class*="col-"] > .card{
  height:100%;
}
.shop-editorialized .card-img-top,
.shop-editorialized .card > a:first-child > .card-img-top{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:4/3;
  object-fit:contain;
  padding:10px;
  background:#f2f3f4;
  border:0;
  border-radius:0 !important;
}
.shop-editorialized .card-body{
  padding:14px 2px 0 !important;
}
.shop-editorialized .card-title{
  margin:0 !important;
  font-size:.94rem !important;
  line-height:1.48;
  font-weight:600 !important;
}
.shop-editorialized .card-text{
  margin:7px 0 0 !important;
  font-size:.81rem;
  line-height:1.55;
  color:var(--shop-muted);
}
.shop-editorialized .portfolio-item,
.shop-editorialized .row > [class*="col-"]{
  margin-bottom:42px !important;
}

/* All old Bootstrap buttons become quiet text links. */
.shop-editorialized a.btn,
.shop-editorialized .btn[href],
.shop-editorialized span.btn{
  display:inline-flex !important;
  align-items:center;
  gap:.38rem;
  width:max-content;
  max-width:100%;
  margin-top:11px !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  color:#555b61 !important;
  font-size:.78rem !important;
  line-height:1.5;
  font-weight:400 !important;
  text-decoration:none !important;
  white-space:normal;
}
.shop-editorialized a.btn::after,
.shop-editorialized .btn[href]::after{ content:"→"; }
.shop-editorialized a.btn:hover,
.shop-editorialized .btn[href]:hover{ color:#202327 !important; }
.shop-editorialized .btn.disabled,
.shop-editorialized .btn[aria-disabled="true"]{ color:#9a9da0 !important; }
.shop-editorialized .btn.disabled::after,
.shop-editorialized .btn[aria-disabled="true"]::after{ content:""; }
.shop-editorialized .badge{
  padding:0;
  background:transparent !important;
  color:#858a8f !important;
  font-size:.68rem;
  font-weight:400;
  border:0;
}

/* FAQ cards flatten to divider list. */
.shop-editorialized section[id*="faq" i] .card,
.shop-editorialized section[aria-labelledby*="faq" i] .card,
.shop-editorialized .faq .card{
  padding:0 0 24px !important;
  margin:0 0 24px !important;
  border-bottom:1px solid var(--shop-line) !important;
}
.shop-editorialized section[id*="faq" i] .card-body,
.shop-editorialized section[aria-labelledby*="faq" i] .card-body,
.shop-editorialized .faq .card-body{ padding:0 !important; }
.shop-editorialized section[id*="faq" i] h3,
.shop-editorialized section[aria-labelledby*="faq" i] h3,
.shop-editorialized .faq h3{
  margin:0 0 9px !important;
  font-size:.96rem !important;
  line-height:1.5;
  font-weight:700 !important;
}
.shop-editorialized section[id*="faq" i] p,
.shop-editorialized section[aria-labelledby*="faq" i] p,
.shop-editorialized .faq p{
  margin:0 !important;
  font-size:.84rem;
  line-height:1.72;
  color:var(--shop-muted);
}

/* B2B / cross-links */
.shop-editorialized .b2b-banner2{
  display:block;
  border-top:1px solid var(--shop-line) !important;
  border-bottom:1px solid var(--shop-line) !important;
  padding:24px 0;
}
.shop-editorialized .b2b-banner2__imgwrap img{
  width:100%;
  min-height:240px;
  max-height:360px;
  object-fit:cover;
}
.shop-editorialized .b2b-banner2__text{ padding:24px 0 24px 32px; }
.shop-editorialized .b2b-banner2__eyebrow{
  margin-bottom:10px;
  font-size:.7rem;
  letter-spacing:.13em;
  color:#858a8f;
}

/* Tables / lists */
.shop-editorialized .table{ color:var(--shop-text); }
.shop-editorialized .table th,
.shop-editorialized .table td{
  padding:.72rem 0;
  border-color:var(--shop-line);
  font-size:.86rem;
}
.shop-editorialized .alert{
  border:0;
  border-radius:0;
  background:#f5f6f7;
  color:#61666b;
  font-size:.84rem;
  line-height:1.65;
}

/* Shop top / stores retain their information architecture but use same grammar. */
.shop-editorialized .shop-statement,
.shop-editorialized .shop-note{
  background:#fff !important;
  color:var(--shop-text) !important;
}
.shop-editorialized .shop-section{
  border-top:1px solid var(--shop-line);
}
.shop-editorialized .shop-section h2,
.shop-editorialized #content h2{
  font-weight:600;
  letter-spacing:.01em;
}
.shop-editorialized .shop-section a,
.shop-editorialized #content a{ text-decoration:none; }

@media (max-width:991.98px){
  .shop-editorialized main.container,
  .shop-editorialized main#content.container,
  .shop-editorialized > .container{
    padding-left:22px;
    padding-right:22px;
  }
  .shop-editorialized .jumbotron{ padding-top:40px !important; }
  .shop-editorialized .b2b-banner2__text{ padding:20px 0 0; }
}
@media (max-width:767.98px){
  .shop-editorialized main.container,
  .shop-editorialized main#content.container,
  .shop-editorialized > .container{
    padding-left:16px;
    padding-right:16px;
  }
  .shop-editorialized .jumbotron{ padding:34px 0 26px !important; }
  .shop-editorialized .display-4,
  .shop-editorialized .jumbotron .display-4,
  .shop-editorialized .shop-injected-label{
    font-size:clamp(2.55rem,14vw,3.5rem) !important;
  }
  .shop-editorialized main > section,
  .shop-editorialized .container > section{
    padding-top:42px;
    padding-bottom:48px;
  }
  .shop-editorialized .card-img-top,
  .shop-editorialized .card > a:first-child > .card-img-top{
    aspect-ratio:4/3;
  }
}

/* Shared blocks used by recital category pages */
.shop-rule{
  max-width:1316px;
  margin:0 auto;
  border:0;
  border-top:1px solid var(--shop-line);
}
.shop-custom-link{
  max-width:1104px;
  margin:0 auto;
  padding:0 32px;
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(260px,.75fr);
  align-items:stretch;
}
.shop-custom-link__image{
  display:block;
  min-height:300px;
  overflow:hidden;
  background:#f2f3f4;
}
.shop-custom-link__image img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.shop-custom-link__copy{
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  padding:30px 0 4px 34px;
}
.shop-custom-link__copy h3{
  margin:0;
  font-size:1rem;
  line-height:1.5;
  font-weight:600;
}
.shop-custom-link__copy p{
  margin:10px 0 0;
  font-size:.84rem;
  line-height:1.68;
  color:var(--shop-muted);
}
.shop-products--related{ max-width:1104px; }
@media (max-width:767.98px){
  .shop-custom-link{
    padding:0 16px;
    grid-template-columns:1fr;
  }
  .shop-custom-link__image{ min-height:220px; }
  .shop-custom-link__copy{ padding:18px 0 0; }
}

/* Rich informational blocks retained from the legacy pages, restyled into the same system. */
.shop-rich-copy{
  max-width:1104px;
  margin:0 auto;
  padding:0 32px;
  font-size:.86rem;
  line-height:1.68;
  color:var(--shop-muted);
}
.shop-rich-copy h1,
.shop-rich-copy h2,
.shop-rich-copy h3,
.shop-rich-copy h4{
  color:var(--shop-text);
  font-size:1rem !important;
  line-height:1.5;
  font-weight:600 !important;
}
.shop-rich-copy p{ margin:0 0 10px; }
.shop-rich-copy ul{ margin:10px 0 0; padding-left:1.25rem; }
.shop-rich-copy img{
  max-width:100%;
  height:auto;
  border-radius:0 !important;
}
.shop-rich-copy .row{ margin-left:-9px; margin-right:-9px; }
.shop-rich-copy .row > [class*="col-"]{ padding-left:9px; padding-right:9px; margin-bottom:18px !important; }
.shop-rich-copy a:not(.btn){ color:#50565c; text-decoration:none; border-bottom:1px solid #c9cdd0; }
.shop-rich-copy a.btn{
  display:inline-flex !important;
  align-items:center;
  gap:.38rem;
  width:max-content;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  color:#555b61 !important;
  font-size:.78rem !important;
}
.shop-rich-copy a.btn::after{ content:"→"; }
.shop-detail-gallery{
  max-width:1104px;
  margin:0 auto;
  padding:0 32px;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}
.shop-detail-gallery figure{ margin:0; background:#f2f3f4; overflow:hidden; aspect-ratio:4/3; }
.shop-detail-gallery img{ width:100%; height:100%; object-fit:cover; display:block; }
@media (max-width:767.98px){
  .shop-rich-copy,.shop-detail-gallery{ padding:0 16px; }
  .shop-detail-gallery{ grid-template-columns:1fr 1fr; gap:10px; }
}

/* Shop index: same editorial grammar, while retaining its category hierarchy. */
.shop-editorialized .shop-head,
.shop-editorialized .shop-group__head{
  max-width:1104px;
  margin:0 auto 30px;
}
.shop-editorialized .shop-head > .shop-kicker,
.shop-editorialized .shop-group__en{
  display:block;
  margin:0 0 10px;
  font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;
  font-size:clamp(2rem,3.6vw,3.2rem);
  line-height:1;
  font-weight:300;
  letter-spacing:-.025em;
  color:#42464b;
  text-transform:none;
}
.shop-editorialized .shop-title,
.shop-editorialized .shop-group__title{
  margin:0;
  font-size:clamp(1rem,1.25vw,1.18rem) !important;
  line-height:1.42;
  font-weight:600 !important;
}
.shop-editorialized p.shop-lead{
  margin:7px 0 0;
  padding:0;
  max-width:760px;
  font-size:.86rem !important;
  line-height:1.5;
  color:var(--shop-muted) !important;
}
.shop-editorialized .shop-item{
  margin:0 0 70px;
  padding:0;
  border:0;
  box-shadow:none;
}
.shop-editorialized .shop-item__frame,
.shop-editorialized .shop-card__frame{
  display:block;
  background:#f2f3f4;
  overflow:hidden;
  border:0;
  border-radius:0;
}
.shop-editorialized .shop-item__frame img{
  display:block;
  width:100%;
  height:100%;
  min-height:330px;
  object-fit:cover;
}
.shop-editorialized .shop-card{
  height:100%;
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
}
.shop-editorialized .shop-card__frame{ aspect-ratio:4/3; }
.shop-editorialized .shop-card__frame img{
  display:block;
  width:100%;
  height:100%;
  padding:10px;
  object-fit:contain;
  mix-blend-mode:multiply;
}
.shop-editorialized .shop-item__en,
.shop-editorialized .shop-card__en{
  margin:14px 0 5px;
  font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;
  font-size:.68rem;
  letter-spacing:.1em;
  color:#858a8f;
  text-transform:uppercase;
}
.shop-editorialized .shop-item__title,
.shop-editorialized .shop-card__title{
  margin:0;
  font-size:.94rem !important;
  line-height:1.48;
  font-weight:600 !important;
}
.shop-editorialized .shop-item__copy,
.shop-editorialized .shop-item__note,
.shop-editorialized .shop-card__copy{
  margin:7px 0 0;
  font-size:.81rem;
  line-height:1.55;
  color:var(--shop-muted);
}
.shop-editorialized .shop-link{
  display:inline-flex;
  align-items:center;
  gap:.38rem;
  margin-top:11px;
  padding:0;
  border:0;
  color:#555b61;
  font-size:.78rem;
  line-height:1.5;
  text-decoration:none;
}
.shop-editorialized .shop-link i{ display:none; }
.shop-editorialized .shop-link::after{ content:"→"; }
.shop-editorialized .shop-group{ margin-top:64px; }
.shop-editorialized .shop-statement .statement-copy{
  margin:0 auto;
  max-width:760px;
  font-size:.94rem;
  line-height:1.7;
  font-weight:400;
  color:#5f6469;
}
