body.product-modal-open{position:fixed;left:0;right:0;width:100%;overflow:hidden}
#product-modal{--pm-red:#d51f2b;--pm-ink:#202024;--pm-muted:#676b72;--pm-line:#e5e5e8;width:min(1060px,calc(100vw - 48px));height:min(660px,calc(100dvh - 48px));max-width:none;max-height:none;margin:auto;padding:0;border:0;border-radius:20px;overflow:hidden;background:#fff;color:var(--pm-ink);box-shadow:0 32px 96px #1118}
#product-modal[open]{display:block}
#product-modal::backdrop{background:#17171bcc;backdrop-filter:blur(3px)}
#product-modal .product-modal-layout{display:flex;flex-direction:column;height:100%;min-height:0}
#product-modal .product-modal-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;display:grid;grid-template-columns:42% minmax(0,1fr);align-content:start;scrollbar-gutter:stable}
#product-modal .product-modal-media{height:100%;min-height:490px;min-width:0;background:#f4f4f3;overflow:hidden}
#product-modal .product-image-preview{position:relative;display:block;width:100%;height:100%;min-height:0;padding:0;border:0;background:#f4f4f3;overflow:hidden;cursor:zoom-in}
#product-modal #modal-image{display:block;width:100%;height:100%;min-width:0;min-height:0;object-fit:cover;object-position:center}
#product-modal .product-image-preview[data-image-state] #modal-image{opacity:0;transition:none}
#product-modal .product-image-preview[data-image-state="loaded"] #modal-image{opacity:1;transition:opacity 140ms ease}
#product-modal .product-image-preview:not([data-image-state="loaded"]) .product-image-zoom{opacity:0}
@media(prefers-reduced-motion:reduce){#product-modal .product-image-preview[data-image-state="loaded"] #modal-image{transition:none}}
#product-modal .product-image-preview[data-fit="contain"] #modal-image{object-fit:contain}
#product-modal .product-image-zoom{position:absolute;right:14px;bottom:14px;display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border-radius:8px;background:#202024de;color:#fff;font-size:12px;font-weight:700;line-height:1;pointer-events:none}
#product-modal .product-image-zoom svg{width:16px;height:16px}
#product-modal>.close{position:absolute;top:18px;right:18px;z-index:5;width:42px;height:42px;border:1px solid #e8e8e9;border-radius:50%;background:#fff;color:#202024;font-size:27px;line-height:1;box-shadow:0 2px 12px #0001}
#product-modal>.close:hover{background:#f5f5f5}
#product-modal>.close:focus-visible,#product-modal button:focus-visible,#product-modal textarea:focus-visible{outline:3px solid #d51f2b88;outline-offset:2px}
#product-modal .modal-body{min-width:0;max-height:none;overflow:visible;padding:46px 48px 60px}
#product-modal #modal-name{margin:0 46px 14px 0;font-family:Inter,system-ui,sans-serif;font-size:clamp(28px,3vw,40px);font-weight:800;line-height:1.12;letter-spacing:-.035em;overflow-wrap:anywhere}
#product-modal .modal-price{display:flex;align-items:baseline;flex-wrap:wrap;gap:5px 11px;margin-bottom:16px}
#product-modal .modal-price strong{font-size:26px;line-height:1.1;letter-spacing:-.025em}
#product-modal .modal-price del{font-size:14px;color:var(--pm-muted)}
#product-modal .modal-price small{flex-basis:100%;color:var(--pm-muted);font-size:12px}
#product-modal #modal-description{margin:0 0 22px;color:var(--pm-muted);font-size:14px;line-height:1.55;white-space:pre-line}
#product-modal .choice-group{padding:22px 0;border-top:1px solid var(--pm-line);scroll-margin-top:14px}
#product-modal .choice-group.invalid{margin-inline:-12px;padding-inline:12px;border:1px solid var(--pm-red);border-radius:12px;background:#fff8f8}
#product-modal .choice-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
#product-modal .choice-heading h3{margin:0;font-size:16px;line-height:1.35;font-weight:750}
#product-modal .choice-rule{flex:none;color:var(--pm-red);font-size:11px;font-weight:700;line-height:1.4;text-align:right}
#product-modal .choice-help{margin:-5px 0 12px;color:var(--pm-muted);font-size:12px}
#product-modal .choice-list{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
#product-modal .choice-list>button,#product-modal .choice{width:100%;min-height:54px;display:flex;align-items:center;gap:12px;padding:11px 14px;border:1px solid var(--pm-line);border-radius:10px;background:#fff;color:var(--pm-ink);font-size:14px;line-height:1.35;text-align:left}
#product-modal .choice-list>button:hover,#product-modal .choice:not(.selected):hover{border-color:#bdbdc3;background:#fafafa}
#product-modal .choice-list>button.selected,#product-modal .choice.selected{border-color:var(--pm-red);background:#fff5f5}
#product-modal .choice-indicator{width:19px;height:19px;flex:none;border:2px solid #a5a6aa;border-radius:50%;background:#fff}
#product-modal .selected .choice-indicator{border:6px solid var(--pm-red)}
#product-modal .choice-list>button>b{margin-left:auto;white-space:nowrap;font-size:12px;color:var(--pm-red)}
#product-modal .choice{justify-content:space-between}
#product-modal .choice>span{min-width:0;font-size:14px;line-height:1.35}
#product-modal .choice>span small{display:block;margin-top:2px;color:var(--pm-red);font-size:12px}
#product-modal .choice div{display:flex;align-items:center;gap:8px;flex:none}
#product-modal .choice div button{width:32px;height:32px;display:grid;place-items:center;padding:0;border:1px solid #d6d6d9;border-radius:50%;background:#fff;color:var(--pm-ink);font-size:18px;line-height:1}
#product-modal .choice div button:disabled{opacity:.35;cursor:not-allowed}
#product-modal .choice div b{min-width:17px;text-align:center;font-size:13px}
#product-modal .product-note{display:block;padding-top:22px;border-top:1px solid var(--pm-line);font-size:15px;font-weight:700}
#product-modal .product-note small{margin-left:5px;color:var(--pm-muted);font-size:12px;font-weight:500}
#product-modal .product-note textarea{display:block;width:100%;min-height:82px;margin-top:11px;padding:13px;border:1px solid var(--pm-line);border-radius:10px;background:#fff;color:var(--pm-ink);resize:vertical;font-size:14px;line-height:1.4}
#product-modal .product-modal-footer{flex:none;padding:15px 24px 16px;border-top:1px solid var(--pm-line);background:#fff;box-shadow:0 -10px 30px #00000008}
#product-modal #product-error{position:static;margin:0 0 12px;padding:9px 12px;border:1px solid #e9b1b5;border-radius:8px;background:#fff5f5;box-shadow:none;color:#a31722;font-size:12px}
#product-modal .product-modal-purchase{display:flex;align-items:center;gap:22px}
#product-modal .qty{flex:none;display:flex;align-items:center;gap:0;width:auto;margin:0;border:1px solid var(--pm-line);border-radius:10px}
#product-modal .qty button{width:40px;height:42px;border:0;border-radius:9px;background:#fff;color:var(--pm-ink);font-size:21px}
#product-modal .qty button:disabled{opacity:.35;cursor:not-allowed}
#product-modal .qty b{min-width:28px;text-align:center;font-size:14px}
#product-modal .modal-total{margin:0 auto 0 0;display:grid;justify-items:start;gap:1px}
#product-modal .modal-total small{color:var(--pm-muted);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
#product-modal .modal-total strong{color:var(--pm-ink);font-family:Inter,system-ui,sans-serif;font-size:23px;font-weight:800;line-height:1.1;white-space:nowrap}
#product-modal #add-item{width:min(260px,40%);min-height:48px;flex:none;border-radius:10px;background:var(--pm-red);color:#fff;font-size:14px;font-weight:800}
#product-modal #add-item:hover{background:#b81723}
@media(max-width:760px){
  #product-modal{inset:0;width:100vw;height:100dvh;max-height:100dvh;margin:0;border-radius:0}
  #product-modal .product-modal-scroll{display:block;scrollbar-gutter:auto}
  #product-modal .product-modal-media{height:clamp(210px,28dvh,260px);min-height:0}
  #product-modal>.close{top:calc(12px + env(safe-area-inset-top));right:14px;width:40px;height:40px}
  #product-modal .modal-body{padding:28px 20px 34px}
  #product-modal #modal-name{font-size:30px;margin-right:0}
  #product-modal .modal-price strong{font-size:24px}
  #product-modal .choice-heading{display:block}
  #product-modal .choice-rule{display:block;margin-top:4px;text-align:left}
  #product-modal .choice-list>button,#product-modal .choice{padding-right:54px}
  #product-modal .product-modal-footer{padding:12px 16px calc(12px + env(safe-area-inset-bottom));}
  #product-modal .product-modal-purchase{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px 16px}
  #product-modal .qty{grid-column:1;grid-row:1}
  #product-modal .modal-total{grid-column:2;grid-row:1;justify-items:end;margin-left:auto}
  #product-modal #add-item{grid-column:1/-1;grid-row:2;width:100%;min-height:48px}
}
@media(max-width:360px){#product-modal .modal-body{padding-inline:16px}#product-modal .product-modal-footer{padding-inline:12px}}
dialog#product-image-lightbox{inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;border-radius:0;overflow:hidden;background:#101114;color:#fff;box-shadow:none}
#product-image-lightbox[open]{display:block}
#product-image-lightbox::backdrop{background:#08090bee}
#product-image-full{position:absolute;top:calc(32px + env(safe-area-inset-top));left:16px;display:block;width:calc(100% - 32px);height:calc(100% - 64px - env(safe-area-inset-top) - env(safe-area-inset-bottom));object-fit:contain}
#product-image-close{position:absolute;top:calc(12px + env(safe-area-inset-top));right:14px;display:grid;place-items:center;width:42px;height:42px;padding:0;border:1px solid #ffffff55;border-radius:50%;background:#303136;color:#fff;font-size:28px;line-height:1}
#product-image-close:hover{background:#45464b}
#product-image-close:focus-visible{outline:3px solid #fff;outline-offset:3px}

#product-modal .option-choice-label{display:flex;align-items:center;gap:10px;min-width:0;flex:1}
#product-modal .option-choice-label>span{min-width:0;overflow-wrap:anywhere}
#product-modal .option-thumbnail{display:block;width:44px;height:44px;flex:0 0 44px;object-fit:contain;border-radius:7px;background:#fafafa;cursor:inherit}
#product-modal .option-thumbnail[hidden]{display:none}
