.km-info,.km-info-page{--km-ink:#2B2B2B;--km-gold:#C8901C;--km-line:#F2E2B8;--km-bright:#FFB400;--km-cream:#FFFEF9;color:var(--km-ink);font:15px/1.6 "Segoe UI","Helvetica Neue",Arial,sans-serif;background:var(--km-cream)}
.km-info{position:fixed;inset:0;margin:auto;box-sizing:border-box;width:min(1000px,calc(100vw - 48px));max-width:none;max-height:calc(100dvh - 48px);padding:0;border:1px solid var(--km-line);border-radius:22px;box-shadow:0 30px 90px #30281e33;overflow:auto;overscroll-behavior:contain}
.km-info::backdrop{background:#211b1666;backdrop-filter:blur(4px)}
.km-info-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 24px;border-bottom:1px solid var(--km-line);background:var(--km-cream);position:sticky;top:0;z-index:2}
.km-info-logo{display:block;min-width:0}
.km-info-logo-name{display:block;font-size:22px;font-weight:800;letter-spacing:3px;line-height:1.6;background:linear-gradient(135deg,var(--km-bright),var(--km-gold),var(--km-bright));-webkit-background-clip:text;background-clip:text;color:transparent}
.km-info-logo-tag{display:block;font-size:10px;letter-spacing:2px;color:#6b6b6b;text-transform:uppercase;line-height:1.6}
.km-info-close{border:1px solid var(--km-line);border-radius:50%;width:40px;height:40px;background:white;color:var(--km-ink);font-size:28px;line-height:1;cursor:pointer;flex-shrink:0}
.km-info-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:36px;padding:28px}
.km-info-media,.km-info-summary{min-width:0;padding:0}
.km-info-photo{aspect-ratio:1;display:grid;place-items:center;border:1px solid var(--km-line);border-radius:16px;background:white;overflow:hidden}
.km-info-photo img{width:100%;height:100%;object-fit:contain;min-height:0}
.km-info-no-photo{color:var(--km-gold);font:24px Georgia,serif;letter-spacing:4px}
.km-info-thumbs{display:flex;gap:10px;overflow:auto;margin-top:12px;padding:2px}
.km-info-thumbs[hidden]{display:none}
.km-info-thumbs button{width:60px;height:60px;flex:0 0 60px;border:1px solid var(--km-line);border-radius:9px;background:white;padding:3px;cursor:pointer}
.km-info-thumbs button[aria-pressed=true]{border:2px solid var(--km-gold)}
.km-info-thumbs img{width:100%;height:100%;object-fit:contain}
.km-info-brand{font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--km-gold);margin:2px 0 8px}
.km-info h1,.km-info-page h1{font-size:clamp(20px,2.2vw,24px);font-weight:600;line-height:1.35;margin:0 0 12px;overflow-wrap:anywhere}
.km-info-code{color:var(--km-gold);font-size:17px;font-weight:600;margin:8px 0 16px;overflow-wrap:anywhere}
.km-info-price{color:var(--km-gold);font-size:24px;font-weight:700;line-height:1.4;margin:0 0 16px;overflow-wrap:anywhere}
.km-info-variant-label{display:grid;gap:6px;font-size:13px;margin:16px 0}
.km-info-variant{box-sizing:border-box;display:block;max-width:100%;width:100%;min-height:46px;padding:11px 44px 11px 14px;border:1px solid var(--km-line);border-radius:10px;background-color:white;background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23827363%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m6%209%206%206%206-6%22%2F%3E%3C%2Fsvg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:16px 16px;-webkit-appearance:none;appearance:none;font:inherit;line-height:1.5;color:inherit;cursor:pointer}
.km-info-copy{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:8px;width:auto;max-width:100%;min-height:40px;padding:9px 18px;border:none;border-radius:10px;background:linear-gradient(135deg,var(--km-bright),#F5C242,var(--km-gold));color:#fff;font-family:inherit;font-weight:600;font-size:13px;line-height:1.5;text-align:center;white-space:normal;cursor:pointer;transition:.25s;box-shadow:0 5px 14px rgba(200,144,28,.28)}
.km-info-copy:hover{transform:none;box-shadow:0 7px 20px rgba(200,144,28,.38);filter:brightness(1.04)}
.km-info-copy:active{transform:none;filter:brightness(.94);box-shadow:inset 0 2px 5px rgba(120,75,0,.18)}
.km-info .km-info-copy:focus-visible,.km-info-page .km-info-copy:focus-visible{outline:2px solid var(--km-gold);outline-offset:3px}
@media(hover:none){.km-info-copy:hover{filter:none;box-shadow:0 5px 14px rgba(200,144,28,.28)}}
.km-info-status{font-size:12px;color:#61764f;margin:8px 0 0;min-height:0}
.km-info-status:empty{margin:0}
.km-info-description{border-top:1px solid var(--km-line);padding-top:16px;margin-top:12px}
.km-info-description>h2{font-size:17px;font-weight:600;margin:0 0 12px}
.km-info-rich{overflow-wrap:anywhere;overflow-x:auto}
.km-info-rich img{max-width:100%;height:auto;display:block;border-radius:8px}
.km-info-rich table{border-collapse:collapse;width:100%;font-size:14px}
.km-info-rich td,.km-info-rich th{border:1px solid var(--km-line);padding:8px;text-align:left}
.km-info-rich a{color:var(--km-gold)}
.km-info-rich h2,.km-info-rich h3,.km-info-rich h4{font-size:17px;line-height:1.4}
.km-info-loading{padding:64px 24px;text-align:center;color:#817363}
.km-info-page{margin:0;min-height:100dvh}
.km-info-page .km-info-page-shell{max-width:1080px;margin:24px auto;background:var(--km-cream);border:1px solid var(--km-line);border-radius:22px;overflow:hidden}
.km-info-page .km-info-toolbar a{color:var(--km-gold);font-size:13px;text-decoration:none;letter-spacing:0}
.km-info button:focus-visible,.km-info-page button:focus-visible,.km-info select:focus-visible,.km-info-page select:focus-visible{outline:3px solid var(--km-gold);outline-offset:3px}
@media(max-width:700px){.km-info{width:100%;height:100dvh;max-height:100dvh;margin:0;border:0;border-radius:0}.km-info-layout{grid-template-columns:1fr;gap:22px;padding:20px}.km-info-photo{max-height:52dvh}.km-info-toolbar{padding:12px 18px}.km-info-logo-name{font-size:19px;letter-spacing:2px}.km-info-logo-tag{font-size:9px;letter-spacing:1px}.km-info-page .km-info-page-shell{margin:0;border:0;border-radius:0}.km-info-summary{padding-bottom:12px}}


/* Long POS descriptions keep their product image visible on desktop. */
@media(min-width:701px){.km-info-media{position:sticky;top:88px;align-self:start}}

/* The product card keeps its quick-order controls; zoom exists inside details only. */
.km-info-enlarge{position:relative;width:100%;height:100%;min-height:0;padding:0;border:0;background:white;display:grid;place-items:center;cursor:zoom-in;overflow:hidden;color:#342c24}
.km-info-enlarge img{width:100%;height:100%;object-fit:contain}
.km-info-enlarge-hint{position:absolute;right:12px;bottom:12px;padding:5px 11px;border-radius:20px;background:#fffdf9e8;border:1px solid #e8dfd2;color:#776144;font:12px system-ui;pointer-events:none}
.km-viewer{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:#171612;color:#fffdf9;overflow:hidden;overscroll-behavior:contain;font:14px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;box-sizing:border-box}
.km-viewer[open]{display:flex;flex-direction:column}
.km-viewer::backdrop{background:#171612f5}
.km-viewer button{font:inherit;color:inherit;background:#ffffff13;border:1px solid #ffffff38;cursor:pointer;border-radius:50%;flex-shrink:0;touch-action:manipulation}
.km-viewer button:focus-visible{outline:3px solid #dfbd89;outline-offset:3px}
.km-viewer button:disabled{opacity:.35;cursor:default}
.km-viewer-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 20px;padding-top:max(12px,env(safe-area-inset-top));flex-shrink:0;z-index:2}
.km-viewer-title{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.km-viewer .km-viewer-close{width:44px;height:44px;font-size:29px;line-height:1}
.km-viewer-stage{position:relative;flex:1;min-height:0;min-width:0;display:flex;align-items:center;justify-content:center;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none}
.km-viewer-image{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;transform-origin:center;will-change:transform;pointer-events:none;user-select:none;-webkit-user-drag:none}
.km-viewer-image[hidden],.km-viewer [hidden]{display:none!important}
.km-viewer-stage.is-zoomed{cursor:grab}
.km-viewer-stage.is-zoomed:active{cursor:grabbing}
.km-viewer .km-viewer-prev,.km-viewer .km-viewer-next{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;font-size:34px;line-height:1;background:#171612a8;z-index:1}
.km-viewer-prev{left:max(14px,env(safe-area-inset-left))}
.km-viewer-next{right:max(14px,env(safe-area-inset-right))}
.km-viewer-error{padding:24px;text-align:center;color:#e2d8c9;max-width:320px}
.km-viewer-footer{display:flex;align-items:center;justify-content:center;gap:18px;flex-wrap:wrap;padding:14px 20px;padding-bottom:max(14px,env(safe-area-inset-bottom));background:#171612;flex-shrink:0;z-index:2}
.km-viewer-count{font-variant-numeric:tabular-nums;min-width:48px;text-align:center}
.km-viewer-zoom{display:flex;gap:8px;align-items:center}
.km-viewer-zoom button{height:40px;min-width:40px;font-size:20px}
.km-viewer .km-viewer-fit{border-radius:20px;padding:0 12px;min-width:72px;font-size:13px}
.km-viewer-footer small{color:#bdb3a3;font-size:12px}
@media(max-width:700px){.km-viewer-toolbar{padding-left:14px;padding-right:14px}.km-viewer .km-viewer-prev,.km-viewer .km-viewer-next{width:40px;height:40px}.km-viewer-footer{gap:10px;padding:10px 12px;padding-bottom:max(10px,env(safe-area-inset-bottom))}.km-viewer-footer small{width:100%;text-align:center;font-size:11px}}

/* Keep variant controls visually identical before, during and after selection. */
.km-info select.km-info-variant:is(:hover,:active,:focus,:focus-visible),.km-info-page select.km-info-variant:is(:hover,:active,:focus,:focus-visible){outline:none!important;box-shadow:none!important;border:1px solid var(--km-line);background-color:white;color:var(--km-ink);filter:none!important;-webkit-tap-highlight-color:transparent}

/* A 36px visible circle inside the existing 44px button, inset a little further.
   The decoration never extends the hit area or intercepts a click. */
@media(max-width:700px){
  .km-info .km-info-toolbar,.km-viewer .km-viewer-toolbar{padding-right:30px}
  .km-info .km-info-close,.km-viewer .km-viewer-close{position:relative;isolation:isolate;box-sizing:border-box;width:44px;height:44px;min-width:44px;padding:0;display:grid;place-items:center;border:0;border-radius:50%;background:transparent;font-size:0;line-height:0;outline:none!important;box-shadow:none!important;-webkit-appearance:none;appearance:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
  .km-info .km-info-close::before,.km-viewer .km-viewer-close::before{content:"";position:absolute;inset:4px;border-radius:50%;box-sizing:border-box;pointer-events:none;z-index:-1}
  .km-info .km-info-close::before{border:1px solid var(--km-line);background:white}
  .km-viewer .km-viewer-close::before{border:1px solid #ffffff38;background:#ffffff13}
  .km-info .km-info-toolbar button.km-info-close:not(:disabled):not(.disabled):active,.km-viewer .km-viewer-toolbar button.km-viewer-close:not(:disabled):not(.disabled):active{box-shadow:none!important;filter:none!important}
  .km-info .km-info-close:focus:not(:focus-visible),.km-viewer .km-viewer-close:focus:not(:focus-visible){outline:none}
  .km-info .km-info-close:is(:hover,:active,:focus,:focus-visible),.km-viewer .km-viewer-close:is(:hover,:active,:focus,:focus-visible){outline:none!important;box-shadow:none!important;background:transparent;border:0}
  /* The two strokes share the same exact centre as the 36px circle. */
  .km-info .km-info-close::after,.km-viewer .km-viewer-close::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:14px;transform:translate(-50%,-50%);pointer-events:none;background:linear-gradient(45deg,transparent calc(50% - 1px),currentColor calc(50% - 1px),currentColor calc(50% + 1px),transparent calc(50% + 1px)),linear-gradient(-45deg,transparent calc(50% - 1px),currentColor calc(50% - 1px),currentColor calc(50% + 1px),transparent calc(50% + 1px))}
}

