:root {
  --green:#124b42; --brown:#70421e; --cream:#f6f1e8; --blue:#00627a;
  --ink:#18352e; --muted:#5d6b65; --line:#dce5da; --white:#fff;
}
* { box-sizing:border-box; }
body { margin:0; background:var(--cream); font-family:"DM Sans",sans-serif; color:var(--ink); }
button { font:inherit; }
.shop-header { min-height:92px; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:14px max(5vw,28px); background:var(--white); border-bottom:1px solid var(--line); }
.brand img { display:block; width:190px; max-height:62px; object-fit:contain; }
.header-actions { display:flex; align-items:center; gap:16px; }
.back { color:var(--blue); font-size:14px; font-weight:700; text-decoration:none; }
.cart-button { border:0; border-radius:999px; background:var(--green); color:#fff; padding:12px 17px; cursor:pointer; font-size:14px; font-weight:700; }
.cart-button span { display:inline-grid; place-items:center; min-width:20px; height:20px; margin-left:5px; border-radius:50%; background:#fff; color:var(--green); font-size:12px; }
main { max-width:1180px; margin:auto; padding:clamp(48px,8vw,105px) max(5vw,28px) 100px; }
.shop-intro { max-width:680px; margin-bottom:55px; }
.tag,.eyebrow { text-transform:uppercase; letter-spacing:.15em; font-weight:700; font-size:12px; color:var(--brown); }
h1,h2 { margin:0; font-family:"Playfair Display",serif; letter-spacing:-.045em; color:var(--green); }
h1 { font-size:clamp(49px,7vw,88px); line-height:.94; }
h1 em { color:var(--brown); }
.shop-intro>p:last-child { max-width:570px; margin:22px 0 0; color:var(--muted); font-size:18px; line-height:1.6; }
.product { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(330px,.9fr); gap:clamp(32px,6vw,80px); align-items:start; }
.gallery { max-width:430px; }
.gallery img { display:block; width:100%; aspect-ratio:1.25/1; max-height:345px; object-fit:cover; border-radius:18px; background:#e9eee7; }
.product-info { padding:7px 0; }
.product-info h2 { margin-top:10px; font-size:clamp(35px,4vw,53px); line-height:1.02; }
.dimensions { margin:12px 0; color:var(--muted); font-size:17px; font-weight:700; }
.price { margin:26px 0 8px; color:var(--green); font-size:40px; line-height:1; font-weight:700; letter-spacing:-.05em; }
.price span { font-family:"DM Sans",sans-serif; font-size:15px; letter-spacing:0; color:var(--muted); }
.shipping { display:inline-block; margin:0; padding:8px 12px; border-radius:999px; background:#e7efe7; color:var(--green); font-size:13px; font-weight:700; }
.description { margin:26px 0 18px; color:var(--muted); font-size:17px; line-height:1.65; }
.product-info ul { margin:0 0 30px; padding:0; list-style:none; line-height:1.55; }
.product-info li { position:relative; padding:6px 0 6px 24px; }
.product-info li:before { content:"✓"; position:absolute; left:0; color:var(--green); font-weight:700; }
.purchase { display:flex; align-items:center; gap:12px; }
.quantity { display:flex; align-items:center; overflow:hidden; border:1px solid var(--line); border-radius:999px; background:#fff; }
.quantity button { width:40px; height:46px; border:0; background:transparent; color:var(--green); font-size:25px; cursor:pointer; }
.quantity output { display:inline-grid; place-items:center; width:26px; font-weight:700; }
.add-button,.order-button,.pay-now { min-height:48px; border:0; border-radius:999px; background:var(--blue); color:#fff; padding:14px 24px; font-weight:700; cursor:pointer; }
.add-button:hover,.order-button:hover,.pay-now:hover { background:#004f63; }
.pay-now { display:inline-block; margin-top:12px; text-decoration:none; }
.payment-note { margin:14px 0 0; color:var(--muted); font-size:12px; line-height:1.5; }
.overlay { position:fixed; z-index:10; inset:0; background:rgba(10,31,25,.35); }
.cart-panel { position:fixed; z-index:11; top:0; right:0; display:flex; flex-direction:column; width:min(420px,100%); height:100%; padding:28px; background:#fff; box-shadow:-12px 0 35px rgba(20,50,40,.16); transform:translateX(105%); transition:transform .25s ease; }
.cart-panel.is-open { transform:translateX(0); }
.cart-title { display:flex; justify-content:space-between; align-items:center; padding-bottom:18px; border-bottom:1px solid var(--line); }
.cart-title h2 { font-size:34px; }
.cart-title button { border:0; background:transparent; color:var(--green); font-size:36px; line-height:1; cursor:pointer; }
.cart-items { flex:1; overflow:auto; padding:22px 0; color:var(--muted); }
.cart-line { display:grid; grid-template-columns:1fr auto; gap:15px; padding:0 0 18px; margin-bottom:18px; border-bottom:1px solid var(--line); }
.cart-line strong { color:var(--green); }.cart-line p { margin:4px 0 0; font-size:13px; }
.remove-product { border:0; background:none; padding:0; color:var(--blue); font-size:13px; text-decoration:underline; cursor:pointer; }
.cart-total { display:flex; justify-content:space-between; align-items:center; padding:20px 0; border-top:1px solid var(--line); color:var(--green); }.cart-total strong { font-size:23px; }
.order-button { width:100%; margin-top:4px; }.cart-help { margin:15px 0; color:var(--muted); font-size:12px; line-height:1.5; }
.contact-order { color:var(--blue); font-size:14px; font-weight:700; text-align:center; text-decoration:none; }
@media(max-width:760px) {
  .shop-header { min-height:75px; padding:10px 16px; }.brand img { width:145px; max-height:48px; }.header-actions { gap:9px; }.back { display:none; }.cart-button { padding:10px 12px; font-size:13px; }
  main { padding:48px 22px 70px; }.shop-intro { margin-bottom:38px; }.shop-intro>p:last-child { font-size:16px; }.product { grid-template-columns:1fr; gap:30px; }.gallery { max-width:none; }.gallery img { max-height:250px; border-radius:13px; }.product-info h2 { font-size:38px; }.price { font-size:36px; }.purchase { align-items:stretch; flex-wrap:wrap; }.add-button { flex:1; min-width:190px; }.cart-panel { padding:22px; }.cart-title h2 { font-size:30px; }
}
