:root{
  --dvh23-green:#06452f;
  --dvh23-green-2:#033823;
  --dvh23-gold:#e6a821;
  --dvh23-gold-2:#f0b62c;
  --dvh23-cream:#f7f3e9;
  --dvh23-paper:#fbfaf5;
  --dvh23-ink:#0c2f25;
  --dvh23-muted:#68756e;
  --dvh23-line:#dfdbcf;
  --dvh23-shadow:0 12px 34px rgba(14,45,36,.08);
}

body.q4-product{
  margin:0;
  background:linear-gradient(180deg,#fbfaf5 0,#f7f4ec 100%);
  color:var(--dvh23-ink);
  font-family:Inter,Arial,sans-serif;
}
.q4-product .detail{
  padding:20px 0 54px;
  background:transparent;
}
.q4-product .detail>.wrap{
  width:min(1500px,88.5vw);
  max-width:none;
  margin-inline:auto;
}
.q4-product .back{
  display:inline-flex;
  align-items:center;
  gap:7px;
  margin:0 0 14px;
  color:#315548;
  font-size:.78rem;
  font-weight:850;
  text-decoration:none;
}
.q4-product .back:hover{color:var(--dvh23-green)}

.q4-product .detailgrid{
  display:grid;
  grid-template-columns:minmax(0,1.12fr) minmax(360px,.88fr);
  gap:24px;
  align-items:start;
}
.q4-product .productgallery{min-width:0}
.q4-product .gallerystage{
  position:relative;
  width:100%;
  overflow:hidden;
  border:1px solid var(--dvh23-line);
  border-radius:16px;
  background:#fff;
  box-shadow:var(--dvh23-shadow);
}
.q4-product .gallerymain{
  width:100%;
  padding:18px;
  border:0;
  border-radius:0;
  background:#fff;
  box-shadow:none;
  cursor:zoom-in;
}
.q4-product .gallerymain>img{
  width:100%;
  height:500px;
  aspect-ratio:auto;
  object-fit:contain;
  object-position:center;
  background:#fff;
}
.q4-product .zoomhint{
  right:12px;
  bottom:12px;
  padding:6px 10px;
  border-radius:999px;
  background:rgba(3,56,35,.9);
  color:#fff;
  font-size:.68rem;
  font-weight:800;
}
.q4-product .mainnav{
  width:42px;
  height:54px;
  border-radius:10px;
  background:rgba(255,255,255,.94);
  border:1px solid rgba(12,47,37,.12);
  color:var(--dvh23-green);
  box-shadow:0 6px 18px rgba(14,45,36,.09);
}
.q4-product .mainprev{left:10px}.q4-product .mainnext{right:10px}
.q4-product .gallerythumbs{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:8px!important;
  margin:9px 0 0!important;
}
.q4-product .gallerythumb{
  border:1px solid var(--dvh23-line)!important;
  border-radius:10px!important;
  background:#fff!important;
  overflow:hidden!important;
}
.q4-product .gallerythumb.active{
  border-color:var(--dvh23-gold)!important;
  box-shadow:0 0 0 2px rgba(230,168,33,.16)!important;
}
.q4-product .gallerythumb img{
  width:100%!important;
  height:84px!important;
  aspect-ratio:auto!important;
  object-fit:contain!important;
  background:#fff;
  padding:4px;
}
.q4-product .gallerythumb span{
  padding:4px 6px!important;
  border-top:1px solid #f0eee7;
  font-size:.61rem!important;
  color:#5e6b64;
  text-align:center;
}
.q4-product .spin360-trigger{
  width:100%;
  min-height:40px;
  margin-top:9px;
  border:1px solid #bfd0c8;
  border-radius:9px;
  background:#fff;
  color:var(--dvh23-green);
  box-shadow:none;
  font-size:.78rem;
}
.q4-product .spin360-trigger>span:first-child{color:var(--dvh23-gold)}

.q4-product .dvh-product-summary{
  min-width:0;
  padding:24px;
  border:1px solid var(--dvh23-line);
  border-radius:16px;
  background:rgba(255,255,255,.9);
  box-shadow:var(--dvh23-shadow);
}
.q4-product .dvh-product-summary .eyebrow{
  margin:0 0 5px;
  color:#c98508;
  font-size:.68rem;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.q4-product .dvh-product-summary h1,
.q4-product .detail h1{
  margin:0 0 9px;
  color:#082f23;
  font-family:Georgia,serif;
  font-size:clamp(2rem,3.2vw,3.25rem);
  line-height:.98;
  letter-spacing:-.035em;
}
.q4-product .dvh-product-summary>.badge{
  margin:0 0 10px;
  padding:4px 8px;
  border:1px solid #d7e3dc;
  border-radius:999px;
  background:#edf3ef;
  color:#315548;
  font-size:.65rem;
  line-height:1.1;
  font-weight:850;
}
.q4-product .dvh-product-summary>.price{
  margin:2px 0 12px;
  color:#063b2b;
  font-size:1.55rem;
  line-height:1;
  font-weight:950;
}
.q4-product .dvh-product-summary>p:not(.microcopy){
  margin:0 0 15px;
  color:#53625b;
  font-size:.86rem;
  line-height:1.55;
}
.q4-product .facts{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1px;
  margin:15px 0;
  overflow:hidden;
  border:1px solid #e4e0d5;
  border-radius:12px;
  background:#e4e0d5;
}
.q4-product .fact{
  min-width:0;
  padding:10px 11px;
  background:#faf9f4;
}
.q4-product .fact small{
  display:block;
  margin-bottom:2px;
  color:#758078;
  font-size:.62rem;
  font-weight:800;
  letter-spacing:.02em;
  text-transform:uppercase;
}
.q4-product .fact strong{
  display:block;
  overflow-wrap:anywhere;
  color:#163c30;
  font-size:.78rem;
  line-height:1.3;
}
.q4-product .handmade-notice{
  gap:10px;
  margin:14px 0;
  padding:12px 13px;
  border:1px solid rgba(202,151,65,.34);
  border-left:3px solid var(--dvh23-gold);
  border-radius:11px;
  background:#fbf7ea;
  box-shadow:none;
}
.q4-product .handmade-notice-icon{
  flex:0 0 26px;
  width:26px;
  height:26px;
  background:var(--dvh23-green);
  color:#f0c35e;
  font-size:.72rem;
}
.q4-product .handmade-notice strong{font-size:.78rem;margin-bottom:2px}
.q4-product .handmade-notice p{margin:2px 0;font-size:.69rem;line-height:1.38}
.q4-product .handmade-notice-auth{margin-top:7px}
.q4-product .handmade-notice-auth-divider{margin:1px 0 7px}
.q4-product .handmade-notice-auth-line{gap:4px 6px}
.q4-product .handmade-notice-auth-line span{font-size:.72rem}
.q4-product .handmade-notice-signature{width:94px}

.q4-product .detail .actions{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
  gap:8px;
  margin-top:14px;
  padding-top:0;
}
.q4-product .detail .actions .addform{
  display:grid;
  grid-template-columns:78px minmax(0,1fr);
  gap:7px;
  margin:0;
}
.q4-product .detail .actions .addform label{
  display:grid;
  grid-template-columns:auto 1fr;
  align-items:center;
  gap:5px;
  min-height:42px;
  padding:0 8px;
  border:1px solid #d5dcd7;
  border-radius:7px;
  background:#fff;
  color:#526158;
  font-size:.65rem;
  font-weight:800;
}
.q4-product .detail .actions .addform input{
  width:34px;
  min-width:0;
  padding:0;
  border:0;
  background:transparent;
  color:#143d30;
  font-weight:900;
  text-align:center;
  outline:0;
}
.q4-product .detail .actions .btn{
  min-height:42px;
  padding:8px 11px;
  border-radius:7px;
  font-size:.68rem;
  line-height:1.1;
  text-transform:uppercase;
  letter-spacing:.01em;
}
.q4-product .detail .actions .primary{
  background:linear-gradient(180deg,#f0b633,#dda018);
  color:#15372c;
}
.q4-product .detail .actions .dark,
.q4-product .custom-colors-btn{
  background:linear-gradient(180deg,#07513a,#003c28);
  color:#fff;
}
.q4-product .microcopy{
  margin:8px 0 0;
  color:#7b817c;
  font-size:.65rem;
  line-height:1.35;
}
.q4-product .dvh21o1-product-intel{
  margin-top:14px;
  padding:12px 13px;
  border:0;
  border-radius:11px;
  background:linear-gradient(90deg,#06452f,#033823);
  color:#fff;
  font-size:.72rem;
  line-height:1.45;
}
.q4-product .dvh21o1-product-intel strong{display:block;margin-bottom:2px;color:#f0bd45;font-size:.76rem}
.q4-product .dvh21o1-product-intel span{color:rgba(255,255,255,.78)}
.q4-product .dvh21o1-product-intel a{color:#fff;font-weight:850;text-decoration:underline;text-decoration-color:rgba(230,168,33,.75);text-underline-offset:2px}

.q4-product .cart-confirmation{
  margin:0 0 14px;
  padding:12px 14px;
  border:1px solid #cfe2d6;
  border-radius:11px;
  background:#f3faf6;
  box-shadow:none;
}
.q4-product .cart-confirmation strong{color:#164b38}
.q4-product .cart-confirmation span{font-size:.76rem;color:#66756d}
.q4-product .cart-confirmation .btn{min-height:34px;padding:6px 10px;border-radius:6px;font-size:.66rem}
.q4-product .notice.error{border-radius:10px}

.q4-product .product360-inline{
  width:min(1500px,88.5vw);
  margin:12px auto 0;
  border:1px solid var(--dvh23-line);
  border-radius:14px;
  box-shadow:var(--dvh23-shadow);
}
.q4-product .product360-inline-head{background:#f8f5ed}
.q4-product .product360-inline .product-360-switcher button[aria-selected="true"]{color:var(--dvh23-green)}
.q4-product .spin360-controls #spin360Play{background:var(--dvh23-green)}

.q4-product .lightbox{font-family:Inter,Arial,sans-serif}
.q4-product .lightboxbar{background:#031c15}
.q4-product .lightbox figure img{object-fit:contain}

.q4-product .mobile-product-actions{
  display:none;
}

@media(max-width:1180px){
  .q4-product .detail>.wrap,.q4-product .product360-inline{width:calc(100% - 56px)}
  .q4-product .detailgrid{grid-template-columns:minmax(0,1fr) minmax(330px,.86fr);gap:18px}
  .q4-product .gallerymain>img{height:430px}
  .q4-product .dvh-product-summary{padding:20px}
}

@media(max-width:900px){
  .q4-product .detailgrid{grid-template-columns:1fr;gap:14px}
  .q4-product .productgallery{max-width:720px;width:100%;margin-inline:auto}
  .q4-product .gallerymain>img{height:460px}
  .q4-product .dvh-product-summary{max-width:720px;width:100%;margin-inline:auto}
}

@media(max-width:600px){
  body.q4-product{padding-bottom:68px}
  .q4-product .detail{padding:12px 0 26px}
  .q4-product .detail>.wrap,.q4-product .product360-inline{width:calc(100% - 32px)}
  .q4-product .back{margin-bottom:9px;font-size:.7rem}
  .q4-product .detailgrid{gap:10px}
  .q4-product .gallerystage{border-radius:12px}
  .q4-product .gallerymain{padding:10px}
  .q4-product .gallerymain>img{height:265px}
  .q4-product .zoomhint{right:8px;bottom:8px;font-size:.6rem;padding:5px 8px}
  .q4-product .gallerythumbs{display:flex!important;gap:7px!important;overflow-x:auto!important;scroll-snap-type:x mandatory!important;padding-bottom:3px!important}
  .q4-product .gallerythumb{flex:0 0 25%!important;scroll-snap-align:start!important}
  .q4-product .gallerythumb img{height:62px!important}
  .q4-product .gallerythumb span{display:none!important}
  .q4-product .spin360-trigger{min-height:36px;margin-top:7px;font-size:.68rem}
  .q4-product .dvh-product-summary{padding:15px;border-radius:12px}
  .q4-product .dvh-product-summary .eyebrow{font-size:.6rem}
  .q4-product .dvh-product-summary h1,.q4-product .detail h1{font-size:1.85rem;line-height:1.02;margin-bottom:7px}
  .q4-product .dvh-product-summary>.badge{font-size:.59rem;padding:3px 6px;margin-bottom:7px}
  .q4-product .dvh-product-summary>.price{font-size:1.35rem;margin-bottom:9px}
  .q4-product .dvh-product-summary>p:not(.microcopy){font-size:.78rem;line-height:1.45;margin-bottom:11px}
  .q4-product .facts{margin:11px 0;border-radius:10px}
  .q4-product .fact{padding:8px 9px}
  .q4-product .fact small{font-size:.56rem}.q4-product .fact strong{font-size:.7rem}
  .q4-product .handmade-notice{margin:10px 0;padding:9px 10px;border-radius:9px}
  .q4-product .handmade-notice p{font-size:.64rem;line-height:1.35}
  .q4-product .handmade-notice strong{font-size:.72rem}
  .q4-product .handmade-notice-auth-line span{font-size:.66rem}.q4-product .handmade-notice-signature{width:86px}
  .q4-product .detail .actions{grid-template-columns:1fr;gap:6px;margin-top:10px}
  .q4-product .detail .actions .addform{grid-template-columns:70px minmax(0,1fr)}
  .q4-product .detail .actions .btn{min-height:39px}
  .q4-product .microcopy{font-size:.61rem;margin-top:6px}
  .q4-product .dvh21o1-product-intel{margin-top:10px;padding:10px 11px;font-size:.66rem;border-radius:9px}
  .q4-product .product360-inline{border-radius:11px}
  .q4-product .mobile-product-actions{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:96;
    display:grid;
    grid-template-columns:.9fr 1.1fr;
    gap:7px;
    padding:8px max(16px,env(safe-area-inset-left)) calc(8px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-right));
    border-top:1px solid rgba(12,47,37,.14);
    background:rgba(251,250,245,.96);
    box-shadow:0 -9px 28px rgba(14,45,36,.12);
    backdrop-filter:blur(10px);
  }
  .q4-product .mobile-product-actions .btn{
    min-height:42px;
    padding:7px 10px;
    border-radius:7px;
    font-size:.7rem;
    text-transform:uppercase;
  }
  .q4-product .mobile-product-actions .dark{background:linear-gradient(180deg,#07513a,#003c28);color:#fff}
  .q4-product .mobile-product-actions .primary{background:linear-gradient(180deg,#f0b633,#dda018);color:#15372c}
  .q4-product .dvh22-footer{padding-bottom:calc(16px + env(safe-area-inset-bottom))}
}

@media(max-width:380px){
  .q4-product .gallerymain>img{height:235px}
  .q4-product .dvh-product-summary h1,.q4-product .detail h1{font-size:1.65rem}
  .q4-product .facts{grid-template-columns:1fr 1fr}
}

@media(prefers-reduced-motion:reduce){
  .q4-product *{scroll-behavior:auto!important}
}

/* Phase 22D.3A — video-only 360 media + authenticity line polish */
.q4-product .product-video-trigger{
  justify-content:center;
  gap:8px;
}
.q4-product .product-video-trigger>span:first-child{
  font-size:.72rem;
  line-height:1;
}
.q4-product .product-video-stage .video360-panel{
  display:block;
}
.q4-product .product-video-stage video{
  display:block;
  width:100%;
  max-height:680px;
  margin:0 auto;
  background:#07130f;
  object-fit:contain;
}
.q4-product .handmade-notice-auth-line{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  flex-wrap:nowrap;
  gap:5px;
  white-space:nowrap;
}
.q4-product .handmade-notice-auth-line span{
  display:inline-block;
  margin:0;
}
.q4-product .handmade-notice-signature{
  flex:0 0 auto;
  margin:0 1px;
}

@media(max-width:600px){
  .q4-product .handmade-notice-auth-line{
    gap:3px;
    width:100%;
    white-space:nowrap;
  }
  .q4-product .handmade-notice-auth-line span{
    font-size:.54rem;
    letter-spacing:-.015em;
  }
  .q4-product .handmade-notice-signature{
    width:62px;
    margin:0;
  }
  .q4-product .product-video-stage video{
    max-height:420px;
  }
}

/* Phase 22D.3B — mobile Qty / Add to Cart height alignment */
@media(max-width:600px){
  .q4-product .detail .actions .addform{
    grid-template-columns:78px minmax(0,1fr);
    align-items:stretch;
    gap:8px;
  }
  .q4-product .detail .actions .addform label,
  .q4-product .detail .actions .addform button,
  .q4-product .detail .actions .addform .btn{
    min-height:44px;
    height:44px;
    box-sizing:border-box;
  }
  .q4-product .detail .actions .addform label{
    padding:0 10px;
    border-radius:9px;
  }
  .q4-product .detail .actions .btn{
    min-height:44px;
  }
}
