:root{
  --bg:#fbf7f1; --bg-alt:#f3ebdf; --surface:#fff; --text:#2b211a; --muted:#6f6257;
  --line:#e6dccd; --wood:#9a6338; --wood-dark:#6e4224; --accent:#3f6b4f; --accent-ink:#fff;
  --radius:14px; --shadow:0 6px 24px rgba(60,40,20,.08);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#1b1612; --bg-alt:#221c17; --surface:#2a221c; --text:#f3eadf; --muted:#b5a696;
    --line:#3b3027; --wood:#d39a68; --wood-dark:#e7b78a; --accent:#7fb28e; --accent-ink:#13201a;
    --shadow:0 6px 24px rgba(0,0,0,.35);
  }
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;overflow-x:clip;font-family:Inter,system-ui,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:Fraunces,Georgia,serif;line-height:1.15;margin:0 0 .5em}
a{color:inherit}
img{max-width:100%;display:block}
button{font:inherit;cursor:pointer}
.container{width:min(1180px,100% - 32px);margin-inline:auto}
.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:.75rem;font-weight:600;color:var(--wood);margin:0 0 .75rem}

.announce{background:var(--wood-dark);color:#fff7ec;text-align:center;font-size:.85rem;padding:.5rem 16px}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .announce{color:#1b1612}}

.site-header{position:sticky;top:0;z-index:30;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.header-inner{display:flex;align-items:center;gap:24px;height:70px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none}
.wordmark{font-family:Fraunces,Georgia,serif;font-weight:700;font-size:1.45rem;letter-spacing:.12em}
.main-nav{display:flex;gap:26px;margin-left:auto}
.main-nav a{text-decoration:none;font-weight:500;font-size:.95rem;color:var(--muted)}
.main-nav a:hover{color:var(--text)}
.header-actions{display:flex;gap:6px}
.icon-btn{position:relative;background:none;border:0;color:var(--text);padding:8px;border-radius:10px;display:inline-grid;place-items:center}
.icon-btn:hover{background:var(--bg-alt)}
.cart-count{position:absolute;top:0;right:0;background:var(--accent);color:var(--accent-ink);font-size:.7rem;font-weight:600;min-width:18px;height:18px;border-radius:9px;display:grid;place-items:center;padding:0 4px}
.menu-toggle{display:none}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:.8rem 1.4rem;border-radius:999px;font-weight:600;text-decoration:none;border:1.5px solid transparent;transition:transform .15s,background .15s}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--accent);color:var(--accent-ink)}
.btn-primary:hover{filter:brightness(1.08)}
.btn-ghost{border-color:var(--line);background:var(--surface)}
.btn-ghost:hover{border-color:var(--wood)}
.btn-block{width:100%}
.btn-sm{padding:.5rem 1rem;font-size:.9rem}

.hero{background:radial-gradient(ellipse at 80% 20%,color-mix(in srgb,var(--wood) 18%,transparent),transparent 60%),var(--bg)}
.hero-inner{display:grid;grid-template-columns:1.1fr 1fr;gap:48px;align-items:center;padding:72px 0}
.hero h1{font-size:clamp(2.1rem,4.6vw,3.6rem)}
.lead{font-size:1.1rem;color:var(--muted);max-width:56ch}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin:1.6rem 0}
.hero-points{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px 22px;font-size:.9rem;color:var(--muted)}
.hero-points li::before{content:"✓ ";color:var(--accent);font-weight:700}
.hero-art{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.hero-art .tile{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);aspect-ratio:1}
.hero-art .tile:nth-child(1){transform:translateY(24px)}
.hero-art .tile:nth-child(4){transform:translateY(-24px)}

.section{padding:80px 0}
.section-alt{background:var(--bg-alt)}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:16px;flex-wrap:wrap;margin-bottom:28px}
.section-head h2{font-size:clamp(1.7rem,3vw,2.4rem);margin:0}
.section-head p{margin:0;color:var(--muted)}

.cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.cat-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;text-decoration:none;transition:transform .2s,box-shadow .2s;cursor:pointer;text-align:left;padding:0;color:inherit}
.cat-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.cat-card .art{aspect-ratio:4/3}
.cat-card .meta{padding:14px 16px}
.cat-card h3{font-size:1.05rem;margin:0 0 2px}
.cat-card span{font-size:.85rem;color:var(--muted)}

.toolbar{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:24px}
.filters{display:flex;gap:8px;flex-wrap:wrap}
.chip{border:1px solid var(--line);background:var(--surface);color:var(--text);padding:.45rem .9rem;border-radius:999px;font-size:.88rem}
.chip[aria-selected="true"]{background:var(--text);color:var(--bg);border-color:var(--text)}
.toolbar-right{display:flex;gap:8px}
input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:.6rem .8rem;width:100%}
input:focus,select:focus,textarea:focus{outline:2px solid color-mix(in srgb,var(--accent) 50%,transparent);border-color:var(--accent)}
.toolbar-right input{width:220px}
.toolbar-right select{width:auto}

.product-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.product{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .2s}
.product:hover{box-shadow:var(--shadow)}
.product .art{aspect-ratio:1;position:relative;cursor:pointer;border:0;padding:0;background:none;width:100%}
.badge{position:absolute;top:10px;left:10px;background:var(--surface);color:var(--text);font-size:.72rem;font-weight:600;padding:3px 9px;border-radius:999px;box-shadow:0 1px 4px rgba(0,0,0,.12)}
.product .info{padding:14px 16px 16px;display:flex;flex-direction:column;gap:6px;flex:1}
.product .cat{font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.product h3{font-family:Inter,sans-serif;font-size:1rem;font-weight:600;margin:0}
.product .bottom{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:8px}
.price{font-weight:700;font-size:1.05rem}
.price s{color:var(--muted);font-weight:400;font-size:.85rem;margin-left:6px}
.rating{font-size:.82rem;color:var(--muted)}
.rating b{color:#d49a2a}
.empty{grid-column:1/-1;text-align:center;color:var(--muted);padding:40px}

.about{display:grid;grid-template-columns:1fr 1.1fr;gap:56px;align-items:center}
.about-art{border-radius:20px;overflow:hidden;box-shadow:var(--shadow);aspect-ratio:5/4}
.about p{color:var(--muted)}
.stats{display:flex;gap:32px;margin-top:24px;flex-wrap:wrap}
.stats strong{display:block;font-family:Fraunces,serif;font-size:1.8rem;color:var(--wood)}
.stats span{font-size:.85rem;color:var(--muted)}

.faq{display:grid;gap:12px;max-width:820px}
.faq details{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px 20px}
.faq summary{font-weight:600;cursor:pointer}
.faq p{margin:.6rem 0 0;color:var(--muted)}

.contact{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.contact p{color:var(--muted)}
.contact-list{list-style:none;padding:0}
.card-form{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px;display:grid;gap:14px}
.card-form.plain{border:0;padding:0;background:none}
.card-form label{display:grid;gap:6px;font-size:.88rem;font-weight:500}
.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.three{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px}
.form-note{font-size:.85rem;color:var(--muted);margin:0}

.site-footer{background:#231a14;color:#e9dccb;padding:56px 0 24px}
.footer-inner{display:grid;grid-template-columns:2fr 1fr 1fr;gap:32px}
.site-footer h4{font-family:Inter,sans-serif;font-size:.8rem;text-transform:uppercase;letter-spacing:.12em;color:#c7a988}
.site-footer ul{list-style:none;padding:0;margin:0;display:grid;gap:6px}
.site-footer a{text-decoration:none;color:#e9dccb;opacity:.85}
.site-footer a:hover{opacity:1}
.footer-tag{opacity:.75;max-width:40ch}
.footer-bottom{border-top:1px solid #3d3027;margin-top:36px;padding-top:18px;font-size:.85rem;opacity:.7}

.overlay{position:fixed;inset:0;background:rgba(20,12,6,.45);z-index:40}
.drawer{position:fixed;top:0;right:0;height:100%;width:min(420px,100%);background:var(--surface);z-index:50;display:flex;flex-direction:column;transform:translateX(100%);transition:transform .3s ease;box-shadow:-10px 0 30px rgba(0,0,0,.15)}
.drawer:not(.open){visibility:hidden;transition:transform .3s ease,visibility 0s .3s}
.drawer.open{transform:none}
.drawer-head{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-bottom:1px solid var(--line)}
.drawer-head h3{margin:0}
.drawer-body{flex:1;overflow:auto;padding:12px 20px}
.drawer-foot{border-top:1px solid var(--line);padding:18px 20px;display:grid;gap:8px}
.row{display:flex;justify-content:space-between}
.row.muted{color:var(--muted);font-size:.9rem}
.row.total{font-weight:700;font-size:1.1rem;margin-bottom:6px}
.cart-item{display:grid;grid-template-columns:64px 1fr auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}
.cart-item .thumb{width:64px;height:64px;border-radius:10px;overflow:hidden}
.cart-item h4{font-family:Inter,sans-serif;font-size:.92rem;margin:0 0 4px}
.qty{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px}
.qty button{background:none;border:0;width:28px;height:28px;color:var(--text)}
.qty span{min-width:22px;text-align:center;font-size:.9rem}
.remove{background:none;border:0;color:var(--muted);font-size:.8rem;text-decoration:underline;padding:0;margin-left:10px}
.cart-empty{text-align:center;color:var(--muted);padding:48px 0}

.modal{border:0;border-radius:18px;padding:0;width:min(860px,100% - 32px);background:var(--surface);color:var(--text);box-shadow:0 20px 60px rgba(0,0,0,.3)}
.modal::backdrop{background:rgba(20,12,6,.5)}
.modal-close{position:absolute;top:10px;right:10px;z-index:2;background:var(--surface)}
.modal-body{display:grid;grid-template-columns:1fr 1fr}
.modal-body .art{aspect-ratio:1}
.modal-body .detail{padding:32px 28px;display:flex;flex-direction:column;gap:12px}
.modal-body .detail p{color:var(--muted);margin:0}
.modal-body .detail ul{margin:0;padding-left:18px;color:var(--muted);font-size:.92rem}
.modal-body.checkout{display:block;padding:28px;max-height:85vh;overflow:auto}
#checkoutModal{width:min(560px,100% - 32px)}
.summary{background:var(--bg-alt);border-radius:12px;padding:14px 16px;font-size:.9rem;display:grid;gap:4px}
.success{text-align:center;padding:16px 0}
.success .tick{width:64px;height:64px;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font-size:2rem;margin:0 auto 12px}

.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,120px);background:var(--text);color:var(--bg);padding:.75rem 1.2rem;border-radius:999px;font-size:.92rem;z-index:60;transition:transform .3s}
.toast.show{transform:translate(-50%,0)}

@media (max-width:1000px){
  .product-grid,.cat-grid{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:820px){
  .menu-toggle{display:inline-grid}
  .main-nav{position:absolute;top:70px;left:0;right:0;flex-direction:column;gap:0;background:var(--surface);border-bottom:1px solid var(--line);display:none}
  .main-nav.open{display:flex}
  .main-nav a{padding:14px 16px;border-top:1px solid var(--line)}
  .header-actions{margin-left:auto}
  .hero-inner,.about,.contact{grid-template-columns:1fr}
  .hero-inner{padding:48px 0;gap:40px}
  .product-grid,.cat-grid{grid-template-columns:repeat(2,1fr);gap:14px}
  .footer-inner{grid-template-columns:1fr 1fr}
  .footer-inner>div:first-child{grid-column:1/-1}
  .modal-body{grid-template-columns:1fr}
  .toolbar-right{width:100%}
  .toolbar-right input{flex:1;width:auto;min-width:0}
  .toolbar-right select{flex:none;max-width:45%}
  .section{padding:56px 0}
}
@media (max-width:480px){
  .three{grid-template-columns:1fr 1fr}
  .three label:first-child{grid-column:1/-1}
  .product .info{padding:10px 12px 12px}
  .product .bottom{flex-direction:column;align-items:stretch;gap:8px}
}

.pay-title{font-family:Inter,sans-serif;font-size:.95rem;margin:6px 0 0}
.paypal-box{min-height:55px;background:#fff;border-radius:12px;padding:12px 12px 0}
.pay-error{color:#b3412f;min-height:1em}
.pay-error:empty{display:none}
.success .txn{font-size:.85rem;color:var(--muted)}

/* ---------- custom builder ---------- */
.cz{display:grid;grid-template-columns:1fr 1.05fr;gap:40px;align-items:start}
.cz-stage{position:sticky;top:90px}
.cz-preview{aspect-ratio:1;border-radius:20px;background:radial-gradient(circle at 50% 35%,#fff 0,var(--bg-alt) 75%);display:grid;place-items:center;overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--line)}
.cz-stage-note{margin-top:10px;text-align:center}
.cz-obj{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4%;box-shadow:0 14px 30px rgba(60,35,15,.25)}
.finish-engrave .cz-obj{background:repeating-linear-gradient(95deg,transparent 0 9px,rgba(90,50,20,.07) 9px 11px),linear-gradient(135deg,#d9a877,#b77c4a 60%,#9a6338)}
.finish-print .cz-obj{background:#fffdf8}
.cz-photo{position:relative;overflow:hidden;width:100%;flex:1;display:grid;place-items:center}
.cz-photo img{width:100%;height:100%;object-fit:cover;display:block}
.finish-engrave .cz-photo img{filter:grayscale(1) sepia(.85) contrast(1.45) brightness(.92);mix-blend-mode:multiply;opacity:.92}
.cz-ph{font-size:.85rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:rgba(70,40,20,.55);border:2px dashed currentColor;border-radius:10px;padding:10px 14px;text-align:center}
.finish-print .cz-ph{color:#9b8e80}
.cz-text{font-family:Fraunces,Georgia,serif;font-weight:700;text-align:center;line-height:1.1;padding:0 6%;word-break:break-word}
.finish-engrave .cz-text{color:#4a2a12;text-shadow:0 1px 0 rgba(255,235,205,.35)}
.finish-print .cz-text{color:#2b211a}

.shape-square .cz-obj{width:72%;aspect-ratio:1;border-radius:6px;padding:7%}
.shape-square .cz-photo{border-radius:3px}
.shape-square .cz-text{font-size:1.25rem}

.shape-circle .cz-obj{width:66%;aspect-ratio:1;border-radius:50%;padding:12%;margin-top:8%}
.shape-circle .cz-photo{border-radius:50%;flex:none;width:76%;aspect-ratio:1}
.shape-circle .cz-text{font-size:1rem}
.cz-loop{position:absolute;top:-16%;left:50%;width:2px;height:16%;background:#6e4224}
.cz-loop::after{content:"";position:absolute;bottom:-6px;left:-6px;width:10px;height:10px;border:2px solid #6e4224;border-radius:50%}

.shape-plate .cz-obj{width:44%;aspect-ratio:2.75/4.5;border-radius:10px;padding:0;overflow:hidden}
.shape-plate .cz-photo{position:absolute;inset:0}
.shape-plate .cz-text{position:absolute;bottom:14%;left:0;right:0;font-size:.8rem}
.cz-hole{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#f6efe4;box-shadow:inset 0 2px 4px rgba(0,0,0,.35)}
.cz-hole-toggle{width:10%;height:17%;border-radius:3px}
.cz-hole-toggle::after{content:"";position:absolute;inset:18% 15% 45%;background:#fff;border-radius:3px;box-shadow:0 2px 3px rgba(0,0,0,.3)}
.cz-hole-rocker{width:42%;height:52%;border-radius:4px}
.cz-hole-outlet{width:44%;height:22%;border-radius:40%;top:33%;background:#f6efe4}
.cz-hole-outlet::after{content:"";position:absolute;width:100%;height:100%;left:0;top:155%;border-radius:40%;background:#f6efe4;box-shadow:inset 0 2px 4px rgba(0,0,0,.35)}
.cz-screw{position:absolute;left:50%;width:9px;height:9px;margin-left:-4.5px;border-radius:50%;background:#c9a77a;box-shadow:inset 0 0 0 1px rgba(0,0,0,.25)}

.shape-calendar .cz-obj{width:62%;aspect-ratio:3/4;border-radius:6px;padding:6%;justify-content:flex-start}
.shape-calendar .cz-photo{flex:none;height:46%;border-radius:3px}
.shape-calendar .cz-text{font-size:.95rem}
.cz-cal{display:grid;grid-template-columns:repeat(7,1fr);gap:3px 6px;width:100%;margin-top:auto}
.cz-cal i{font-style:normal;font-size:.62rem;font-weight:600;text-align:center;color:#4a2a12}

.cz-preview.shape-poster{background:#ece5da}
.shape-poster .cz-obj{width:56%;aspect-ratio:3/4;padding:5%;outline:10px solid #3a2a1e;justify-content:flex-start}
.shape-poster .cz-photo{flex:1}
.shape-poster .cz-text{font-size:1rem;padding-top:4%}

.shape-card .cz-obj{width:54%;aspect-ratio:5/7;padding:6%;transform:rotate(-3deg);border-radius:3px}
.shape-card .cz-photo{flex:none;height:68%}
.shape-card .cz-text{font-size:1.05rem;font-style:italic;font-weight:500;margin-top:auto;margin-bottom:auto}

.cz-preview.shape-decal{background:linear-gradient(#e9e3d8 78%,#c58b57 78%)}
.shape-decal .cz-obj{width:58%;aspect-ratio:1;border-radius:50%;padding:0;overflow:hidden;box-shadow:none;outline:3px solid rgba(255,255,255,.7)}
.shape-decal .cz-photo{position:absolute;inset:0}
.shape-decal .cz-text{position:absolute;bottom:10%;left:0;right:0;font-size:.95rem;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.6)}

.cz-form fieldset{border:0;padding:0;margin:0 0 6px;display:grid;gap:10px}
.cz-form legend{font-weight:600;margin-bottom:10px;display:flex;align-items:center;gap:8px}
.cz-form legend small{color:var(--muted);font-weight:400}
.step{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--wood);color:#fff;font-size:.78rem}
.cz-types{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.cz-type,.cz-opt{cursor:pointer;position:relative}
.cz-type input,.cz-opt input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px;padding:0;left:0;top:0}
.cz-type span{display:grid;gap:2px;border:1.5px solid var(--line);border-radius:12px;padding:10px 12px;height:100%;transition:border-color .15s,background .15s}
.cz-type b{font-size:.9rem}
.cz-type small{color:var(--muted);font-size:.78rem}
.cz-opts{display:flex;flex-wrap:wrap;gap:8px}
.cz-opt span{display:inline-block;border:1.5px solid var(--line);border-radius:999px;padding:.45rem .95rem;font-size:.88rem}
.cz-type input:checked+span,.cz-opt input:checked+span{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface))}
.cz-type input:focus-visible+span,.cz-opt input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.cz-drop{display:flex;align-items:center;gap:14px;border:2px dashed var(--line);border-radius:14px;padding:18px;cursor:pointer;transition:border-color .15s,background .15s;font-weight:400}
.cz-drop:hover,.cz-drop.drag,.cz-drop:focus-visible{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,transparent);outline:none}
.cz-drop.has-file{padding:12px 18px}
.cz-drop-icon{flex:none;width:48px;height:48px;border-radius:12px;display:grid;place-items:center;background:var(--bg-alt);color:var(--wood)}
.cz-drop-text small{color:var(--muted)}
.cz-file{display:flex;align-items:center;gap:12px;background:var(--bg-alt);border-radius:12px;padding:10px 12px}
.cz-file img{width:52px;height:52px;object-fit:cover;border-radius:8px}
.cz-file div{flex:1;min-width:0;display:grid}
.cz-file strong{font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cz-file small{color:var(--muted);font-size:.8rem}
.cz-file .warn{color:#b3412f}
.cz-count{color:var(--muted);font-size:.78rem;justify-self:end;margin-top:-4px}
.cz-buy{display:flex;justify-content:space-between;align-items:center;gap:16px;border-top:1px solid var(--line);padding-top:16px;margin-top:4px}
.cz-buy>div{display:grid}
.cz-buy .price{font-size:1.5rem}
.cart-item .thumb img{width:100%;height:100%;object-fit:cover}
.cart-detail{margin:0 0 6px;font-size:.78rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}
.cz-email-note{background:color-mix(in srgb,var(--wood) 12%,transparent);border-radius:12px;padding:12px 14px;font-size:.92rem}
@media (max-width:820px){
  .cz{grid-template-columns:1fr;gap:24px}
  .cz-stage{position:static}
  .cz-preview{max-width:420px;margin:0 auto}
  .cz-buy .btn{flex:1}
}

/* ---------- product detail page ---------- */
.hero-art .tile{display:block}
.product h3 a{text-decoration:none}
.product h3 a:hover{text-decoration:underline}
.product a.art{display:block}
.pdp{padding:28px 0 80px}
.crumbs{display:flex;flex-wrap:wrap;gap:8px;font-size:.85rem;color:var(--muted);margin-bottom:24px}
.crumbs a{color:var(--muted);text-decoration:none}
.crumbs a:hover{color:var(--text);text-decoration:underline}
.crumbs [aria-current]{color:var(--text)}
.pdp-main{display:grid;grid-template-columns:1.1fr 1fr;gap:48px;align-items:start}
.pdp-gallery{position:sticky;top:90px;display:grid;gap:12px}
.pdp-view,.pdp-thumb{position:relative;overflow:hidden;border-radius:18px;aspect-ratio:1;background:var(--bg-alt)}
.pdp-view{box-shadow:var(--shadow)}
.pdp-view svg,.pdp-thumb svg{width:100%;height:100%;display:block;transition:transform .35s ease}
.view-zoom svg{transform:scale(1.9) translate(4%,6%)}
.view-room{background:linear-gradient(#e8dfd2 0 74%,#b98a5e 74% 100%)}
.view-room svg{position:absolute;width:44%;height:44%;left:28%;top:12%;box-shadow:0 18px 30px rgba(50,30,10,.3);border-radius:4px}
.view-room::after{content:"";position:absolute;left:14%;right:14%;bottom:14%;height:20%;border-radius:18px 18px 8px 8px;background:#7d8f7f;box-shadow:inset 0 10px 0 rgba(255,255,255,.12)}
.pdp-thumbs{display:grid;grid-template-columns:repeat(3,96px);gap:10px}
.pdp-thumb{border:2px solid transparent;padding:0;border-radius:12px}
.pdp-thumb[aria-selected="true"]{border-color:var(--accent)}
.pdp-thumb.view-room svg{box-shadow:0 4px 8px rgba(50,30,10,.3)}
.pdp-info{display:flex;flex-direction:column;gap:14px}
.pdp-info h1{font-size:clamp(1.7rem,3vw,2.5rem);margin:0}
.pdp-info .eyebrow{margin:0}
.pdp-info .rating{text-decoration:none;font-size:.9rem}
.pdp-price{display:flex;align-items:baseline;gap:10px}
.pdp-price .price{font-size:1.9rem}
.pdp-price s{color:var(--muted)}
.save{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);font-size:.8rem;font-weight:600;padding:2px 10px;border-radius:999px}
.pdp-lead{margin:0;color:var(--muted);font-size:1.05rem}
.pdp-bullets{margin:0;padding-left:20px;color:var(--muted)}
.pdp-buy{display:flex;gap:12px;margin-top:6px}
.pdp-buy .btn{flex:1}
.qty-lg button{width:42px;height:46px;font-size:1.1rem}
.qty-lg span{min-width:30px;font-weight:600}
.pdp-trust{list-style:none;padding:14px 0 0;margin:0;display:grid;gap:8px;font-size:.9rem;color:var(--muted);border-top:1px solid var(--line)}
.pdp-trust span{display:inline-block;width:24px}
.pdp-custom{display:grid;gap:2px;text-decoration:none;background:color-mix(in srgb,var(--wood) 10%,var(--surface));border:1px dashed var(--wood);border-radius:14px;padding:14px 16px}
.pdp-custom strong{color:var(--wood)}
.pdp-custom span{font-size:.88rem;color:var(--muted)}
.pdp-custom:hover{background:color-mix(in srgb,var(--wood) 16%,var(--surface))}
.pdp-sku{font-size:.8rem;color:var(--muted);margin:0}
.pdp-tabs{display:grid;gap:12px;margin-top:56px;max-width:860px}
.pdp-tabs details{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px 20px}
.pdp-tabs summary{font-weight:600;cursor:pointer}
.pdp-tabs p,.pdp-tabs ul{color:var(--muted)}
.pdp-tabs dl{display:grid;grid-template-columns:110px 1fr;gap:8px 16px;margin:14px 0 0}
.pdp-tabs dt{font-weight:600;font-size:.9rem}
.pdp-tabs dd{margin:0;color:var(--muted)}
.pdp-related{margin-top:64px}
.pdp-related h2{font-size:clamp(1.5rem,2.6vw,2rem)}
@media (max-width:820px){
  .pdp{padding-top:18px}
  .pdp-main{grid-template-columns:1fr;gap:24px}
  .pdp-gallery{position:static}
  .pdp-thumbs{grid-template-columns:repeat(3,72px)}
  .pdp-related .product-grid{grid-template-columns:repeat(2,1fr)}
}
