/* Maron Editorial: product */
body#shopDetailPage #mainContent { background:var(--paper); }
body#shopDetailPage header h1.itemTitle { color:var(--ink); font-family:var(--jp); line-height:1.7; }
body#shopDetailPage #purchase_form input,body#shopDetailPage #purchase_form select { min-height:44px; }
body#shopDetailPage .itemDescription { overflow-wrap:anywhere; }
body#shopDetailPage .itemDescription img { height:auto; }
/* Product: replaces the legacy floats and fixed pixel widths. */
body#shopDetailPage.shop .main>#mainContent.wrapper{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,1fr);gap:36px 48px;margin:0;padding:56px clamp(22px,4vw,64px) 72px;background:transparent;width:auto!important;max-width:none;float:none}
#shopDetailPage #mainContent::before,#shopDetailPage #mainContent::after{display:none}
#shopDetailPage #mainContent>header{grid-column:1/-1;border-bottom:1px solid var(--line);padding-bottom:28px}
body#shopDetailPage header h1.itemTitle{font:600 clamp(22px,2.6vw,34px)/1.7 var(--jp);letter-spacing:.08em;margin:0;overflow-wrap:anywhere}
#shopDetailPage #mainContent>.item,#shopDetailPage #mainContent>.purchase{float:none;width:auto;min-width:0;margin:0}
#shopDetailPage .itemImg{height:auto;width:100%;margin:0 0 36px}
#shopDetailPage .itemImgSlide{width:100%;float:none;background:var(--paper)}
#shopDetailPage #slideImg{padding:0;margin:0;list-style:none}
#shopDetailPage #slideImg>li{list-style:none;margin:0;width:100%}
#shopDetailPage #slideImg .imgBox{width:100%;aspect-ratio:1;height:auto;display:grid;place-items:center;background:var(--paper);line-height:normal}
#shopDetailPage #slideImg .imgBox>a{display:grid;place-items:center;position:relative;width:100%;height:100%;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none}
#shopDetailPage #slideImg .imgBox img{width:100%;height:100%;max-height:100%;object-fit:contain}
#shopDetailPage #slideImgPager{display:grid;grid-template-columns:repeat(auto-fill,minmax(54px,1fr));gap:10px;width:100%;height:auto;margin:14px 0 0;padding:0;float:none;overflow:visible}
#shopDetailPage #slideImgPager li{list-style:none;min-width:0}
#shopDetailPage #slideImgPager a{display:block;padding:3px;border:1px solid var(--line);background:var(--paper)}
#shopDetailPage #slideImgPager a[aria-current="true"]{border-color:var(--cognac)}
#shopDetailPage #slideImgPager .smallImgBox{width:100%;aspect-ratio:1}
#shopDetailPage #slideImgPager img{width:100%;height:100%;object-fit:contain}
#shopDetailPage .itemDescription{font-size:14px;line-height:2.2;color:var(--ink-2);margin:32px 0;overflow-wrap:anywhere}
#shopDetailPage .itemDescription img{max-width:100%;height:auto}
#shopDetailPage .purchase{align-self:start;background:var(--paper);padding:32px;border-top:2px solid var(--cognac);overflow-wrap:anywhere}
#shopDetailPage .itemPrice{margin:0 0 24px;border-bottom:1px solid var(--line);padding-bottom:24px}
#shopDetailPage .itemPrice h2{margin:0;line-height:1.5;font-weight:400}
#shopDetailPage .itemPrice .price{display:block;font:400 32px/1.5 var(--en);white-space:normal}
#shopDetailPage .price__row{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
#shopDetailPage :is(.price__label,.price__tax,.price__discountRate){font:12px/1.7 var(--sans)}
#shopDetailPage .price[data-proper]{font-size:20px;color:var(--mute)}
#shopDetailPage .price__value--proper{text-decoration:line-through}
#shopDetailPage .price__value--discount{color:var(--cognac)}
#shopDetailPage .soldout{display:inline-block;margin-top:16px;color:var(--mute);letter-spacing:.15em}
#shopDetailPage .purchase form{margin:24px 0}
#shopDetailPage .purchase :is(select,textarea,input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=submit])){width:100%;max-width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:0;background:var(--bg);color:var(--ink);font:14px/1.7 var(--sans);box-sizing:border-box}
#shopDetailPage .purchase :is(label,dt){display:block;margin:14px 0 8px;font-size:12px}
#shopDetailPage .purchase :is(button[type=submit],input[type=submit],#purchaseButton,.purchaseButton){width:100%;min-height:52px;padding:14px 18px;border:1px solid var(--ink);border-radius:0;background:var(--ink);color:var(--paper);font:14px/1.7 var(--sans);letter-spacing:.12em;cursor:pointer;margin-top:18px;white-space:normal}
#shopDetailPage .purchase :is(button[type=submit],input[type=submit]):hover{background:var(--cognac);border-color:var(--cognac)}
#shopDetailPage .purchase :is(button,input):disabled{opacity:.5;cursor:default}
#shopDetailPage .shareButtons{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px;padding-top:24px;border-top:1px solid var(--line)}
#shopDetailPage #reportBtn{margin-top:24px;font-size:11px;color:var(--mute)}
#shopDetailPage #mainContent>:not(header):not(.item):not(.purchase){grid-column:1/-1;min-width:0}
/* Native modal provides focus trapping and Escape-to-close. */
.maron-lightbox{position:fixed;inset:0;box-sizing:border-box;margin:auto;width:100vw;max-width:100vw;height:100vh;height:100dvh;max-height:100dvh;padding:64px 60px 52px;border:0;background:transparent;color:#fff;overflow:hidden}
.maron-lightbox[open]{display:flex;align-items:center;justify-content:center}
.maron-lightbox::backdrop{background:rgba(0,0,0,.92)}
.maron-lightbox .maron-lightbox-photo{display:block;max-width:100%;max-height:100%;width:auto;height:auto;margin:auto;object-fit:contain;touch-action:pan-y pinch-zoom}
.maron-lightbox button{position:absolute;z-index:1;display:grid;place-items:center;min-width:44px;min-height:44px;padding:8px;border:0;border-radius:0;background:rgba(0,0,0,.35);color:#fff;cursor:pointer;line-height:1;font-family:sans-serif}
.maron-lightbox button:focus-visible{outline:2px solid #fff;outline-offset:3px}
.maron-lightbox .maron-lightbox-close{right:12px;top:10px;font-size:14px}
.maron-lightbox .maron-lightbox-prev{left:6px;top:calc(50% - 24px);font-size:40px}
.maron-lightbox .maron-lightbox-next{right:6px;top:calc(50% - 24px);font-size:40px}
.maron-lightbox .maron-lightbox-counter{position:absolute;bottom:12px;left:0;width:100%;margin:0;text-align:center;font:14px/1.5 sans-serif;pointer-events:none}
.maron-lightbox button[hidden]{display:none}
#shopDetailPage #slideImg .imgBox>a{cursor:zoom-in}
@media(max-width:760px){.maron-lightbox{padding:64px 46px 52px}}

@media(max-width:1180px){
body#shopDetailPage.shop .main>#mainContent.wrapper{gap:28px;grid-template-columns:minmax(0,1fr) minmax(240px,.9fr)}
#shopDetailPage .purchase{padding:24px}
}

@media(max-width:760px){
body#shopDetailPage.shop .main>#mainContent.wrapper{grid-template-columns:minmax(0,1fr);padding:32px 22px 48px}
#shopDetailPage #mainContent>.purchase{grid-column:1}
}
#shopDetailPage #slideImg .imgBox img.label_image{width:auto;height:auto;max-width:100%}
#shopDetailPage .purchase .itemOption__caption{font-size:12px;line-height:1.7;margin:8px 0}
#shopDetailPage .purchase .itemOption__count{font-size:11px;text-align:right;color:var(--mute)}
#shopDetailPage .purchase :is(.itemOption__caption--error,.itemOption__count--error){color:#a33531}
#shopDetailPage .purchase #itemSelect .itemOption__input[data-dirty="true"][data-has-error="true"]{border-color:#a33531}

/* Product page overrides: apply the editorial palette and isolate gallery links. */
body#shopDetailPage.shop {
  background:var(--bg,#f5f0e8);
  color:var(--ink,#2b2119);
  font-family:var(--sans,"Noto Sans JP",sans-serif);
}
body#shopDetailPage.shop .main { background:var(--bg,#f5f0e8); }
#shopDetailPage .itemImg { display:block; }
#shopDetailPage .itemImg::after { content:"";display:block;clear:both; }
#shopDetailPage #slideImg .imgBox>a,
#shopDetailPage #slideImg .imgBox>a:hover {
  padding:0;background:transparent;border:0;box-shadow:none;gap:0;
}
#shopDetailPage #slideImg .imgBox>a>img:not(.label_image) { min-height:0;min-width:0; }
#shopDetailPage .purchase .shareButtons {
  display:flex;align-items:center;flex-wrap:wrap;gap:12px 16px;
  clear:both;width:100%;height:auto;
}
#shopDetailPage .shareButtons>*,
#shopDetailPage .shareButtons :is(.twitter,.facebook) {
  float:none;margin:0;max-width:100%;
}
#shopDetailPage .shareButtons a {
  font:12px/1.8 var(--sans,"Noto Sans JP",sans-serif);
  letter-spacing:.04em;
}
#shopDetailPage .shareButtons :is(.twitter-share-button,.fb-xfbml-parse-ignore) {
  display:inline-flex;align-items:center;justify-content:center;
  min-height:32px;padding:4px 12px;border:1px solid var(--line);
  background:var(--bg);color:var(--ink);
}
#shopDetailPage .purchase #reportBtn {
  display:block;float:none;clear:both;margin:20px 0 0;padding-top:12px;
  font:11px/1.8 var(--sans,"Noto Sans JP",sans-serif);text-align:right;
}
#shopDetailPage #reportBtn a { color:var(--mute);text-decoration:underline;text-underline-offset:3px; }

/* BASE label size override. */
#shopDetailPage #slideImg .imgBox img.label_image {
  width:auto !important;
  height:auto !important;
  max-width:25% !important;
  max-height:80px !important;
  object-fit:contain;
  transform:none !important;
}

/* Center the visible BASE purchase-button label on both axes. */
#shopDetailPage #purchase_form .purchaseButton .purchaseButton__btn {
  box-sizing:border-box;
  min-height:52px;
  height:auto;
  padding:14px 18px;
  line-height:1.5;
  text-align:center;
  text-indent:0;
}
#shopDetailPage #purchase_form .purchaseButton .purchaseButton__btn:not([hidden]):not([style*="display: none"]):not([style*="display:none"]) {
  display:flex !important;
  align-items:center;
  justify-content:center;
}

/* Accessible product-sharing icons. */
#shopDetailPage .purchase .shareButtons{display:flex;align-items:center;gap:14px}
#shopDetailPage .purchase .shareButtons .maron-share-icon{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:44px;height:44px;min-height:44px;margin:0;padding:10px;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--ink);line-height:1;text-decoration:none;box-shadow:none;transition:color .2s,border-color .2s}
#shopDetailPage .shareButtons .maron-share-icon svg{display:block;width:22px;height:22px;flex:none;fill:currentColor}
#shopDetailPage .shareButtons .maron-share-icon:hover{color:var(--cognac);border-color:currentColor}
#shopDetailPage .shareButtons .maron-share-icon:focus-visible{outline:2px solid var(--cognac);outline-offset:3px}

/* Hide quantity controls while retaining BASE amount submission. */
#shopDetailPage #purchase_form #amountSelectWrap { display: none !important; }

/* Product shopping guide: BASE shipping and dynamic payment methods. */
#shopDetailPage .maron-product-guide { margin:24px 0 12px; border-top:1px solid var(--line); }
#shopDetailPage .maron-guide-row { appearance:none; display:flex; align-items:center; gap:12px; width:100%; margin:0; padding:14px 2px; border:0; border-bottom:1px solid var(--line); background:transparent; color:var(--ink-2); font:inherit; font-size:12px; text-align:left; cursor:pointer; }
#shopDetailPage .maron-guide-row[hidden] { display:none; }
#shopDetailPage .maron-guide-row svg { width:18px; height:18px; flex:none; fill:none; stroke:var(--cognac); stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
#shopDetailPage .maron-guide-arrow { margin-left:auto; font-size:24px; line-height:1; color:var(--cognac); }
#shopDetailPage .maron-guide-row:hover { color:var(--cognac); }
#shopDetailPage .maron-guide-row:focus-visible, #shopDetailPage .maron-guide-close:focus-visible { outline:2px solid var(--cognac); outline-offset:3px; }
#shopDetailPage .maron-guide-dialog { box-sizing:border-box; width:min(600px,calc(100% - 32px)); max-height:80vh; margin:auto; padding:32px; border:1px solid var(--line); background:var(--paper,#f5efe6); color:var(--ink); }
#shopDetailPage .maron-guide-dialog::backdrop { background:rgba(40,30,20,.45); }
#shopDetailPage .maron-guide-dialog h2 { margin:0 30px 24px 0; font-size:20px; line-height:1.6; }
#shopDetailPage .maron-guide-close { position:absolute; top:8px; right:12px; border:0; background:transparent; color:inherit; font-size:28px; cursor:pointer; }
#shopDetailPage .maron-payment-content ul { margin:0; padding:0; list-style:none; }
#shopDetailPage .maron-payment-content li { padding:12px 0; border-top:1px solid var(--line); }
#shopDetailPage .maron-payment-content p { margin:0 0 10px; font-size:13px; font-weight:600; }
#shopDetailPage .maron-payment-content img { width:auto; height:22px; max-width:100%; object-fit:contain; margin:3px 10px 3px 0; border:0; transform:none; }
#shopDetailPage .maron-payment-content .paymentMethodsLogoTag__imgWrapper { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
@media(max-width:600px) { #shopDetailPage .maron-guide-dialog { padding:24px 20px; } }
