/* ===================================================================
   Madame Ginger 5 — single product (product.html)
   WooCommerce gallery (flexslider / zoom / PhotoSwipe), summary, add to
   cart (simple, variable, grouped, YITH add-ons / pre-order), tabs, related.
   =================================================================== */

.single-product .crumb{margin-bottom:34px;}

/* ---- layout ---- */
.product-layout{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:60px; align-items:start;}
.product-layout > *{min-width:0;}

/* ---- gallery ---- */
.product-gallery{position:relative;}
.product-gallery .onsale{position:absolute; top:10px; left:104px; z-index:5; font-family:var(--font-mono); font-size:10.5px; font-weight:700; color:#fff; background:var(--orange); padding:5px 9px;}
.product-gallery:not(:has(.flex-control-thumbs)) .onsale{left:10px;}

.woocommerce-product-gallery{position:relative; display:grid; grid-template-columns:auto minmax(0,1fr); align-items:start; margin:0;}
.woocommerce-product-gallery .flex-viewport,
.woocommerce-product-gallery > .woocommerce-product-gallery__wrapper{grid-column:2; grid-row:1; border:1.5px solid var(--line-soft); background:var(--cream);}
.woocommerce-product-gallery__wrapper{margin:0; padding:0;}
.woocommerce-product-gallery__image{position:relative; aspect-ratio:3/4; background:var(--cream);}
.woocommerce-product-gallery__image > a{display:block; width:100%; height:100%;}
.woocommerce-product-gallery__image img,
.woocommerce-product-gallery__image--placeholder img{display:block; width:100%; height:100%; object-fit:contain;}
.woocommerce-product-gallery__image--placeholder{aspect-ratio:3/4;}

.woocommerce-product-gallery .flex-control-thumbs{grid-column:1; grid-row:1; display:flex; flex-direction:column; gap:12px; width:78px; margin:0 16px 0 0; padding:0; list-style:none; max-height:calc(78px * 4 / 3 * 6 + 60px); overflow-y:auto; scrollbar-width:none;}
.woocommerce-product-gallery .flex-control-thumbs::-webkit-scrollbar{display:none;}
.woocommerce-product-gallery .flex-control-thumbs li{flex:0 0 auto; width:78px; aspect-ratio:3/4; border:1.5px solid var(--line-soft); overflow:hidden; background:var(--paper); cursor:pointer; transition:border-color .15s ease;}
.woocommerce-product-gallery .flex-control-thumbs li:has(img.flex-active){border-color:var(--ink);}
.woocommerce-product-gallery .flex-control-thumbs img{width:100%; height:100%; object-fit:cover; opacity:.65; transition:opacity .15s ease;}
.woocommerce-product-gallery .flex-control-thumbs img:hover,
.woocommerce-product-gallery .flex-control-thumbs img.flex-active{opacity:1;}

.woocommerce-product-gallery__trigger{position:absolute; top:10px; right:10px; z-index:9; width:36px; height:36px; display:flex; align-items:center; justify-content:center; background:var(--paper); border:1.5px solid var(--ink); font-size:0; line-height:0;}
.woocommerce-product-gallery__trigger::before{content:""; width:11px; height:11px; border:2px solid var(--ink); border-radius:50% !important; transform:translate(-2px,-2px);}
.woocommerce-product-gallery__trigger::after{content:""; position:absolute; width:2px; height:7px; background:var(--ink); transform:translate(5px,5px) rotate(-45deg);}
.woocommerce-product-gallery__trigger:hover{background:var(--gold);}

/* ---- summary ---- */
.product-info{padding-top:4px;}
.product-info .brand-mark{display:flex; align-items:center; gap:8px; margin-bottom:14px;}
.product-info .brand-mark img{height:15px; width:auto;}
.product-info .brand-mark span{font-family:var(--font-mono); font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.05em; color:rgba(27,23,18,.6);}
.product-info .brand-mark a:hover{color:var(--ink); text-decoration:underline;}
.product-info .product_title{font-family:var(--font-display); font-size:36px; font-weight:700; line-height:1.14; margin-bottom:10px;}
.product-info .subtitle{font-size:16px; line-height:1.5; opacity:.62; max-width:44ch; margin-bottom:20px;}
.product-info .woocommerce-product-rating{display:flex; align-items:center; gap:10px; margin-bottom:16px;}
.product-info .woocommerce-review-link{font-family:var(--font-mono); font-size:11px; font-weight:600; text-transform:uppercase; opacity:.6;}
.product-info > .price{display:flex; align-items:baseline; flex-wrap:wrap; gap:4px 10px; font-size:24px; margin-bottom:22px;}
.product-info .price del{font-size:15px;}

.product-info .stock{display:inline-flex; align-items:center; gap:7px; font-family:var(--font-mono); font-size:11.5px; font-weight:600; text-transform:uppercase; letter-spacing:.03em; color:var(--green); margin:0 0 22px;}
.product-info .stock::before{content:""; width:7px; height:7px; background:currentColor; display:block; border-radius:50% !important;}
.product-info .stock.out-of-stock{color:var(--orange);}
.product-info .stock.available-on-backorder{color:var(--gold-deep);}

.product-info .woocommerce-product-details__short-description{font-size:15.5px; line-height:1.65; color:rgba(27,23,18,.78); max-width:52ch; margin-bottom:26px;}
.product-info .woocommerce-product-details__short-description > * + *{margin-top:.8em;}
.product-info .woocommerce-product-details__short-description a{text-decoration:underline; text-underline-offset:2px;}

/* add to cart row */
.product-info form.cart{display:flex; flex-wrap:wrap; align-items:stretch; gap:14px; margin-bottom:22px;}
.product-info form.cart > *{flex:1 1 100%; min-width:0;}
.product-info form.cart > .quantity,
.product-info .woocommerce-variation-add-to-cart > .quantity{flex:0 0 auto;}
.product-info form.cart > .single_add_to_cart_button,
.product-info .woocommerce-variation-add-to-cart > .single_add_to_cart_button{flex:1 1 200px; align-self:stretch; min-height:50px;}
.product-info .single_add_to_cart_button::after{content:"→";}
.product-info .single_add_to_cart_button.is-added::after{content:"✓";}
.product-info .single_add_to_cart_button.disabled{opacity:.4; cursor:not-allowed; transform:none; box-shadow:4px 4px 0 var(--line);}

/* variations */
.product-info table.variations{width:100%; border-collapse:collapse; margin:0;}
.product-info table.variations tbody,.product-info table.variations tr{display:block;}
.product-info table.variations tr{margin-bottom:18px;}
.product-info table.variations :is(th,td){display:block; padding:0; text-align:left; border:0;}
.product-info table.variations th.label label{display:block; font-family:var(--font-mono); font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; margin-bottom:10px;}
.product-info table.variations td.value select{max-width:100%;}
.product-info .reset_variations{display:inline-block; margin-top:10px; font-family:var(--font-mono); font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.03em; color:var(--orange);}
.product-info .single_variation_wrap{display:flex; flex-direction:column; gap:14px;}
.product-info .woocommerce-variation:empty{display:none;}
.product-info .woocommerce-variation-price .price{display:block; font-size:20px;}
.product-info .woocommerce-variation-description{font-size:14px; opacity:.75;}
.product-info .woocommerce-variation-availability .stock{margin:0;}
.product-info .woocommerce-variation-add-to-cart{display:flex; flex-wrap:wrap; align-items:stretch; gap:14px;}
.product-info .woocommerce-variation-add-to-cart > *{flex:1 1 100%;}

/* grouped */
.product-info table.group_table{width:100%; border-collapse:collapse; border-top:2px solid var(--ink);}
.product-info table.group_table td{padding:12px 8px; border-bottom:1px solid var(--line-soft); vertical-align:middle; font-size:14px;}
.product-info table.group_table .quantity input.qty{min-height:38px; width:44px;}
.product-info table.group_table .qty-step{width:32px;}
.product-info table.group_table label a{font-weight:700;}

/* YITH WooCommerce Product Add-ons & generic extra fields inside the cart form */
.product-info form.cart :is(.yith-wapo-block,#yith-wapo-container,.yith-wapo-addon,.wapo-block){flex-basis:100%;}
.product-info form.cart .yith-wapo-addon{margin-bottom:22px; padding:0; border:0;}
.product-info form.cart :is(.wapo-addon-title,.yith-wapo-addon .addon-header :is(h2,h3,h4,h5),.yith-wapo-addon > label){display:block; font-family:var(--font-mono); font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; margin:0 0 10px;}
.product-info form.cart :is(input[type="text"],input[type="email"],input[type="tel"],input[type="url"],input[type="date"],input[type="number"]:not(.qty),textarea,select){width:100%; border:1.5px solid var(--ink); background:var(--paper); padding:13px 14px; font-family:var(--font); font-size:14.5px; color:var(--ink); border-radius:0;}
.product-info form.cart :is(input[type="checkbox"],input[type="radio"]){width:17px; height:17px; accent-color:var(--ink);}
.product-info form.cart .yith-wapo-option{display:flex; flex-wrap:wrap; align-items:center; gap:8px 10px; margin-bottom:8px;}
.product-info form.cart .yith-wapo-option label{font-size:14px; font-weight:600; text-transform:none; letter-spacing:0; font-family:var(--font);}
.product-info form.cart :is(.yith-wapo-option .option-price,.yith-wapo-addon .option-price){font-family:var(--font-mono); font-size:12.5px; font-weight:600; opacity:.7;}
.product-info form.cart :is(.addon-description,.option-description,.description,.max-length){font-size:12px; opacity:.55; margin-top:7px;}
.product-info form.cart .yith-wapo-option.selected{box-shadow:none;}
.product-info form.cart :is(#wapo-total-price-table,.wapo-total-price-table){width:100%; margin:4px 0; font-family:var(--font-mono); font-size:13px; border-collapse:collapse;}
.product-info form.cart :is(#wapo-total-price-table,.wapo-total-price-table) :is(th,td){padding:6px 0; border-bottom:1px solid var(--line-soft); text-align:left;}
.product-info form.cart :is(#wapo-total-price-table,.wapo-total-price-table) td{text-align:right;}

/* YITH Pre-Order */
.product-info :is(.ywpo-availability-date,.ywpo_availability_date,.pre_order_single,.ywpo-pre-order-label){display:block; font-family:var(--font-mono); font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; color:var(--lavender-deep); background:var(--lavender-soft); padding:10px 14px; margin:0 0 18px;}

/* sample PDF (v4 pdf_book) */
.product-info .mg-sample-pdf{margin:0 0 26px; gap:10px;}
.product-info .mg-sample-pdf img{width:18px; height:18px;}

/* meta */
.product_meta{display:flex; flex-direction:column; border-top:1px solid var(--line-soft); padding-top:18px; margin-top:4px;}
.product_meta > span{display:block; padding:6px 0; font-size:13px; line-height:1.5;}
.product_meta > span::first-line{font-family:var(--font-mono);}
.product_meta a{text-decoration:underline; text-underline-offset:2px; color:rgba(27,23,18,.8);}
.product_meta a:hover{color:var(--orange);}

/* ---- tabs ---- */
.woocommerce-tabs{margin-top:70px; border-top:2px solid var(--gold); padding-top:26px;}
.woocommerce-tabs ul.tabs{display:flex; gap:36px; margin:0 0 30px; padding:0; list-style:none; overflow-x:auto; scrollbar-width:none;}
.woocommerce-tabs ul.tabs::-webkit-scrollbar{display:none;}
.woocommerce-tabs ul.tabs li{flex:0 0 auto; margin:0;}
.woocommerce-tabs ul.tabs li a{display:block; font-family:var(--font-mono); font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; white-space:nowrap; padding-bottom:10px; color:rgba(27,23,18,.4); border-bottom:2px solid transparent;}
.woocommerce-tabs ul.tabs li a:hover{color:var(--ink);}
.woocommerce-tabs ul.tabs li.active a{color:var(--ink); border-bottom-color:var(--orange);}
.woocommerce-tabs .panel{max-width:74ch; font-size:15.5px; line-height:1.72;}
.woocommerce-tabs .panel > p{color:rgba(27,23,18,.8);}
.woocommerce-tabs .panel h3{font-size:20px;}
.woocommerce-tabs .panel blockquote{border-left:2px solid var(--orange); padding-left:18px; font-family:var(--font); font-style:italic; font-weight:500; font-size:15px; line-height:1.65; opacity:.8;}
.woocommerce-tabs .panel table{border-collapse:collapse;}

/* spec tables: additional information + tables in the description */
.woocommerce-product-attributes,.woocommerce-tabs .panel table{width:100%; margin-top:6px;}
.woocommerce-product-attributes tr,.woocommerce-tabs .panel table tr{border-top:1px solid var(--line-soft);}
.woocommerce-product-attributes tr:first-child,.woocommerce-tabs .panel table tr:first-child{border-top:none;}
.woocommerce-product-attributes :is(th,td),.woocommerce-tabs .panel table :is(th,td){padding:12px 0; font-size:14px; text-align:left; border:0; vertical-align:top;}
.woocommerce-product-attributes th,.woocommerce-tabs .panel table td:first-child{width:180px; font-family:var(--font-mono); font-weight:600; text-transform:uppercase; font-size:11px; color:rgba(27,23,18,.5); padding-right:16px;}
.woocommerce-product-attributes td p{margin:0;}

/* reviews */
#reviews .woocommerce-Reviews-title,#reviews #reply-title{font-family:var(--font-display); font-size:20px; font-weight:700; margin:0 0 18px;}
#reviews .commentlist{list-style:none; margin:0 0 30px; padding:0;}
#reviews .commentlist li::before{display:none;}
#reviews .comment_container{display:flex; gap:14px; padding:16px 0; border-top:1px solid var(--line-soft);}
#reviews .comment_container img.avatar{width:48px; height:48px; flex-shrink:0;}
#reviews .comment-text{flex:1; min-width:0;}
#reviews .comment-text .meta{font-family:var(--font-mono); font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.03em; opacity:.6; margin:6px 0;}
#reviews .comment-text .description p{font-size:14.5px; margin:0;}
#reviews .comment-form-rating label{display:block; font-family:var(--font-mono); font-size:11.5px; font-weight:700; text-transform:uppercase; margin-bottom:6px;}
#reviews .comment-form label{display:block; font-family:var(--font-mono); font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; margin-bottom:8px;}
#reviews .comment-form > p{margin:0 0 16px;}
#reviews .comment-form-cookies-consent{display:flex; gap:10px; align-items:flex-start;}
#reviews .comment-form-cookies-consent label{text-transform:none; font-family:var(--font); font-size:13px; font-weight:500; letter-spacing:0;}

/* ---- related / up-sells ---- */
.mg-product > .sec{margin-top:60px;}
.mg-product > .sec .sec-badge{font-size:24px;}

@media (max-width:1080px){
  .product-layout{grid-template-columns:minmax(0,1fr); gap:36px;}
}

@media (max-width:640px){
  .single-product .crumb{gap:5px; margin-bottom:22px; font-size:10px;}

  .woocommerce-product-gallery{grid-template-columns:minmax(0,1fr);}
  .woocommerce-product-gallery .flex-viewport,
  .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper{grid-column:1;}
  .woocommerce-product-gallery .flex-control-thumbs{grid-column:1; grid-row:2; flex-direction:row; width:auto; max-height:none; margin:12px 0 0; gap:10px; overflow-x:auto; overflow-y:hidden;}
  .woocommerce-product-gallery .flex-control-thumbs li{width:60px;}
  .product-gallery .onsale{left:10px;}

  .product-info{padding-top:10px;}
  .product-info .product_title{font-size:26px;}
  .product-info .subtitle{font-size:14.5px; max-width:none;}
  .product-info > .price{font-size:21px;}
  .product-info .woocommerce-product-details__short-description{font-size:14.5px; max-width:none;}

  .product-info form.cart > .single_add_to_cart_button,
  .product-info .woocommerce-variation-add-to-cart > .single_add_to_cart_button{flex-basis:100%;}

  .woocommerce-tabs{margin-top:44px; padding-top:20px;}
  .woocommerce-tabs ul.tabs{gap:22px; margin-bottom:22px;}
  .woocommerce-tabs ul.tabs li a{font-size:12px;}
  .woocommerce-product-attributes th,.woocommerce-tabs .panel table td:first-child{width:120px;}

  .mg-product > .sec{margin-top:40px; padding-top:20px;}
  .mg-product > .sec .sec-badge{font-size:19px;}
}
