:root {
  --shop-ink: #25170f;
  --shop-brown: #4b2d18;
  --shop-gold: #b98b3e;
  --shop-cream: #f6f0e5;
  --shop-paper: #fffdf8;
  --shop-line: #dfd2bd;
  --shop-muted: #74675b;
  --shop-danger: #a83232;
}
* { box-sizing: border-box; }
html { max-width: 100%; overflow-x: clip; scroll-behavior: smooth; }
body { min-width: 0; margin: 0; color: var(--shop-ink); font-family: "Noto Sans JP", "Yu Gothic", sans-serif; background: var(--shop-paper); }
body.cart-visible, body.modal-visible { overflow: hidden; }
img { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }
a { color: inherit; }
.shop-skip { position: fixed; top: -80px; left: 12px; z-index: 100; padding: 12px 16px; color: #fff; background: #111; }
.shop-skip:focus { top: 12px; }
.shop-header { position: sticky; top: 0; z-index: 30; display: flex; min-height: 78px; align-items: center; gap: 34px; padding: 10px clamp(18px, 4vw, 64px); color: #fff; background: rgba(25, 17, 12, .94); border-bottom: 1px solid rgba(255,255,255,.12); backdrop-filter: blur(14px); }
.shop-logo { display: grid; margin-right: auto; text-decoration: none; }
.shop-logo span { font-family: "Yu Mincho", serif; font-size: 20px; font-weight: 700; letter-spacing: .08em; }
.shop-logo small { color: #d8bc82; font-size: 7px; letter-spacing: .24em; }
.shop-header nav { display: flex; gap: 28px; }
.shop-header nav a { font-size: 11px; font-weight: 700; text-decoration: none; }
.shop-menu-toggle { display: none; width: 44px; height: 44px; padding: 10px; background: transparent; border: 1px solid rgba(255,255,255,.3); border-radius: 50%; cursor: pointer; }
.shop-menu-toggle span { display: block; width: 100%; height: 1px; margin: 5px 0; background: #fff; transition: transform .2s ease, opacity .2s ease; }
.shop-menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.shop-menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.shop-menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
.shop-mobile-menu { position: fixed; top: 66px; right: 0; left: 0; z-index: 29; display: none; padding: 18px 20px 24px; color: #fff; background: rgba(25,17,12,.98); border-top: 1px solid rgba(255,255,255,.1); box-shadow: 0 24px 40px rgba(22,13,8,.25); }
.shop-mobile-menu.is-open { display: grid; }
.shop-mobile-menu a { display: flex; gap: 16px; align-items: center; min-height: 54px; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.12); }
.shop-mobile-menu small { color: #d8bc82; font-size: 8px; }
.cart-open { min-width: 92px; min-height: 44px; color: #fff; font-size: 11px; font-weight: 800; background: transparent; border: 1px solid rgba(255,255,255,.38); border-radius: 999px; cursor: pointer; }
.cart-open span { display: inline-grid; min-width: 22px; height: 22px; margin-left: 7px; place-items: center; color: #23160e; background: #d4ae67; border-radius: 50%; }
.shop-hero { position: relative; min-height: min(76vw, 780px); overflow: hidden; color: #fff; background: #1c120c; }
.shop-hero > img, .shop-hero-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.shop-hero > img { object-fit: cover; object-position: center; }
.shop-hero-shade { background: linear-gradient(90deg, rgba(16,10,6,.7), rgba(16,10,6,.04) 62%), linear-gradient(0deg, rgba(16,10,6,.58), transparent 46%); }
.shop-hero-copy { position: relative; z-index: 1; display: flex; width: min(1240px, calc(100% - 48px)); min-height: min(76vw, 780px); margin: auto; flex-direction: column; align-items: flex-start; justify-content: flex-end; padding: 0 0 clamp(48px, 8vw, 100px); text-shadow: 0 5px 30px rgba(0,0,0,.45); }
.shop-hero-copy > p, .shop-kicker { margin: 0 0 12px; color: #dabb7d; font-size: 9px; font-weight: 800; letter-spacing: .26em; }
.shop-hero h1 { margin: 0; font-family: "Yu Mincho", serif; font-size: clamp(44px, 7vw, 94px); line-height: 1.08; letter-spacing: .04em; }
.shop-hero-copy strong { max-width: 660px; margin-top: 16px; font-family: "Yu Mincho", serif; font-size: clamp(16px, 2vw, 26px); }
.shop-hero-copy a { display: inline-flex; min-height: 50px; align-items: center; gap: 26px; margin-top: 30px; padding: 13px 24px; font-size: 11px; font-weight: 800; text-decoration: none; background: rgba(20,12,7,.72); border: 1px solid rgba(255,255,255,.45); border-radius: 999px; }
.hero-origin-row { display: flex; gap: 12px; align-items: center; margin-top: 28px; color: rgba(255,255,255,.74); font-size: 8px; font-weight: 800; letter-spacing: .22em; }
.hero-origin-row i { width: 30px; height: 1px; background: rgba(255,255,255,.36); }
.shipping-guide { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); width: min(1240px, calc(100% - 48px)); margin: -24px auto 0; position: relative; z-index: 2; background: #fff; border: 1px solid var(--shop-line); box-shadow: 0 18px 60px rgba(42,25,13,.12); }
.shipping-guide > div { display: flex; gap: 16px; align-items: center; padding: 26px; }
.shipping-guide > div + div { border-left: 1px solid var(--shop-line); }
.shipping-guide b { color: var(--shop-gold); font-family: serif; font-size: 28px; font-weight: 400; }
.shipping-guide span { display: grid; gap: 5px; }
.shipping-guide strong { font-size: 13px; }
.shipping-guide small { color: var(--shop-muted); font-size: 10px; line-height: 1.65; }
.shop-story { display: grid; grid-template-columns: minmax(260px,.62fr) minmax(0,1.38fr); gap: clamp(36px,6vw,90px); width: min(1240px, calc(100% - 48px)); margin: 0 auto; padding: clamp(86px,10vw,150px) 0; }
.shop-story-copy { align-self: center; }
.shop-story h2, .products-heading h2 { margin: 0 0 24px; font-family: "Yu Mincho", serif; font-size: clamp(34px,4.2vw,62px); font-weight: 500; line-height: 1.35; letter-spacing: -.03em; }
.shop-story-copy > p:last-child { color: var(--shop-muted); line-height: 2; }
.shop-story-images { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.shop-story-images img { width: 100%; height: 250px; object-fit: cover; }
.shop-story-images .story-brand { grid-column: 1/-1; height: 360px; }
.producer-band { padding: clamp(78px,9vw,130px) max(24px, calc((100% - 1240px)/2)); color: #fff; background: #2b1b12; }
.producer-band-heading { display: grid; grid-template-columns: 1.1fr .9fr; gap: 24px 70px; align-items: end; }
.producer-band-heading .shop-kicker { grid-column: 1/-1; }
.producer-band-heading h2 { margin: 0; font-family: "Yu Mincho",serif; font-size: clamp(34px,4.2vw,60px); font-weight: 500; line-height: 1.35; }
.producer-band-heading > p:last-child { margin: 0; color: rgba(255,255,255,.62); line-height: 2; }
.producer-cards { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; margin-top: 58px; }
.producer-cards a { position: relative; display: grid; min-height: 300px; align-content: end; padding: 30px; overflow: hidden; text-decoration: none; background: linear-gradient(145deg, rgba(139,93,39,.75), rgba(49,28,17,.92)); border: 1px solid rgba(255,255,255,.14); }
.producer-cards a::before { position: absolute; inset: 0; content: ""; opacity: .18; background: radial-gradient(circle at 75% 20%, #fff 0 1px, transparent 2px), linear-gradient(130deg, transparent 48%, rgba(255,255,255,.14) 49%, transparent 50%); background-size: 32px 32px, auto; }
.producer-cards span,.producer-cards strong,.producer-cards small { position: relative; }
.producer-cards span { color: #e6c587; font-size: 8px; letter-spacing: .18em; }
.producer-cards strong { margin: 10px 0; font-family: "Yu Mincho",serif; font-size: 25px; }
.producer-cards small { color: rgba(255,255,255,.64); line-height: 1.8; }
.products-section { padding: clamp(76px,9vw,130px) max(24px, calc((100% - 1240px)/2)); background: var(--shop-cream); }
.products-heading { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; align-items: end; }
.products-heading h2 { margin-bottom: 0; }
.products-heading > p { max-width: 520px; justify-self: end; color: var(--shop-muted); line-height: 1.9; }
.product-tools { display: grid; grid-template-columns: minmax(0,1fr) 220px; gap: 12px; margin-top: 38px; }
.product-tools label { display: grid; gap: 6px; }
.product-tools span { color: var(--shop-muted); font-size: 9px; font-weight: 700; }
.product-tools input,.product-tools select { width: 100%; min-height: 50px; padding: 12px 15px; font-size: 16px; background: #fff; border: 1px solid #cdbda3; }
.product-count { margin: 0 0 18px; color: var(--shop-muted); font-size: 10px; font-weight: 700; }
.category-filter { display: flex; gap: 8px; margin: 36px 0 22px; overflow-x: auto; padding-bottom: 8px; }
.category-filter button { flex: 0 0 auto; min-height: 42px; padding: 10px 18px; color: var(--shop-brown); font-size: 11px; font-weight: 800; background: transparent; border: 1px solid #cdbda3; border-radius: 999px; cursor: pointer; }
.category-filter button.is-active { color: #fff; background: var(--shop-brown); border-color: var(--shop-brown); }
.shop-notice { margin-bottom: 28px; padding: 13px 16px; color: #786345; font-size: 11px; line-height: 1.7; background: #fff8df; border-left: 3px solid var(--shop-gold); }
.shop-notice:empty { display: none; }
.product-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: clamp(18px,2.5vw,32px); }
.product-card { overflow: hidden; background: #fff; border: 1px solid #e1d5c4; transition: transform .2s ease, box-shadow .2s ease; }
.product-card:hover { transform: translateY(-5px); box-shadow: 0 18px 44px rgba(50,32,18,.12); }
.product-image { position: relative; aspect-ratio: 1/1; overflow: hidden; background: #eee; }
.product-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.product-card:hover .product-image img { transform: scale(1.035); }
.product-badge { position: absolute; top: 12px; left: 12px; padding: 6px 9px; color: #fff; font-size: 8px; font-weight: 800; letter-spacing: .08em; background: rgba(45,27,15,.82); }
.product-body { padding: 20px; }
.product-category { margin: 0 0 7px; color: #a87727; font-size: 9px; font-weight: 800; letter-spacing: .12em; }
.product-card h3 { min-height: 2.8em; margin: 0 0 10px; font-family: "Yu Mincho", serif; font-size: 20px; line-height: 1.4; }
.product-description { display: -webkit-box; min-height: 3.5em; overflow: hidden; color: var(--shop-muted); font-size: 11px; line-height: 1.75; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.product-meta { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; margin-top: 18px; }
.product-meta strong { font-size: 22px; }
.product-meta small { display: block; color: var(--shop-muted); font-size: 9px; }
.product-detail { min-height: 40px; padding: 8px 14px; color: #fff; font-size: 10px; font-weight: 800; background: var(--shop-brown); border: 0; border-radius: 999px; cursor: pointer; }
.shop-loading, .product-empty { grid-column: 1/-1; padding: 50px; color: var(--shop-muted); text-align: center; }
.product-pagination { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: center; margin-top: 42px; }
.product-pagination:empty { display: none; }
.product-pagination button { min-width: 42px; min-height: 42px; padding: 8px 13px; color: var(--shop-brown); font-size: 11px; font-weight: 800; background: #fff; border: 1px solid #cdbda3; border-radius: 999px; cursor: pointer; }
.product-pagination button[aria-current="page"] { color: #fff; background: var(--shop-brown); border-color: var(--shop-brown); }
.product-pagination button:disabled { color: #a99c8e; background: rgba(255,255,255,.5); cursor: default; }
.product-pagination span { min-width: 20px; color: var(--shop-muted); text-align: center; }
.shop-contact-section { display: grid; grid-template-columns: minmax(260px,.72fr) minmax(0,1.28fr); gap: clamp(40px,7vw,100px); padding: clamp(78px,9vw,130px) max(24px, calc((100% - 1240px)/2)); background: #fffdf8; }
.shop-contact-intro h2 { margin: 0 0 22px; font-family: "Yu Mincho",serif; font-size: clamp(34px,4.2vw,58px); font-weight: 500; line-height: 1.35; }
.shop-contact-intro > p:not(.shop-kicker) { color: var(--shop-muted); line-height: 2; }
.shop-contact-intro > a { display: inline-block; margin-top: 20px; color: var(--shop-brown); font-weight: 800; text-underline-offset: 5px; }
.shop-contact-form { display: grid; gap: 16px; padding: clamp(24px,4vw,48px); background: var(--shop-cream); border: 1px solid var(--shop-line); }
.shop-contact-form label { display: grid; gap: 7px; }
.shop-contact-form label > span { font-size: 10px; font-weight: 700; }
.shop-contact-form b { color: var(--shop-danger); font-size: 8px; }
.shop-contact-form input,.shop-contact-form select,.shop-contact-form textarea { width: 100%; min-width: 0; padding: 13px; font-size: 16px; background: #fff; border: 1px solid #cfc2ae; border-radius: 0; }
.shop-contact-two { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.shop-contact-consent { display: flex !important; align-items: flex-start; gap: 9px; }
.shop-contact-consent input { width: 18px; margin-top: 2px; }
.shop-contact-form > button { min-height: 54px; color: #fff; font-weight: 800; background: var(--shop-brown); border: 0; cursor: pointer; }
.shop-contact-status { padding: 12px 14px; color: #81272c; font-size: 11px; line-height: 1.7; background: #fff1f1; border-left: 3px solid #b13d42; }
.shop-footer { display: grid; grid-template-columns: 1fr auto; gap: 30px 60px; padding: 58px max(24px, calc((100% - 1240px)/2)); color: rgba(255,255,255,.68); background: #21160f; }
.shop-footer-logo { display: grid; margin: 0 0 12px; color: #fff; font-family: "Yu Mincho",serif; font-size: 24px; }
.shop-footer-logo small { color: #caa765; font-family: sans-serif; font-size: 7px; letter-spacing: .22em; }
.shop-footer p { margin: 0; font-size: 10px; }
.shop-footer nav { display: flex; flex-wrap: wrap; gap: 14px 24px; justify-content: flex-end; }
.shop-footer a { font-size: 10px; text-decoration: none; }
.shop-footer > p { grid-column: 1/-1; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.1); }
.shop-modal { position: fixed; inset: 0; z-index: 60; display: none; padding: 24px; place-items: center; }
.shop-modal.is-open { display: grid; }
.modal-backdrop { position: absolute; inset: 0; width: 100%; height: 100%; background: rgba(20,12,7,.75); border: 0; backdrop-filter: blur(8px); }
.product-dialog { position: relative; z-index: 1; display: grid; grid-template-columns: 1.12fr .88fr; width: min(980px,100%); max-height: calc(100dvh - 48px); overflow: auto; background: #fff; }
.product-close { position: absolute; top: 12px; right: 12px; z-index: 3; width: 42px; height: 42px; font-size: 25px; background: #fff; border: 0; border-radius: 50%; box-shadow: 0 5px 18px rgba(0,0,0,.15); cursor: pointer; }
.product-gallery { padding: 26px; background: #f0eadf; }
.product-gallery > img { width: 100%; aspect-ratio: 1/1; object-fit: cover; }
.product-thumbnails { display: flex; gap: 7px; margin-top: 10px; overflow-x: auto; }
.product-thumbnails button { flex: 0 0 68px; height: 68px; padding: 0; overflow: hidden; background: transparent; border: 2px solid transparent; cursor: pointer; }
.product-thumbnails button.is-active { border-color: var(--shop-gold); }
.product-thumbnails img { width: 100%; height: 100%; object-fit: cover; }
.product-dialog-copy { align-self: center; padding: clamp(30px,5vw,64px); }
.product-dialog-copy > p:first-child { color: var(--shop-gold); font-size: 9px; font-weight: 800; letter-spacing: .15em; }
.product-dialog h2 { margin: 10px 0 18px; font-family: "Yu Mincho",serif; font-size: clamp(26px,3vw,40px); }
#product-modal-description { color: var(--shop-muted); font-size: 12px; line-height: 1.9; }
.product-dialog dl { margin: 24px 0; border-top: 1px solid var(--shop-line); }
.product-dialog dl div { display: grid; grid-template-columns: 88px 1fr; gap: 15px; padding: 11px 0; font-size: 10px; border-bottom: 1px solid var(--shop-line); }
.product-dialog dt { color: var(--shop-muted); }
.product-dialog dd { margin: 0; }
.product-price { margin: 0 0 18px; font-size: 28px; font-weight: 800; }
.add-cart, .order-submit { width: 100%; min-height: 52px; color: #fff; font-weight: 800; background: var(--shop-brown); border: 0; cursor: pointer; }
.add-cart:disabled { opacity: .4; cursor: default; }
.shop-cart { position: fixed; top: 0; right: 0; z-index: 80; width: min(520px,100%); height: 100dvh; overflow-y: auto; background: #fff; box-shadow: -20px 0 70px rgba(25,15,8,.22); transform: translateX(105%); transition: transform .28s ease; }
.shop-cart.is-open { transform: translateX(0); }
.cart-screen { position: fixed; inset: 0; z-index: 70; display: none; width: 100%; height: 100%; background: rgba(20,12,7,.66); border: 0; backdrop-filter: blur(5px); }
.cart-screen.is-open { display: block; }
.cart-head { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; padding: 22px 24px; color: #fff; background: var(--shop-brown); }
.cart-head small { color: #d5b878; font-size: 8px; letter-spacing: .18em; }
.cart-head h2 { margin: 4px 0 0; font-family: "Yu Mincho",serif; }
.cart-head button { width: 42px; height: 42px; color: #fff; font-size: 25px; background: transparent; border: 1px solid rgba(255,255,255,.3); border-radius: 50%; cursor: pointer; }
.cart-body { padding: 24px; }
.cart-items { display: grid; gap: 12px; }
.cart-empty { padding: 34px 0; color: var(--shop-muted); text-align: center; }
.cart-item { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 12px; align-items: center; padding-bottom: 12px; border-bottom: 1px solid var(--shop-line); }
.cart-item img { width: 76px; height: 76px; object-fit: cover; }
.cart-item h3 { margin: 0 0 5px; font-size: 12px; }
.cart-item p { margin: 0; font-size: 11px; }
.cart-item-actions { display: flex; align-items: center; gap: 6px; margin-top: 7px; }
.cart-item-actions button { width: 28px; height: 28px; background: #f1ece4; border: 0; cursor: pointer; }
.cart-item-actions .cart-remove { width: auto; margin-left: 6px; color: var(--shop-danger); font-size: 9px; background: transparent; }
.cart-shipping { margin: 18px 0; padding: 14px; font-size: 10px; line-height: 1.8; background: #faf5eb; }
.cart-shipping p { display: flex; justify-content: space-between; gap: 12px; margin: 0; }
.cart-total { margin: 0 0 28px; padding-top: 10px; border-top: 1px solid var(--shop-line); }
.cart-total div { display: flex; justify-content: space-between; padding: 6px 0; font-size: 11px; }
.cart-total div:last-child { margin-top: 6px; padding-top: 12px; font-size: 18px; font-weight: 800; border-top: 1px solid var(--shop-line); }
.cart-total dd { margin: 0; }
.checkout-form { display: grid; gap: 14px; }
.checkout-form h3 { margin: 4px 0; font-family: "Yu Mincho",serif; }
.checkout-form label { display: grid; gap: 6px; }
.checkout-form label > span { font-size: 10px; font-weight: 700; }
.checkout-form b { color: #a83232; font-size: 8px; }
.checkout-form input, .checkout-form select, .checkout-form textarea { width: 100%; min-width: 0; padding: 12px; font-size: 16px; background: #fff; border: 1px solid #cfc2ae; border-radius: 0; }
.checkout-two { display: grid; grid-template-columns: .7fr 1.3fr; gap: 10px; }
.checkout-consent { display: flex!important; grid-template-columns: none; align-items: flex-start; }
.checkout-consent input { width: 18px; margin-top: 2px; }
.checkout-form > p { margin: -4px 0 0; color: var(--shop-muted); font-size: 9px; line-height: 1.7; }
.order-submit:disabled { opacity: .4; cursor: default; }
.shop-honeypot { position: absolute; left: -9999px; }
@media (max-width: 900px) {
  .shop-header nav { display: none; }
  .shop-menu-toggle { display: block; flex: 0 0 44px; }
  .shop-hero, .shop-hero-copy { min-height: 680px; }
  .shop-hero > img { object-position: 57% center; }
  .shipping-guide { grid-template-columns: 1fr; margin-top: 0; }
  .shipping-guide > div + div { border-top: 1px solid var(--shop-line); border-left: 0; }
  .shop-story { grid-template-columns: 1fr; }
  .producer-band-heading { grid-template-columns: 1fr; }
  .producer-band-heading .shop-kicker { grid-column: auto; }
  .producer-cards { grid-template-columns: 1fr; }
  .producer-cards a { min-height: 220px; }
  .shop-contact-section { grid-template-columns: 1fr; }
  .product-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 620px) {
  .shop-header { min-height: 66px; padding: 8px 14px; }
  .shop-logo span { font-size: 16px; }
  .cart-open { min-width: 72px; padding-inline: 8px; }
  .shop-hero, .shop-hero-copy { min-height: 560px; }
  .shop-hero-copy { width: calc(100% - 32px); padding-bottom: 38px; }
  .shop-hero > img { object-position: 59% center; }
  .shipping-guide, .shop-story { width: calc(100% - 28px); }
  .shipping-guide > div { padding: 19px; }
  .shop-story { padding: 70px 0; }
  .shop-story-images { grid-template-columns: 1fr; }
  .shop-story-images .story-brand { grid-row: auto; height: auto; aspect-ratio: 1; }
  .shop-story-images img { height: auto; aspect-ratio: 3/2; }
  .products-section { padding: 68px 14px; }
  .products-heading { grid-template-columns: 1fr; }
  .products-heading > p { justify-self: start; margin: 0; }
  .product-tools { grid-template-columns: 1fr; margin-top: 28px; }
  .shop-contact-section { padding: 68px 18px; }
  .shop-contact-two { grid-template-columns: 1fr; }
  .product-grid { grid-template-columns: 1fr; }
  .product-dialog { grid-template-columns: 1fr; }
  .product-dialog-copy { padding: 26px 20px 30px; }
  .product-gallery { padding: 14px; }
  .shop-modal { padding: 8px; }
  .product-dialog { max-height: calc(100dvh - 16px); }
  .shop-footer { grid-template-columns: 1fr; padding: 44px 20px; }
  .shop-footer nav { justify-content: flex-start; }
  .checkout-two { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none!important; } }

.pickup-products { display: grid; gap: 34px; margin: 54px 0 18px; }
.pickup-group { padding: clamp(22px,3vw,36px); background: #fff; border: 1px solid #dfd1bc; }
.pickup-group-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 22px; }
.pickup-group-heading p { margin: 0 0 6px; color: var(--shop-gold); font-size: 8px; font-weight: 800; letter-spacing: .2em; }
.pickup-group-heading h3 { margin: 0; font-family: "Yu Mincho",serif; font-size: clamp(24px,3vw,38px); font-weight: 500; }
.pickup-group-heading span { color: var(--shop-muted); font-size: 10px; }
.pickup-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; }
.pickup-grid .product-card h3 { font-size: 17px; }
.pickup-grid .product-body { padding: 16px; }
.pickup-grid .product-description { display: none; }
.pickup-products:empty { display: none; }
.shop-banner-zone { display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); gap: 16px; width: min(1240px,calc(100% - 48px)); margin: clamp(28px,5vw,64px) auto; }
.shop-banner-zone:empty { display: none; }
.shop-banner-zone-inset { width: 100%; margin: 36px 0; }
.shop-banner { grid-column: span 12; overflow: hidden; background: #eee5d8; }
.shop-banner.banner-half { grid-column: span 6; }
.shop-banner.banner-third { grid-column: span 4; }
.shop-banner.banner-square { grid-column: span 4; }
.shop-banner a, .shop-banner > span { display: block; height: 100%; }
.shop-banner img { display: block; width: 100%; height: 100%; max-height: 340px; object-fit: cover; }
.shop-banner.banner-square img { aspect-ratio: 1; max-height: none; }
.shop-banner:not(.banner-square) img { aspect-ratio: 3/1; }
@media (max-width: 900px) { .pickup-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } .shop-banner.banner-third { grid-column: span 6; } }
@media (max-width: 620px) { .pickup-products { margin-top: 38px; } .pickup-group { padding: 18px 14px; } .pickup-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; } .pickup-grid .product-meta { align-items: stretch; flex-direction: column; } .pickup-grid .product-detail { width: 100%; } .shop-banner-zone { width: calc(100% - 28px); grid-template-columns: 1fr; gap: 10px; } .shop-banner, .shop-banner.banner-half, .shop-banner.banner-third, .shop-banner.banner-square { grid-column: auto; } .shop-banner:not(.banner-square) img { aspect-ratio: 2/1; } }
