/* =========================================================
   Noah's Mimi Knits — Single product page (PDP)
   Product layout, gallery, options, and the reviews block
   (summary + two-column list / write-a-review form).
   ========================================================= */

/* ---------- Product layout ---------- */
.pdp-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:48px;align-items:start;margin-top:26px}
.pdp-gallery{position:sticky;top:96px}
.pdp-main{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);background:var(--cream-2);aspect-ratio:1}
.pdp-main img{width:100%;height:100%;object-fit:cover;transition:.4s}
.pdp-thumbs{display:flex;gap:12px;margin-top:14px;flex-wrap:wrap}
.pdp-thumbs button{border:2px solid transparent;border-radius:12px;overflow:hidden;padding:0;cursor:pointer;width:82px;height:82px;background:var(--cream-2)}
.pdp-thumbs button.active{border-color:var(--rose)}
.pdp-thumbs img{width:100%;height:100%;object-fit:cover}
.pdp-info .card-cat{margin-bottom:10px}
.pdp-info h1{font-size:clamp(2rem,4vw,3rem);margin:0 0 12px}
.pdp-price{font-size:2rem;margin:0 0 10px}
.pdp-info .stars{color:var(--gold);letter-spacing:2px;margin-bottom:18px}
.pdp-info .stars span{color:var(--ink-soft);font-size:.85rem;letter-spacing:normal;margin-left:6px}
.pdp-info>p.lead{color:var(--ink-soft);font-size:1.05rem;margin-bottom:22px}
.pdp-opt{margin-bottom:22px}
.pdp-opt .lab{font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:10px}
.size-pills{display:flex;gap:10px;flex-wrap:wrap}
.size-pills button{border:1px solid var(--line);background:#fff;border-radius:30px;padding:8px 16px;cursor:pointer;
  font-family:var(--sans);font-size:.85rem;transition:.2s}
.size-pills button.active,.size-pills button:hover{border-color:var(--ink);background:var(--ink);color:#fff}
.pdp-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-bottom:24px}
.qty.lg button{width:42px;height:46px;font-size:1.15rem}
.qty.lg span{width:44px;font-size:1rem}
.pdp-wish{width:52px;height:52px;border:1.5px solid var(--line);border-radius:50%;background:#fff;cursor:pointer;display:grid;place-items:center;transition:.25s}
.pdp-wish svg{width:22px;height:22px;stroke:var(--ink);fill:none;stroke-width:1.6}
.pdp-wish.active{background:var(--rose);border-color:var(--rose)}
.pdp-wish.active svg{stroke:#fff;fill:#fff}
.pdp-meta{list-style:none;padding:18px 0 0;margin:0;border-top:1px solid var(--line)}
.pdp-meta li{display:flex;gap:10px;font-size:.9rem;color:var(--ink-soft);padding:5px 0}
.pdp-meta li b{color:var(--ink);min-width:96px;font-weight:500}
.pdp-acc{margin-top:22px}

/* "Be the first to review" link in the header rating row */
.pdp-info .stars .stars-empty{display:inline-flex;align-items:center;gap:.5em;color:var(--ink-soft);text-decoration:none}
.pdp-info .stars .stars-empty span{font-size:.85rem;letter-spacing:.02em}
.pdp-info .stars .stars-empty:hover{color:var(--rose)}

/* ---------- Reviews block ---------- */
.pdp-reviews{max-width:var(--wrap);margin:0 auto}
.reviews{margin-top:10px;border-top:1px solid var(--line);padding-top:40px}
.rev-summary{display:flex;align-items:center;gap:14px;margin-top:0;flex-wrap:wrap}
.rev-summary .big{font-family:var(--serif);font-size:2.6rem;line-height:1}
.rev-summary .stars{color:var(--gold);letter-spacing:2px;font-size:1.1rem}
.rev-summary .based{color:var(--ink-soft);font-size:.9rem}
.rev-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:40px;align-items:start;margin-top:24px}
.rev-list-wrap{min-width:0}
.rev-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:18px}
.review{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px 24px}
/* Force the review card look on the <li> itself (overrides WC .commentlist defaults). */
ol.commentlist.rev-list li{
  background:#fff !important;
  border:1px solid var(--line) !important;
  border-radius:var(--radius) !important;
  padding:22px 24px !important;
}
.review .rhead{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.review .who{font-weight:600}
.review .rdate{font-size:.78rem;color:var(--ink-soft)}
.review .rstars{color:var(--gold);letter-spacing:1px;font-size:.92rem;margin:6px 0}
.review h4{font-family:var(--serif);font-size:1.22rem;margin:2px 0 6px}
.review .rbody p,.review p{margin:0;color:var(--ink-soft)}
.review .rev-pending{color:var(--rose);font-size:.82rem;margin-bottom:6px}
.woocommerce-pagination{margin-top:24px}
.woocommerce-pagination ul{display:flex;gap:8px;list-style:none;padding:0;margin:0}
.woocommerce-pagination a,.woocommerce-pagination span{min-width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%}

/* Write-a-review form (right column) */
.rev-form-wrap{position:sticky;top:96px}
.rev-form-wrap .panel{padding:28px}
.rev-form-title{font-family:var(--serif);font-size:1.55rem;margin:0 0 4px}
.rev-form-note{color:var(--ink-soft);font-size:.9rem;margin:0 0 18px}
#review_form .field{margin-bottom:16px}
#review_form label{display:block;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:7px;color:var(--ink-soft)}
#review_form input[type=text],
#review_form input[type=email],
#review_form textarea{width:100%;padding:.85em 1em;border:1px solid var(--line);border-radius:10px;
  font-family:var(--sans);font-size:.95rem;background:var(--cream);color:var(--ink)}
#review_form input:focus,#review_form textarea:focus{outline:none;border-color:var(--rose);background:#fff}
#review_form .comment-form-author,
#review_form .comment-form-email{display:inline-block;width:calc(50% - 8px)}
#review_form .comment-form-author{margin-right:14px}
#review_form .form-submit{margin:6px 0 0}
#review_form .form-submit input{width:100%}

/* Clickable star rating input */
.star-input{display:flex;gap:4px}
.star-input button{background:none;border:none;cursor:pointer;font-size:1.9rem;line-height:1;color:var(--line);padding:0;transition:.12s;transform-origin:center}
.star-input button.on{color:var(--gold)}
.star-input button:hover{transform:scale(1.15)}
.star-input.shake{animation:nmkShake .45s}
@keyframes nmkShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}

/* Native rating select is replaced by the star widget */
select#rating{display:none}
.no-js select#rating{display:block;width:auto;padding:.6em 1em;border:1px solid var(--line);border-radius:10px}

/* ---------- Responsive ---------- */
@media(max-width:900px){
  .pdp-grid{grid-template-columns:1fr;gap:30px}
  .pdp-gallery{position:static}
  .rev-grid{grid-template-columns:1fr}
  .rev-form-wrap{position:static}
}
@media(max-width:560px){
  #review_form .comment-form-author,
  #review_form .comment-form-email{display:block;width:100%;margin-right:0}
}
