.product-page{padding:34px 0 64px}.breadcrumbs{font-size:14px;color:var(--muted);font-weight:800;margin-bottom:16px}.product-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(420px,1fr);gap:34px;align-items:start}.gallery{position:sticky;top:96px}.gallery-main{border-radius:22px;background:rgba(255,255,255,.48);border:1px solid rgba(234,216,207,.72);box-shadow:0 18px 42px rgba(66,39,36,.08);padding:12px;display:grid;place-items:center;min-height:420px;backdrop-filter:blur(16px)}.gallery-main img{width:100%;max-height:620px;object-fit:contain;border-radius:16px}.gallery-thumbs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.thumb{border:1px solid var(--border);background:rgba(255,255,255,.72);border-radius:16px;padding:8px;display:grid;gap:6px;place-items:center;cursor:pointer;color:var(--muted);font-size:12px;font-weight:900}.thumb img{height:84px;width:100%;object-fit:contain;border-radius:10px}.thumb.is-active{border-color:var(--primary);box-shadow:0 0 0 3px rgba(229,111,142,.14)}.product-panel{padding-top:4px}.product-panel h1{font-size:40px;line-height:1.12;margin:10px 0;color:var(--ink-heading)}.price{margin:12px 0 18px}.price strong{font-size:34px;line-height:1;color:var(--ink-heading)}.option-group,.upload-box,.preview-box{padding:18px 0;border-top:1px solid var(--border)}.option-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.option-title h2{font-size:17px;margin:0;color:var(--ink-heading)}.option-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.option-card{position:relative;border:1px solid var(--border);background:rgba(255,255,255,.72);border-radius:16px;min-height:68px;padding:12px;display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer}.option-card input{position:absolute;opacity:0}.option-card.is-selected{border-color:var(--primary);box-shadow:0 0 0 3px rgba(229,111,142,.12)}.option-card strong{display:block;color:var(--ink-heading);font-size:15px}.option-card small{display:block;color:var(--muted);font-weight:800;font-size:12px}.quantity-control{display:grid;grid-template-columns:46px 80px 46px 1fr;align-items:center;gap:10px;width:min(100%,330px)}.quantity-control button{height:46px;border:1px solid var(--border);border-radius:999px;background:#fff;color:#d95e83;font-size:24px;font-weight:900;cursor:pointer}.quantity-control input{height:46px;border:1px solid var(--border);border-radius:999px;text-align:center;font-weight:900;color:var(--ink-heading)}.quantity-control span{font-weight:900;color:var(--muted)}.upload-card{border:1px dashed #d9a7b6;border-radius:18px;background:rgba(255,255,255,.62);padding:14px;display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center}.upload-card strong{display:block;margin-bottom:8px;color:var(--ink-heading)}.upload-icon{width:50px;height:50px;border-radius:16px;background:#fff1f6;color:var(--primary-mid);display:grid;place-items:center;font-size:12px;font-weight:900}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.field label{display:block;font-weight:900;color:var(--ink-heading);margin-bottom:6px}.field input{min-height:48px;border:1px solid var(--border);border-radius:14px;padding:0 14px;background:#fff;width:100%;color:var(--ink)}.locked-field{min-height:48px;display:flex;align-items:center;padding:0 14px;border-radius:14px;border:1px dashed var(--border);background:rgba(255,255,255,.54);color:var(--muted);font-weight:800}.consent{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start;margin:14px 0;font-weight:800;color:#4d415c}.consent input{width:21px;height:21px}.product-actions{display:grid;grid-template-columns:minmax(150px,.7fr) minmax(190px,1.3fr);gap:12px;align-items:center}.btn-preview{min-height:46px;box-shadow:none}.btn-add-cart{min-height:54px;font-size:17px}.message{min-height:24px;margin-top:10px;font-weight:900;color:var(--primary-deep)}.preview-box{display:none}.preview-box.is-visible{display:block}.preview-card{display:grid;grid-template-columns:92px 1fr;gap:14px;align-items:center;padding:14px;border-radius:18px;background:rgba(255,255,255,.66);border:1px solid var(--border-soft)}.preview-card img{aspect-ratio:1/1;object-fit:contain;border-radius:12px;background:#fff8f3}.preview-card h2{font-size:18px;line-height:1.2;margin:0 0 4px;color:var(--ink-heading)}.preview-card p{margin:0;color:var(--muted);font-weight:800}.body-has-sticky{padding-bottom:0}.sticky-buy{display:none}.info-grid,.answer-block{display:none}
@media(max-width:1023px){.product-layout{grid-template-columns:1fr}.gallery{position:static}.gallery-main{min-height:340px}.product-panel h1{font-size:34px}}
@media(max-width:767px){.product-page{padding:24px 0 42px}.breadcrumbs{font-size:13px}.gallery-main{min-height:0;aspect-ratio:1/1;padding:8px}.gallery-main img{max-height:100%}.thumb img{height:68px}.product-panel h1{font-size:30px}.price strong{font-size:30px}.option-grid,.form-grid,.product-actions{grid-template-columns:1fr}.quantity-control{grid-template-columns:46px 72px 46px 1fr}.upload-card,.preview-card{grid-template-columns:1fr}.option-group,.upload-box,.preview-box{padding:16px 0}}
.option-grid-single{grid-template-columns:1fr}

/* V70 premium product-page layout */
.product-page{padding:34px 0 58px;background:linear-gradient(180deg,rgba(255,255,255,.64),rgba(255,248,243,.92))}
.breadcrumbs{display:none}
.product-layout{grid-template-columns:minmax(520px,1.02fr) minmax(430px,.95fr);gap:46px;align-items:start}
.gallery{top:104px;display:grid;grid-template-columns:92px minmax(0,1fr);gap:18px;align-items:start}
.gallery-main{grid-column:2;grid-row:1;border-radius:22px;background:rgba(255,255,255,.56);border:1px solid rgba(234,216,207,.82);box-shadow:0 24px 58px rgba(66,39,36,.09);padding:16px;min-height:0;backdrop-filter:blur(18px)}
.gallery-main img{max-height:720px;border-radius:18px;filter:drop-shadow(0 18px 22px rgba(66,39,36,.1))}
.gallery-thumbs{grid-column:1;grid-row:1;grid-template-columns:1fr;gap:16px;margin-top:0}
.thumb{min-height:108px;border-radius:18px;background:rgba(255,255,255,.76);box-shadow:0 12px 28px rgba(66,39,36,.06)}
.thumb img{height:78px}
.thumb span{font-size:11px}
.product-panel{padding:8px 0 0}
.product-panel h1{font-family:var(--display-font);letter-spacing:0;font-size:clamp(36px,3.1vw,48px);line-height:1.08;margin:12px 0 6px}
.product-panel .section-copy{font-size:15px;line-height:1.72;max-width:620px}
.price strong{font-size:38px;color:var(--primary-bright);letter-spacing:.01em}
.option-group,.upload-box,.preview-box{padding:16px 0;border-top:1px solid rgba(234,216,207,.88)}
.option-title{margin-bottom:12px}.option-title span{color:var(--muted);font-weight:900;font-size:12px}
.option-card{border-radius:16px;min-height:64px;background:rgba(255,255,255,.76);box-shadow:0 10px 24px rgba(66,39,36,.045);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.option-card:hover{transform:translateY(-2px);box-shadow:0 16px 30px rgba(66,39,36,.08)}
.option-card.is-selected{border-color:var(--primary);box-shadow:0 0 0 3px rgba(229,111,142,.12),0 16px 30px rgba(66,39,36,.08)}
.shape-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.quantity-control{width:min(100%,360px)}
.quantity-control button{background:#fff6fa;border-color:#f0d7df;box-shadow:0 10px 22px rgba(216,94,131,.08)}
.field input,.field select{min-height:48px;border:1px solid var(--border);border-radius:14px;padding:0 14px;background:rgba(255,255,255,.92);width:100%;color:var(--ink)}
.field select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--primary-deep) 50%),linear-gradient(135deg,var(--primary-deep) 50%,transparent 50%);background-position:calc(100% - 18px) 20px,calc(100% - 12px) 20px;background-size:6px 6px,6px 6px;background-repeat:no-repeat}
.field-wide{grid-column:1/-1}
.upload-card{position:relative;border:1px dashed #ee8aa7;border-radius:20px;background:linear-gradient(135deg,rgba(255,248,251,.96),rgba(255,255,255,.78));padding:14px 16px;display:grid;grid-template-columns:74px 1fr;gap:16px;align-items:center;box-shadow:0 16px 34px rgba(216,94,131,.08);cursor:pointer}
.upload-card:hover{border-color:var(--primary-bright);transform:translateY(-1px)}
.upload-icon{width:68px;height:68px;border-radius:999px;background:linear-gradient(135deg,#fff,#fff0f6);box-shadow:inset 0 0 0 1px rgba(234,216,207,.9),0 12px 26px rgba(216,94,131,.12);position:relative}
.upload-icon::before{content:"";display:block;width:28px;height:28px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 24 24' fill='none' stroke='%23e35e83' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.5 4h-5L7 7H4a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3l-2.5-3Z'/%3E%3Ccircle cx='12' cy='13' r='3'/%3E%3C/svg%3E") center/contain no-repeat}
.upload-copy{display:grid;gap:4px;color:var(--ink-nav)}
.upload-copy strong{margin:0;font-size:15px}.upload-copy small,.upload-copy em{color:var(--muted);font-weight:800;font-size:12px;font-style:normal}
.choose-photo{justify-self:start;margin-top:4px;min-height:34px;padding:0 14px;border-radius:999px;border:1px solid #ee8aa7;background:#fff;color:var(--primary-bright);display:inline-flex;align-items:center;font-weight:900}
.upload-card input[type=file]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.consent{font-size:14px;margin:12px 0}
.product-actions{grid-template-columns:minmax(138px,.72fr) minmax(210px,1.28fr);gap:14px}
.btn-preview{min-height:48px;border-color:#ead8cf;background:#fff}
.btn-add-cart{min-height:54px;background:linear-gradient(135deg,#f35e86,#f28c7a);box-shadow:0 16px 34px rgba(216,94,131,.24)}
.message{font-size:13px}
@media(max-width:1120px){.product-layout{grid-template-columns:1fr}.gallery{position:static}.gallery-main img{max-height:620px}}
@media(max-width:767px){.product-page{padding:20px 0 38px}.product-layout{gap:22px}.gallery{grid-template-columns:1fr}.gallery-main{grid-column:1;grid-row:1;padding:10px;border-radius:18px}.gallery-thumbs{grid-column:1;grid-row:2;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.thumb{min-height:82px;padding:6px;border-radius:14px}.thumb img{height:54px}.product-panel h1{font-size:31px}.price strong{font-size:32px}.option-grid,.shape-grid,.form-grid,.product-actions{grid-template-columns:1fr}.upload-card{grid-template-columns:58px 1fr;padding:12px}.upload-icon{width:54px;height:54px}.quantity-control{grid-template-columns:42px 70px 42px 1fr}.field-wide{grid-column:auto}}

/* V73 — upload thumbnail + mobile sticky add-to-cart */
.upload-thumb{display:flex;align-items:center;gap:12px;margin-top:12px;padding:10px;border:1px solid var(--border-soft);border-radius:16px;background:rgba(255,255,255,.72)}
.upload-thumb-list{display:grid;gap:10px;margin-top:12px}
.upload-thumb-list .upload-thumb{margin-top:0}
.upload-thumb img{width:54px;height:54px;border-radius:12px;object-fit:cover;background:#fff8f3;flex:0 0 auto}
.upload-thumb-meta{flex:1;min-width:0}
.upload-thumb-meta strong{display:block;color:var(--ink-heading);font-size:14px}
.upload-thumb-meta small{display:block;color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.upload-thumb-remove{flex:0 0 auto;min-height:38px;padding:0 14px;border:1px solid var(--border);border-radius:999px;background:#fff;color:var(--primary-deep);font-weight:900;cursor:pointer}
.sticky-buy{position:fixed;left:0;right:0;bottom:0;z-index:55;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-top:1px solid var(--border);box-shadow:0 -10px 30px rgba(66,39,36,.1)}
.sticky-buy-info{display:flex;flex-direction:column;line-height:1.2;min-width:0}
.sticky-buy-info strong{color:var(--ink-heading);font-size:18px}
.sticky-buy-info small{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:46vw}
.sticky-buy .btn{flex:0 0 auto;min-width:150px}
@media (max-width:767px){.sticky-buy{display:flex}.body-has-sticky{padding-bottom:86px}}

/* V77 — price with MRP strikethrough + % off badge */
.price{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.price-mrp{color:var(--muted);text-decoration:line-through;font-size:18px;font-weight:700}
.price strong{color:var(--primary-bright)}
.price-off{display:inline-flex;align-items:center;padding:4px 9px;border-radius:999px;background:#e9fbf1;color:#1f8a54;font-size:12px;font-weight:900;letter-spacing:.01em}
.price-unit{color:var(--muted);font-size:13px;font-weight:900}

/* V83 — beautified upload card + photo tips + name-slip pack note */
.upload-card{border:1.5px dashed rgba(229,111,142,.5);border-radius:20px;background:linear-gradient(135deg,#fff,#fff4f9);padding:16px 18px;box-shadow:0 12px 30px rgba(216,94,131,.08);transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}
.upload-card:hover{border-color:var(--primary);box-shadow:0 18px 38px rgba(216,94,131,.14);transform:translateY(-1px)}
.upload-copy strong{font-size:16px;color:var(--ink-heading)}
.upload-copy small{color:var(--muted);font-weight:700}
.choose-photo{margin-top:8px;background:linear-gradient(135deg,var(--primary),var(--accent))!important;color:#fff!important;border:0!important;box-shadow:0 10px 22px rgba(216,94,131,.22)}
.photo-tips{display:flex;gap:10px;align-items:flex-start;margin-top:12px;padding:12px 14px;border-radius:14px;background:#eef6ff;border:1px solid #d4e6fb;color:#34506b;font-size:13px;line-height:1.55}
.photo-tips strong{color:#1f4a73}
.photo-tips-icon{font-size:16px;line-height:1.3;flex:0 0 auto}
.pack-note{display:inline-flex;align-items:center;gap:7px;margin:2px 0 14px;padding:7px 12px;border-radius:999px;background:#e9fbf1;border:1px solid rgba(31,160,90,.22);color:#1f8a54;font-size:13px;font-weight:800}
.pack-note strong{color:#1a7a49}

/* V87 - generated preview gallery and full-screen viewer */
[data-gallery-main].is-preview-trigger,.preview-card.is-preview-trigger{cursor:zoom-in}
[data-gallery-main].is-preview-trigger:focus-visible,.preview-card.is-preview-trigger:focus-visible{outline:3px solid var(--primary);outline-offset:4px}
.preview-card.is-preview-trigger{transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}
.preview-card.is-preview-trigger:hover{border-color:rgba(229,111,142,.55);box-shadow:0 16px 34px rgba(216,94,131,.12);transform:translateY(-1px)}
.preview-dialog-open{overflow:hidden}
.product-preview-dialog{width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:transparent;overflow:hidden}
.product-preview-dialog::backdrop{background:rgba(25,18,31,.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.product-preview-dialog__stage{position:relative;width:100%;height:100%;display:grid;place-items:center;padding:clamp(18px,4vw,56px);background:rgba(255,255,255,.08)}
.product-preview-dialog__stage img{display:block;width:auto;height:auto;max-width:calc(100vw - clamp(36px,8vw,112px));max-height:calc(100dvh - 118px);object-fit:contain;border-radius:8px;background:#fff;box-shadow:0 28px 90px rgba(0,0,0,.42)}
.product-preview-dialog__close{position:fixed;z-index:2;top:max(16px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));width:46px;height:46px;border:1px solid rgba(255,255,255,.55);border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.94);color:var(--ink-heading);font-size:32px;line-height:1;cursor:pointer;box-shadow:0 12px 30px rgba(0,0,0,.24)}
.product-preview-dialog__close:hover{background:#fff;color:var(--primary-deep)}
.product-preview-dialog__close:focus-visible{outline:3px solid #fff;outline-offset:3px}
@media(max-width:767px){.product-preview-dialog__stage{padding:60px 12px 54px}.product-preview-dialog__stage img{max-width:calc(100vw - 24px);max-height:calc(100dvh - 126px)}.product-preview-dialog__close{width:42px;height:42px;font-size:29px}}

/* V90 - visible free preview generation limit */
.preview-quota-note{
  margin:10px 0 0;
  padding:12px 14px;
  border:1px solid rgba(229,111,142,.22);
  border-radius:14px;
  background:linear-gradient(180deg,rgba(255,246,250,.92),rgba(255,255,255,.78));
  color:var(--primary-deep);
  font-weight:900;
  line-height:1.35;
}
.preview-quota-note strong{display:block;font-size:14px;color:var(--primary-deep)}
.preview-quota-note small{display:block;margin-top:4px;color:var(--muted);font-size:12px;font-weight:800}
.preview-quota-note.is-exhausted{
  border-color:rgba(183,66,66,.24);
  background:linear-gradient(180deg,rgba(255,241,241,.96),rgba(255,255,255,.82));
  color:var(--danger);
}
.preview-quota-note.is-exhausted strong{color:var(--danger)}
.btn-preview.is-quota-exhausted{background:#f6eeee;color:#9b7777;border-color:#ead8cf}
@media(max-width:767px){.preview-quota-note{margin-top:8px;padding:11px 12px}.preview-quota-note strong{font-size:13.5px}}

/* V92 - balanced product page layout */
.product-page > .container{
  max-width:1280px;
}
.product-layout{
  grid-template-columns:minmax(0,540px) minmax(360px,500px);
  gap:34px;
  justify-content:center;
}
.gallery{
  grid-template-columns:82px minmax(0,1fr);
  gap:14px;
}
.gallery-main{
  padding:12px;
}
.gallery-main img{
  max-height:min(56vh,560px);
  width:100%;
}
.thumb{
  min-height:96px;
  padding:7px;
}
.thumb img{
  height:68px;
}
.product-panel h1{
  font-size:clamp(30px,2.4vw,40px);
}
.price strong{
  font-size:34px;
}
@media(max-width:1080px){
  .product-layout{
    grid-template-columns:minmax(0,1fr);
    max-width:760px;
    margin:0 auto;
  }
  .gallery{
    position:static;
  }
  .gallery-main img{
    max-height:min(62vh,620px);
  }
}
@media(max-width:767px){
  .product-page > .container{
    width:min(100% - 28px,640px);
  }
  .gallery{
    grid-template-columns:minmax(0,1fr);
    gap:10px;
  }
  .gallery-main{
    aspect-ratio:auto;
    width:100%;
  }
  .gallery-main img{
    max-height:58vh;
  }
  .gallery-thumbs{
    grid-template-columns:repeat(4,minmax(0,1fr));
    width:100%;
  }
  .thumb{
    width:100%;
    min-height:86px;
  }
  .product-panel h1{
    font-size:28px;
  }
  .price strong{
    font-size:30px;
  }
}

/* V94 - storybook bundle product polish */
.product-summary{
  margin:0 0 12px;
  color:var(--muted);
  font-size:15px;
  line-height:1.55;
  font-weight:800;
}
.field select{
  min-height:48px;
  border:1px solid var(--border);
  border-radius:14px;
  padding:0 40px 0 14px;
  background:#fff;
  width:100%;
  color:var(--ink);
  font-weight:850;
}
.preview-quota-note.is-unlimited{
  border-color:rgba(24,138,84,.18);
  background:linear-gradient(180deg,rgba(237,255,247,.92),rgba(255,255,255,.8));
}
.preview-quota-note.is-unlimited strong{
  color:#188a54;
}
@media(max-width:767px){
  .product-summary{
    font-size:13.5px;
  }
}

/* V102 - calmer, modern product pages */
.product-page{
  background:
    radial-gradient(circle at 14% 8%, rgba(255,222,234,.42), transparent 28%),
    linear-gradient(180deg,#fffaf7 0%,#fff 52%,#fffaf7 100%);
}
.product-layout{
  align-items:start;
}
.gallery-main,
.product-panel{
  border:1px solid rgba(234,216,207,.84);
  background:rgba(255,255,255,.82);
  box-shadow:0 18px 46px rgba(66,39,36,.075);
}
.product-panel{
  border-radius:24px;
  padding:24px;
}
.gallery-main{
  border-radius:24px;
}
.gallery-main img{
  filter:drop-shadow(0 16px 26px rgba(66,39,36,.09));
}
.thumb{
  border-color:rgba(234,216,207,.86);
  background:rgba(255,255,255,.9);
}
.thumb:hover{
  border-color:rgba(229,111,142,.42);
  transform:translateY(-1px);
}
.product-panel h1{
  margin-top:0;
  max-width:12ch;
}
.price{
  margin:10px 0 14px;
}
.price strong{
  font-size:clamp(28px,2.4vw,34px);
}
.option-group,
.upload-box,
.preview-box{
  border-top-color:rgba(234,216,207,.72);
}
.option-card,
.field input,
.field select,
.locked-field,
.preview-card{
  background:#fff;
}
.option-card{
  min-height:60px;
}
.option-title h2{
  font-size:16px;
}
.product-actions{
  margin-top:4px;
}
.btn-preview,
.btn-add-cart{
  border-radius:999px;
}
.preview-quota-note{
  box-shadow:0 10px 26px rgba(216,94,131,.06);
}
@media(max-width:1080px){
  .product-panel{
    padding:22px;
  }
  .product-panel h1{
    max-width:none;
  }
}
@media(max-width:767px){
  .product-panel{
    padding:18px;
    border-radius:20px;
  }
  .gallery-main{
    border-radius:20px;
  }
  .product-panel h1{
    font-size:27px;
    line-height:1.12;
  }
  .option-card{
    min-height:58px;
  }
}

/* V103 - compact centered quantity controls and multi-photo upload hint */
.quantity-control{
  grid-template-columns:38px 64px 38px auto;
  gap:8px;
  align-items:center;
  max-width:300px;
}
.quantity-control button{
  width:38px;
  height:38px;
  min-height:38px;
  display:grid;
  place-items:center;
  padding:0;
  line-height:1;
  font-size:18px;
  font-weight:900;
}
.quantity-control input{
  width:64px;
  height:38px;
  min-height:38px;
  padding:0 4px;
  text-align:center;
  line-height:38px;
  font-size:15px;
  font-weight:900;
}
.quantity-control input::-webkit-outer-spin-button,
.quantity-control input::-webkit-inner-spin-button{
  margin:0;
  -webkit-appearance:none;
}
.quantity-control input[type=number]{
  -moz-appearance:textfield;
}
.upload-copy em{
  max-width:42ch;
}
@media(max-width:767px){
  .quantity-control{
    grid-template-columns:36px 58px 36px auto;
    max-width:270px;
  }
  .quantity-control button{
    width:36px;
    height:36px;
    min-height:36px;
    font-size:17px;
  }
  .quantity-control input{
    width:58px;
    height:36px;
    min-height:36px;
    line-height:36px;
  }
}

/* V104 - persistent generated preview controls */
.preview-card{
  position:relative;
}
.preview-card__dismiss{
  position:absolute;
  top:12px;
  right:12px;
  width:30px;
  height:30px;
  border:1px solid rgba(226,92,133,.32);
  border-radius:999px;
  background:#fff;
  color:#b64d6f;
  display:grid;
  place-items:center;
  padding:0;
  font-size:20px;
  line-height:1;
  font-weight:800;
  box-shadow:0 8px 18px rgba(86,45,66,.12);
  cursor:pointer;
  transition:transform .18s ease, background .18s ease, color .18s ease;
}
.preview-card__dismiss:hover,
.preview-card__dismiss:focus-visible{
  background:#f45f8b;
  color:#fff;
  transform:translateY(-1px);
}
@media(max-width:767px){
  .preview-card__dismiss{
    width:28px;
    height:28px;
    top:10px;
    right:10px;
    font-size:18px;
  }
}

/* V105 - optional family-call and WhatsApp fields */
.field-help{
  display:block;
  margin-top:6px;
  color:var(--muted);
  font-size:12px;
  line-height:1.35;
  font-weight:800;
}
.product-whatsapp-field input{
  padding-right:16px;
}

/* V106 - compact product helper copy */
.preview-card {
  overflow: hidden;
}

.preview-card--reference::before,
.product-preview-dialog.is-reference-preview .product-preview-dialog__stage::after {
  content: none;
}

.preview-card--reference::after,
.product-preview-dialog.is-reference-preview .product-preview-dialog__image-wrap::after {
  content: none;
}

.product-preview-dialog__stage,
.product-preview-dialog__image-wrap {
  position: relative;
}

.sticker-size-note {
  margin: 10px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
  font-weight: 800;
}

.pack-note {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  align-items: center;
  width: 100%;
  margin-top: 10px;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid rgba(229,111,142,.18);
  background: #fff7fb;
  color: var(--primary-deep);
  font-size: 13px;
  line-height: 1.35;
  font-weight: 900;
}

.pack-note span {
  color: var(--muted);
  font-weight: 800;
}

.quantity-control input {
  display: grid;
  place-items: center;
  text-align: center;
}

.btn-add-cart:disabled,
.product-sticky-action .btn-add-cart:disabled {
  cursor: not-allowed;
  opacity: .55;
  filter: grayscale(.08);
}

@media(max-width:767px) {
  .preview-card--reference::after,
  .product-preview-dialog.is-reference-preview .product-preview-dialog__image-wrap::after {
    font-size: 17px;
    padding: 8px 12px;
  }

  .preview-card--reference::before,
  .product-preview-dialog.is-reference-preview .product-preview-dialog__stage::after {
    inset: auto 10px 10px auto;
    font-size: 9px;
  }

  .sticker-size-note,
  .pack-note {
    font-size: 12px;
  }
}

/* V107 - guided validation, saved drafts, and related products */
.field.is-invalid input,
.field.is-invalid select,
.upload-card.is-invalid,
.consent.is-invalid{
  border-color:#d9475f !important;
  box-shadow:0 0 0 3px rgba(217,71,95,.12) !important;
  background-color:#fff7f8 !important;
}
.field.is-invalid label,
.consent.is-invalid span{
  color:#b62f49;
}
.product-field-error{
  display:block;
  width:100%;
  margin-top:7px;
  color:#b62f49;
  font-size:12px;
  line-height:1.35;
  font-style:normal;
  font-weight:900;
}
.upload-card .product-field-error,
.consent .product-field-error{
  grid-column:1/-1;
  flex-basis:100%;
  margin-left:0;
}
.consent{
  grid-template-columns:auto minmax(0,1fr);
}
.consent span{
  min-width:0;
}
.upload-restored-note{
  grid-column:1/-1;
  display:grid;
  gap:2px;
  margin:4px 0 0;
  padding:10px 12px;
  border:1px solid rgba(31,138,84,.18);
  border-radius:12px;
  background:#f2fbf6;
  color:#236f49;
  font-size:12px;
  line-height:1.35;
}
.upload-restored-note strong{font-size:13px;color:#1e7a4b}
.upload-restored-note span{font-weight:750;color:#47705a}

/* V108 - compact, structured product details across all template types */
.product-panel{padding:24px;border:1px solid rgba(234,216,207,.8);border-radius:24px;background:rgba(255,255,255,.58);box-shadow:0 18px 42px rgba(66,39,36,.055)}
.product-panel h1{font-size:clamp(30px,2.5vw,38px);line-height:1.1;max-width:15ch}
.product-panel .section-copy{font-size:15px;line-height:1.55}
.option-group,.upload-box,.preview-box{padding:15px 0}
.option-title h2{font-size:16px}
.preview-card{grid-template-columns:88px minmax(0,1fr);gap:12px;padding:13px 52px 13px 13px}
.preview-card h2{font-size:17px}.preview-card p{font-size:13px;line-height:1.45}
@media(max-width:767px){
  .product-panel{padding:18px;border-radius:20px}
  .product-panel h1{font-size:27px;max-width:none}
  .preview-card{grid-template-columns:76px minmax(0,1fr);padding:12px 46px 12px 12px}
  .upload-restored-note{font-size:12px}
}

/* V114 - cleaner generated-preview card */
.preview-box.is-visible{display:block}
.preview-card{
  grid-template-columns:112px minmax(0,1fr);
  gap:16px;
  align-items:center;
  min-height:142px;
  padding:14px 58px 14px 14px;
  border-radius:22px;
  border:1px solid rgba(229,111,142,.22);
  background:#fff;
  box-shadow:0 14px 34px rgba(66,39,36,.07);
}
.preview-card img{
  width:112px;
  height:112px;
  aspect-ratio:auto;
  object-fit:cover;
  border-radius:18px;
  background:#fff7f3;
  box-shadow:0 8px 20px rgba(66,39,36,.08);
}
.preview-card h2{
  font-family:var(--display-font);
  font-size:24px;
  line-height:1.08;
  margin:0 0 6px;
}
.preview-card p{
  max-width:34ch;
  font-size:14px;
  line-height:1.45;
}
@media(max-width:767px){
  .preview-card{
    grid-template-columns:82px minmax(0,1fr);
    min-height:112px;
    gap:12px;
    padding:12px 48px 12px 12px;
    border-radius:18px;
  }
  .preview-card img{
    width:82px;
    height:82px;
    border-radius:14px;
  }
  .preview-card h2{font-size:20px}
  .preview-card p{font-size:13px}
}
.parent-call-custom-field[hidden]{display:none !important}
.product-recommendations{
  border-top:1px solid var(--border-soft);
  background:linear-gradient(180deg,#fffaf6,#fff);
}
.product-recommendations-head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:16px;
  margin-bottom:16px;
}
.product-recommendations-head h2{
  margin:6px 0 0;
  color:var(--ink-heading);
  font-family:var(--display-font);
  font-size:clamp(22px,2.1vw,30px);
  line-height:1.15;
}
.product-recommendations-head > a{
  min-height:38px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 16px;
  border-radius:999px;
  background:var(--primary);
  color:#fff;
  font-size:13px;
  font-weight:900;
  white-space:nowrap;
}
.product-recommendations-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
}
.product-recommendation-card{
  min-width:0;
  border:1px solid var(--border-soft);
  border-radius:18px;
  background:#fff;
  box-shadow:0 12px 30px rgba(66,39,36,.07);
  overflow:hidden;
}
.product-recommendation-card a{
  display:grid;
  height:100%;
  grid-template-rows:auto 1fr;
  padding:10px;
}
.product-recommendation-media{
  display:grid;
  place-items:center;
  overflow:hidden;
  border-radius:13px;
  background:#fff7f9;
}
.product-recommendation-media--sticker{aspect-ratio:2/3}
.product-recommendation-media--storybook{aspect-ratio:1/1}
.product-recommendation-media--name-slip{aspect-ratio:4/3}
.product-recommendation-media img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}
.product-recommendation-copy{
  display:block;
  padding:10px 4px 4px;
}
.product-recommendation-copy strong{
  display:block;
  color:var(--ink-heading);
  font-size:14px;
  line-height:1.3;
}
.product-recommendation-copy small{
  display:block;
  margin-top:5px;
  color:var(--primary-deep);
  font-size:13px;
  font-weight:900;
}
@media(max-width:767px){
  .product-recommendations-head{align-items:center}
  .product-recommendations-head h2{font-size:22px}
  .product-recommendations-grid{
    grid-auto-flow:column;
    grid-template-columns:none;
    grid-auto-columns:minmax(148px,44vw);
    gap:12px;
    overflow-x:auto;
    overscroll-behavior-inline:contain;
    padding:2px 2px 14px;
    scroll-snap-type:x proximity;
  }
  .product-recommendation-card{scroll-snap-align:start}
}

/* V109 - centered private preview progress */
.preview-progress-overlay[hidden]{display:none!important}
.preview-progress-overlay{
  position:fixed;
  inset:0;
  z-index:10000;
  display:grid;
  place-items:center;
  padding:24px;
  background:rgba(38,28,46,.34);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.preview-progress-card{
  position:relative;
  width:min(92vw,430px);
  border:1px solid rgba(255,210,224,.78);
  border-radius:24px;
  background:linear-gradient(180deg,#fff,#fff7fb);
  box-shadow:0 24px 70px rgba(66,39,36,.22);
  padding:24px;
  text-align:center;
  color:var(--ink-heading);
}
.preview-progress-close{
  position:absolute;
  top:12px;
  right:12px;
  width:36px;
  height:36px;
  border:1px solid rgba(232,96,135,.22);
  border-radius:999px;
  background:#fff;
  color:var(--primary);
  font-size:24px;
  line-height:1;
  cursor:pointer;
}
.preview-progress-logo{display:block;width:132px;height:auto;margin:0 auto 18px}
.preview-progress-kicker{
  margin-bottom:8px;
  font-size:11px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--primary);
  font-weight:900;
}
.preview-progress-card h3{
  font-size:22px;
  line-height:1.15;
  margin:0 0 8px;
  font-family:var(--display-font);
}
.preview-progress-card p{
  font-size:14px;
  line-height:1.5;
  margin:0;
  color:var(--muted);
  font-weight:750;
}
.preview-progress-track{
  height:10px;
  border-radius:999px;
  background:#ffe5ee;
  overflow:hidden;
  margin:18px 0 10px;
}
.preview-progress-track span{
  display:block;
  height:100%;
  width:var(--preview-progress,0%);
  background:linear-gradient(90deg,var(--primary),#f88f78);
  border-radius:inherit;
  transition:width .25s ease;
}
.preview-progress-small{
  font-size:12px;
  color:var(--primary-deep);
  font-weight:900;
}
@media(max-width:640px){
  .preview-progress-overlay{padding:18px}
  .preview-progress-card{border-radius:20px;padding:20px}
  .preview-progress-card h3{font-size:20px}
}
