/* Detail-page composition uses only the approved storefront tokens. */
.breadcrumbs { padding-top:24px; padding-bottom:28px; font-size:13px; color:var(--muted); }
.breadcrumbs ol { display:flex; align-items:center; flex-wrap:wrap; gap:8px; list-style:none; margin:0; padding:0; }
.breadcrumbs li { display:flex; gap:8px; align-items:center; }
.breadcrumbs li:not(:last-child)::after { content:'/'; color:var(--pink-ink); }
.breadcrumbs a { min-height:32px; display:inline-flex; align-items:center; }
.breadcrumbs a:hover { color:var(--berry); text-decoration:underline; }
.breadcrumbs [aria-current] { color:var(--cocoa); }
.product-main { display:grid; grid-template-columns:minmax(0,1.22fr) minmax(0,1fr); gap:clamp(32px,4.5vw,72px); align-items:start; padding-bottom:80px; }
.product-gallery { min-width:0; }
.gallery-note { display:flex; justify-content:center; align-items:center; gap:10px; font-size:13px; font-weight:700; color:var(--berry); padding:13px 16px; background:var(--soft-pink); border-radius:var(--radius) var(--radius) 0 0; border:1px solid var(--line); border-bottom:0; }
.gallery-note span { font-size:22px; line-height:1; }
.gallery-canvas { position:relative; display:flex; width:100%; align-items:center; justify-content:center; padding:20px; background:var(--soft-pink); border:1px solid var(--line); border-top:0; border-radius:0 0 var(--radius) var(--radius); overflow:hidden; cursor:zoom-in; }
.product-primary-image { display:block; height:auto; width:100%; max-height:660px; object-fit:contain; border-radius:var(--radius-sm); background:var(--cream); }
.gallery-zoom { display:flex; align-items:center; gap:8px; position:absolute; right:32px; bottom:32px; padding:10px 14px; background:var(--white); border:1px solid var(--line); border-radius:var(--pill); font-size:12px; font-weight:800; color:var(--berry); box-shadow:var(--shadow); }
.gallery-zoom .icon { width:17px; height:17px; }
.gallery-caption { display:flex; gap:8px; justify-content:center; flex-wrap:wrap; margin:13px 0 0; color:var(--muted); font-size:12px; }
.gallery-controls { display:flex; align-items:center; gap:12px; justify-content:center; margin-top:16px; }
.gallery-thumbnails { display:flex; gap:8px; flex-wrap:wrap; }
.gallery-thumbnails button { padding:3px; background:var(--white); border:2px solid transparent; border-radius:12px; min-width:54px; }
.gallery-thumbnails button[aria-pressed="true"] { border-color:var(--berry); }
.gallery-thumbnails img { width:52px; height:70px; object-fit:contain; border-radius:8px; }
.purchase-info { padding-top:24px; }
.purchase-info .eyebrow { margin:0 0 12px; }
.purchase-info h1 { color:var(--berry); font-family:var(--display); font-size:clamp(38px,4vw,58px); font-weight:500; letter-spacing:-1.6px; line-height:1.08; margin:0 0 20px; max-width:540px; text-wrap:balance; }
.purchase-price { font-family:var(--display); font-size:30px; font-weight:500; color:var(--berry); display:flex; align-items:baseline; gap:8px; }
.purchase-price > span:last-child { font-family:var(--body); font-size:12px; font-weight:700; letter-spacing:1px; color:var(--muted); }
.purchase-price .price-prefix { font-family:var(--body); font-size:16px; }
.product-intro { max-width:45ch; margin:22px 0 16px; font-size:16px; line-height:1.75; }
.material-note { display:flex; align-items:center; gap:9px; font-size:13px; font-weight:700; color:var(--berry); margin:0 0 28px; }
.material-note span { font-size:23px; font-weight:400; }
.product-options { margin:20px 0 8px; }
.product-options label,.quantity-label { display:block; font-size:13px; font-weight:800; color:var(--berry); margin-bottom:8px; }
.product-options select { width:100%; padding:14px; background:var(--white); border:1px solid var(--line); color:var(--cocoa); border-radius:var(--radius-sm); }
.availability:empty { display:none; }
.availability { font-size:14px; color:var(--berry); }
.purchase-actions { display:flex; gap:12px; align-items:stretch; }
.product-quantity { display:flex; min-height:56px; border:1px solid var(--line); border-radius:var(--pill); background:var(--white); overflow:hidden; flex-shrink:0; }
.product-quantity button { width:42px; font-size:22px; background:transparent; color:var(--berry); }
.product-quantity button:hover:not(:disabled) { background:var(--soft-pink); }
.product-quantity button:disabled { opacity:.35; cursor:default; }
.product-quantity input { width:40px; min-width:0; padding:0; text-align:center; border:0; background:transparent; color:var(--cocoa); font-weight:800; appearance:textfield; -moz-appearance:textfield; }
.product-quantity input::-webkit-inner-spin-button,.product-quantity input::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }
.purchase-actions .button { flex:1; padding:14px 20px; }
.product-save { width:100%; margin-top:10px; min-height:52px; }
.product-save[aria-pressed="true"] { background:var(--soft-pink); }
.product-save[aria-pressed="true"] .icon { fill:var(--berry); }
.purchase-help { display:flex; gap:24px; justify-content:center; padding:22px 0; border-bottom:1px solid var(--line); }
.purchase-help a { display:inline-flex; align-items:center; gap:7px; font-size:12px; font-weight:800; min-height:28px; color:var(--berry); }
.purchase-help .icon { width:15px; height:15px; }
.purchase-signoff { display:flex; gap:12px; align-items:center; justify-content:center; margin-top:26px; }
.purchase-signoff img { object-fit:contain; }
.purchase-signoff span { font-family:var(--display); color:var(--pink-ink); font-size:17px; transform:rotate(-2deg); }
.page-product .field-error:empty { display:none; }
.page-product .field-error { margin:8px 0; }
.page-product button:disabled { cursor:default; }
.product-story { display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,7vw,112px); padding-top:56px; padding-bottom:76px; border-top:1px solid var(--line); }
.story-copy { position:relative; padding-top:4px; }
.story-copy h2,.product-club h2,.related-heading h2 { font-family:var(--display); font-weight:500; font-size:clamp(30px,3.2vw,44px); line-height:1.16; color:var(--berry); letter-spacing:-.7px; margin:0 0 20px; }
.story-copy h2 span,.related-heading h2 span { color:var(--pink-ink); }
.story-copy > p:not(.eyebrow) { max-width:47ch; line-height:1.8; }
.story-sticker { display:flex; align-items:center; gap:16px; margin-top:25px; }
.story-sticker img { transform:rotate(-12deg); }
.story-sticker > span { font-family:var(--display); font-size:20px; color:var(--pink-ink); transform:rotate(-3deg); }
.story-sticker .story-star { font-size:44px; color:var(--berry); margin-left:14px; }
.product-details details { border-bottom:1px solid var(--line); }
.product-details summary { list-style:none; min-height:68px; display:flex; justify-content:space-between; align-items:center; gap:16px; cursor:pointer; font-family:var(--display); font-size:21px; font-weight:500; color:var(--berry); }
.product-details summary::-webkit-details-marker { display:none; }
.product-details summary > span { display:flex; width:30px; height:30px; align-items:center; justify-content:center; background:var(--soft-pink); border-radius:50%; font-size:22px; font-family:var(--body); transition:transform var(--fast); flex-shrink:0; }
.product-details details[open] summary > span { transform:rotate(45deg); }
.detail-content { padding:0 0 22px; font-size:14px; }
.detail-content dl { margin:0; }
.detail-content dl > div { display:grid; grid-template-columns:110px 1fr; padding:7px 0; gap:12px; }
.detail-content dt { color:var(--muted); }
.detail-content dd { margin:0; font-weight:700; }
.detail-note { font-size:12px; color:var(--muted); margin:12px 0 0; }
.product-club { background:var(--lavender); border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:64px 0; }
.product-club-inner { display:grid; grid-template-columns:.9fr 1.1fr; align-items:center; gap:64px; }
.product-club-copy p:not(.eyebrow) { max-width:38ch; margin-bottom:24px; }
.product-club-copy > .text-link { display:flex; margin-top:18px; }
.product-club-previews { display:grid; grid-template-columns:1fr 1fr; gap:22px; align-items:center; }
.club-photo-preview { padding:10px 10px 15px; background:var(--white); border:1px solid var(--line); border-radius:var(--radius-sm); transform:rotate(-3deg); box-shadow:var(--shadow); }
.club-photo-preview > button:first-child { padding:0; width:100%; position:relative; display:block; background:transparent; }
.club-photo-preview > button:first-child > img { width:100%; height:auto; max-height:260px; object-fit:cover; object-position:center; border-radius:8px; }
.club-photo-preview button > span { position:absolute; bottom:8px; right:8px; padding:8px; background:var(--white); border-radius:50%; color:var(--berry); display:flex; }
.club-photo-preview h3 { font-family:var(--display); font-weight:500; font-size:17px; line-height:1.3; margin:14px 5px 5px; color:var(--berry); }
.club-photo-preview p { font-size:10px; color:var(--muted); margin:0 5px; }
.club-video-preview { display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; border:1px dashed var(--pink-ink); border-radius:var(--radius); background:var(--cream); padding:22px 12px; min-height:310px; transform:rotate(2deg); }
.video-preview-label { font-size:10px; color:var(--berry); border:1px solid var(--line); padding:4px 10px; border-radius:var(--pill); margin-bottom:16px; font-weight:700; }
.club-video-preview h3 { font-family:var(--display); font-size:22px; line-height:1.2; color:var(--berry); font-weight:500; margin:12px 0 8px; }
.club-video-preview p { font-size:12px; color:var(--muted); margin:0 0 15px; }
.club-video-preview .text-link { font-size:12px; }
.club-preview-note { grid-column:1/-1; font-size:11px; color:var(--muted); text-align:center; margin:0; }
.empty-media { display:flex; align-items:center; justify-content:center; flex-direction:column; text-align:center; min-height:300px; gap:16px; }
.empty-media > .icon { width:50px; height:50px; color:var(--pink-ink); }
.empty-media p { font-size:12px; }
.related-products { padding-top:80px; padding-bottom:88px; }
.related-heading { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:32px; }
.related-heading h2 { margin-bottom:0; }
.related-heading > .text-link { flex-shrink:0; }
.product-lightbox { width:min(980px,94vw); }
.product-lightbox-stage { display:flex; justify-content:center; min-height:0; max-height:70vh; overflow:auto; border-radius:var(--radius-sm); }
.product-lightbox-stage.is-zoomed { display:block; }
.product-lightbox-stage.is-zoomed .product-lightbox-image { max-width:none; max-height:none; width:auto; }
.lightbox-tools { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:16px; }
.lightbox-tools > span { font-size:10px; color:var(--muted); }
.lightbox-tools > button { min-height:44px; font-size:12px; }
.product-lightbox-image { width:auto; max-width:100%; height:auto; max-height:70vh; object-fit:contain; border-radius:var(--radius-sm); }
.lightbox-navigation { display:flex; align-items:center; justify-content:center; gap:16px; margin-top:20px; }
.product-primary-video { width:100%; max-height:660px; }
.mobile-purchase { display:none; }
.product-missing { text-align:center; padding-top:72px; padding-bottom:100px; min-height:60vh; }
.product-missing > img { object-fit:contain; margin:0 auto 24px; }
.product-missing h1 { font-family:var(--display); font-size:clamp(34px,4vw,54px); color:var(--berry); line-height:1.15; font-weight:500; }
.product-missing .button { margin-top:20px; }
@media (max-width:1199px) {
  .product-main { gap:32px; }
  .purchase-info { padding-top:12px; }
  .purchase-info h1 { font-size:44px; }
  .product-club-inner { gap:40px; }
  .product-club-previews { gap:16px; }
  .purchase-help { gap:16px; }
}
@media (min-width:900px) and (min-height:850px) {
  .purchase-info { position:sticky; top:130px; }
}
@media (min-width:700px) and (max-width:899px) {
  .product-main { grid-template-columns:1fr 1fr; gap:24px; padding-bottom:56px; }
  .purchase-info { padding-top:8px; }
  .purchase-info h1 { font-size:36px; letter-spacing:-1px; }
  .gallery-note { font-size:11px; padding:12px 8px; gap:5px; }
  .gallery-canvas { padding:12px; }
  .gallery-zoom { right:20px; bottom:20px; padding:8px; font-size:10px; gap:5px; }
  .product-intro { font-size:14px; margin:16px 0 12px; }
  .material-note { font-size:11px; margin-bottom:20px; }
  .purchase-actions { flex-wrap:wrap; }
  .purchase-actions > .button { flex-basis:100%; }
  .purchase-actions .product-quantity { min-height:46px; }
  .purchase-help { flex-direction:column; gap:4px; padding:14px 0; }
  .purchase-help a { min-height:36px; }
  .purchase-signoff { gap:6px; margin-top:16px; }
  .purchase-signoff img { width:50px; }
  .purchase-signoff span { font-size:14px; }
  .product-story { gap:36px; padding-top:40px; padding-bottom:56px; }
  .product-club-inner { grid-template-columns:1fr 1.1fr; gap:32px; }
  .product-club-previews { gap:10px; }
  .club-video-preview { min-height:270px; padding:15px 8px; }
  .club-video-preview img { width:60px; height:60px; }
  .club-video-preview h3 { font-size:18px; }
  .club-photo-preview h3 { font-size:15px; }
  .related-heading { align-items:flex-start; }
  .related-heading h2 { max-width:12ch; }
}
@media (max-width:699px) {
  html:has(.page-product) { scroll-padding-bottom:calc(100px + env(safe-area-inset-bottom)); }
  .page-product.has-purchase-bar { padding-bottom:calc(78px + env(safe-area-inset-bottom)); }
  .page-product :is(button,a,input,select,summary) { scroll-margin-bottom:110px; }
  .breadcrumbs { padding-top:15px; padding-bottom:18px; font-size:11px; line-height:1.4; }
  .breadcrumbs ol,.breadcrumbs li { gap:6px; }
  .breadcrumbs a { min-height:26px; }
  .product-main { grid-template-columns:1fr; gap:24px; padding-bottom:44px; }
  .gallery-note { font-size:11px; padding:11px 8px; gap:8px; }
  .gallery-canvas { padding:14px; }
  .product-primary-image { max-height:none; }
  .gallery-zoom { right:24px; bottom:24px; padding:9px 12px; font-size:11px; }
  .gallery-caption { font-size:10px; gap:5px; margin-top:12px; }
  .purchase-info { padding-top:4px; }
  .purchase-info h1 { font-size:42px; letter-spacing:-1.1px; margin-bottom:16px; max-width:12ch; }
  .purchase-price { font-size:28px; }
  .product-intro { font-size:15px; margin-top:16px; }
  .material-note { margin-bottom:22px; font-size:12px; }
  .purchase-actions { gap:10px; }
  .product-quantity button { width:38px; }
  .product-quantity input { width:32px; }
  .purchase-actions > .button { padding:14px 16px; font-size:14px; }
  .product-save { font-size:14px; }
  .purchase-help { padding:16px 0; justify-content:space-between; gap:10px; }
  .purchase-help a { min-height:44px; font-size:11px; gap:4px; }
  .purchase-signoff { margin-top:20px; }
  .product-story { grid-template-columns:1fr; gap:20px; padding-top:36px; padding-bottom:44px; }
  .story-copy h2,.product-club h2,.related-heading h2 { font-size:34px; }
  .story-copy > p:not(.eyebrow) { font-size:15px; }
  .story-sticker { margin:18px 0 10px; gap:12px; }
  .story-sticker img { width:64px; }
  .story-sticker > span { font-size:18px; }
  .product-details summary { min-height:66px; font-size:20px; }
  .detail-content dl > div { grid-template-columns:90px 1fr; }
  .product-club { padding:44px 0 36px; }
  .product-club-inner { grid-template-columns:1fr; gap:36px; }
  .product-club-copy p:not(.eyebrow) { font-size:15px; }
  .product-club-previews { gap:14px; padding:0 3px; }
  .club-photo-preview { padding:7px 7px 13px; }
  .club-photo-preview h3 { font-size:16px; margin:12px 3px 5px; }
  .club-photo-preview p { font-size:9px; margin:0 3px; }
  .club-video-preview { padding:15px 8px; min-height:278px; }
  .video-preview-label { font-size:9px; padding:3px 7px; margin-bottom:10px; }
  .club-video-preview img { width:64px; height:64px; }
  .club-video-preview h3 { font-size:20px; }
  .club-video-preview p { font-size:11px; }
  .club-preview-note { font-size:10px; margin-top:8px; }
  .related-products { padding-top:44px; padding-bottom:48px; }
  .related-heading { align-items:flex-start; flex-direction:column; gap:12px; margin-bottom:24px; }
  .related-heading h2 { max-width:14ch; }
  .related-heading .eyebrow { font-size:10px; }
  .mobile-purchase:not([hidden]) { position:fixed; bottom:0; left:0; right:0; z-index:30; display:flex; align-items:center; justify-content:space-between; gap:14px; padding:12px max(20px,env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left)); border-top:1px solid var(--line); background:var(--cream); box-shadow:0 -4px 18px #7C294D10; }
  .mobile-purchase > div { display:flex; flex-direction:column; min-width:0; }
  .sticky-name { font-size:10px; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:170px; }
  #sticky-price { font-family:var(--display); font-size:21px; color:var(--berry); line-height:1.4; }
  #sticky-price small { font-family:var(--body); font-size:10px; }
  .mobile-purchase .button { min-height:48px; padding:10px 17px; flex-shrink:0; font-size:13px; }
  .overlay-open .mobile-purchase { display:none; }
  .has-purchase-bar .toast { bottom:calc(100px + env(safe-area-inset-bottom)); }
  .product-lightbox-image { max-height:68vh; }
  .lightbox-tools { gap:8px; flex-wrap:wrap; }
  .lightbox-navigation { gap:8px; }
  .lightbox-navigation .button { font-size:12px; padding:10px 15px; }
}
@media (prefers-reduced-motion:reduce) {
  .product-details summary > span { transition:none; }
}

.product-details summary:focus-visible { outline:3px solid var(--berry); outline-offset:5px; }
.product-quantity :focus-visible { outline-offset:-4px; }
