.shop-dialog{border:0;border-top:6px solid var(--gold);border-radius:10px;background:var(--paper);color:var(--ink);padding:28px;width:min(760px,calc(100% - 24px));max-height:90dvh;overflow:auto}.shop-dialog::backdrop{background:rgba(12,31,45,.75)}.shop-dialog h2{font:600 2rem Georgia,serif;margin:0}.shop-dialog header{display:flex;justify-content:space-between;align-items:center;gap:20px}.shop-demo{padding:12px;background:#eee4d2;border-left:3px solid var(--gold);font-size:.875rem}.cart-line{padding:18px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap}.cart-line h3{margin:0;font-size:1rem}.cart-line p{margin:4px 0;font-size:.875rem;color:#536575}.cart-controls{display:flex;gap:8px;align-items:center}.cart-controls button{min-width:44px;min-height:44px;border:1px solid var(--line);background:var(--cream);border-radius:4px}.shop-total{display:flex;justify-content:space-between;gap:20px;padding:12px 0}.shop-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.shop-actions .btn{flex:1}.checkout-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.checkout-fields label{display:block;font-size:.875rem;font-weight:700}.checkout-fields input,.checkout-fields textarea,.checkout-fields select{display:block;width:100%;margin-top:6px;padding:12px;border:1px solid var(--line);border-radius:4px;font:inherit;background:white}.checkout-wide{grid-column:1/-1}.payment-options{display:flex;gap:12px;flex-wrap:wrap;border:1px solid var(--line);padding:16px;margin:20px 0}.payment-options label{padding:8px;font-size:1rem}.shop-success{padding:24px;background:#e7efe9;border-radius:6px}.shop-success h3{margin:0 0 12px}.shop-status{font-size:.875rem;color:var(--brick)}.payment-demo{padding:20px;border:1px dashed var(--forest);margin-top:20px}.payment-demo strong{display:block}.shop-dialog:focus{outline:none}@media(max-width:560px){.shop-dialog{padding:20px}.checkout-fields{grid-template-columns:1fr}.checkout-wide{grid-column:auto}.shop-actions{flex-direction:column}.shop-dialog h2{font-size:1.6rem}}
.product-illustration{margin:0;background:var(--cream)}.product-illustration img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover}.product-illustration figcaption{padding:8px 16px;font-size:.8rem;color:#536575;border-bottom:1px solid var(--line)}
.product-image-button{display:block;width:100%;padding:0;border:0;background:transparent;cursor:pointer}.product-image-button:focus-visible{outline:3px solid var(--gold);outline-offset:-3px}.product-detail{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:20px}.detail-figure{margin:0}.detail-figure img{display:block;width:100%;height:auto;border-radius:6px}.detail-figure figcaption{font-size:.8rem;color:#536575;margin-top:8px}.detail-add{width:100%}.care-details{margin-top:24px;padding:16px;border:1px solid var(--line);border-radius:4px}.care-details summary{cursor:pointer;font-weight:700;padding:4px}.care-details p,.care-details li{font-size:.9rem}@media(max-width:560px){.product-detail{grid-template-columns:1fr;gap:18px}}
:root{--soft-line:rgba(24,59,86,.12)}body{line-height:1.65}.nav{border-bottom:1px solid var(--soft-line)}.nav-cta,.btn,.filter{border-radius:8px;transition:background-color .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease}.btn:active,.filter:active,.nav-cta:active{transform:translateY(1px)}.btn-primary:hover,.nav-cta:hover{background:#24516f}.btn-gold:hover{background:#d7ac58}.card{border-radius:14px;box-shadow:0 3px 12px rgba(24,59,86,.04)}.card:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(24,59,86,.10)}.card-body{padding:24px;gap:4px}.card-top{align-items:flex-start}.card h3{line-height:1.3}.price{font-size:.95rem}.product-illustration img{transition:transform .35s ease}.product-image-button{overflow:hidden}.product-image-button:hover img{transform:scale(1.025)}.product-illustration figcaption{padding:10px 20px}.product-details{margin:14px 0 20px}.product-details div{padding:10px 0}.product-details dt{flex-shrink:0}.product-details dd{line-height:1.5}.shop-dialog{padding:30px;border-radius:16px;box-shadow:0 24px 90px rgba(12,31,45,.25)}.shop-dialog::backdrop{background:rgba(12,31,45,.6);backdrop-filter:blur(4px)}.shop-dialog header{padding-bottom:14px;border-bottom:1px solid var(--line)}.shop-dialog h2{font-size:1.9rem;line-height:1.2}.shop-dialog .close{border-radius:8px;flex-shrink:0}.shop-demo{border-radius:6px;line-height:1.5;margin:18px 0}.detail-figure{align-self:start;position:sticky;top:0}.detail-figure img{border-radius:10px}.detail-add{margin-top:10px}.cart-line{align-items:center;padding:20px 0}.cart-controls{gap:10px}.cart-controls button{border-radius:8px}.cart-controls span{min-width:24px;text-align:center;font-variant-numeric:tabular-nums}.shop-total{font-variant-numeric:tabular-nums}.checkout-fields input:focus,.checkout-fields textarea:focus,.checkout-fields select:focus,.field input:focus{outline:2px solid var(--gold);outline-offset:2px}.checkout-fields input,.checkout-fields textarea,.checkout-fields select{border-radius:8px}.payment-options{border-radius:10px}.payment-demo,.shop-success,.care-details{border-radius:10px}.cart-notice{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:30;width:max-content;max-width:calc(100% - 32px);padding:14px 20px;border-radius:10px;background:var(--forest);color:#fff;box-shadow:var(--shadow);font-size:.9rem}.cart-notice.inside-dialog{position:sticky;bottom:0;left:auto;transform:none;width:auto;margin-top:18px}.cart-notice[hidden]{display:none}.btn:focus-visible,.close:focus-visible,.cart-controls button:focus-visible{outline:3px solid var(--gold);outline-offset:3px}@media(max-width:560px){.card-body{padding:20px}.shop-dialog{padding:20px;border-radius:14px;max-height:92dvh}.shop-dialog h2{font-size:1.6rem}.detail-figure{position:static}.cart-controls{width:100%}.shop-actions{gap:10px}.cta{border-radius:14px}.hero-illustration img{border-radius:10px}.product-details{font-size:.9rem}}@media(prefers-reduced-motion:reduce){.btn,.nav-cta,.filter,.product-illustration img{transition:none}.product-image-button:hover img{transform:none}}
.shop-dialog.product-view{width:min(960px,calc(100% - 32px));padding:0;border:0;position:relative;overflow-y:auto}.product-view .product-detail{grid-template-columns:1fr 1fr;gap:0;margin:0;align-items:stretch}.product-view .detail-figure{position:static;background:#eee4d2;display:flex;flex-direction:column;align-self:stretch}.product-view .detail-figure img{border-radius:0;object-fit:cover;aspect-ratio:1;height:auto}.product-view .detail-figure figcaption{margin:0;padding:12px 20px;font-size:.78rem;background:#eee4d2}.detail-info{padding:32px}.detail-close{position:absolute;right:12px;top:12px;z-index:2;min-width:40px;min-height:40px;border-radius:50%!important;background:rgba(247,240,227,.95)}.detail-code{margin:0 0 12px;font-size:.75rem;letter-spacing:.08em;color:#62717b}.detail-code span{letter-spacing:0;background:#eee4d2;padding:4px 8px;margin-left:8px;border-radius:5px}.product-view h2{padding-right:26px;font-size:2rem;line-height:1.2}.detail-price{margin:16px 0;display:flex;flex-direction:column;gap:2px}.detail-price strong{font-size:1.65rem;color:var(--forest);letter-spacing:-.03em}.detail-price span{font-size:.8rem;color:#62717b}.detail-description{font-size:.9rem;line-height:1.6;color:#536575;margin:0 0 20px}.detail-specs{display:grid;grid-template-columns:1fr 1fr;gap:12px 20px;margin:0;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.detail-specs dt{font-size:.75rem;color:#62717b}.detail-specs dd{margin:2px 0 0;font-size:.875rem;font-weight:600}.detail-stock{font-size:.78rem;color:#62717b;margin:12px 0 18px}.detail-buy-row{display:flex;align-items:end;justify-content:space-between;gap:16px}.detail-buy-row label{display:block;font-size:.8rem;margin-bottom:7px}.quantity-stepper{display:flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:white}.quantity-stepper button{width:40px;height:44px;background:transparent;border:0;font-size:1.25rem;color:var(--forest)}.quantity-stepper button:disabled{opacity:.3;cursor:default}.quantity-stepper input{width:48px;min-width:0;text-align:center;font:inherit;border:0;appearance:textfield;background:transparent}.quantity-stepper input::-webkit-inner-spin-button,.quantity-stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.detail-subtotal{text-align:right;display:flex;flex-direction:column;gap:4px;font-variant-numeric:tabular-nums}.detail-subtotal span{font-size:.75rem;color:#62717b}.detail-subtotal strong{font-size:.95rem}.product-view .detail-add{margin-top:16px;min-height:48px}.detail-demo-note{font-size:.75rem;color:#62717b;line-height:1.5;margin:10px 0 20px}.product-view .care-details{margin:0;padding:12px 0;border-radius:0;border:0;border-top:1px solid var(--line)}.product-view .care-details summary{font-size:.875rem;padding:4px 0}.product-view .cart-notice{margin:0 16px 16px}@media(max-width:700px){.product-view .product-detail{grid-template-columns:1fr}.product-view .detail-figure img{max-height:320px;object-fit:contain}.detail-info{padding:24px}.product-view h2{font-size:1.8rem}.detail-close{top:10px;right:10px}.shop-dialog.product-view{width:calc(100% - 24px)}}
.shop-dialog,.shop-dialog.product-view{position:fixed;inset:0;margin:auto;max-height:calc(100dvh - 40px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.product-view .detail-figure{align-self:start;margin:20px;border-radius:10px;overflow:hidden;background:transparent}.product-view .detail-figure img{width:100%;height:auto;object-fit:contain;border-radius:10px}.product-view .detail-figure figcaption{background:transparent;padding:10px 0;margin:0}.product-view .product-detail{align-items:start}.product-view .detail-close{position:sticky;top:12px;float:right;margin:12px 12px -52px 0}.detail-info{padding-top:48px}@media(max-width:700px){.shop-dialog,.shop-dialog.product-view{max-height:calc(100dvh - 24px)}.product-view .detail-figure{margin:16px 16px 0}.product-view .detail-figure img{max-height:280px}.detail-info{padding-top:20px}}
.product-view .product-detail{grid-template-columns:minmax(0,45fr) minmax(0,55fr);align-items:stretch;background:linear-gradient(to right,#f3ecdf 0%,#f3ecdf 45%,var(--paper) 45%,var(--paper) 100%)}
.product-view .detail-figure{align-self:center;min-width:0;margin:28px 24px;overflow:visible}
.product-view .detail-figure img{width:100%;max-height:none;aspect-ratio:1;object-fit:contain;background:#f3ecdf}
.product-view .detail-figure figcaption{padding:12px 0 0;line-height:1.5;text-align:center}
.product-view .detail-info{min-width:0}
@media(max-width:700px){.product-view .product-detail{grid-template-columns:minmax(0,1fr);background:var(--paper)}.product-view .detail-figure{align-self:start;margin:0;padding:48px 20px 18px;background:#f3ecdf}.product-view .detail-figure img{width:min(100%,320px);max-height:none;margin:auto}.product-view .detail-info{padding:24px}}

/* Square product photo: show the full illustration without cropping. */
.product-view .detail-figure{position:static;align-self:start;margin:24px 20px;padding:0;min-height:0;height:auto;border-radius:10px;overflow:hidden;background:transparent}
.product-view .detail-figure img{position:static;display:block;width:100%;height:auto;max-height:none;aspect-ratio:1;object-fit:contain;object-position:center;border-radius:10px}
.product-view .detail-figure figcaption{position:static;padding:10px 0 0;background:transparent;font-size:.75rem;text-align:center}
@media(max-width:700px){.product-view .detail-figure{margin:48px 20px 0;padding:0;aspect-ratio:auto}.product-view .detail-figure img{width:100%;height:auto;margin:0;max-height:none}}

/* Taller panel for portrait product imagery; keep information independently scrollable. */
.shop-dialog.product-view{width:min(960px,calc(100vw - 32px));overflow:hidden}
.product-view .product-detail{position:relative;height:min(650px,calc(100dvh - 40px));align-items:stretch;background:var(--paper)}
.product-view .detail-figure{position:relative;align-self:stretch;margin:0;padding:0;height:100%;min-height:0;border-radius:0;background:#f3ecdf}
.product-view .detail-figure img{width:100%;height:100%;aspect-ratio:auto;object-fit:contain;border-radius:0}
.product-view .detail-figure figcaption{position:absolute;bottom:0;left:0;right:0;margin:0;padding:9px 12px;background:rgba(247,240,227,.92);font-size:.7rem}
.product-view .detail-info{position:absolute;top:0;right:0;bottom:0;width:55%;box-sizing:border-box;overflow-y:auto;overscroll-behavior:contain;padding:40px 28px 24px;scrollbar-width:thin}
.product-view .detail-close{position:absolute;top:10px;right:10px;float:none;margin:0;z-index:5}
.product-view .cart-notice.inside-dialog{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 24px);margin:0;z-index:6}
@media(max-width:700px){.shop-dialog.product-view{width:calc(100% - 24px);overflow-y:auto}.product-view .product-detail{aspect-ratio:auto;grid-template-columns:minmax(0,1fr)}.product-view .detail-figure{height:auto;aspect-ratio:1;margin:0;padding:0}.product-view .detail-figure img{width:100%;height:auto}.product-view .detail-info{position:static;width:100%;height:auto;overflow:visible;padding:24px}.product-view .detail-close{position:sticky;top:10px;float:right;margin:10px 10px -50px 0}.product-view .cart-notice.inside-dialog{position:sticky;bottom:12px;left:auto;transform:none;width:auto;margin:12px}}
.shop-dialog.product-view .portrait-figure img{aspect-ratio:2/3}
@media(max-width:700px){.shop-dialog.product-view .product-detail{height:auto}.shop-dialog.product-view .portrait-figure{aspect-ratio:2/3}}

/* Mobile catalog and product detail only; cart and checkout remain unchanged. */
@media(max-width:700px){
  #productGrid{gap:18px}
  #productGrid .card{min-width:0}
  #productGrid .card-top{flex-direction:column;gap:8px}
  #productGrid .card-body{padding:20px}
  #productGrid .card h3{font-size:1.45rem;line-height:1.25;overflow-wrap:anywhere}
  #productGrid .price{font-size:1rem}
  #productGrid .btn{min-height:48px;padding:12px 16px;white-space:normal}
  #productGrid .product-illustration img{object-fit:contain;background:#f3ecdf}
  #productGrid .product-illustration figcaption{font-size:.75rem;padding:9px 16px;line-height:1.5}
  #koleksi .filters{gap:8px}
  #koleksi .filter{min-height:44px}
  .shop-dialog.product-view{width:calc(100% - 16px);max-height:calc(100dvh - 16px);border-radius:14px;overflow-y:auto;scroll-padding-top:64px}
  .shop-dialog.product-view .product-detail{height:auto;display:grid;grid-template-columns:minmax(0,1fr);background:var(--paper)}
  .shop-dialog.product-view .detail-figure,.shop-dialog.product-view .portrait-figure{height:auto;aspect-ratio:auto;padding:52px 12px 0;margin:0;background:#f3ecdf;overflow:hidden}
  .shop-dialog.product-view .detail-figure img{width:100%;height:min(56dvh,460px);max-height:none;aspect-ratio:auto;object-fit:contain;background:transparent}
  .shop-dialog.product-view .detail-figure figcaption{position:static;padding:10px 8px 12px;font-size:.75rem;line-height:1.5;background:transparent}
  .shop-dialog.product-view .detail-info{position:static;width:100%;height:auto;padding:24px 20px 28px;overflow:visible}
  .shop-dialog.product-view .detail-close{position:sticky;top:8px;float:right;margin:8px 8px -52px 0;min-width:44px;min-height:44px;box-shadow:0 2px 10px rgba(24,59,86,.12);z-index:5}
  .shop-dialog.product-view h2{font-size:1.8rem;padding-right:0;overflow-wrap:anywhere}
  .shop-dialog.product-view .detail-description{font-size:.95rem}
  .shop-dialog.product-view .detail-specs{gap:14px 16px}
  .shop-dialog.product-view .detail-specs dd{overflow-wrap:anywhere}
  .shop-dialog.product-view .detail-buy-row{flex-wrap:wrap;gap:16px}
  .shop-dialog.product-view .quantity-stepper button{width:44px;height:48px}
  .shop-dialog.product-view .quantity-stepper input{width:52px;font-size:16px;min-height:48px}
  .shop-dialog.product-view .detail-add{min-height:50px;white-space:normal}
  .shop-dialog.product-view .care-details summary{min-height:44px;display:flex;align-items:center;gap:8px}
  .shop-dialog.product-view .care-details summary::before{content:'+'}
  .shop-dialog.product-view .care-details[open] summary::before{content:'−'}
}
@media(max-width:560px){#productGrid{grid-template-columns:minmax(0,1fr)}#productGrid .product-illustration img{max-height:380px}#productGrid .card:hover{transform:none}}
@media(max-width:360px){.shop-dialog.product-view .detail-info{padding:20px 16px}.shop-dialog.product-view .detail-specs{grid-template-columns:minmax(0,1fr)}.shop-dialog.product-view .detail-subtotal{margin-left:auto}}
