*{box-sizing:border-box}body{margin:0;background:#e7e7e1;color:#191b19;font-family:Arial,sans-serif}.app{max-width:920px;margin:auto;background:#faf9f5;min-height:100dvh}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}header{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:15px;padding:18px 22px;background:#faf9f5;border-bottom:1px solid #ddd}header b{letter-spacing:2px;font-size:14px}header>span{margin-left:auto;font-size:9px;letter-spacing:1px}.symbol{font-size:36px;font-weight:900;font-style:italic;color:inherit;text-decoration:none}main{padding:0 22px 115px}.tabs{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,920px);background:#faf9f5;border-top:1px solid #ccc;display:grid;grid-template-columns:repeat(4,1fr);padding:10px 5px calc(10px + env(safe-area-inset-bottom));z-index:6}.tabs button{border:0;background:none;color:#686b63;font-size:25px;padding:4px}.tabs span{display:block;font-size:11px;margin-top:5px}.tabs button[aria-current="page"]{color:#111;font-weight:bold}.hero{margin:0 -22px;background:#191c19;color:white}.hero img{width:100%;display:block}.hero-copy{padding:25px}.eyebrow{font-size:10px;letter-spacing:2px;text-transform:uppercase}h1{font-size:clamp(30px,6vw,49px);margin:12px 0;line-height:1.05}h2{font-size:25px;margin:28px 0 18px}p{line-height:1.6}.primary{background:#191c19;color:#fff;border:0;padding:15px 20px;font-weight:bold;letter-spacing:1px;width:100%;border-radius:3px}.hero .primary{background:#f6f3ea;color:#111;margin-top:12px}.chips{display:flex;gap:8px;overflow:auto;padding:7px 0 16px}.chips button{white-space:nowrap;border:1px solid #ccc;background:transparent;border-radius:25px;padding:10px 16px}.chips .active{background:#191c19;color:white}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 12px}.card{position:relative;min-width:0}.photo{border:0;padding:0;background:#e9e7e1;width:100%;border-radius:5px;overflow:hidden}.photo img{width:100%;height:270px;object-fit:cover;display:block}.heart{position:absolute;right:8px;top:8px;border:0;background:#fff;border-radius:50%;width:35px;height:35px;font-size:21px}.card h3{font-size:14px;margin:11px 0 6px}.muted{font-size:12px;color:#6b6d65}.search{width:100%;padding:14px;border:1px solid #ccc;background:white;border-radius:4px;margin:8px 0}.range{display:flex;gap:10px;margin:8px 0}.range button{flex:1;padding:12px;border:1px solid #ddd;background:transparent}.range .active{background:#e6e9df;border-color:#434a3e}.note{background:#eeeee7;padding:16px;font-size:12px;line-height:1.6;margin:25px 0}.empty{padding:50px 0;text-align:center}.row{display:grid;grid-template-columns:85px 1fr;gap:15px;border-bottom:1px solid #ddd;padding:20px 0}.row img{width:85px;height:110px;object-fit:cover}.row h3{margin:0 0 8px;font-size:15px}.qty{display:flex;align-items:center;gap:14px;margin:12px 0}.qty button{width:30px;height:30px;background:white;border:1px solid #ccc}.remove{border:0;background:none;text-decoration:underline;padding:0;font-size:12px}dialog{border:0;border-radius:10px;padding:24px;width:min(94vw,540px);max-height:90dvh}dialog::backdrop{background:#0009}.close{position:absolute;right:14px;top:10px;border:0;border-radius:50%;font-size:28px;background:white;width:38px;height:38px}dialog img{width:100%;height:320px;object-fit:contain;background:#eeeee7}dialog label{display:block;margin:18px 0 7px;font-size:12px;font-weight:bold}dialog select{width:100%;padding:13px;background:white;border:1px solid #aaa}dialog .primary{margin-top:20px}#notice{position:fixed;bottom:100px;left:50%;transform:translateX(-50%);background:#1c221b;color:#fff;padding:13px 22px;border-radius:5px;z-index:20;display:none}.pair{margin-top:18px;border:1px solid #ddd;padding:16px}.pair button{border:0;background:transparent;text-decoration:underline;padding:8px 0}@media(min-width:700px){.grid{grid-template-columns:repeat(3,minmax(0,1fr))}.hero img{max-height:420px;object-fit:contain}.hero-copy{max-width:600px}}@media(max-width:390px){header{padding:12px}header b{font-size:12px}.photo img{height:210px}}

.website-link{margin-left:auto;color:#191b19;font-size:12px;white-space:nowrap;text-underline-offset:4px}

.real-product{width:100%;aspect-ratio:4/3;background-image:url("assets/product-photography.png");background-size:300% 400%;background-repeat:no-repeat}.photo:has(.real-product){display:flex;align-items:center;background:#f5f5f5}

.real-product-image{display:block;width:100%;height:auto;max-width:100%;object-fit:contain}.product-image .real-product-image,.photo .real-product-image{width:100%;height:100%;object-fit:contain}.detail-grid>.real-product-image{align-self:center;max-height:65vh;object-fit:contain}

button:disabled{opacity:.55;cursor:not-allowed}.chips{overflow-x:auto;flex-wrap:nowrap}.chips button{white-space:nowrap;flex-shrink:0}dialog{max-height:90dvh;overflow-y:auto}select{min-height:44px}

.variant-photo{width:100%;background-repeat:no-repeat;background-color:#e8e7e4;display:block}.photo:has(.variant-photo){height:auto;aspect-ratio:auto}.bag-visual{width:110px;flex-shrink:0}.bag-visual img{width:100%}.logo-options{display:flex;gap:12px;border:0;padding:0;margin:20px 0}.logo-options legend{margin-bottom:10px}.logo-options button{flex:1;padding:16px;background:#fff;border:1px solid #bbb;border-radius:8px;min-height:80px}.logo-options button[aria-pressed=true]{border:2px solid #171917;background:#f3f2ee}.mini-mark{display:block;font-size:25px;font-style:italic;font-weight:700}.logo-options small{display:block;font-size:10px;margin-top:4px}#detailVisual{max-width:270px;margin:0 auto}#choiceSummary{font-weight:600}button:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #76885c;outline-offset:3px}

.logo-options{flex-wrap:wrap}.logo-options button{min-width:80px;padding:12px 8px}.row{grid-template-columns:90px 1fr}.bag-visual{width:90px}#detailVisual{max-width:340px}dialog .close{z-index:2}

.contact-email{padding:16px 20px;text-align:center;font-size:14px;line-height:1.6;overflow-wrap:anywhere}.contact-email a{color:inherit;text-decoration:underline;text-underline-offset:3px}
