/* Generated from pdp.html <style> by scripts/build-wp-pdp.py */
  :root{--paper:#F3EEE1;--paper-raise:#FAF5EA;--ink:#17140F;--ink-soft:#6F6353;--gold:#B08D3E;--gold-bright:#CDA85A;--fig:#5A2330;--pine:#243528;--terracotta:#BE5B34;--hairline:rgba(23,20,15,0.12)}
  html.no-js .reveal{opacity:1;transform:none}
  *{box-sizing:border-box}html,body{margin:0;padding:0}
  body{background:var(--paper);color:var(--ink);font-family:'Hanken Grotesk',sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}
  ::selection{background:var(--gold);color:#fff}
  h1,h2,h3,h4{font-family:'Cormorant',serif;font-weight:600;letter-spacing:-0.005em;line-height:1.04;margin:0}
  p{line-height:1.7;margin:0}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}
  .wrap{max-width:1280px;margin:0 auto;padding-left:24px;padding-right:24px}@media(min-width:768px){.wrap{padding-left:40px;padding-right:40px}}
  .eyebrow{font-size:11px;letter-spacing:.22em;text-transform:uppercase;font-weight:600}
  .dotpulse{width:8px;height:8px;border-radius:50%;background:var(--terracotta);display:inline-block;position:relative;flex:none}
  .dotpulse::after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--terracotta);animation:dp 1.7s ease-out infinite}
  @keyframes dp{0%{transform:scale(1);opacity:.55}100%{transform:scale(2.6);opacity:0}}
  @media(prefers-reduced-motion:reduce){.dotpulse::after{animation:none}}
  .grain{position:fixed;inset:0;z-index:60;pointer-events:none;opacity:.4;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.35'/%3E%3C/svg%3E")}
  .nav{position:sticky;top:0;z-index:50;background:rgba(243,238,225,.85);backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--hairline)}
  .ulink{text-decoration:underline;text-decoration-color:transparent;text-underline-offset:4px;text-decoration-thickness:1px;transition:text-decoration-color .4s cubic-bezier(.22,1,.36,1)}
.ulink:hover{text-decoration-color:var(--gold)}
/* Primary nav: a hairline of gold drawn under the word, not a browser underline.
   It grows from the left on hover and retracts to the right on leave, and the
   current page keeps its own drawn, so "here" and "going here" speak the same
   language instead of two. */
.nav nav a.ulink{position:relative}
.nav nav a.ulink,.nav nav a.ulink:hover{text-decoration-color:transparent}
.nav nav a.ulink::after{content:"";position:absolute;left:0;right:0;bottom:-7px;height:1.5px;border-radius:2px;
  background:linear-gradient(90deg,var(--gold),var(--gold-bright));
  transform:scaleX(0);transform-origin:right center;
  transition:transform .42s cubic-bezier(.22,1,.36,1)}
.nav nav a.ulink:hover::after,.nav nav a.ulink:focus-visible::after,.nav nav a.ulink.active::after{
  transform:scaleX(1);transform-origin:left center}
.nav nav a.ulink:focus-visible{outline:2px solid var(--fig);outline-offset:6px;border-radius:3px}
@media(prefers-reduced-motion:reduce){
  .nav nav a.ulink::after{transform:scaleX(1);opacity:0;transition:opacity .2s}
  .nav nav a.ulink:hover::after,.nav nav a.ulink:focus-visible::after,.nav nav a.ulink.active::after{opacity:1}}
  .nav a.active{color:var(--gold)}
  .pcard{background:var(--paper-raise);border:1px solid var(--hairline);border-radius:18px;overflow:hidden;transition:transform .5s cubic-bezier(.2,.7,.2,1),box-shadow .5s}
  .card-photo{transition:transform .6s cubic-bezier(.2,.7,.2,1)}.pcard:hover .card-photo{transform:scale(1.045)}
  @media (prefers-reduced-motion:reduce){.card-photo{transition:none}.pcard:hover .card-photo{transform:none}}
  .pcard:hover{transform:translateY(-8px);box-shadow:0 34px 60px -28px rgba(90,35,48,.35)}
  .pcard .art{transition:transform .9s cubic-bezier(.2,.7,.2,1)}.pcard:hover .art{transform:scale(1.05)}
  .vpill{border:1px solid var(--hairline);border-radius:999px;padding:8px 16px;font-size:13px;font-weight:600;transition:.25s;cursor:pointer}.vpill.on,.vpill:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
  .reveal{opacity:0;transform:translateY(22px)}

  /* gallery */
  .g-main{position:relative;border-radius:20px;overflow:hidden;aspect-ratio:4/5;background:var(--paper-raise);border:1px solid var(--hairline)}
  @media(max-width:767.5px){.g-main{flex:none;width:min(82vw,340px);align-self:center}}
  .g-view{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .5s}
  .g-view.on{opacity:1;visibility:visible}
  .g-label{position:absolute;left:20px;bottom:18px;z-index:4}
  .g-thumb{position:relative;border-radius:12px;overflow:hidden;aspect-ratio:1/1;border:1px solid var(--hairline);opacity:.7;transition:opacity .3s,border-color .3s;cursor:pointer;flex:none;width:58px}
  .thumb-rail{scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .thumb-rail::-webkit-scrollbar{display:none}
  .g-thumb.on{opacity:1;border-color:var(--ink)}
  .g-thumb span{position:absolute;left:7px;bottom:6px;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.4)}
  /* gallery loading skeletons (shown until product photos resolve) */
  .sdf-skel{position:absolute;inset:0;overflow:hidden;background:var(--paper-raise)}
  .sdf-skel::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 18%,rgba(255,251,242,.55) 50%,transparent 82%);transform:translateX(-100%);animation:sdf-shim 1.5s ease-in-out infinite}
  .g-skel-thumb{position:relative;border-radius:12px;overflow:hidden;aspect-ratio:1/1;border:1px solid var(--hairline);flex:none;width:58px}
  @keyframes sdf-shim{100%{transform:translateX(100%)}}
  @media(prefers-reduced-motion:reduce){.sdf-skel::after{animation:none}}

  /* exploded stage */
  .exp-stage{position:absolute;inset:0;background:radial-gradient(60% 60% at 50% 44%,rgba(205,168,90,.20),transparent 70%),linear-gradient(160deg,#FAF5EA,#EAE0CC)}
  .exp-glow{position:absolute;top:44%;left:50%;width:46%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(205,168,90,.35),transparent 65%);filter:blur(6px)}
  .exp-piece{position:absolute;top:44%;left:50%;width:var(--w,96px);opacity:0;transform:translate(-50%,-50%) scale(.5);filter:drop-shadow(0 22px 26px rgba(23,20,15,.28));transition:transform .9s cubic-bezier(.2,.8,.2,1),opacity .6s}
  .exp-stage.ready .exp-piece{opacity:1;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) rotate(var(--r))}
  .exp-stage.ready:hover .exp-piece{transform:translate(calc(-50% + var(--x) * 1.18),calc(-50% + var(--y) * 1.18)) rotate(calc(var(--r) + 5deg))}
  .exp-piece:nth-child(3){transition-delay:.05s}.exp-piece:nth-child(4){transition-delay:.1s}.exp-piece:nth-child(5){transition-delay:.15s}.exp-piece:nth-child(6){transition-delay:.2s}
  .exp-hint{position:absolute;right:18px;top:18px;z-index:4;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}

  /* qty + accordion */
  .qty{display:inline-flex;align-items:center;border:1px solid var(--hairline);border-radius:999px;overflow:hidden}
  .qty button{width:42px;height:46px;font-size:18px;color:var(--ink);transition:background .2s}.qty button:hover{background:rgba(23,20,15,.06)}
  .qty span{width:42px;text-align:center;font-weight:600}
  .add{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:.6em;background:var(--ink);color:var(--paper);border-radius:999px;padding:14px 28px;font-weight:600;font-size:14px;letter-spacing:.02em;transition:background .3s,color .3s}
  .add:hover{background:var(--gold);color:var(--ink)}
  /* Buy now: express CTA, oxblood base with a gold wipe on hover (distinct from ink Add-to-cart) */
  .buynow{position:relative;width:100%;margin-top:10px;overflow:hidden;border-radius:999px;padding:14px 28px;font-weight:600;font-size:14px;letter-spacing:.02em;color:var(--paper);background:var(--fig);box-shadow:0 10px 24px -14px rgba(90,35,48,.7);transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s cubic-bezier(.22,1,.36,1)}
  .buynow>span{position:relative;z-index:1;transition:color .35s}
  .buynow::after{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(100deg,var(--gold),var(--gold-bright));transform:translateY(101%);transition:transform .42s cubic-bezier(.22,1,.36,1)}
  .buynow:hover{transform:translateY(-2px);box-shadow:0 16px 30px -14px rgba(176,141,62,.55)}
  .buynow:hover::after{transform:translateY(0)}
  .buynow:hover>span{color:var(--ink)}
  .buynow:active{transform:translateY(0);box-shadow:0 8px 18px -14px rgba(90,35,48,.7)}
  .buynow:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
  @media (prefers-reduced-motion:reduce){.buynow,.buynow::after,.buynow>span{transition:none}.buynow:hover{transform:none}}
  /* gift packing add-on (Gifting category) */
  .giftwrap{display:flex;align-items:center;gap:12px;margin-top:16px;padding:13px 15px;border:1px solid var(--hairline);border-radius:14px;background:var(--paper-raise);cursor:pointer;transition:border-color .25s,background .25s,box-shadow .25s}
  .giftwrap:hover{border-color:rgba(90,35,48,.4)}
  .giftwrap input{position:absolute;opacity:0;width:0;height:0}
  .giftwrap-box{flex:none;width:22px;height:22px;border-radius:6px;border:1.6px solid var(--hairline);background:var(--paper);display:grid;place-items:center;color:transparent;transition:background .2s,border-color .2s,color .2s}
  .giftwrap-box svg{width:13px;height:13px}
  .giftwrap input:checked + .giftwrap-box{background:var(--fig);border-color:var(--fig);color:var(--paper)}
  .giftwrap:has(input:checked){border-color:var(--fig);background:rgba(90,35,48,.05);box-shadow:0 8px 22px -16px rgba(90,35,48,.5)}
  .giftwrap input:focus-visible + .giftwrap-box{outline:2px solid var(--fig);outline-offset:2px}
  .giftwrap-txt{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
  .giftwrap-title{font-weight:600;font-size:14px;color:var(--ink)}
  .giftwrap-sub{font-size:12px;line-height:1.4;color:var(--ink-soft)}
  .giftwrap-fee{flex:none;font-weight:700;font-size:14px;color:var(--fig)}
  details{border-top:1px solid var(--hairline)}details[open] summary .pm{transform:rotate(45deg)}
  summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:18px 0;font-weight:600}
  summary::-webkit-details-marker{display:none}
  .pm{transition:transform .3s;font-size:20px;color:var(--ink-soft)}
  .acc-body{padding-bottom:18px;color:var(--ink-soft);font-size:15px;max-width:60ch}

  /* assurance strip (quality marks), one divided panel, not a card grid */
  .assur{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--hairline);border:1px solid var(--hairline);border-radius:14px;overflow:hidden}
  @media(min-width:720px){.assur{grid-template-columns:repeat(4,1fr)}}
  .assur .item{display:flex;align-items:center;justify-content:center;gap:12px;padding:22px 16px;background:var(--paper-raise);transition:background .3s}
  .assur .item:hover{background:var(--paper)}
  .assur .ic{display:flex;color:var(--gold)}
  .assur b{font-size:13px;font-weight:600;letter-spacing:.03em;color:var(--ink)}
  @media(max-width:400px){.assur b{font-size:12px}.assur .item{gap:9px;padding:18px 10px}}
  /* detail tabs */
  .tabbar{display:flex;flex-wrap:wrap;border-bottom:1px solid var(--hairline);margin-bottom:32px}
  .tab{position:relative;padding:15px 2px;margin-right:30px;font-size:14px;font-weight:600;color:var(--ink-soft);letter-spacing:.01em;transition:color .25s;cursor:pointer;background:none}
  .tab:hover{color:var(--ink)}.tab.on{color:var(--ink)}
  .tab::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.6,.05,.1,1)}
  .tab.on::after{transform:scaleX(1)}
  .tab:focus-visible{outline:2px solid var(--fig);outline-offset:3px;border-radius:4px}
  .tpanel{display:none}.tpanel.on{display:block;animation:tfade .4s ease}
  @keyframes tfade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
  .blist{display:grid;gap:15px;max-width:640px}
  .bitem{display:flex;gap:15px;align-items:flex-start}
  .bitem .n{flex:none;width:31px;height:31px;border-radius:50%;background:var(--ink);color:var(--paper);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;font-family:'Cormorant',serif}
  .bitem p{font-size:15px;color:var(--ink);padding-top:4px}
  .specs{border:1px solid var(--hairline);border-radius:14px;overflow:hidden;max-width:680px}
  .specs .row{display:grid;grid-template-columns:210px 1fr}
  .specs .row:nth-child(odd){background:var(--paper-raise)}
  .specs .k{padding:14px 18px;font-size:13px;color:var(--ink-soft);font-weight:600;letter-spacing:.02em;border-right:1px solid var(--hairline)}
  .specs .v{padding:14px 18px;font-size:14px;color:var(--ink)}
  @media(max-width:520px){.specs .row{grid-template-columns:128px 1fr}}
  .faq{max-width:720px}.faq details:last-child{border-bottom:1px solid var(--hairline)}
  /* pincode serviceability */
  .pin{display:flex;gap:10px;max-width:430px}
  .pin input{flex:1;min-width:0;border:1px solid var(--hairline);border-radius:999px;padding:12px 18px;font-size:14px;background:var(--paper);font-family:inherit;color:var(--ink);letter-spacing:.06em}
  .pin input::placeholder{color:var(--ink-soft);letter-spacing:.02em}
  .pin input:focus{outline:none;border-color:var(--ink)}
  .pin-btn{border:1px solid var(--ink);background:var(--ink);color:var(--paper);border-radius:999px;padding:0 22px;font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;transition:background .25s,border-color .25s,color .25s;cursor:pointer;flex:none}
  .pin-btn:hover{background:var(--gold);border-color:var(--gold);color:var(--ink)}
  .pin-btn:focus-visible{outline:2px solid var(--fig);outline-offset:2px}
  .pin-result{margin-top:12px;font-size:13.5px;display:flex;align-items:flex-start;gap:9px;line-height:1.55;color:var(--ink)}
  .pin-result .ic{flex:none;margin-top:2px}
  .pin-result.ok .ic{color:var(--pistachio)}.pin-result.err{color:var(--fig)}.pin-result.err .ic{color:var(--fig)}
  .pin-result b{color:var(--ink);font-weight:600}

  @media(prefers-reduced-motion:reduce){.reveal{opacity:1!important;transform:none!important}.exp-piece{transition:none!important}*{scroll-behavior:auto!important}}
/* Ops Console product text: keep paragraph spacing */
.pdesc p+p{margin-top:1rem}
