/* Split from woocommerce.css for conditional loading - Pursue Life Outdoors */
/* ========================================
   WOOCOMMERCE STYLES - CONSOLIDATED 2025
   Single file following modern best practices
   ======================================== */

/* ========================================
   CSS CUSTOM PROPERTIES - THEME VARIABLES
   ======================================== */

:root {
    /* Thin museum frame — artwork dominant */
    --woo-frame-outer-width: 5px;
    --woo-frame-mat-width: clamp(12px, 5.5%, 22px);
    --woo-frame-mat-width-portrait: clamp(14px, 6%, 24px);
    --woo-frame-border-color: var(--plo-mat, #fff);
    --woo-frame-bg-color: var(--plo-frame, #141816);
    --woo-frame-shadow: var(--plo-shadow-frame);
    
    /* Thumbnail Frame Variables */
    --woo-thumb-frame-padding: 3px;
    --woo-thumb-border-width: 6px;
    --woo-thumb-opacity: 0.7;
    --woo-thumb-opacity-active: 1;
    
    /* Mobile Frame Variables */
    --woo-frame-mobile-mat: 14px;
    --woo-frame-mobile-sm-mat: 12px;
    --woo-frame-mobile-xs-mat: 10px;
    
    /* Color Palette */
    --woo-primary: var(--plo-forest, #3D5C45);
    --woo-primary-hover: var(--deep-green, #1E3328);
    --woo-accent: var(--plo-forest, #3D5C45);
    --woo-accent-hover: var(--deep-green, #1E3328);
}

/* WooCommerce General Styles */
.woocommerce {
    /* General WooCommerce styles */
}

.woocommerce-page {
    /* WooCommerce page specific styles */
}

/* Product Title Spacing */
.product_title.entry-title {
    margin-bottom: 1.5rem !important; /* Better spacing below product title */
}

/* Product page spacing now handled by main container */

/* ========================================
   PRODUCT GALLERY - PICTURE FRAME EFFECT
   Works with WooCommerce default FlexSlider gallery
   ======================================== */

.woocommerce-product-gallery {
    position: relative;
    margin-bottom: 2rem;
}


/* Remove all default spacing - KEY FIX for proper frame rendering */
.woocommerce-product-gallery__image,
.woocommerce-product-gallery__image a,
.woocommerce-product-gallery__wrapper .flex-viewport,
.woocommerce-product-gallery__wrapper .slides,
.woocommerce-product-gallery__wrapper .slides li {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 0 !important; /* KEY: Removes vertical gaps */
}

/* ========================================
   THUMBNAILS - Horizontal Layout
   Override FlexSlider's default vertical layout
   ======================================== */

/* Container - Force horizontal flex layout */
.woocommerce-product-gallery .flex-control-nav.flex-control-thumbs {
    position: relative !important;
    bottom: auto !important;
    left: auto !important;
    right: auto !important;
    width: 100% !important;
    margin: 1rem 0 0 0 !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: 0.5rem !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    line-height: 0 !important;
    list-style: none !important;
    text-align: left !important;
}

/* Horizontal thumbnail gallery */
.woocommerce-product-gallery .flex-control-nav.flex-control-thumbs {
    position: relative !important;
    display: flex !important;
    flex-direction: row !important;  /* HORIZONTAL */
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    gap: 0.5rem !important;
    margin: 1rem 0 0 0 !important;
    padding: 0 !important;
    line-height: 0 !important;
    list-style: none !important;
    -webkit-overflow-scrolling: touch !important; /* Smooth scrolling on iOS */
}

.woocommerce-product-gallery .flex-control-nav.flex-control-thumbs li {
    float: none !important;
    background-color: #000 !important;  /* Black frame */
    padding: 4px !important;
    display: inline-flex !important;
    flex: 0 0 auto !important;
}

.woocommerce-product-gallery .flex-control-nav.flex-control-thumbs li img {
    border: 6px solid white !important;  /* White matte */
    width: 100px !important;
    height: 100px !important;
    object-fit: cover !important;
    opacity: 0.7 !important;
    cursor: pointer !important;
    transition: opacity 0.3s ease !important;
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Hover and active states */
.woocommerce-product-gallery .flex-control-nav.flex-control-thumbs li img:hover,
.woocommerce-product-gallery .flex-control-nav.flex-control-thumbs li img.flex-active {
    opacity: 1 !important;
}

.woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image.flex-active-slide,
.woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image:only-child,
.woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image:first-child {
    background-color: var(--woo-frame-bg-color) !important;
    padding: var(--woo-frame-outer-width) !important;
    box-shadow: var(--woo-frame-shadow) !important;
    position: relative !important;
    overflow: hidden !important; /* Contain hover zoom inside the frame */
}

/* White Mat — modest, artwork-first; clips zoom to the mat window */
.woocommerce-product-gallery__wrapper .plo-mat-wrapper,
.woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image a {
    display: block !important;
    position: relative !important;
    overflow: hidden !important;
    line-height: 0 !important;
    background: var(--plo-mat, #fff);
}

.woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image.flex-active-slide img:not(.zoomImg),
.woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image:only-child img:not(.zoomImg),
.woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image:first-child img:not(.zoomImg),
.woocommerce-product-gallery__wrapper .plo-mat-wrapper img:not(.zoomImg) {
    border: var(--woo-frame-mat-width) solid var(--woo-frame-border-color) !important;
    display: block !important;
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    vertical-align: top !important;
    box-sizing: border-box !important;
}

.woocommerce-product-gallery__wrapper.portrait-image .plo-mat-wrapper img:not(.zoomImg),
.woocommerce-product-gallery__wrapper.portrait-image .woocommerce-product-gallery__image img:not(.zoomImg) {
    border-width: var(--woo-frame-mat-width-portrait) !important;
}

/* Hover zoom stays inside the mat — size comes from plo-product-zoom (~2×), not full upload */
.woocommerce-product-gallery__wrapper .zoomImg {
    z-index: 5 !important;
    border: none !important;
    max-width: none; /* jquery.zoom sets pixel width; do not cap with % */
    pointer-events: none;
}

/* Ensure zoom trigger elements can receive mouse events */
.woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image.flex-active-slide a,
.woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image:only-child a {
    pointer-events: auto !important;
}

/* Remove All Spacing - KEY FIX */
.woocommerce-product-gallery__image,
.woocommerce-product-gallery__image a,
.woocommerce-product-gallery__wrapper .flex-viewport,
.woocommerce-product-gallery__wrapper .slides,
.woocommerce-product-gallery__wrapper .slides li {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 0 !important;  /* KEY: This removes extra spacing */
    border-radius: 0 !important; /* Override style.css rounded corners */
}

.woocommerce-product-gallery__wrapper .flex-viewport {
    border-radius: 0 !important; /* Remove rounded corners from viewport */
    /* Keep default overflow behavior to prevent content overflow */
}

/* Force override FlexSlider inline border-radius only */
.woocommerce-product-gallery .flex-viewport,
.woocommerce-product-gallery__wrapper .flex-viewport,
div.woocommerce-product-gallery div.flex-viewport {
    border-radius: 0 !important;
    -webkit-border-radius: 0 !important;
    -moz-border-radius: 0 !important;
    /* Don't override overflow - keep it hidden to contain content */
}

/* Zoom/Lightbox Trigger */
.woocommerce-product-gallery__trigger {
    z-index: 10;
    position: absolute;
    top: 1rem;
    right: 1rem;
}

/* High DPI Screen Support */
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
    .woocommerce-product-gallery__image img {
        image-rendering: -webkit-optimize-contrast;
    }
}

/* Responsive Frame Adjustments */
@media (max-width: 576px) {
    .woocommerce-product-gallery__wrapper .flex-active-slide,
    .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:first-child {
        padding: var(--woo-frame-outer-width) !important;
    }

    .woocommerce-product-gallery__wrapper .plo-mat-wrapper img:not(.zoomImg),
    .woocommerce-product-gallery__wrapper .flex-active-slide img:not(.zoomImg) {
        border-width: var(--woo-frame-mobile-mat) !important;
        border-style: solid !important;
        border-color: var(--woo-frame-border-color) !important;
        border-radius: 0 !important;
        width: 100%;
    }
}

@media (max-width: 375px) {
    .woocommerce-product-gallery__wrapper .plo-mat-wrapper img:not(.zoomImg),
    .woocommerce-product-gallery__wrapper .flex-active-slide img:not(.zoomImg) {
        border-width: var(--woo-frame-mobile-sm-mat) !important;
    }
}

@media (max-width: 320px) {
    .woocommerce-product-gallery__wrapper .plo-mat-wrapper img:not(.zoomImg),
    .woocommerce-product-gallery__wrapper .flex-active-slide img:not(.zoomImg) {
        border-width: var(--woo-frame-mobile-xs-mat) !important;
    }
}

/* ========================================
   MODERN CART TABLE STYLING - 2025 CART UI BEST PRACTICES
   ======================================== */

/* Display Rating Stars (Read-only) */
.star-rating {
    display: inline-flex;
    align-items: center;
    position: relative;
    font-size: 1rem;
    line-height: 1;
    font-family: 'star';
    letter-spacing: 0.1em;
}

.star-rating::before {
    content: '☆☆☆☆☆';
    color: #dadce0;
    letter-spacing: 0.1em;
}

.star-rating span {
    position: absolute;
    top: 0;
    left: 0;
    overflow: hidden;
    white-space: nowrap;
}

.star-rating span::before {
    content: '★★★★★';
    color: #ffc107;
    letter-spacing: 0.1em;
}

/* Product Rating Display */
.woocommerce-product-rating {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 1rem 0;
}

.woocommerce-product-rating .star-rating {
    margin-right: 0.5rem;
}

.woocommerce-review-link {
    color: #5f6368;
    text-decoration: none;
    font-size: 0.9rem;
}

.woocommerce-review-link:hover {
    color: #202124;
    text-decoration: underline;
}

/* Reviews Section */
#reviews {
    margin-top: 3rem;
    padding-top: 2rem;
    border-top: 2px solid #e9ecef;
}

/* Removed - now handled by consistent tab heading styles above */

/* Individual Review */
.commentlist {
    list-style: none;
    padding: 0;
    margin: 0;
}

.commentlist .comment {
    margin-bottom: 2rem;
    padding: 1.5rem;
    background: #f8f9fa;
    border-radius: 8px;
    border: 1px solid #e9ecef;
}

.commentlist .comment .star-rating {
    margin-bottom: 0.5rem;
}

.commentlist .comment .meta {
    font-size: 0.9rem;
    color: #5f6368;
    margin-bottom: 1rem;
}

.commentlist .comment .description {
    line-height: 1.6;
    color: #202124;
}

/* Review Form */
#review_form_wrapper {
    margin-top: 2rem;
    padding: 2rem;
    background: white;
    border-radius: 8px;
    border: 1px solid #e9ecef;
}

#review_form #reply-title {
    font-size: 1.25rem;
    font-weight: 600;
    color: #202124;
    margin-bottom: 1.5rem;
}

/* Mobile Responsive */
@media (max-width: 768px) {
    .stars a {
        width: 28px;
        height: 28px;
    }
    
    .stars a::before {
        font-size: 24px;
    }
    
    .comment-form-rating {
        padding: 1rem;
    }
    
    #review_form_wrapper {
        padding: 1.5rem;
    }
}

/* ========================================
   PRODUCT TABS & PANELS - LAYOUT FIX
   ======================================== */

/* Consistent heading styles for all tab panels */
.woocommerce-Tabs-panel h2,
.woocommerce-Tabs-panel h3,
.woocommerce-Tabs-panel--reviews h2,
.woocommerce-Tabs-panel--reviews h3,
.woocommerce-Tabs-panel--shipping h2,
.woocommerce-Tabs-panel--shipping h3,
.woocommerce-Tabs-panel--additional_information h2,
.woocommerce-Tabs-panel--additional_information h3,
.woocommerce-Tabs-panel--print_info h2,
.woocommerce-Tabs-panel--print_info h3 {
    font-size: 1.5rem !important;
    font-weight: 600 !important;
    color: #202124 !important;
    margin-bottom: 1.5rem !important;
    line-height: 1.3 !important;
}

/* Prevent layout shift when switching tabs */
.woocommerce-tabs {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    overflow: hidden;
    position: relative;
}

.wc-tabs-wrapper,
.woocommerce-tabs .wc-tabs-wrapper {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    overflow: hidden;
    position: relative;
}

/* Tab Panels Container */
.woocommerce-Tabs-panel,
.woocommerce-tabs .panel {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    float: none !important;
    clear: both !important;
    overflow: hidden !important;
    position: relative !important;
}

/* Reviews Panel Specific */
.woocommerce-Tabs-panel--reviews,
#tab-reviews {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
}

/* Reviews Container */
#reviews {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    margin-top: 3rem;
    padding-top: 2rem;
    border-top: 2px solid #e9ecef;
}

/* Comment List */
#reviews .commentlist {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    list-style: none;
    padding: 0;
    margin: 0;
}

/* Review Form Wrapper */
#review_form_wrapper,
#reviews #review_form_wrapper {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    margin-top: 2rem;
    padding: 2rem;
    background: white;
    border-radius: 8px;
    border: 1px solid #e9ecef;
}

/* Review Form */
#review_form_wrapper #review_form,
#reviews #review_form {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

/* Comment Form Fields */
#review_form_wrapper .comment-form-author,
#review_form_wrapper .comment-form-email,
#review_form_wrapper .comment-form-comment,
#review_form_wrapper .comment-form-rating {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

/* Comment Form Textarea */
#review_form_wrapper textarea,
#review_form_wrapper input[type="text"],
#review_form_wrapper input[type="email"] {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

/* Ensure main product shell uses shared content width */
.single-product .site-main .plo-page-shell,
.single-product .product-content {
    width: 100%;
    max-width: var(--plo-content-max, var(--container-xl));
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
}

.single-product .av-visualizer-button-container,
.single-product .see-in-room-top-wrapper {
    max-width: 100%;
    margin-top: 1.25rem;
    margin-bottom: 1.25rem;
}

/* Product page container */
.single-product .product-page-container {
    width: 100%;
    max-width: var(--plo-content-max, var(--container-xl));
    box-sizing: border-box;
}

/* See In Room Functionality */
.see-in-room-wrapper {
    /* See in room button styles */
} 

/* Responsive padding for cart container */
@media (min-width: 768px) {
    .woocommerce-cart .site-main .container {
        padding-top: var(--spacing-md);
    }
}

@media (min-width: 1024px) {
    .woocommerce-cart .site-main .container {
        padding-top: var(--spacing-lg);
    }
}

@media (min-width: 1200px) {
    .woocommerce-cart .site-main .container {
        padding-top: 2rem;
    }
}

/* Responsive padding for checkout container */
@media (min-width: 768px) {
    .woocommerce-checkout .site-main .container {
        padding-top: var(--spacing-md);
    }
}

@media (min-width: 1024px) {
    .woocommerce-checkout .site-main .container {
        padding-top: var(--spacing-lg);
    }
}

@media (min-width: 1200px) {
    .woocommerce-checkout .site-main .container {
        padding-top: 2rem;
    }
}

/* ========================================
   SINGLE PRODUCT - PAYMENT BUTTONS REORDERING
   Move PayPal and Venmo buttons below Add to Cart button
   ======================================== */

/* Make the cart form a flex container to enable reordering */
.single-product div.product form.cart {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

/* Set default order for all form elements */
.single-product div.product form.cart > * {
    order: 2;
}

/* Quantity input comes first */
.single-product div.product form.cart .quantity {
    order: 1;
}

/* Add to cart button comes second */
.single-product div.product form.cart .single_add_to_cart_button {
    order: 2;
}

/* Payment buttons wrapper - move to after add to cart button */
.single-product div.product form.cart .plo-payment-buttons-wrapper {
    order: 3;
    width: 100%;
    margin-top: 0.5rem;
}

/* PayPal and Venmo buttons come after (order 3+) */
.single-product div.product form.cart .woocommerce-paypal-buttons-container,
.single-product div.product form.cart #wc-paypal-button-container,
.single-product div.product form.cart .paypal-button,
.single-product div.product form.cart [id*="paypal"],
.single-product div.product form.cart [class*="paypal"],
.single-product div.product form.cart #woo_pp_ec_button,
.single-product div.product form.cart .wc-ppcp-funding-source,
.single-product div.product form.cart #ppc-button,
.single-product div.product form.cart .ppcp-messages {
    order: 3;
    width: 100%;
}

/* Hidden inputs and variation ID should not affect layout */
.single-product div.product form.cart input[type="hidden"] {
    order: 999;
    width: auto;
}

/* For variable products - maintain structure */
.single-product div.product form.cart .variations_button {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    width: 100%;
    order: 2;
}

/* Payment buttons wrapper inside variations_button */
.single-product div.product form.cart .variations_button .plo-payment-buttons-wrapper {
    order: 3;
    width: 100%;
    margin-top: 0.5rem;
}

/* PayPal buttons inside variations_button wrapper */
.single-product div.product form.cart .variations_button > .woocommerce-paypal-buttons-container,
.single-product div.product form.cart .variations_button > [id*="paypal"],
.single-product div.product form.cart .variations_button > [class*="paypal"],
.single-product div.product form.cart .variations_button .wc-ppcp-funding-source,
.single-product div.product form.cart .variations_button #ppc-button {
    order: 3;
    width: 100%;
}

/* Quantity and button within variations_button */
.single-product div.product form.cart .variations_button .quantity {
    order: 1;
}

.single-product div.product form.cart .variations_button .single_add_to_cart_button {
    order: 2;
}

/* Google Pay / Stripe payment buttons positioning */
.single-product div.product #wc-stripe-payment-request-wrapper,
.single-product div.product .wc-stripe-payment-request-button-wrapper {
    order: 4;
    width: 100%;
    margin-top: 0.5rem;
}

/* Ensure payment buttons appear after the form as well */
.single-product div.product form.cart ~ #wc-stripe-payment-request-wrapper,
.single-product div.product form.cart ~ [id*="paypal"],
.single-product div.product form.cart ~ [class*="paypal"] {
    margin-top: 1rem;
}

/* Mobile responsive adjustments for payment buttons */
@media screen and (max-width: 767px) {
    /* Ensure payment buttons wrapper is full width on mobile */
    .single-product div.product form.cart .plo-payment-buttons-wrapper {
        width: 100%;
        order: 3;
    }
    
    /* Ensure variations button wrapper maintains proper structure */
    .single-product div.product form.cart .variations_button {
        width: 100%;
    }
    
    /* Mobile-specific payment button styling */
    .single-product div.product form.cart .plo-payment-buttons-wrapper > *,
    .single-product div.product form.cart .variations_button .plo-payment-buttons-wrapper > * {
        width: 100%;
    }
}
/* Sticky mobile purchase bar */
.plo-sticky-purchase { display: none; }
.product-print-meta { margin: 0.75rem 0 1rem; font-size: 0.95rem; color: #444; }
.product-print-meta p { margin: 0.25rem 0; }
.product-photographer-link { margin-top: 1.25rem; }
.product-photographer-link a { color: #104911; font-weight: 600; }
@media screen and (max-width: 767px) {
  .plo-sticky-purchase:not([hidden]) {
    display: flex;
    position: fixed;
    left: 0; right: 0; bottom: 0;
    z-index: 1000;
    padding: 0.75rem 1rem;
    background: rgba(16, 73, 17, 0.97);
    box-shadow: 0 -2px 12px rgba(0,0,0,0.2);
  }
  .plo-sticky-purchase__btn {
    display: block; width: 100%; text-align: center;
    padding: 0.85rem 1rem; background: #548C2F; color: #fff !important;
    font-weight: 600; text-decoration: none; border-radius: 2px;
  }
}

/* ===== PDP landscape CTAs + related wall ===== */
.single-product .product_title.entry-title {
  font-family: var(--display-font) !important;
  font-weight: 600 !important;
  letter-spacing: -0.02em !important;
  color: var(--plo-ink) !important;
}
.single-product .product-price-section .price {
  color: var(--plo-ink) !important;
  font-family: var(--ui-font) !important;
  font-weight: 600 !important;
}
.single-product .single_add_to_cart_button,
.single-product .plo-sticky-purchase__btn {
  background: var(--plo-amber, #C4892A) !important;
  border-color: var(--plo-amber) !important;
  color: #1A1F1A !important;
  border-radius: 4px !important;
  font-family: var(--ui-font) !important;
  font-weight: 600 !important;
  text-transform: none !important;
}
.single-product .av-visualizer-button,
.single-product .see-in-room-top-wrapper a,
.single-product .plo-viz-button {
  border: 1px solid var(--plo-forest) !important;
  color: var(--plo-forest) !important;
  background: transparent !important;
  border-radius: 4px !important;
  font-family: var(--ui-font) !important;
}
.related.products ul.products,
.recently-viewed-products ul.products {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 1.75rem !important;
  list-style: none !important;
}
.related.products ul.products li.product,
.recently-viewed-products ul.products li.product {
  width: 100% !important;
  float: none !important;
  margin: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}
.related.products .price,
.related.products .button,
.recently-viewed-products .price,
.recently-viewed-products .button { display: none !important; }
.related.products > h2,
.recently-viewed-products > h2 {
  font-family: var(--display-font) !important;
  font-weight: 600 !important;
  color: var(--plo-ink) !important;
}
@media (max-width: 768px) {
  .related.products ul.products,
  .recently-viewed-products ul.products {
    grid-template-columns: 1fr 1fr !important;
  }
}

/* =========================================================
   PDP CONVERSION LAYOUT (landscape gallery + buy close)
   ========================================================= */

.single-product .plo-page-shell {
  max-width: var(--plo-content-max, 1320px);
  margin: 0 auto;
  padding: 0 1.25rem 3rem;
  box-sizing: border-box;
}

.single-product div.product.plo-pdp,
.single-product div.product {
  display: grid !important;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr) !important;
  gap: 2rem 2.75rem !important;
  align-items: start !important;
  margin: 0 0 2.5rem !important;
  width: 100% !important;
  float: none !important;
}

.single-product .plo-pdp__gallery {
  position: sticky;
  top: 5.5rem;
  align-self: start;
  width: 100%;
  min-width: 0;
}

.single-product .plo-pdp__buy.summary,
.single-product .product-details.summary {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.85rem !important;
  width: 100% !important;
  min-width: 0;
  padding: 0 !important;
  margin: 0 !important;
  float: none !important;
}

.single-product .plo-pdp__buy .product_title {
  font-size: clamp(1.5rem, 2.4vw, 2.1rem) !important;
  line-height: 1.2 !important;
  margin: 0 !important;
}

.single-product .plo-pdp__excerpt {
  font-family: var(--body-font);
  font-size: 1rem;
  line-height: 1.65;
  color: var(--plo-ink-muted, #5A645A);
  max-width: 38rem;
}

.single-product .plo-pdp__excerpt p { margin: 0; }

.single-product .plo-pdp__price .price {
  font-size: 1.35rem !important;
  margin: 0 !important;
}

.single-product .plo-pdp__badges {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 0.85rem;
  font-family: var(--ui-font);
  font-size: 0.8125rem;
  color: var(--plo-ink-muted);
}

.single-product .plo-pdp__cart form.cart {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: stretch;
  margin: 0.25rem 0 0;
}

.single-product .plo-pdp__cart .variations,
.single-product .plo-pdp__cart .woocommerce-variation-add-to-cart,
.single-product .plo-pdp__cart .variations_button {
  width: 100%;
  order: 1;
}

.single-product .plo-pdp__cart .quantity { order: 2; flex: 0 0 auto; }

.single-product .plo-pdp__cart .single_add_to_cart_button {
  order: 3;
  flex: 1 1 12rem;
  min-height: 3rem;
  padding: 0.85rem 1.25rem !important;
  font-size: 1rem !important;
}

.single-product .plo-express-checkout {
  order: 20;
  width: 100%;
  flex: 0 0 100%;
  margin-top: 0.35rem;
  padding-top: 0.85rem;
  border-top: 1px solid rgba(61, 92, 69, 0.12);
}

.single-product .plo-pdp__cart .variations {
  width: 100%;
  margin: 0 0 0.5rem;
}

.single-product .plo-pdp__cart .variations td,
.single-product .plo-pdp__cart .variations th {
  padding: 0.35rem 0;
  border: 0;
  vertical-align: middle;
}

.single-product .plo-pdp__cart .variations select {
  width: 100%;
  min-height: 2.75rem;
  border: 1px solid rgba(61, 92, 69, 0.28);
  border-radius: 4px;
  font-family: var(--ui-font);
  padding: 0.55rem 0.75rem;
  background: #fff;
}

.single-product .plo-express-checkout.is-empty { display: none !important; }

.single-product .plo-express-checkout__label {
  margin: 0 0 0.5rem;
  font-family: var(--ui-font);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--plo-ink-muted);
}

.single-product .plo-pdp__trust {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.single-product .plo-pdp__trust-line,
.single-product .plo-pdp__stock {
  margin: 0;
  font-family: var(--ui-font);
  font-size: 0.875rem;
  color: var(--plo-ink-muted);
}

.single-product .plo-pdp__stock.in-stock { color: var(--plo-forest); }

.single-product .av-visualizer-button-container,
.single-product .see-in-room-top-wrapper,
.single-product .see-in-room-wrapper {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0.85rem 0 0 !important;
}

.single-product .visualize-prompt { display: none !important; }

.single-product .plo-viz-cta { margin: 0.85rem 0 0; }

.single-product .plo-viz-button.av-visualizer-button {
  width: 100%;
  min-width: 0;
  max-width: none;
  padding: 0.7rem 1rem !important;
  text-transform: none !important;
  letter-spacing: 0.02em !important;
  font-weight: 600 !important;
  box-shadow: none !important;
  transform: none !important;
  animation: none !important;
  border: 1px solid var(--plo-forest) !important;
  color: var(--plo-forest) !important;
  background: transparent !important;
}

.single-product .plo-viz-button.av-visualizer-button::after { display: none !important; }

.single-product .plo-viz-button.av-visualizer-button:hover,
.single-product .plo-viz-button.av-visualizer-button:focus {
  background: rgba(61, 92, 69, 0.08) !important;
  color: var(--deep-green, #1E3328) !important;
  transform: none !important;
  box-shadow: none !important;
}

.single-product .plo-pdp__details { margin: 0 0 3rem; }

.single-product .plo-accordion {
  border-top: 1px solid rgba(61, 92, 69, 0.15);
}

.single-product .plo-accordion__item {
  border-bottom: 1px solid rgba(61, 92, 69, 0.15);
}

.single-product .plo-accordion__summary {
  cursor: pointer;
  list-style: none;
  font-family: var(--display-font);
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--plo-ink);
  padding: 1rem 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.single-product .plo-accordion__summary::-webkit-details-marker { display: none; }

.single-product .plo-accordion__summary::after {
  content: "+";
  font-family: var(--ui-font);
  color: var(--plo-forest);
}

.single-product .plo-accordion__item[open] .plo-accordion__summary::after { content: "–"; }

.single-product .plo-accordion__panel {
  padding: 0 0 1.25rem;
  font-family: var(--body-font);
  color: var(--plo-ink);
  line-height: 1.7;
  max-width: none;
  width: 100%;
}

.single-product .plo-pdp__wall {
  display: flex;
  flex-direction: column;
  gap: 3rem;
}

.single-product .related.products,
.single-product .recently-viewed-products {
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.single-product .related.products ul.products,
.single-product .recently-viewed-products ul.products {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

.single-product .woocommerce-tabs,
.single-product .product-tabs-wrapper .wc-tabs-wrapper {
  display: none !important;
}

@media (max-width: 960px) {
  .single-product div.product.plo-pdp,
  .single-product div.product {
    grid-template-columns: 1fr !important;
    gap: 1.5rem !important;
  }

  .single-product .plo-pdp__gallery {
    position: relative;
    top: auto;
  }

  .single-product .related.products ul.products,
  .single-product .recently-viewed-products ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 767px) {
  .single-product .plo-page-shell { padding-bottom: 5rem; }
}
