/** Single product. Shares the palette and rhythm of the shop archive. */
.arc-pd {
  --arc-ink:#1b1a17; --arc-gold:#C9A82C; --arc-gold-dark:#b8981f; --arc-accent:#7a6313;
  --arc-cream:#f7f5ef; --arc-line:#e7e3d8; --arc-line-strong:#d8d3c4; --arc-muted:#5f5b52;
  --arc-body:#4a473f; --arc-content:1200px; --arc-gutter:20px;
  --arc-wrap:calc(var(--arc-content) + (var(--arc-gutter) * 2));
  font-family:Heebo,system-ui,-apple-system,"Segoe UI",sans-serif; color:var(--arc-ink);
  -webkit-font-smoothing:antialiased;
}
.arc-pd *,.arc-pd *::before,.arc-pd *::after{box-sizing:border-box}
.arc-pd a{color:var(--arc-ink)} .arc-pd a:hover{color:var(--arc-accent)}

.arc-pd__wrap{max-width:var(--arc-wrap);margin:0 auto;padding:20px var(--arc-gutter) 0;display:flex;flex-direction:column;gap:20px}
.arc-pd__crumbs{font-size:13px;color:var(--arc-muted);display:flex;flex-wrap:wrap;gap:8px}
.arc-pd__crumbs a{color:var(--arc-muted)!important}
.arc-pd__crumb-current{color:var(--arc-ink)}

.arc-pd__main{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr));gap:clamp(24px,4vw,56px);align-items:start}

/* gallery */
.arc-pd__gallery{display:flex;flex-direction:column;gap:12px;position:sticky;top:20px}
.arc-pd__stage{position:relative;aspect-ratio:1/1;border-radius:12px;overflow:hidden;background:#f3f0e6}
.arc-pd__stage img{width:100%;height:100%;object-fit:cover;display:block}
.arc-pd__noimg{position:absolute;inset:0;background:repeating-linear-gradient(135deg,#f3f0e6 0 12px,#ece8db 12px 24px);display:flex;align-items:center;justify-content:center;font-family:ui-monospace,Menlo,monospace;font-size:13px;color:#6b665a}
.arc-pd__badges{position:absolute;top:14px;left:14px;display:flex;gap:6px}
.arc-pd__badge{font-size:13px;font-weight:700;padding:5px 11px;border-radius:999px}
.arc-pd__badge--sale{background:var(--arc-gold);color:var(--arc-ink)}
.arc-pd__badge--out{background:var(--arc-ink);color:#fff}
.arc-pd__thumbs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.arc-pd__thumb{aspect-ratio:1/1;border-radius:8px;border:2px solid var(--arc-line)!important;padding:0!important;cursor:pointer;overflow:hidden;background:#f3f0e6!important;display:block}
.arc-pd__thumb img{width:100%;height:100%;object-fit:cover;display:block}
.arc-pd__thumb.is-active{border-color:var(--arc-ink)!important}

/* info column */
.arc-pd__info{display:flex;flex-direction:column;gap:20px;min-width:0}
.arc-pd__head{display:flex;flex-direction:column;gap:8px}
.arc-pd__eyebrow{font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--arc-accent)}
.arc-pd__h1{margin:0;font-family:"Barlow Condensed",Heebo,sans-serif;font-size:clamp(36px,4.5vw,52px);font-weight:700;line-height:1;text-transform:uppercase;text-wrap:balance}
.arc-pd__sub{font-size:17px;color:var(--arc-body)}

.arc-pd__pricerow{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.arc-pd__price{font-size:28px;font-weight:700}
.arc-pd__price,.arc-pd__price .woocommerce-Price-amount,.arc-pd__price bdi,.arc-pd__price ins{color:var(--arc-ink)!important}
.arc-pd__price .woocommerce-Price-amount{font-size:inherit}
.arc-pd__price del{font-size:18px;color:#6b665a;font-weight:400;margin-right:4px}
.arc-pd__price ins{text-decoration:none}
.arc-pd__stock{font-size:14px;font-weight:500;color:#1a7f37}
.arc-pd__stock.is-out{color:#b32d2e}

/* coffee panel */
.arc-pd__panel{display:flex;flex-direction:column;gap:18px;padding:18px;border-radius:10px;background:var(--arc-cream);border:1px solid var(--arc-line)}
.arc-pd__panel-block{display:flex;flex-direction:column;gap:8px}
.arc-pd__panel-label{font-size:12px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--arc-muted)}
.arc-pd__panel-value{font-size:15px;font-weight:500}
.arc-pd__dots{display:flex;gap:4px;max-width:320px}
.arc-pd__dot{flex:1;height:8px;border-radius:2px;background:#e2ddcf}
.arc-pd__dot.is-on{background:var(--arc-accent)}
.arc-pd__notes{display:flex;flex-wrap:wrap;gap:6px}
.arc-pd__note{font-size:13px;padding:4px 10px;border-radius:999px;background:#fff;border:1px solid #e2ddcf;white-space:nowrap}

.arc-pd__desc p{margin:0 0 10px;font-size:16px;line-height:1.65;color:#2e2c27;text-wrap:pretty}
.arc-pd__desc p:last-child{margin-bottom:0}

/* options */
.arc-pd__form{margin:0}
.arc-pd__opts{display:flex;flex-direction:column;gap:18px;margin-bottom:18px}
.arc-pd__opt{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.arc-pd__opt-name{font-size:15px;font-weight:700;padding:0;margin:0 0 10px;display:flex;gap:8px;float:none;width:auto}
.arc-pd__opt-current{font-weight:400;color:var(--arc-muted)}
.arc-pd__pills{display:flex;flex-wrap:wrap;gap:8px}
.arc-pd__pill{min-height:48px;padding:6px 16px;border-radius:8px!important;border:1px solid var(--arc-line-strong)!important;background:#fff!important;color:var(--arc-ink)!important;font-size:15px!important;font-weight:500!important;cursor:pointer;display:flex;align-items:center;justify-content:center;white-space:nowrap;line-height:1.2}
.arc-pd__pill:hover{border-color:var(--arc-ink)!important}
.arc-pd__pill[aria-pressed="true"]{border-width:2px!important;border-color:var(--arc-ink)!important;background:var(--arc-cream)!important}
.arc-pd__pill.is-unavailable{opacity:.35;cursor:not-allowed}
/* the real select stays for WooCommerce's script, just out of sight */
.arc-pd__opt .arc-pd__select,.arc-pd__opt .stock,.arc-pd__opt label{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.arc-pd__reset{font-size:14px;color:var(--arc-body)!important;text-decoration:underline;align-self:flex-start}

/* buy row */
.arc-pd__buyrow{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.arc-pd__qty{display:flex;align-items:center;border:1px solid var(--arc-line-strong);border-radius:8px;height:52px;overflow:hidden;background:#fff}
.arc-pd__qty-btn{width:46px;height:100%;border:0!important;background:none!important;font-size:20px;cursor:pointer;color:var(--arc-ink)!important;padding:0!important;border-radius:0!important}
.arc-pd__qty-input{width:46px;height:100%;border:0!important;text-align:center;font-size:16px;font-weight:500;background:none!important;padding:0!important;-moz-appearance:textfield;box-shadow:none!important}
.arc-pd__qty-input::-webkit-outer-spin-button,.arc-pd__qty-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.arc-pd__add{flex:1 1 200px;min-height:52px;border:0!important;border-radius:8px!important;background:var(--arc-gold)!important;color:var(--arc-ink)!important;font-size:16px!important;font-weight:700!important;cursor:pointer;padding:0 20px!important}
.arc-pd__add:hover{background:var(--arc-gold-dark)!important}
.arc-pd__add:disabled,.arc-pd__add.disabled{opacity:.45;cursor:not-allowed}
.arc-pd__unavailable{font-size:15px;color:var(--arc-muted)}
.arc-pd .single_variation_wrap .woocommerce-variation-price{margin-bottom:12px;font-size:20px;font-weight:700;width:100%}
.arc-pd .single_variation_wrap .woocommerce-variation-availability{width:100%;font-size:14px;margin-bottom:8px}

/* promise list */
.arc-pd__promise{list-style:none;margin:0;padding:16px 0 0;border-top:1px solid var(--arc-line);display:flex;flex-direction:column;gap:10px;font-size:14px;color:#3d3a33}
.arc-pd__promise li{display:flex;gap:10px;align-items:flex-start}
.arc-pd__promise svg{width:18px;height:18px;flex:0 0 auto;color:var(--arc-accent);margin-top:1px}
.arc-pd__promise a{color:var(--arc-accent)!important;text-decoration:underline}

/* accordions */
.arc-pd__acc{display:flex;flex-direction:column;border-top:1px solid var(--arc-line)}
.arc-pd__acc-item{border-bottom:1px solid var(--arc-line)}
.arc-pd__acc-item summary{min-height:56px;display:flex;justify-content:space-between;align-items:center;font-size:16px;font-weight:700;cursor:pointer;list-style:none;padding:0}
.arc-pd__acc-item summary::-webkit-details-marker{display:none}
.arc-pd__acc-icon{width:14px;height:14px;position:relative;flex:0 0 auto}
.arc-pd__acc-icon::before,.arc-pd__acc-icon::after{content:"";position:absolute;background:var(--arc-ink);transition:transform .15s ease}
.arc-pd__acc-icon::before{left:0;top:6px;width:14px;height:2px}
.arc-pd__acc-icon::after{left:6px;top:0;width:2px;height:14px}
.arc-pd__acc-item[open] .arc-pd__acc-icon::after{transform:scaleY(0)}
.arc-pd__specs{margin:0 0 18px;display:grid;grid-template-columns:auto 1fr;gap:10px 20px;font-size:15px}
.arc-pd__specs dt{color:var(--arc-muted)}
.arc-pd__specs dd{margin:0}
.arc-pd__prose{padding-bottom:18px;font-size:15px;line-height:1.7;color:#2e2c27}
.arc-pd__prose p{margin:0 0 12px}
.arc-pd__prose p:last-child{margin-bottom:0}

/* related */
.arc-pd__related{border-top:1px solid var(--arc-line);margin-top:clamp(48px,7vw,88px)}
.arc-pd__related-inner{max-width:var(--arc-wrap);margin:0 auto;padding:clamp(40px,5vw,64px) var(--arc-gutter) clamp(56px,7vw,88px);display:flex;flex-direction:column;gap:20px}
.arc-pd__related-title{margin:0;font-family:"Barlow Condensed",Heebo,sans-serif;font-size:clamp(26px,3.5vw,34px);font-weight:700;text-transform:uppercase}
.arc-pd__related-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:28px}
.arc-pd__rel{display:flex;flex-direction:column;gap:10px;min-width:0}
.arc-pd__rel-thumb{position:relative;display:block;aspect-ratio:1/1;border-radius:10px;overflow:hidden;background:#f3f0e6}
.arc-pd__rel-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.arc-pd__rel-thumb .arc-pd__noimg{position:absolute;inset:0}
/* The whole text block is one anchor, so Astra's link colour lands on the name
   and the price unless it is pinned back. Same lock the archive cards use. */
.arc-pd__rel-text{text-decoration:none;display:flex;flex-direction:column;gap:4px;color:var(--arc-ink)!important}
.arc-pd__rel-name{font-size:16px;font-weight:700;line-height:1.25;color:var(--arc-ink)!important}
.arc-pd__rel-text:hover .arc-pd__rel-name{color:var(--arc-accent)!important}
.arc-pd__rel-sub{font-size:14px;color:var(--arc-muted)!important}
.arc-pd__rel-price{font-size:15px;font-weight:700;color:var(--arc-ink)!important}
.arc-pd__rel-price .woocommerce-Price-amount,.arc-pd__rel-price ins,.arc-pd__rel-price bdi{color:var(--arc-ink)!important}
.arc-pd__rel-price del,.arc-pd__rel-price del .woocommerce-Price-amount,.arc-pd__rel-price del bdi{color:#6b665a!important;font-weight:400}
.arc-pd__rel-price ins{text-decoration:none}

/* sticky add to cart, small screens only */
.arc-pd__sticky{position:fixed;left:0;right:0;bottom:0;z-index:800;background:#fff;border-top:1px solid var(--arc-line);padding:10px 16px;display:none;align-items:center;gap:12px;box-shadow:0 -6px 20px rgba(0,0,0,.06)}
.arc-pd__sticky-text{display:flex;flex-direction:column;min-width:0;flex:1}
.arc-pd__sticky-sel{font-size:13px;color:var(--arc-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.arc-pd__sticky-price{font-size:17px;font-weight:700}
.arc-pd__sticky-btn{min-height:48px;padding:0 20px;border:0!important;border-radius:8px!important;background:var(--arc-gold)!important;color:var(--arc-ink)!important;font-weight:700!important;font-size:15px!important;cursor:pointer}

@media (max-width:900px){
  .arc-pd__gallery{position:static}
}
@media (max-width:760px){
  .arc-pd__h1{font-size:32px}
  .arc-pd__thumbs{grid-template-columns:repeat(5,minmax(0,1fr))}
  .arc-pd__sticky.is-on{display:flex}
  .arc-pd__related-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
}
