/* Younks — single product page (mirrors the design's PDP view). */

/* full-bleed section — neutralise the theme's WooCommerce content wrapper */
body.single-product .yk-container.yk-main{max-width:none;margin:0;padding:0}
body.single-product .yk-woo{background:#fff}

.yk-pdp-wrap{background:#fff;padding:clamp(28px,3.4vw,44px) 0 clamp(56px,6vw,90px)}
.yk-pdp{max-width:1400px;margin:0 auto;padding:0 clamp(20px,4vw,40px)}

/* ---- breadcrumb ---- */
.yk-pdp__crumbs{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#8b8878}
.yk-pdp__crumbs a{color:#8b8878;text-decoration:none}
.yk-pdp__crumbs a:hover{color:#0c0f14}
.yk-pdp__crumb-sep{margin:0 6px;color:#8b8878}
.yk-pdp__crumb-cur{color:#c31318}

/* ---- top: gallery + summary ---- */
.yk-pdp__top{margin-top:clamp(20px,2.6vw,32px);display:grid;grid-template-columns:1fr;gap:clamp(28px,3.6vw,52px);align-items:start}
@media(min-width:1000px){.yk-pdp__top{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}

/* neutralise WooCommerce's float/48% layout for .images + .summary */
.yk-pdp .summary,
.yk-pdp .entry-summary,
.yk-pdp__gallery,
.yk-pdp .images{width:auto!important;float:none!important;margin:0!important;clear:none!important}
.yk-pdp__summary{padding:0!important}

.yk-pdp__gallery{min-width:0}
.yk-pdp .woocommerce-product-gallery{width:100%!important;max-width:none;margin:0;float:none;position:relative}
.yk-pdp .woocommerce-product-gallery__trigger{display:none}
/* Hover-zoom (jquery.zoom) appends a magnified <img class="zoomImg"> over the
   photo. It was rendering "doubled" because the theme's gallery <img> rule
   below also matched it and applied mix-blend-mode:multiply — so the magnified
   layer blended with the base image. Keep it clear of that rule and let clicks
   through to the lightbox. */
.yk-pdp .woocommerce-product-gallery__image .zoomImg{
  pointer-events:none;
  mix-blend-mode:normal!important;
  background:#fff;
}
/* The current image sits in a fixed 1:1 square frame; the image is fitted
   inside it (contained + centred, never cropped or stretched). A square
   product photo fills the frame exactly; a portrait/landscape one letterboxes
   against the frame. The rest scroll in a horizontal thumbnail slider below.
   Plain block flow for the wrapper keeps the nav row a reliable width. */
.yk-pdp .woocommerce-product-gallery__wrapper{margin:0;display:block}
.yk-pdp .woocommerce-product-gallery__image{float:none;margin:0 0 10px;box-sizing:border-box}

/* Main image frame only — the `> :first-child` half is the pre-JS / no-JS
   fallback and is scoped to the wrapper's direct first child so it never
   catches the first thumbnail (which is `:first-child` of .yk-gallery-thumbs). */
.yk-pdp .woocommerce-product-gallery__image.yk-gallery-main,
.yk-pdp .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:first-child{width:100%;aspect-ratio:1/1;border:1px solid #e6e3da;border-radius:16px!important;overflow:hidden;display:flex;align-items:center;justify-content:center;background:none}
/* WooCommerce's own `.woocommerce div.product div.images .woocommerce-product-gallery__image a{display:block}`
   (specificity 0,4,3) outranks the theme selector — force flex so the image
   centres in the square at any aspect ratio. */
.yk-pdp .woocommerce-product-gallery__image.yk-gallery-main a,
.yk-pdp .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:first-child a{display:flex!important;align-items:center;justify-content:center;width:100%;height:100%}
/* width/height:100% (not auto) is deliberate: object-fit only scales an image
   UP to fill its box when the box itself has an explicit size — with
   width/height:auto the box just tracks the image's own intrinsic size, so a
   photo smaller than the frame (or one WooCommerce serves at a smaller
   registered size) rendered small and centred instead of filling the square. */
.yk-pdp .woocommerce-product-gallery__image.yk-gallery-main img:not(.zoomImg),
.yk-pdp .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:first-child img:not(.zoomImg){display:block;width:100%;height:100%;object-fit:contain;border-radius:15px!important;mix-blend-mode:multiply}

/* thumbnail slider: arrow-navigated single row, no scrollbar */
.yk-pdp .yk-gallery-nav{width:100%;display:flex;align-items:center;gap:8px;margin:0}
.yk-pdp .yk-gallery-arrow{flex:none;width:28px;height:28px;border:1px solid #ded9cd;background:#fff;color:#1f2b6b;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;border-radius:0}
.yk-pdp .yk-gallery-arrow:hover{background:#f6f4ee}
.yk-pdp .yk-gallery-arrow:disabled{opacity:.35;cursor:default;pointer-events:none}
.yk-pdp .yk-gallery-nav--fits .yk-gallery-arrow{visibility:hidden}
.yk-pdp .yk-gallery-thumbs{flex:1 1 auto;min-width:0;display:flex;flex-wrap:nowrap;gap:10px;overflow-x:auto;scroll-snap-type:x proximity;padding-bottom:2px;scrollbar-width:none;-ms-overflow-style:none}
.yk-pdp .yk-gallery-thumbs::-webkit-scrollbar{display:none;height:0}
.yk-pdp .woocommerce-product-gallery__image.yk-gallery-thumb{flex:0 0 66px;width:66px;height:66px;background:#f2efe8;border:1px solid #e6e3da;padding:5px;overflow:hidden;cursor:pointer;scroll-snap-align:start;opacity:.75}
.yk-pdp .woocommerce-product-gallery__image.yk-gallery-thumb:hover,
.yk-pdp .woocommerce-product-gallery__image.yk-gallery-thumb.is-active{opacity:1;border-color:#1f2b6b}
.yk-pdp .woocommerce-product-gallery__image.yk-gallery-thumb a{display:block;width:100%;height:100%}
.yk-pdp .woocommerce-product-gallery__image.yk-gallery-thumb img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}
.yk-pdp .onsale{position:absolute;top:14px;left:14px;z-index:2;margin:0;background:#c31318;color:#fff;border-radius:0;min-height:0;min-width:0;padding:6px 12px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}

/* ---- summary ---- */
.yk-pdp__summary{min-width:0}
.yk-pdp__brand{font-size:11.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#c31318}
.yk-pdp__summary .product_title{margin:10px 0 0;font-family:'Bricolage Grotesque',system-ui,sans-serif;font-weight:700;font-size:clamp(26px,3vw,38px);line-height:1.12;letter-spacing:-.02em;color:#0c0f14}

.yk-pdp__rating{margin:12px 0 0;display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;font-size:13.5px;color:#6d7183}
.yk-pdp__stars{color:#f0b429;letter-spacing:1px}
.yk-pdp__stock{color:#1b7f4f;font-weight:600}

.yk-pdp__summary .price{margin:18px 0 0;color:#0c0f14!important;font-size:clamp(28px,3vw,34px);display:flex;align-items:flex-end;gap:12px;line-height:1}
.yk-pdp__summary .price,
.yk-pdp__summary .price ins,
.yk-pdp__summary .price ins .woocommerce-Price-amount,
.yk-pdp__summary .price > .woocommerce-Price-amount,
.yk-pdp__summary .price bdi{color:#0c0f14!important}
.yk-pdp__summary .price .woocommerce-Price-amount{font-family:'Bricolage Grotesque',system-ui,sans-serif;font-weight:700}
.yk-pdp__summary .price del{opacity:1;font-size:15px;font-weight:400}
.yk-pdp__summary .price del,
.yk-pdp__summary .price del .woocommerce-Price-amount,
.yk-pdp__summary .price del bdi{color:#9a9789!important;font-weight:400;text-decoration:line-through}
.yk-pdp__summary .price ins{text-decoration:none;background:none}

.yk-pdp__size{margin-top:6px;font-size:13.5px;color:#6d7183}

/* stock text from the add-to-cart template — design shows it in the rating row */
.yk-pdp .summary > .stock{display:none}

/* ---- add to cart ---- */
.yk-pdp form.cart{margin:24px 0 0}
.yk-pdp form.cart:not(.variations_form),
.yk-pdp .woocommerce-variation-add-to-cart{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.yk-pdp form.variations_form.cart{margin-top:20px}
.yk-pdp form.cart .quantity{display:flex;align-items:stretch;flex:0 0 auto;height:48px;border:1px solid #ded9cd;background:#fff;overflow:hidden;box-sizing:border-box}
.yk-pdp form.cart .quantity > label,
.yk-pdp form.cart .quantity .screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.yk-pdp form.cart .quantity .yk-qbtn{width:44px;height:100%;border:0;background:#fff;color:#1f2b6b;font-size:19px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;flex:none;padding:0;margin:0;box-sizing:border-box}
.yk-pdp form.cart .quantity .yk-qbtn:last-child{font-size:18px}
.yk-pdp form.cart .quantity .yk-qbtn:hover{background:#f6f4ee}
.yk-pdp form.cart .quantity input.qty{width:46px;height:100%;border:0;border-left:1px solid #ded9cd;border-right:1px solid #ded9cd;text-align:center;font-weight:700;font-size:16px;color:#0c0f14;background:#fff;-moz-appearance:textfield;padding:0;margin:0;flex:none;box-sizing:border-box;border-radius:0}
.yk-pdp form.cart .quantity input.qty:focus{outline:none}
.yk-pdp form.cart .quantity input.qty::-webkit-outer-spin-button,
.yk-pdp form.cart .quantity input.qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.yk-pdp form.cart .single_add_to_cart_button{flex:1 1 220px;border:none;background:#1f2b6b;color:#fff!important;height:48px;padding:0 24px!important;font-size:13px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;cursor:pointer;border-radius:var(--yk-btn-radius,12px);transition:background .15s;opacity:1}
.yk-pdp form.cart .single_add_to_cart_button:hover{background:#16204e}
.yk-pdp form.cart .single_add_to_cart_button.loading{opacity:.85;display:flex;align-items:center;justify-content:center;gap:9px;pointer-events:none}
.yk-pdp form.cart .single_add_to_cart_button.loading .yk-spin{width:15px;height:15px}
.yk-pdp form.cart .single_add_to_cart_button.disabled,
.yk-pdp form.cart .single_add_to_cart_button.wc-variation-selection-needed,
.yk-pdp form.cart .single_add_to_cart_button:disabled{background:#b9bdd4;cursor:not-allowed}

/* ---- buy it now ---- */
.yk-pdp form.cart .yk-pdp__buy-now{display:block;width:100%;margin:10px 0 0;border:none;background:#c31318;color:#fff!important;
  height:52px;padding:0 24px;font-family:var(--yk-display);font-size:15px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;
  cursor:pointer;border-radius:var(--yk-btn-radius,12px);transition:background .15s}
.yk-pdp form.cart .yk-pdp__buy-now:hover{background:#a50f14}
.yk-pdp form.cart .yk-pdp__buy-now:disabled{background:#b9bdd4;cursor:not-allowed}

/* variable product: variation selects */
.yk-pdp .variations{width:100%;margin:18px 0 0;border:0}
.yk-pdp .variations tbody,.yk-pdp .variations tr{display:block}
.yk-pdp .variations td,.yk-pdp .variations th{display:block;padding:0;border:0;text-align:left;width:auto}
.yk-pdp .variations tr + tr{margin-top:12px}
.yk-pdp .variations th.label{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#0c0f14;padding-bottom:6px}
.yk-pdp .variations th.label label{font-weight:700}
.yk-pdp .variations td.value{position:relative}
.yk-pdp .variations select{width:100%;max-width:360px;height:46px;border:var(--yk-input-border,1.5px solid #e4e7f0);background:#fff;padding:0 12px;font:inherit;color:#0c0f14;border-radius:var(--yk-input-radius,8px)}
.yk-pdp .single_variation_wrap{margin-top:16px}
.yk-pdp .woocommerce-variation-price{margin-bottom:10px}
.yk-pdp .woocommerce-variation-price .price{margin:0;font-size:clamp(24px,2.6vw,30px)}
.yk-pdp .woocommerce-variation-availability{margin-bottom:8px}
.yk-pdp .reset_variations{display:inline-block;margin-top:6px;font-size:13px;color:#c31318}
.yk-pdp .single_variation_wrap form.cart,
.yk-pdp .woocommerce-variation-add-to-cart{margin-top:0}
.yk-pdp .woocommerce-variation-add-to-cart{display:flex;flex-wrap:wrap;gap:12px;align-items:center}

/* ---- reassurance box ---- */
.yk-pdp__promo{margin-top:22px;border:1px solid #e6e3da;background:#fff;padding:16px 18px;display:flex;flex-direction:column;gap:9px;font-size:13.5px;color:#55596a;line-height:1.5}
.yk-pdp__promo strong{color:#1f2b6b}

/* ---- "Still deciding?" accordion — sits under the gallery thumbnails
   (left column, see younks_pdp_decide_accordion() @ woocommerce_before_
   single_product_summary), one expand/collapse row per trust point. app.js
   toggles [hidden] + aria-expanded + the +/− glyph on click. ---- */
.yk-pdp__decide{margin-top:24px}
.yk-pdp__decide-h{margin:0 0 14px;font-family:var(--yk-display);font-weight:700;font-size:15.5px;color:#101216}
.yk-pdp__decide-list{display:flex;flex-direction:column;gap:10px}
.yk-pdp__decide-item{border:1px solid #e4e7f0;border-radius:var(--yk-btn-radius,12px);background:#fff;overflow:hidden;transition:border-color .15s ease}
.yk-pdp__decide-btn{width:100%;border:0;background:#fff;padding:14px 16px;display:flex;align-items:center;gap:11px;text-align:left;cursor:pointer;font:inherit;transition:background-color .15s ease}
.yk-pdp__decide-btn:hover{background:#f6f7fb}
.yk-pdp__decide-btn[aria-expanded="true"]{background:#eef0f8}
.yk-pdp__decide-btn[aria-expanded="true"]:hover{background:#e6e9f5}
.yk-pdp__decide-icon{flex:none;display:flex;color:#1f2b6b}
.yk-pdp__decide-title{flex:1 1 auto;font-family:var(--yk-display);font-weight:600;font-size:14px;color:#101425}
.yk-pdp__decide-toggle{flex:none;font-size:16px;line-height:1;color:#7b8199}
.yk-pdp__decide-btn[aria-expanded="true"] .yk-pdp__decide-toggle{color:#1f2b6b}
.yk-pdp__decide-panel{padding:10px 16px 16px 46px}
.yk-pdp__decide-body{margin:0;font-size:13.5px;line-height:1.6;color:#7b8199}

/* ---- "What customers say" review carousel — admin-curated (see inc/
   reviews.php, wp-admin → Customer Reviews), summary (right) column,
   between the promo box and Payment & Security. Hidden entirely (see PHP)
   when the product has no reviews attached. One slide visible at a time;
   app.js slides .yk-pdp__reviews-track via transform:translateX(). ---- */
.yk-pdp__reviews{margin-top:24px}
.yk-pdp__reviews-head{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}
.yk-pdp__reviews-h{margin:0;font-family:var(--yk-display);font-weight:700;font-size:16px;letter-spacing:.02em;color:#101425}
.yk-pdp__reviews-nav{display:flex;gap:6px}
.yk-pdp__reviews-navbtn{width:30px;height:30px;border:1px solid #e4e7f0;background:#fff;color:#1f2b6b;font-size:14px;line-height:1;cursor:pointer}
.yk-pdp__reviews-navbtn:hover{background:#f6f4ee}
.yk-pdp__reviews-viewport{margin-top:12px;overflow:hidden}
.yk-pdp__reviews-track{display:flex;transition:transform .45s ease}
.yk-pdp__reviews-slide{flex:0 0 100%;min-width:0;padding-right:2px}
.yk-pdp__rev-card{border:1px solid #dfe4f3;border-radius:var(--yk-btn-radius,12px);background:#eef1fa;padding:20px 18px;display:flex;gap:14px;align-items:flex-start}
.yk-pdp__rev-avatar{width:54px;height:54px;flex:none;border-radius:50%;object-fit:cover;background:#f4f5f8}
.yk-pdp__rev-avatar--initials{display:flex;align-items:center;justify-content:center;background:#1f2b6b;color:#fff;font-family:var(--yk-display);font-weight:600;font-size:17px;letter-spacing:.02em}
.yk-pdp__rev-body{flex:1 1 200px;min-width:0}
.yk-pdp__rev-row{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline}
.yk-pdp__rev-name{font-family:var(--yk-display);font-weight:600;font-size:14px;color:#101425}
.yk-pdp__rev-stars{font-size:14px;letter-spacing:.1em;color:#c31318}
.yk-pdp__rev-badge{margin-left:auto;border:1px solid #b7dcc5;border-radius:999px;background:#eaf6ee;color:#146b41;padding:4px 10px;font-family:var(--yk-display);font-weight:600;font-size:10px;letter-spacing:.08em}
.yk-pdp__rev-text{margin:8px 0 0;font-family:var(--yk-display);font-size:15.5px;font-weight:500;line-height:1.5;color:#101425}

.yk-pdp__pay{margin-top:24px;border-radius:12px;background:#eef0f8;padding:18px 20px;text-align:center}
.yk-pdp__pay-h{margin:0 0 12px;font-family:var(--yk-display);font-weight:700;font-size:14px;color:#1f2b6b}
.yk-pdp__pay .yk-pay-badges{flex-wrap:wrap}
.yk-pdp__pay-note{margin:12px 0 0;font-size:11.5px;line-height:1.5;color:#5b5f89}

/* "Still deciding?" + "Payment & Security" — mobile only, hidden on tablet
   and laptop/desktop (matches this theme's own mobile cutoff, e.g.
   checkout.css's @media(max-width:600px)). */
.yk-pdp__decide,
.yk-pdp__pay{display:none}
@media(max-width:600px){
  .yk-pdp__decide,
  .yk-pdp__pay{display:block}
}

@media(max-width:480px){
  .yk-pdp__rev-badge{margin-left:0}
}

/* ---- tabs ---- */
.yk-pdp__more{margin-top:clamp(36px,4.2vw,56px)}
.yk-pdp .wc-tabs-wrapper,.yk-pdp .woocommerce-tabs{max-width:100%}
.yk-pdp ul.wc-tabs,.yk-pdp .wc-tabs{margin:0!important;padding:0!important;list-style:none;display:flex;gap:4px;border-bottom:1px solid #e6e3da;flex-wrap:wrap;overflow:visible}
.yk-pdp ul.wc-tabs::before{content:none!important}
.yk-pdp ul.wc-tabs li,.yk-pdp .wc-tabs li{margin:0 0 -1px!important;padding:0!important;border:0!important;background:none!important;border-radius:0!important;display:block!important;z-index:auto!important}
.yk-pdp ul.wc-tabs li::before,.yk-pdp ul.wc-tabs li::after{content:none!important;display:none!important;box-shadow:none!important;border:0!important}
.yk-pdp ul.wc-tabs li.active{background:none!important}
.yk-pdp ul.wc-tabs li a{display:block!important;padding:13px 16px!important;margin:0!important;font-weight:700!important;font-size:13.5px!important;letter-spacing:.03em;color:#8b8878!important;text-decoration:none!important;border-bottom:3px solid transparent!important;text-shadow:none!important;box-shadow:none!important;background:none!important}
.yk-pdp ul.wc-tabs li.active a{color:#0c0f14!important;border-bottom-color:#1f2b6b!important}
.yk-pdp ul.wc-tabs li a:hover{color:#0c0f14!important}
.yk-pdp ul.wc-tabs li a::after,.yk-pdp ul.wc-tabs li a::before{display:none}
.yk-pdp .woocommerce-Tabs-panel{padding:24px 0 0!important;margin:0 0 2em!important;max-width:720px}
.yk-pdp .woocommerce-Tabs-panel h2{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.yk-pdp .woocommerce-Tabs-panel p{margin:0 0 14px;font-size:15px;line-height:1.68;color:#3c4360}
.yk-pdp__desc p:last-child{margin-bottom:0}
.yk-pdp__desc ul,.yk-pdp__desc ol{margin:0 0 14px;padding-left:20px;font-size:15px;line-height:1.68;color:#3c4360}

.yk-pdp__specs{display:flex;flex-direction:column}
.yk-pdp__spec{display:flex;flex-wrap:wrap;gap:6px 20px;padding:12px 0;border-bottom:1px solid #eeebe3;font-size:14.5px}
.yk-pdp__spec-k{flex:0 0 160px;font-weight:700;color:#0c0f14}
.yk-pdp__spec-v{flex:1 1 220px;color:#55596a}
@media(max-width:560px){.yk-pdp__spec-k{flex:0 0 100%}.yk-pdp__spec-v{flex:0 0 100%}}

/* ---- reviews list: name + stars on one row, review text below (design card) ---- */
#reviews.woocommerce-Reviews{max-width:720px}
#reviews .woocommerce-Reviews-title{font-family:'Bricolage Grotesque',system-ui,sans-serif;font-weight:700;font-size:clamp(19px,2vw,22px);margin:0 0 18px}
#reviews #comments ol.commentlist{margin:0!important;padding:0!important;list-style:none;display:flex;flex-direction:column;gap:16px}
#reviews #comments ol.commentlist li{margin:0!important;padding:0!important;border:0!important;background:none!important;position:static}
#reviews #comments ol.commentlist li img.avatar{display:none!important}
#reviews #comments ol.commentlist li .comment-text{display:flex!important;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:0!important;border:1px solid #e6e3da!important;border-radius:0!important;background:#fff;padding:16px!important}
#reviews #comments ol.commentlist li .comment-text > .star-rating{order:2;margin:0!important;float:none!important;display:inline-block!important;font-size:12.5px}
#reviews #comments ol.commentlist li .comment-text > .star-rating::before{color:#e6e3da}
#reviews #comments ol.commentlist li .comment-text > .star-rating span::before{color:#c31318}
#reviews #comments ol.commentlist li .comment-text > p.meta{order:1;margin:0!important;font-size:14px!important;font-weight:700;color:#0c0f14}
#reviews #comments ol.commentlist li .comment-text > p.meta .woocommerce-review__dash,
#reviews #comments ol.commentlist li .comment-text > p.meta .woocommerce-review__published-date,
#reviews #comments ol.commentlist li .comment-text > p.meta .woocommerce-review__verified{display:none}
#reviews #comments ol.commentlist li .comment-text > .description{order:3;flex:0 0 100%;width:100%}
#reviews #comments ol.commentlist li .comment-text > .description p{margin:9px 0 0!important;font-size:14.5px;line-height:1.6;color:#3c4360}
#reviews #comments ol.commentlist ul.children{list-style:none;margin:12px 0 0 24px!important;padding:0;display:flex;flex-direction:column;gap:12px}
#reviews .woocommerce-noreviews{font-size:14.5px;color:#55596a;border:1px solid #e6e3da;background:#fff;padding:16px}
#reviews .woocommerce-pagination{margin-top:16px}

/* ---- review submission form ---- */
#reviews #review_form_wrapper{margin-top:28px}
#reviews #review_form #respond{background:#fff;border:1px solid #e6e3da;padding:clamp(20px,2.6vw,26px)}
#reviews #review_form #reply-title{display:block;font-family:'Bricolage Grotesque',system-ui,sans-serif;font-weight:700;font-size:19px;margin:0 0 16px;color:#0c0f14}
#reviews #review_form #reply-title small{display:block;margin-top:6px;font-family:inherit;font-size:13px;font-weight:600}
#reviews #review_form #reply-title small a{color:#c31318}
#reviews #review_form p{margin:0 0 14px!important}
#reviews #review_form label{display:block;font-size:13px;font-weight:700;color:#0c0f14;margin-bottom:6px}
#reviews #review_form p.comment-form-cookies-consent{display:flex!important;align-items:center;gap:8px}
#reviews #review_form p.comment-form-cookies-consent input[type=checkbox]{width:16px;height:16px;flex:none;margin:0}
#reviews #review_form p.comment-form-cookies-consent label{display:inline;margin:0;font-size:13px;font-weight:600;color:#4b4f5c}
#reviews #review_form .required{color:#c31318}
#reviews #review_form input[type=text],
#reviews #review_form input[type=email],
#reviews #review_form textarea{width:100%;max-width:100%;height:46px;border:var(--yk-input-border,1.5px solid #e4e7f0);background:#faf9f6;padding:0 14px;font:inherit;color:#0c0f14;box-sizing:border-box;border-radius:var(--yk-input-radius,8px)}
#reviews #review_form textarea{height:auto;min-height:130px;padding:12px 14px;resize:vertical}
#reviews #review_form input:focus,
#reviews #review_form textarea:focus,
#reviews #review_form select:focus{outline:none;border-color:#1f2b6b;background:#fff}
#reviews #review_form .comment-form-rating{display:flex;flex-direction:column}
#reviews #review_form #rating{width:100%;max-width:220px;height:46px;border:var(--yk-input-border,1.5px solid #e4e7f0);background:#faf9f6;padding:0 14px;font:inherit;color:#0c0f14;border-radius:var(--yk-input-radius,8px)}
#reviews #review_form .form-submit{margin-bottom:0!important}
#reviews #review_form #submit{border:none;background:#1f2b6b;color:#fff!important;height:48px;padding:0 26px;font-size:13px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;border-radius:var(--yk-btn-radius,12px);transition:background .15s}
#reviews #review_form #submit:hover{background:#16204e}
#reviews p.must-log-in,
#reviews p.woocommerce-verification-required{font-size:14.5px;color:#55596a;border:1px solid #e6e3da;background:#fff;padding:16px}
#reviews p.must-log-in a{color:#1f2b6b;font-weight:700}

/* ---- up-sells / related "Stacks well with" — shared product-card design (see home.css) ---- */
.yk-pdp .upsells.products{margin-top:clamp(36px,4.2vw,56px);clear:both}
.yk-pdp .upsells.products > h2{margin:0 0 18px;font-family:'Bricolage Grotesque',system-ui,sans-serif;font-weight:700;font-size:clamp(21px,2.2vw,26px);color:#0c0f14}
.yk-pdp .upsells.products ul.products{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2vw,24px);margin:0;padding:0}
.yk-pdp .upsells.products ul.products li.product{width:auto;margin:0;float:none;clear:none;display:flex}

.yk-pdp__related{margin-top:clamp(36px,4.2vw,56px);clear:both}
.yk-pdp__related-h{margin:0 0 18px;font-family:'Bricolage Grotesque',system-ui,sans-serif;font-weight:700;font-size:clamp(21px,2.2vw,26px);color:#0c0f14}
.yk-pdp__related-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(16px,2vw,24px)}
.yk-pdp__related-grid>.yk-pcard-li{list-style:none;margin:0;min-width:0;display:flex}
/* Without width:100% the card shrink-wraps to its product-name width, so a
   longer name = wider card = taller 1:1 media box = unequal card heights.
   Same fix the shop/related ul.products grid already applies (product.css). */
.yk-pdp__related-grid>.yk-pcard-li>.yk-pcard{width:100%}

@media(max-width:1100px){
	.yk-pdp__related-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:768px){
	.yk-pdp .upsells.products ul.products,
	.yk-pdp__related-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:480px){
	.yk-pdp .upsells.products ul.products,
	.yk-pdp__related-grid{grid-template-columns:1fr}
	.yk-pdp form.cart .single_add_to_cart_button{flex:1 1 100%}
}

/* ---------- Sticky "Add to Cart" bar — mobile through desktop ----------
   Hidden by default; app.js toggles .is-visible once the real add-to-cart
   button scrolls out of view. Drives the real form's qty input + button
   directly rather than duplicating their logic (see app.js), so there is
   exactly one source of truth for quantity and variation selection. */
.yk-pdp-sticky{
  position:fixed;left:0;right:0;bottom:0;z-index:500;
  background:rgba(255,255,255,.97);
  border-top:1px solid #e6e3da;
  box-shadow:0 -6px 20px rgba(12,15,20,.08);
  transform:translateY(100%);
  transition:transform .25s ease;
  pointer-events:none;
}
.yk-pdp-sticky.is-visible{transform:translateY(0);pointer-events:auto}
.yk-pdp-sticky__inner{
  max-width:var(--yk-maxw);margin:0 auto;padding:12px clamp(16px,4vw,40px);
  display:flex;align-items:center;gap:14px 20px;flex-wrap:wrap;
}
.yk-pdp-sticky__id{display:flex;align-items:center;gap:12px;flex:1 1 220px;min-width:0}
.yk-pdp-sticky__thumb{flex:none;width:44px;height:44px;border:1px solid #e6e3da;border-radius:8px;overflow:hidden;background:#f2efe8}
.yk-pdp-sticky__thumb img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply;display:block}
.yk-pdp-sticky__meta{min-width:0;display:flex;flex-direction:column;gap:2px}
.yk-pdp-sticky__name{font-family:var(--yk-display);font-size:14px;font-weight:700;color:#0c0f14;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px}
.yk-pdp-sticky__variant{font-size:12.5px;color:#7b8199}
.yk-pdp-sticky__price{font-family:var(--yk-display);font-size:13.5px;font-weight:700;color:#1f2b6b}
.yk-pdp-sticky__price .woocommerce-Price-amount{font:inherit;color:inherit}
.yk-pdp-sticky__price del{opacity:.6;font-weight:400;margin-right:4px}
.yk-pdp-sticky__price ins{text-decoration:none}

.yk-pdp-sticky__qty{flex:none;display:flex;align-items:stretch;height:44px;border:1px solid #ded9cd;background:#fff}
.yk-pdp-sticky__qbtn{width:38px;border:0;background:#fff;color:#1f2b6b;font-size:17px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;flex:none;padding:0}
.yk-pdp-sticky__qbtn:hover{background:#f6f4ee}
.yk-pdp-sticky__qval{width:38px;display:flex;align-items:center;justify-content:center;border-left:1px solid #ded9cd;border-right:1px solid #ded9cd;font-weight:700;font-size:15px;color:#0c0f14}

.yk-pdp-sticky__cta{
  flex:1 1 180px;max-width:280px;height:44px;border:none;border-radius:var(--yk-btn-radius,12px);
  background:#1f2b6b;color:#fff!important;font-family:var(--yk-display);font-weight:700;font-size:13px;
  letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:background .15s ease;
}
.yk-pdp-sticky__cta:hover{background:#16204e}
.yk-pdp-sticky__cta.is-disabled{background:#b9bdd4;cursor:not-allowed}

@media(max-width:560px){
  /* Keep qty inline with the thumb/name/price row instead of wrapping to
     its own line — only the CTA drops to a full-width row below.
     flex-basis:auto (tried previously) still wrapped: with white-space:nowrap
     on the name, "auto" resolves to the text's full un-truncated content
     width for the line-wrapping decision itself, BEFORE any shrinking is
     considered — so the browser judged id+qty "didn't fit" even though
     shrinking could have made them fit. flex-basis:0% makes the wrap check
     treat this item's starting size as 0 instead of content-based, so it
     only grows to whatever room qty actually leaves; min-width:0 (already
     set, cascaded down to name/meta) lets it shrink that far, with the
     name's existing overflow:hidden;text-overflow:ellipsis truncating it. */
  .yk-pdp-sticky__inner{gap:10px 12px}
  .yk-pdp-sticky__id{flex:1 1 0%}
  .yk-pdp-sticky__name{max-width:none}
  .yk-pdp-sticky__qty{flex:none}
  .yk-pdp-sticky__qbtn,.yk-pdp-sticky__qval{width:32px}
  .yk-pdp-sticky__cta{flex:1 1 100%;max-width:none;order:3}
}
