/* assets/css/pd.css — product detail page. Everything is prefixed pd- so it can't clash with shared CSS. */
:root{--pd-brand:#b94a1a;--pd-brand-dark:#d05a22;--pd-ink:#2c2c2c;--pd-muted:#666;--pd-line:#ebebeb;--pd-soft:#fdf0eb;--pd-soft-line:#f5cfc0}
[hidden]{display:none!important}
.pd-noscroll{overflow:hidden}
.pd-visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.pd-muted{color:#999;font-style:italic}
.pd-page{font-family:'Nunito',sans-serif;color:var(--pd-ink)}
.pd-page *,.pd-modal *,.pd-lightbox *{box-sizing:border-box}
.pd-page :focus-visible,.pd-modal :focus-visible{outline:2px solid var(--pd-brand);outline-offset:2px}

/* Buttons */
.pd-btn{display:inline-block;background:var(--pd-brand);color:#fff;border:2px solid var(--pd-brand);border-radius:8px;padding:12px 24px;font:700 15px 'Nunito',sans-serif;text-decoration:none;cursor:pointer;transition:background .2s,color .2s}
.pd-btn:hover{background:var(--pd-brand-dark);border-color:var(--pd-brand-dark)}
.pd-btn-outline{background:transparent;color:var(--pd-brand)}
.pd-btn-outline:hover{background:var(--pd-brand);color:#fff}
.pd-btn-block{width:100%;padding:16px;font-size:16px}
.pd-btn:disabled,.pd-add-btn:disabled,.pd-card-add:disabled{opacity:.6;cursor:wait}

/* Not-found / error */
.pd-state{max-width:640px;margin:90px auto;padding:0 24px;text-align:center}
.pd-state h1{font:700 32px 'Playfair Display',serif;margin-bottom:12px}
.pd-state p{color:var(--pd-muted);line-height:1.7;margin-bottom:24px}

/* Breadcrumb */
.pd-breadcrumb{max-width:1200px;margin:20px auto 0;padding:0 24px;font-size:13px}
.pd-breadcrumb ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px;color:var(--pd-muted)}
.pd-breadcrumb li+li::before{content:"/";margin-right:6px;color:#bbb}
.pd-breadcrumb a{color:var(--pd-muted);text-decoration:none}
.pd-breadcrumb a:hover{color:var(--pd-brand)}

/* Layout */
.pd-container{max-width:1200px;margin:30px auto 50px;padding:0 24px;display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:start}
.pd-gallery{display:flex;flex-direction:column;gap:16px;min-width:0}
.pd-main-image{position:relative;width:100%;aspect-ratio:1;border-radius:16px;overflow:hidden;background:#f9f5f2;box-shadow:0 4px 15px rgba(0,0,0,.05)}
.pd-main-image>img{width:100%;height:100%;object-fit:cover;display:block}
.pd-no-image{display:flex;align-items:center;justify-content:center;height:100%;color:#aaa}
.pd-arrow{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border:none;border-radius:50%;background:rgba(255,255,255,.9);color:var(--pd-ink);font-size:16px;cursor:pointer;box-shadow:0 4px 12px rgba(0,0,0,.15);z-index:3;transition:background .2s,color .2s}
.pd-arrow:hover{background:var(--pd-brand);color:#fff}
.pd-arrow.left{left:14px}.pd-arrow.right{right:14px}
.pd-thumbs{display:flex;gap:12px;overflow-x:auto;padding-bottom:8px}
.pd-thumb{flex:0 0 auto;width:80px;height:80px;padding:0;border:2px solid transparent;border-radius:10px;overflow:hidden;background:none;cursor:pointer;opacity:.6;transition:opacity .2s,border-color .2s}
.pd-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.pd-thumb.active,.pd-thumb:hover{opacity:1;border-color:var(--pd-brand)}

/* Wishlist heart (class + id are used by the shared wishlist.js) */
.pd-main-image .wishlist-btn,.pd-card-img .wishlist-btn{position:absolute;top:12px;right:12px;width:38px;height:38px;display:flex;align-items:center;justify-content:center;border:none;border-radius:50%;background:rgba(255,255,255,.92);color:#555;font-size:16px;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.18);z-index:4;transition:color .2s,transform .15s}
.pd-main-image .wishlist-btn:hover,.pd-card-img .wishlist-btn:hover{color:#e11d48;transform:scale(1.08)}
.pd-main-image .wishlist-btn.active,.pd-card-img .wishlist-btn.active{color:#e11d48}

/* Details */
.pd-category{font-size:13px;color:#999;text-transform:uppercase;letter-spacing:.05em;font-weight:700;margin-bottom:8px}
.pd-details h1{font:700 36px/1.2 'Playfair Display',serif;margin-bottom:12px}
.pd-rating-summary{display:inline-flex;align-items:center;gap:8px;margin-bottom:16px;font-size:14px;color:var(--pd-muted);text-decoration:none}
.pd-stars{color:#f59e0b;letter-spacing:2px;font-size:16px}
.pd-tags{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.pd-tags li{background:#f4f4f4;color:#555;font-size:12px;font-weight:600;padding:6px 14px;border-radius:20px}
.pd-tags i{color:var(--pd-brand);margin-right:4px}
.pd-controls{background:#fdf8f6;border:1px solid var(--pd-soft-line);border-radius:12px;padding:24px}
.pd-label{display:block;font-size:13px;font-weight:700;margin-bottom:6px}
.pd-select{width:100%;padding:12px 16px;border:1px solid var(--pd-line);border-radius:8px;background:#fff;font:600 15px 'Nunito',sans-serif;color:var(--pd-ink);margin-bottom:18px;cursor:pointer}
.pd-price-wrap{display:flex;align-items:center;flex-wrap:wrap;gap:14px;margin-bottom:20px}
.pd-price-sale{font-size:32px;font-weight:700;color:var(--pd-brand)}
.pd-price-original{font-size:20px;color:#aaa;text-decoration:line-through}
.pd-discount-tag{background:var(--pd-soft);color:var(--pd-brand);border:1px solid var(--pd-soft-line);border-radius:20px;padding:6px 12px;font-size:13px;font-weight:700}
.pd-actions{display:flex;gap:16px}
.pd-qty{display:flex;align-items:center;border:1px solid var(--pd-line);border-radius:8px;background:#fff;overflow:hidden}
.pd-qty button{width:44px;height:48px;border:none;background:transparent;font-size:20px;cursor:pointer}
.pd-qty button:hover{background:var(--pd-soft);color:var(--pd-brand)}
.pd-qty input{width:50px;height:48px;border:none;text-align:center;font:700 16px 'Nunito',sans-serif;-moz-appearance:textfield}
.pd-qty input::-webkit-outer-spin-button,.pd-qty input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.pd-add-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:10px;border:none;border-radius:8px;background:var(--pd-brand);color:#fff;font:700 16px 'Nunito',sans-serif;cursor:pointer;transition:background .2s}
.pd-add-btn:hover{background:var(--pd-brand-dark)}
.pd-unavailable{color:var(--pd-muted)}
.pd-wa-btn{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:16px;padding:16px;border-radius:12px;background:#25d366;color:#fff;font:700 16px 'Nunito',sans-serif;text-decoration:none;box-shadow:0 4px 10px rgba(37,211,102,.2);transition:background .2s}
.pd-wa-btn:hover{background:#20b858}
.pd-wa-btn i{font-size:20px}

/* Content blocks */
.pd-block{margin-top:32px}
.pd-block h2{font:700 22px 'Playfair Display',serif;margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid var(--pd-soft)}
.pd-description p{font-size:16px;line-height:1.8;color:var(--pd-muted);margin-bottom:14px}
.pd-table-wrap{overflow-x:auto}
.pd-table{width:100%;border-collapse:collapse;font-size:15px}
.pd-table th,.pd-table td{padding:10px 12px;border-bottom:1px solid var(--pd-line);text-align:left}
.pd-table thead th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#999}
.pd-table del{color:#aaa;margin-right:6px}
.pd-table strong{color:var(--pd-brand)}

/* Sections */
.pd-section{max-width:1200px;margin:0 auto 50px;padding:0 24px}
.pd-section-title{font:700 26px 'Playfair Display',serif;margin-bottom:24px;padding-bottom:8px;border-bottom:2px solid var(--pd-soft);display:inline-block}
.pd-reviews-head{display:flex;justify-content:flex-end;padding:0 24px;margin-bottom:20px}

/* Offers */
.pd-offers-grid,.pd-review-grid,.pd-related{display:flex;gap:20px;overflow-x:auto;padding-bottom:20px;scrollbar-width:thin}
.pd-offer-card{flex:0 0 260px;position:relative;background:#fff;border:1px dashed var(--pd-brand);border-radius:10px;padding:15px 15px 15px 18px;overflow:hidden}
.pd-offer-card::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--pd-brand)}
.pd-offer-title{font-size:14px;font-weight:800;margin-bottom:4px}
.pd-offer-desc{font-size:12px;color:var(--pd-muted);line-height:1.4;margin-bottom:10px}
.pd-offer-badge{display:inline-block;background:var(--pd-soft);color:var(--pd-brand);font-size:10px;font-weight:700;padding:4px 10px;border-radius:20px;margin-bottom:8px}
.pd-offer-btn{width:100%;padding:7px;border:none;border-radius:5px;background:var(--pd-ink);color:#fff;font:700 11px 'Nunito',sans-serif;cursor:pointer}
.pd-offer-btn:disabled{background:#27ae60;cursor:default}

/* FAQ (native <details>, content is always in the HTML) */
.pd-faq-list{border:1px solid #f0f0f0;border-radius:10px}
.pd-faq-item{border-bottom:1px solid var(--pd-line);padding:0 20px}
.pd-faq-item:last-child{border-bottom:none}
.pd-faq-item summary{list-style:none;cursor:pointer;padding:18px 28px 18px 0;font-weight:700;font-size:15px;position:relative}
.pd-faq-item summary::-webkit-details-marker{display:none}
.pd-faq-item summary::after{content:"+";position:absolute;right:0;top:50%;transform:translateY(-50%);font-size:22px;color:var(--pd-brand)}
.pd-faq-item[open] summary::after{content:"−"}
.pd-faq-item summary:hover{color:var(--pd-brand)}
.pd-faq-answer{padding:0 0 18px;font-size:14px;line-height:1.7;color:var(--pd-muted)}
.pd-faq-answer p+p{margin-top:8px}


/* FAQ + Reviews accordion bars (native <details>: content is always in the HTML) */
.pd-bars{max-width:1200px;margin:0 auto 50px;padding:0 24px}
.pd-bar{margin-bottom:12px;scroll-margin-top:90px}
.pd-bar>summary{list-style:none;position:relative;display:block;padding:0 72px 0 24px;background:#f0f0f0;cursor:pointer;transition:background .2s}
.pd-bar>summary::-webkit-details-marker{display:none}
.pd-bar>summary:hover{background:#e5e5e5}
.pd-bar>summary h2{margin:0;padding:18px 0;font:700 16px 'Nunito',sans-serif;color:var(--pd-ink)}
.pd-bar-count{font-weight:600;color:#777}
.pd-bar-icon{position:absolute;top:0;right:0;bottom:0;width:56px;background:#222}
.pd-bar-icon::before,.pd-bar-icon::after{content:"";position:absolute;top:50%;left:50%;background:#fff;transform:translate(-50%,-50%)}
.pd-bar-icon::before{width:14px;height:2px}
.pd-bar-icon::after{width:2px;height:16px}
.pd-bar[open]>summary .pd-bar-icon::after{opacity:0}
.pd-bar-body{padding:32px 0;border:1px solid #f0f0f0;border-top:none;background:#fff}
.pd-bar-body .pd-faq-list{border:none;border-radius:0}
.pd-bar-body .pd-review-grid{padding:0 24px 20px}

/* Reviews */
.pd-review{flex:0 0 280px;display:flex;flex-direction:column;border-radius:12px;padding:24px 20px;box-shadow:0 10px 30px rgba(0,0,0,.06)}
.pd-review:nth-child(4n+1){background:#fdf7e3;color:var(--pd-ink)}
.pd-review:nth-child(4n+2){background:#fff;color:var(--pd-ink);border:1px solid #f4f4f4}
.pd-review:nth-child(4n+3){background:linear-gradient(135deg,#4a4a4a,#2b2b2b);color:#fff}
.pd-review:nth-child(4n+4){background:#e81d62;color:#fff}
.pd-review-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}
.pd-review-quote{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50% 50% 50% 0;background:#e81d62;color:#fff;font:800 14px sans-serif}
.pd-review:nth-child(4n+4) .pd-review-quote{background:#fff;color:#e81d62}
.pd-review-pill{display:flex;align-items:center;gap:4px;padding:4px 8px;border-radius:20px;background:rgba(0,0,0,.05);font-weight:700;font-size:12px}
.pd-review:nth-child(n+3) .pd-review-pill{background:rgba(255,255,255,.18)}
.pd-review-pill i{font-size:10px;color:#f1c40f}
.pd-review:nth-child(4n+1) .pd-review-pill i,.pd-review:nth-child(4n+2) .pd-review-pill i{color:var(--pd-ink)}
.pd-review-title{font-weight:700;font-size:16px;margin-bottom:8px}
.pd-review-text{flex-grow:1;font-size:13.5px;line-height:1.5;font-style:italic;margin-bottom:16px}
.pd-review-photo{align-self:flex-start;padding:0;margin-bottom:16px;border:2px solid #fff;border-radius:50%;overflow:hidden;background:none;cursor:zoom-in;box-shadow:0 2px 8px rgba(0,0,0,.15)}
.pd-review-photo img{display:block;width:48px;height:48px;object-fit:cover}
.pd-review-user{display:flex;align-items:center;gap:10px}
.pd-avatar{flex:0 0 38px;width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--pd-soft);color:var(--pd-brand);font-weight:700;font-size:14px}
.pd-review:nth-child(4n+3) .pd-avatar,.pd-review:nth-child(4n+4) .pd-avatar{background:rgba(255,255,255,.2);color:#fff}
.pd-review-meta{display:flex;flex-direction:column}
.pd-review-name{font-weight:700;font-size:13.5px;line-height:1.2}
.pd-review-date{font-size:11px;opacity:.8;margin-top:2px}

/* Related cards */
.pd-card{flex:0 0 220px;display:flex;flex-direction:column;background:#fff;border:1px solid var(--pd-line);border-radius:14px;overflow:hidden;transition:transform .22s,box-shadow .22s}
.pd-card:hover{transform:translateY(-5px);box-shadow:0 12px 30px rgba(0,0,0,.1)}
.pd-card-img{position:relative;aspect-ratio:1;background:#f9f5f2;overflow:hidden}
.pd-card-img a{display:block;height:100%}
.pd-card-img img{width:100%;height:100%;object-fit:cover;display:block}
.pd-card-badge{position:absolute;top:10px;left:10px;background:var(--pd-brand);color:#fff;font-size:10px;font-weight:700;padding:3px 9px;border-radius:20px;z-index:3}
.pd-card-body{display:flex;flex-direction:column;flex:1;padding:14px}
.pd-card-body h3{font-size:14px;font-weight:700;line-height:1.35;margin-bottom:8px;min-height:38px;overflow:hidden}
.pd-card-body h3 a{color:inherit;text-decoration:none}
.pd-card-sku{width:100%;margin-bottom:10px;padding:6px 10px;border:1px solid var(--pd-soft-line);border-radius:6px;background:#fff;color:var(--pd-brand);font:700 12px 'Nunito',sans-serif;cursor:pointer}
.pd-card-price{display:flex;align-items:center;gap:8px;margin:auto 0 12px}
.pd-card-sale{font-size:15px;font-weight:700;color:var(--pd-brand)}
.pd-card-orig{font-size:12px;color:#aaa;text-decoration:line-through}
.pd-card-actions{display:flex;gap:8px}
.pd-card-add{flex:1;padding:9px 0;border:none;border-radius:8px;background:var(--pd-ink);color:#fff;font:700 13px 'Nunito',sans-serif;cursor:pointer;transition:background .2s}
.pd-card-add:hover{background:var(--pd-brand)}
.pd-card-view{display:flex;align-items:center;justify-content:center;padding:9px 12px;border:1px solid var(--pd-soft-line);border-radius:8px;background:var(--pd-soft);color:var(--pd-brand);text-decoration:none;transition:background .2s,color .2s}
.pd-card-view:hover{background:var(--pd-brand);color:#fff}

/* Review modal */
.pd-modal{position:fixed;inset:0;z-index:2100;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(0,0,0,.5)}
.pd-modal-box{position:relative;width:100%;max-width:600px;max-height:92vh;overflow-y:auto;background:#fff;border-radius:16px;padding:32px;font-family:'Nunito',sans-serif;color:var(--pd-ink)}
.pd-modal-box h2{font:700 28px 'Playfair Display',serif;text-align:center;margin-bottom:6px}
.pd-modal-box>.pd-muted{text-align:center;font-style:normal;margin-bottom:22px;font-size:14.5px}
.pd-modal-close{position:absolute;top:12px;right:18px;border:none;background:none;font-size:30px;line-height:1;color:#999;cursor:pointer}
.pd-modal-close:hover{color:var(--pd-brand)}
.pd-rating-input{display:flex;flex-direction:row-reverse;justify-content:center;gap:6px;border:none;margin-bottom:22px}
.pd-rating-input legend{width:100%;text-align:center;font-size:14px;font-weight:700;margin-bottom:8px}
.pd-rating-input input{position:absolute;opacity:0;pointer-events:none}
.pd-rating-input label{font-size:32px;color:#e5e7eb;cursor:pointer;transition:color .2s}
.pd-rating-input label:hover,.pd-rating-input label:hover~label,.pd-rating-input input:checked~label{color:#f59e0b}
.pd-rating-input input:focus-visible+label{outline:2px solid var(--pd-brand);outline-offset:2px}
.pd-form-row{display:flex;gap:16px}
.pd-field{flex:1;margin-bottom:16px;text-align:left}
.pd-field label{display:block;font-size:13px;font-weight:600;margin-bottom:6px}
.pd-field input[type=text],.pd-field input[type=email],.pd-field textarea{width:100%;padding:13px 14px;border:1px solid var(--pd-line);border-radius:8px;font:14px 'Nunito',sans-serif}
.pd-field textarea{height:120px;resize:vertical}
.pd-field input:focus,.pd-field textarea:focus{outline:none;border-color:var(--pd-brand)}
.pd-hint{font-size:12px;color:#999;margin:-8px 0 18px}
.pd-file{position:relative;overflow:hidden}
.pd-file input{position:absolute;inset:0;opacity:0;cursor:pointer;font-size:100px}
.pd-file-btn{display:flex;align-items:center;gap:10px;padding:14px 16px;border:1px dashed var(--pd-brand);border-radius:8px;background:var(--pd-soft);color:var(--pd-brand);font-weight:700;font-size:14px;pointer-events:none}
.pd-file:hover .pd-file-btn{background:var(--pd-soft-line)}

/* Lightbox */
.pd-lightbox{position:fixed;inset:0;z-index:2200;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(0,0,0,.85)}
.pd-lightbox img{max-width:92%;max-height:90vh;object-fit:contain;border-radius:12px}
.pd-lightbox-close{position:absolute;top:16px;right:26px;border:none;background:none;color:#fff;font-size:38px;cursor:pointer}

/* Responsive */
@media (max-width:900px){
  .pd-container{grid-template-columns:1fr;gap:30px;margin-top:20px}
  .pd-details h1{font-size:28px}
}
@media (max-width:600px){
  .pd-container,.pd-section,.pd-breadcrumb,.pd-bars{padding-left:16px;padding-right:16px}
  .pd-bar>summary{padding-left:16px;padding-right:60px}
  .pd-bar-icon{width:48px}
  .pd-actions{flex-direction:column}
  .pd-add-btn{padding:14px}
  .pd-price-sale{font-size:26px}
  .pd-price-original{font-size:18px}
  .pd-section-title{font-size:22px}
  .pd-review{flex-basis:250px;padding:20px 16px}
  .pd-form-row{flex-direction:column;gap:0}
  .pd-modal-box{padding:24px 18px}
  .pd-arrow{width:34px;height:34px;font-size:14px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}