/* ========================================
   OA TFP Product Mods - Main Stylesheet
   ======================================== */

/* ========================================
   PRODUCT BANNER STYLES
   ======================================== */

   .oa-tfp-product-features{
    margin-top:40px !important;
}

.oa-tfp-product-features h3{
    padding-left: 27px;
    padding-top: 11px;
    text-transform: uppercase;
}

   .oa-tfp-product-banner h1.entry-title {
    margin-bottom: 0;
    font-weight: 400;
}

.oa-tfp-product-banner h1.entry-title b {
    font-weight: 500;
}

.oa-tfp-product-banner img {
    width: 100% !important;
    max-width: 100% !important;
}

.oa-tfp-product-banner .site-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    min-height: 200px;
    padding-bottom: 0 !important;
}

.single-product #content {
    padding-top: 40px;
}

.oa-tfp-product-banner-title {
    font-size: 2.5rem;
    margin-bottom: 0.5em;
    color: #222;
}

.oa-tfp-product-banner-desc {
    max-width: 900px;
    margin-top: 20px;
    font-size: 17px;
}

/* Banner states */
.oa-tfp-product-banner:not(.has-banner) .site-content {
    padding-top: 173px;
}

.oa-tfp-product-banner.has-subtitle .site-content {
    padding-bottom: 40px !important;
}

.oa-tfp-product-banner:not(.has-new-title) .site-content h1 {
    font-weight: 500;
}

.oa-tfp-product-banner-img {
    display: block;
    width: 100%;
    min-height: 200px;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: bottom center;
    margin-bottom: 0;
}

.oa-tfp-banner-container {
    margin-bottom: 10px;
}

/* ========================================
   PRODUCT GALLERY STYLES
   ======================================== */

/* ========================================
   THUMBNAIL GALLERY MODE - MAIN IMAGE SQUARE
   ======================================== */

/* Make main product image square when thumbnail gallery mode is active */
.woocommerce-product-gallery.oa-tfp-thumbnail-mode .woocommerce-product-gallery__wrapper {
    position: relative !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
    /* Use padding-bottom technique for square (100% = 1:1 ratio) */
    padding-bottom: 100% !important;
    height: 0 !important;
}

/* Modern browsers - use aspect-ratio if supported */
@supports (aspect-ratio: 1 / 1) {
    .woocommerce-product-gallery.oa-tfp-thumbnail-mode .woocommerce-product-gallery__wrapper {
        aspect-ratio: 1 / 1 !important;
        padding-bottom: 0 !important;
        height: auto !important;
    }
}

.woocommerce-product-gallery.oa-tfp-thumbnail-mode .woocommerce-product-gallery__image:first {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    overflow: hidden !important;
    padding: 0 !important;
    margin: 0 !important;
}

.woocommerce-product-gallery.oa-tfp-thumbnail-mode .woocommerce-product-gallery__image:first a {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    position: relative !important;
    overflow: hidden !important;
}

.woocommerce-product-gallery.oa-tfp-thumbnail-mode .woocommerce-product-gallery__image:first img,
.woocommerce-product-gallery.oa-tfp-thumbnail-mode .woocommerce-product-gallery__image:first .wp-post-image {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
    display: block !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    min-width: 100% !important;
    min-height: 100% !important;
}

/* ========================================
   THUMBNAIL GALLERY MODE
   ======================================== */

.oa-tfp-thumbnail-gallery-wrapper {
    position: relative;
    margin-top: 15px;
    padding-top: 15px;
    padding-left: 40px;
    padding-right: 40px;
    border-top: 1px solid #e0e0e0;
    width: 100%;
    box-sizing: border-box;
}

.oa-tfp-thumbnail-gallery {
    display: flex;
    flex-wrap: nowrap;
    gap: 10px;
    overflow: hidden;
    position: relative;
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    box-sizing: border-box;
}

.oa-tfp-thumbnail-gallery-container {
    display: flex;
    flex-wrap: nowrap;
    gap: 10px;
    transition: transform 0.3s ease;
    will-change: transform;
}

.oa-tfp-thumbnail-item {
    flex: 0 0 auto;
    width: calc((100% - 30px) / 4);
    aspect-ratio: 1 / 1;
    cursor: pointer;
    border: 2px solid transparent;
    border-radius: 4px;
    overflow: hidden;
    transition: all 0.2s ease;
    opacity: 0.7;
    box-sizing: border-box;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

.oa-tfp-thumbnail-item:hover {
    opacity: 1;
    border-color: #ccc;
}

.oa-tfp-thumbnail-item.active {
    opacity: 1;
    border-color: #222;
}

.oa-tfp-thumbnail-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    min-width: 100%;
    min-height: 100%;
}

/* Thumbnail navigation arrows */
.oa-tfp-thumbnail-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    width: 35px;
    height: 35px;
    display: flex !important;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.95);
    border: 1px solid #e0e0e0;
    border-radius: 50%;
    cursor: pointer;
    transition: all 0.2s ease;
    opacity: 0.9;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    padding: 0;
    margin: 0;
}

.oa-tfp-thumbnail-nav:hover {
    opacity: 1;
    background: rgba(255, 255, 255, 1);
    border-color: #222;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
}

.oa-tfp-thumbnail-nav.prev {
    left: 0;
}

.oa-tfp-thumbnail-nav.next {
    right: 0;
}

.oa-tfp-thumbnail-nav.disabled {
    opacity: 0.3;
    cursor: not-allowed;
    pointer-events: none;
}

.oa-tfp-thumbnail-nav svg {
    width: 20px;
    height: 20px;
    stroke: rgb(0, 0, 0);
    stroke-width: 2;
}

/* Responsive thumbnail gallery */
@media (max-width: 768px) {
    .oa-tfp-thumbnail-gallery-wrapper {
        padding-left: 35px;
        padding-right: 35px;
    }
    
    .oa-tfp-thumbnail-gallery {
        gap: 8px;
    }
    
    .oa-tfp-thumbnail-nav {
        width: 30px;
        height: 30px;
    }
    
    .oa-tfp-thumbnail-nav.prev {
        left: 0;
    }
    
    .oa-tfp-thumbnail-nav.next {
        right: 0;
    }
}

.oa-tfp-product-gallery-wrapper {
    position: relative;
    width: 100%;
}

.oa-tfp-product-gallery-wrapper.oa-tfp-gallery-scrollable {
    padding: 0 50px;
}

.oa-tfp-product-gallery {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    width: 100%;
}

.oa-tfp-product-gallery.oa-tfp-gallery-scroller {
    flex-wrap: nowrap;
    overflow: hidden;
    transition: transform 0.3s ease;
}

.oa-tfp-product-gallery-item {
    flex: 1 1 0;
    min-width: 0;
    max-width: calc(33.333% - 10.67px);
    aspect-ratio: 13/9;
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: stretch;
    box-sizing: border-box;
}

.oa-tfp-product-gallery.oa-tfp-gallery-scroller .oa-tfp-product-gallery-item {
    flex: 0 0 calc(33.333% - 13.33px);
    max-width: calc(33.333% - 13.33px);
    min-width: calc(33.333% - 13.33px);
}

.oa-tfp-product-gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 0;
    display: block;
}

/* Gallery Navigation Arrows */
.oa-tfp-gallery-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid #ddd;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 10;
    transition: all 0.3s ease;
    padding: 0;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.oa-tfp-gallery-nav:hover {
    background: rgba(255, 255, 255, 1);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.oa-tfp-gallery-nav:disabled,
.oa-tfp-gallery-nav[style*="pointer-events: none"] {
    opacity: 0.3;
    cursor: not-allowed;
}

.oa-tfp-gallery-prev {
    left: 0;
}

.oa-tfp-gallery-next {
    right: 0;
}

.oa-tfp-gallery-nav svg {
    width: 20px;
    height: 20px;
    stroke: #333;
}

/* Variation No Photo Notice */
.oa-tfp-no-variation-photo {
    margin-bottom: 15px;
    padding: 10px 15px;
    background-color: #f7f6f4;
    color: #666;
    font-size: 14px;
    text-align: center;
    border: 1px solid #e0e0e0;
    border-radius: 4px;
}

/* ========================================
   PRODUCT GALLERY SLIDER NAVIGATION
   (For products with static images)
   ======================================== */

/* Show navigation arrows for gallery slider */
.woocommerce-product-gallery .flex-direction-nav,
.woocommerce-product-gallery.flexslider .flex-direction-nav {
    display: block !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 10;
}

.woocommerce-product-gallery .flex-direction-nav li,
.woocommerce-product-gallery.flexslider .flex-direction-nav li {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.woocommerce-product-gallery .flex-direction-nav a,
.woocommerce-product-gallery.flexslider .flex-direction-nav a,
.woocommerce-product-gallery .oa-tfp-variation-nav a {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    width: 50px;
    height: 50px;
    display: flex !important;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.25) 0%, rgba(255, 255, 255, 0.15) 100%) !important;
    backdrop-filter: blur(16px) saturate(180%);
    -webkit-backdrop-filter: blur(16px) saturate(180%);
    border: 1px solid rgba(255, 255, 255, 0.4) !important;
    border-radius: 50%;
    text-decoration: none;
    color: #222;
    transition: all 0.3s ease;
    opacity: 0.9;
    pointer-events: auto;
    cursor: pointer;
    padding: 0;
    box-shadow: 
        0 4px 16px rgba(0, 0, 0, 0.15),
        0 2px 4px rgba(0, 0, 0, 0.1),
        inset 0 1px 0 rgba(255, 255, 255, 0.6);
}

.woocommerce-product-gallery .flex-direction-nav a:hover,
.woocommerce-product-gallery.flexslider .flex-direction-nav a:hover,
.woocommerce-product-gallery .oa-tfp-variation-nav a:hover {
    opacity: 1;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.35) 0%, rgba(255, 255, 255, 0.25) 100%) !important;
    backdrop-filter: blur(20px) saturate(200%);
    -webkit-backdrop-filter: blur(20px) saturate(200%);
    border: 1px solid rgba(255, 255, 255, 0.5) !important;
    box-shadow: 
        0 6px 20px rgba(0, 0, 0, 0.2),
        0 4px 8px rgba(0, 0, 0, 0.15),
        inset 0 1px 0 rgba(255, 255, 255, 0.7),
        inset 0 -1px 0 rgba(255, 255, 255, 0.2);
    transform: translateY(-50%) scale(1.05);
}

.woocommerce-product-gallery .flex-direction-nav .flex-prev,
.woocommerce-product-gallery.flexslider .flex-direction-nav .flex-prev,
.woocommerce-product-gallery .oa-tfp-variation-nav .flex-prev {
    left: 20px;
}

.woocommerce-product-gallery .flex-direction-nav .flex-next,
.woocommerce-product-gallery.flexslider .flex-direction-nav .flex-next,
.woocommerce-product-gallery .oa-tfp-variation-nav .flex-next {
    right: 20px;
}

/* SVG arrow styling - smaller icons with blurry background */
.woocommerce-product-gallery .flex-direction-nav svg,
.woocommerce-product-gallery.flexslider .flex-direction-nav svg,
.woocommerce-product-gallery .oa-tfp-variation-nav svg {
    width: 24px;
    height: 24px;
    stroke: currentColor;
    stroke-width: 2;
}

/* Remove text arrows */
.woocommerce-product-gallery .flex-direction-nav a:before,
.woocommerce-product-gallery.flexslider .flex-direction-nav a:before,
.woocommerce-product-gallery .oa-tfp-variation-nav a:before,
.woocommerce-product-gallery .flex-direction-nav a:after,
.woocommerce-product-gallery.flexslider .flex-direction-nav a:after,
.woocommerce-product-gallery .oa-tfp-variation-nav a:after {
    display: none !important;
    content: none !important;
}

/* Ensure gallery wrapper is positioned relative for absolute positioning of arrows */
.woocommerce-product-gallery .woocommerce-product-gallery__wrapper,
.woocommerce-product-gallery .flex-viewport {
    position: relative;
}

/* Fix for blank images on mobile swipe - ensure slides stay horizontal */
.woocommerce-product-gallery.flexslider .woocommerce-product-gallery__wrapper {
    display: block !important;
    white-space: nowrap !important;
}

.woocommerce-product-gallery.flexslider .woocommerce-product-gallery__image {
    float: left !important;
    display: block !important;
    margin-right: 0 !important;
    vertical-align: top !important;
    box-sizing: border-box !important;
}

.woocommerce-product-gallery.flexslider .flex-viewport {
    overflow: hidden !important;
    position: relative !important;
    width: 100% !important;
    /* Disable touch/swipe */
    touch-action: none !important;
    -webkit-overflow-scrolling: auto !important;
    pointer-events: auto !important;
}

.woocommerce-product-gallery.flexslider .flex-viewport .woocommerce-product-gallery__wrapper {
    transition-duration: 0s !important;
    display: block !important;
    /* Disable touch/swipe */
    touch-action: none !important;
}

/* Disable touch events on gallery */
.woocommerce-product-gallery.flexslider {
    touch-action: none !important;
    -ms-touch-action: none !important;
}

.woocommerce-product-gallery.flexslider * {
    -webkit-user-select: none !important;
    -moz-user-select: none !important;
    -ms-user-select: none !important;
    user-select: none !important;
}

/* Hide flexslider arrows for static with gallery mode (thumbnails handle navigation) */
.woocommerce-product-gallery.oa-tfp-thumbnail-mode .flex-direction-nav,
.woocommerce-product-gallery.oa-tfp-thumbnail-mode .flex-direction-nav a {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

/* Show flexslider controls */
.woocommerce-product-gallery.flexslider .flex-control-nav {
    display: block !important;
    text-align: center;
    margin: 15px 0 0 0;
    padding: 0;
    list-style: none;
}

.woocommerce-product-gallery.flexslider .flex-control-nav li {
    display: inline-block;
    margin: 0 5px;
    list-style: none;
}

.woocommerce-product-gallery.flexslider .flex-control-nav li a {
    width: 12px;
    height: 12px;
    display: block;
    background: #ccc;
    border-radius: 50%;
    text-indent: -9999px;
    cursor: pointer;
    transition: background 0.2s ease;
}

.woocommerce-product-gallery.flexslider .flex-control-nav li a:hover,
.woocommerce-product-gallery.flexslider .flex-control-nav li a.flex-active {
    background: #222;
}

/* Mobile adjustments */
@media (max-width: 768px) {
    .woocommerce-product-gallery .flex-direction-nav a {
        width: 40px;
        height: 40px;
        font-size: 16px;
    }
    
    .woocommerce-product-gallery .flex-direction-nav svg,
    .woocommerce-product-gallery.flexslider .flex-direction-nav svg,
    .woocommerce-product-gallery .oa-tfp-variation-nav svg {
        width: 20px;
        height: 20px;
    }
    
    .woocommerce-product-gallery .flex-direction-nav .flex-prev {
        left: 10px;
    }
    
    .woocommerce-product-gallery .flex-direction-nav .flex-next {
        right: 10px;
    }
}

/* ========================================
   GRAVITY FORMS POPUP/MODAL STYLING
   ======================================== */

/* GP Nested Forms Dialog/Modal Styling */
.gpnf-dialog.ui-dialog,
.gpnf-modal {
    font-family: inherit !important;
    z-index: 1000000 !important;
}

.gpnf-dialog .ui-dialog-titlebar {
    background: #222 !important;
    color: #fff !important;
    border: 0 !important;
    padding: 15px 20px !important;
    font-weight: 600 !important;
}

.gpnf-dialog .ui-dialog-title {
    color: #fff !important;
    font-size: 18px !important;
    font-weight: 600 !important;
}

.gpnf-dialog .ui-dialog-content {
    padding: 25px !important;
    background: #fff !important;
}

.gpnf-dialog .gform_wrapper {
    max-width: 100% !important;
}

.gpnf-dialog .gform_wrapper .gfield {
    margin-bottom: 20px !important;
}

.gpnf-dialog .gform_wrapper label {
    font-weight: 600 !important;
    color: #222 !important;
}

.gpnf-dialog .gform_wrapper input[type="text"],
.gpnf-dialog .gform_wrapper input[type="email"],
.gpnf-dialog .gform_wrapper input[type="number"],
.gpnf-dialog .gform_wrapper select,
.gpnf-dialog .gform_wrapper textarea {
    width: 100% !important;
    padding: 10px !important;
    border: 1px solid #ddd !important;
    border-radius: 4px !important;
    font-size: 14px !important;
}

.gpnf-dialog .gform_wrapper .gform_button,
.gpnf-dialog .gform_wrapper input[type="submit"] {
    background: #222 !important;
    color: #fff !important;
    padding: 12px 24px !important;
    border: 0 !important;
    border-radius: 4px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    transition: background 0.3s ease !important;
}

.gpnf-dialog .gform_wrapper .gform_button:hover,
.gpnf-dialog .gform_wrapper input[type="submit"]:hover {
    background: #444 !important;
}

/* Radio and Checkbox styling in modal */
.gpnf-dialog .gform_wrapper .gfield_radio label,
.gpnf-dialog .gform_wrapper .gfield_checkbox label {
    font-weight: normal !important;
    margin-left: 8px !important;
}

.gpnf-dialog .gform_wrapper .gfield_radio input[type="radio"],
.gpnf-dialog .gform_wrapper .gfield_checkbox input[type="checkbox"] {
    width: auto !important;
    margin-right: 5px !important;
}

/* Close button styling */
.gpnf-dialog .ui-dialog-titlebar-close {
    color: #fff !important;
    opacity: 0.7 !important;
    transition: opacity 0.3s ease !important;
}

.gpnf-dialog .ui-dialog-titlebar-close:hover {
    opacity: 1 !important;
}

/* Ensure form fields are visible and styled */
.gpnf-dialog .gform_wrapper .gfield_required {
    color: #c00 !important;
}

.gpnf-dialog .gform_wrapper .gfield_description {
    font-size: 13px !important;
    color: #666 !important;
    margin-top: 5px !important;
}

/* ========================================
   VARIATION UI STYLES
   ======================================== */

/* Main wrapper */
#oa-tfp-variation-wrapper {
    margin-bottom: 0;
}

.oa-tfp-variation-group {
    margin-bottom: 1.5rem;
}

/* Shared grid layout */
.oa-tfp-variation-group .oa-tfp-options-grid,
.oa-tfp-variation-group .oa-tfp-options-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 10px;
}

/* Accordion-specific styling */
.oa-tfp-accordion-panel .oa-tfp-options-grid:hover {
    background-color: #f7f6f4;
    /* Remove hover effect inside accordion */
}

/* Shared item structure */
.oa-tfp-item {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    width: 100%;
    height: 100%;
    min-width: 50px;
}

/* Shared option button styling */
.oa-tfp-option {
    flex-direction: column;
    border-radius: 5px;
    background: #f7f6f4;
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    background-size: 102% !important;
    background-position: center !important;
    overflow: hidden !important;
}
.oa-tfp-option.oa-tfp-timber-option.selected,
.oa-tfp-option.oa-tfp-metal-option.selected {
    box-shadow: inset 0 0 0px 2px #222;
}
.oa-tfp-option:hover {
    background-color: #ffffff;
}

.oa-tfp-option[class*="white"] {
    box-shadow: inset 0 0 0px 2px #e0e0e0;
}

.oa-tfp-option.selected[class*="black"] {
    /* box-shadow: inset 0 0 0px 2px #af9d7d; */
}

/* Timber/metal option unique overrides (if any) */
.oa-tfp-timber-option,
.oa-tfp-metal-option {
    border: 0;
}
.oa-tfp-metal-option {
    /* padding: 0 0 50% 0; */
}

/* Placeholders */
.oa-tfp-timber-img-placeholder {
    width: 100%;
    height: auto;
    padding: 0 0 100% 0 !important;
}
.oa-tfp-metal-img-placeholder {
    width: 100%;
    height: auto;
    padding: 0 0 100% 0 !important;
}

/* Shared label text */
.oa-tfp-label-text {
    display: block;
    color: #222;
    font-size: 12px;
    font-weight: 500;
    text-align: left;
    margin-top: 0.4em;
    margin-bottom: 0.8em;
    letter-spacing: 0.05em;
}

/* Timber/metal label text unique overrides (if any) */
.oa-tfp-timber-label-text,
.oa-tfp-metal-label-text {
    margin-top: 5px;
    font-size: 12px;
}

/* Selected state for label text */
.oa-tfp-option.selected + .oa-tfp-label-text {
    font-weight: 500;
    color: #000;
}

/* ========================================
   ROW LAYOUT VARIATIONS
   ======================================== */

.wc-pao-addon-container,
.oa-tfp-row-group {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    margin-left: 0;
}

.wc-pao-addon label.wc-pao-addon-name,
.oa-tfp-label {
    min-width: 120px;
    color: #222;
    font-size: 13px !important;
    font-weight: 600;
    margin-top: 0.3em;
    text-align: left;
}

.form-row.form-row-wide.wc-pao-addon-wrap,
.oa-tfp-row-options {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    flex-direction: row;
    justify-content: flex-start;
    padding: 0;
    margin: 0;
}

.form-row.form-row-wide.wc-pao-addon-wrap:before,
.form-row.form-row-wide.wc-pao-addon-wrap:after {
    display: none;
}

.oa-tfp-row-options .oa-tfp-option {
    padding: 6px 8px;
    margin: 0 !important;
    border-radius: 5px;
    background: #ffffff;
    border: 2px solid #e0e0e0;
    color: #222;
    font-size: 12px;
    font-weight: 500;
    text-align: center;
    text-transform: none;
    letter-spacing: 0;
}

.oa-tfp-row-options .oa-tfp-option:hover {
    background: #fff;
}

.oa-tfp-row-options .oa-tfp-option.selected {
    border-color: #222;
    background: #fff;
    color: #222;
}

/* ========================================
   VARIATION STATES
   ======================================== */

/* Unavailable states - grey out options that don't exist */
.oa-tfp-option.unavailable,
.oa-tfp-option.disabled {
    opacity: 0.3 !important;
    filter: grayscale(100%);
    cursor: not-allowed;
    pointer-events: none;
}



/* Unavailable item container */
.oa-tfp-item.unavailable {
    opacity: 0.3;
    filter: grayscale(100%);
    cursor: not-allowed;
    pointer-events: none;
}

/* ========================================
   RESET BUTTON
   ======================================== */

.oa-tfp-reset {
    display: none !important;
    width: auto;
    padding: 0;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    color: #222;
    background-color: transparent;
}

.oa-tfp-reset:hover,
.oa-tfp-reset:focus {
    background: transparent;
    border: none;
    color: #222;
}

.woocommerce div.product form.cart .oa-tfp-quote-button {
    box-shadow: 0 0 0 2px !important;
}

/* ========================================
   WOOCOMMERCE OVERRIDES
   ======================================== */

/* Hide default WooCommerce variation selects */
/* Use visibility instead of display:none to avoid breaking WC functionality */
form.cart .variations,
form.cart select[name^="attribute_"],
form.cart label[for^="attribute_"],
form.cart .reset_variations {
    position: absolute !important;
    left: -9999px !important;
    opacity: 0 !important;
    pointer-events: none !important;
    height: 0 !important;
    overflow: hidden !important;
}

.woocommerce-variation-add-to-cart {
    display: block !important;
    opacity: 1;
}

.woocommerce .add-to-cart-panel form.cart,
.woocommerce div.product.do-quantity-buttons form.cart {
    display: flex;
    flex-wrap: wrap;
    gap: 0 20px;
}


.woocommerce div.product form.cart div.quantity {
    margin: 0 5.3% 0 0;
    background-color: #f7f6f5;
    border-radius: 5px;
    overflow: hidden;
    border: 2px solid #e0e0e0;
}

.woocommerce div.product form.cart::after,
.woocommerce div.product form.cart::before {
    content: "";
    display: none;
}

.woocommerce div.product form.cart .button {
    height: 100%;
    min-height: 50px;
    /* max-width: 300px; */
    text-align: center;
    box-shadow: inset 0 0 0 2px;
    color: #000000;
    background-color: #ffffff;
    -webkit-border-radius: var(--radius-size);
    -moz-border-radius: var(--radius-size);
    border-radius: var(--radius-size);
}

.woocommerce div.product form.cart .button:hover {
    box-shadow: 0 0 0 2px;
    color: var(--base-3);
    background-color: var(--accent);
}

.woocommerce ul.products li.product .button {
    -webkit-border-radius: var(--radius-size);
    -moz-border-radius: var(--radius-size);
    border-radius: var(--radius-size);
}

/* ========================================
   ADD TO CART CONTAINER
   ======================================== */

.oa-tfp-add-to-cart-container {
    display: flex;
    align-items: stretch;
    gap: 1rem;
    margin-top: 1.5rem;
    margin-bottom: 1.5rem;
    opacity: 1;
}

.oa-tfp-add-to-cart-container .quantity {
    flex: 0 0 auto;
}

.oa-tfp-add-to-cart-container .single_add_to_cart_button {
    flex: 1 1 auto;
}

.oa-tfp-add-to-cart-container .oa-tfp-quote-button {
    flex: 1 1 auto;
}

/* Ensure quantity and add to cart button are hidden when quote button is shown */
.quantity.buttons-added,
.single_add_to_cart_button.button {
}

/* Target all quantity fields and add to cart buttons for comprehensive hiding */
.quantity,
.single_add_to_cart_button {
}

/* WooCommerce variation add to cart container */
.woocommerce-variation-add-to-cart {
}

/* Disabled quantity field styling */
.quantity.disabled {
    opacity: 0.6;
    pointer-events: none;
}

.quantity.disabled input {
    background-color: #f5f5f5;
    color: #999;
}

/* Quote button styling */
.oa-tfp-quote-button {
    background-color: #222 !important;
    color: #fff !important;
    border-color: #222 !important;
}

.oa-tfp-quote-button:hover {
    background-color: #333 !important;
    color: #fff !important;
    border-color: #333 !important;
}

/* Ensure smooth transitions for both buttons */
.single_add_to_cart_button,
.oa-tfp-quote-button {
    transition: opacity 0.15s ease-in-out;
    min-height: 44px; /* Ensure consistent height */
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Prevent layout shifts during transitions */
.oa-tfp-add-to-cart-container {
    min-height: 44px; /* Match button height */
    position: relative;
}

.oa-tfp-add-to-cart-container .single_add_to_cart_button,
.oa-tfp-add-to-cart-container .oa-tfp-quote-button {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
}

/* Custom subtotal styling */
.oa-tfp-custom-subtotal {
    margin-top: 1.5rem;
    margin-bottom: 1.5rem;



}

.oa-tfp-subtotal-line {
    justify-content: space-between;
    align-items: center;
    font-size: 16px;
    font-weight: 600;
    color: #222;
}

.oa-tfp-subtotal-label {
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.oa-tfp-subtotal-amount {

    color: #222;
    padding-left: 10px;
}

.oa-tfp-vat-text {
    font-size: 12px;
    color: #666;
    margin-top: 4px;
    font-weight: 400;
}

/* Hide the original Product Add-Ons subtotal */
.wc-pao-subtotal-line {
    display: none !important;
}

/* ========================================
   PRODUCT DETAILS ACCORDION
   ======================================== */

.oa-tfp-product-details-section .button {
    font-size: 1em;
    padding: 0.6em 1.2em;
    margin: 0 !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* Accordion header styling */
.oa-tfp-accordion-toggle {
    background: none;
    border: none;
    width: 100%;
    text-align: left;
    font-size: 1.05em;
    padding: 1.2em 0 1.2em 1.5em;
    cursor: pointer;
    position: relative;
    font-family: inherit;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #222;
    outline: none;
}

.oa-tfp-accordion-toggle:hover,
.oa-tfp-accordion-toggle:focus {
    color: #222;
    background: transparent;
}

.oa-tfp-accordion-toggle:after {
    content: '+';
    position: absolute;
    top: 4px;
    right: 20px;
    font-size: 30px;
    font-weight: 300;
    color: #222;
}

.oa-tfp-accordion-toggle.active:after {
    content: '-';
    right: 23px;
}

.oa-tfp-accordion-item {
    border-bottom: 1px solid #222;
}

.oa-tfp-product-details-accordion {
    border-top: 1px solid #222;
    margin-top: 2em;
    margin-bottom: 2em;
}

.oa-tfp-accordion-panel {
    display: none;
    padding: 0 1.2em 1.5em;
    background: #fff;
    font-size: 0.8em;
    color: #222;
    border: none;
}

.oa-tfp-accordion-toggle[disabled] {
    color: #aaa;
    cursor: not-allowed;
}

.oa-tfp-product-details-section .icon-check {
    width: 13px;
    height: 13px;
    fill: currentColor;
    vertical-align: middle;
}

#oa-tfp-accordion-fan-size-guide table th,
#oa-tfp-accordion-fan-size-guide table tr {
    text-align: center;
    vertical-align: middle;
}

/* ========================================
   ICONS
   ======================================== */

.oa-tfp-brochure-icon,
.oa-tfp-faq-icon,
.oa-tfp-spares-icon,
.oa-tfp-custom-design-icon,
.oa-tfp-fan-size-guide-icon,
.oa-tfp-down-rod-guide-icon {
    display: inline-flex;
    align-items: center;
    line-height: 0;
    margin-left: 0.3em;
    font-size: 11px;
}

/* ========================================
   RESPONSIVE DESIGN
   ======================================== */

/* Gallery responsive */
@media (max-width: 900px) {
    .oa-tfp-product-gallery-item {
        max-width: calc(50% - 8px);
    }
}

@media (max-width: 600px) {
    .oa-tfp-product-gallery {
        gap: 8px;
    }
    .oa-tfp-product-gallery-item {
        max-width: 100%;
    }
    .oa-tfp-variation-group .oa-tfp-options-grid {
        grid-template-columns: repeat(3, 1fr) !important;
    }
    .wc-pao-addon label.wc-pao-addon-name,
    .oa-tfp-label {
        min-width: 95px;
    }

}

/* Mobile banner adjustments */
@media screen and (max-width: 480px) {
    .oa-tfp-product-banner-img {
        min-height: 250px;
        height: 260px !important;
    }
}

/* Mobile button adjustments */
@media screen and (max-width: 768px) {
    .oa-tfp-product-details-section .button {
        width: 100% !important;
        display: flex !important;
    }
    .oa-tfp-product-details-section .button:hover {
        width: 100% !important;
        display: flex !important;
    }
} 

/* ========================================
   PRODUCT ADD-ONS (OA TFP CUSTOM STYLES)
   ======================================== */

/* OA TFP Add-on group container (if used) */
.oa-tfp-addon-group {
    display: flex;
    flex-direction: column;
    margin-bottom: 1.5rem;
}

/* ========================================
   PRODUCT ADD-ONS (WC PAO STYLES)
   ======================================== */

/* Hide price on single product pages only */
.woocommerce.single-product p.price {
    display: none !important;
}

/* Show price on shop/archive pages */
.woocommerce:not(.single-product) p.price {
    display: block !important;
}

.woocommerce .wc-pao-subtotal-line p.price {
    display: block !important;
    font-weight: 600 !important;
    font-size: 16px !important;
    text-transform: uppercase;
}

.woocommerce .wc-pao-subtotal-line .amount {
    display: inline-block;
    margin-left: 10px;
    font-weight: 400 !important;

}

.woocommerce .wc-pao-addon {
    padding: 0 !important;
    margin-bottom: 20px;
}

.woocommerce .wc-pao-addon-price {
    display: none !important;
}

/* Addon group container */
.woocommerce .wc-pao-addon-container[data-addon-name="Down Rod Length"] {
    display: flex;
    flex-direction: column;
    margin-bottom: 1.5rem;
}

.woocommerce .form-row.form-row-wide.wc-pao-addon-wrap > div {
    display: flex;
}

/* Addon label */
.woocommerce .wc-pao-addon-name {
    font-weight: 600;
    font-size: 1rem;
    margin-bottom: 0.7em;
    color: #222;
    letter-spacing: 0.01em;
    display: block;
}

/* Addon options row */
.woocommerce .wc-pao-addon-wrap {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 0.5em;
}

/* Hide native radio */
.woocommerce .wc-pao-addon-radio {
    display: none !important;
}

/* Custom radio button style for label */
.woocommerce .wc-pao-addon-wrap label {
    display: inline-block;
    padding: 6px 8px;
    border-radius: 5px;
    background: #ffffff;
    border: 2px solid #e0e0e0;
    color: #222;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.5 !important;
    cursor: pointer;
    min-width: 38px;
    text-align: center;
    margin: 0;
    position: relative;
    letter-spacing: 0;
}

/* Selected state */
.woocommerce .wc-pao-addon-radio:checked + label {
    border-color: #222;
    background: #fff;
    color: #222;
}

/* Hover state */

.woocommerce .wc-pao-addon label {
    color: #222;
}

.woocommerce .wc-pao-addon-radio:hover:not(:checked) + label {
    background: #fff;
}

.woocommerce .woocommerce-variation.single_variation {
    display: none !important;
}

/* Price display inside label */
.woocommerce .wc-pao-addon-price {
    font-size: 12px;
    font-weight: 400;
    color: #888;
    margin-left: 4px;
}

/* Required asterisk */
.woocommerce .wc-pao-addon-name .required {
    display: none;
    color: #e74c3c;
    font-style: normal;
    font-size: 1em;
    margin-left: 2px;
}

#product-addons-total,
.woocommerce .product-addon-totals li:not(.wc-pao-subtotal-line) {
    display: none;
}

.woocommerce .product-addon-totals .wc-pao-subtotal-line {
    justify-content: flex-start;
    border-top: none;
    padding: 0 0 20px 0;
    margin-top: 0;
}

/* Ensure Product Add-Ons subtotal is always visible */
.wc-pao-subtotal-line { 
    display: block !important; 
    visibility: visible !important; 
    opacity: 1 !important;
}

.wc-pao-subtotal-line p.price {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/* Force refresh of add-on totals */
.wc-pao-addon {
    transition: none !important;
}

/* Responsive for add-ons */
@media (max-width: 600px) {
    .woocommerce div.product form.cart div.quantity {
        margin: 0;
    }
    .woocommerce .wc-pao-addon-wrap {
        flex-direction: column;
        gap: 6px;
    }
    .woocommerce .wc-pao-addon-wrap label {
        min-width: 0;
        width: 100%;
    }
} 

/* Checkmark for selected swatch */
.oa-tfp-option .oa-tfp-checkmark-wrap {
    display: none;
    position: absolute;
    top: 7px;
    right: 7px;
    z-index: 2;
    background: #fff;
    border-radius: 50%;
    box-shadow: 0 1px 4px rgba(0,0,0,0.10);
    width: 14px;
    height: 14px;
    padding: 0;
}
.oa-tfp-option.selected .oa-tfp-checkmark-wrap {
    display: block;
}
.oa-tfp-checkmark {
    position: absolute;
    top: -1px;
    left: -1px;
    width: 16px;
    height: 16px;
    display: block;
    color: #222;
    fill: #222;
}

/* ============================================
   GRAVITY FORMS CONFIRMATION DISPLAY STYLING
   Simple black & white design for {all_fields}
   ============================================ */

/* Main confirmation message container */
#gform_confirmation_message_1 {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 14px;
    line-height: 1.6;
    color: #000000;
}

/* Outer wrapper table */
#gform_confirmation_message_1 table[bgcolor="#EAEAEA"] {
    background-color: transparent !important;
    border: none !important;
    border-collapse: collapse !important;
    margin-bottom: 15px !important;
}

/* Main white table - NORMAL LAYOUT (not 2 columns) */
#gform_confirmation_message_1 > table[bgcolor="#FFFFFF"] {
    background-color: #ffffff !important;
    border: 2px solid #000000 !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    border-radius: 4px !important;
    width: 100% !important;
    margin-bottom: 20px !important;
    overflow: hidden !important;
}

/* Main table tbody - normal stacked layout */
#gform_confirmation_message_1 > table tbody {
    display: table-row-group !important;
}

/* Header rows (field labels) - light blue background */
#gform_confirmation_message_1 tr[bgcolor="#EAF2FA"],
#gform_confirmation_message_1 tr[bgcolor="#FAF4EA"] {
    background-color: #ffffff !important;
}

#gform_confirmation_message_1 tr[bgcolor="#EAF2FA"] td,
#gform_confirmation_message_1 tr[bgcolor="#FAF4EA"] td {
    padding: 16px 0px 0px 0px !important;
    font-weight: 700 !important;
    font-size: 14px !important;
    color: #000000 !important;
    background-color: #ffffff !important;
    border-bottom: 2px solid #000000 !important;
}

/* Strong text in headers */
#gform_confirmation_message_1 tr[bgcolor="#EAF2FA"] td strong,
#gform_confirmation_message_1 tr[bgcolor="#FAF4EA"] td strong {
    color: #000000 !important;
    font-weight: 700 !important;
}

/* Value rows (submitted data) */
#gform_confirmation_message_1 tr[bgcolor="#FFFFFF"] td {
    padding: 2px 16px !important;
    background-color: #ffffff !important;
    border-bottom: 2px solid #cccccc !important;
    color: #000000 !important;
}

table, td, th{
    border: none !important;
}

/* Remove spacer columns */
#gform_confirmation_message_1 td[width="20"] {
    width: 0 !important;
    padding: 0 !important;
    display: none !important;
}

/* Style all font tags */
#gform_confirmation_message_1 font {
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 14px !important;
    color: #000000 !important;
}

#gform_confirmation_message_1 ul.bulleted {
    padding-left: 0px !important;
}

/* Images in confirmation */
#gform_confirmation_message_1 img {
    max-width: 100px !important;
    height: auto !important;
    border: 2px solid #000000 !important;
    border-radius: 4px !important;
    margin-right: 10px !important;
    vertical-align: middle !important;
}

/* Image + span layout */
#gform_confirmation_message_1 img + span {
    vertical-align: middle !important;
}

/* Gray wrapper tables - NO border */
#gform_confirmation_message_1 table table[bgcolor="#EAEAEA"] {
    border: none !important;
    background-color: transparent !important;
    margin: 10px 0 !important;
}

/* White nested tables (product details) - WITH border */
#gform_confirmation_message_1 table table[bgcolor="#FFFFFF"] {
    margin: 10px 0 !important;
    border: 2px solid #000000 !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    border-radius: 4px !important;
    overflow: hidden !important;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08) !important;
} 



/* Make ONLY nested product tables display in 2 columns: 30% / 70% */
/* Target: tables inside the wrapper with border-top style */
#gform_confirmation_message_1 table[style*="border-top"] table[bgcolor="#FFFFFF"] tbody {
    display: grid !important;
    grid-template-columns: 30% 70% !important;
    gap: 10px 15px !important;
    padding: 8px !important;
}

/* Each row pair (header + value) becomes a grid item */
#gform_confirmation_message_1 table[style*="border-top"] table[bgcolor="#FFFFFF"] tbody tr {
    display: block !important;
}

/* Product table headers - compact */
#gform_confirmation_message_1 table table[bgcolor] tr[bgcolor="#FAF4EA"] td {
    background-color: #fff !important;
    border-bottom: none !important;
    padding: 2px 12px !important;
    font-weight: 700 !important;
    font-size: 13px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.3px !important;
    max-width: 665px;
    margin: auto !important;
}

/* Product table values - compact spacing */


/* Images in product tables - smaller */
#gform_confirmation_message_1 table table[bgcolor] img {
    max-width: 60px !important;
    height: auto !important;
    border: 1px solid #000000 !important;
    border-radius: 3px !important;
    margin-right: 8px !important;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1) !important;
}

/* Product table - remove border on last row */
#gform_confirmation_message_1 table table[bgcolor] tr:last-child td {
    border-bottom: none !important;
}

/* Special border for nested tables */
#gform_confirmation_message_1 table[style*="border-top"] {
    border-top: 2px solid #000000 !important;
}

/* Horizontal separators - HIDDEN */
#gform_confirmation_message_1 hr.gpnf-nested-entries-hr {
    display: none !important;
}

/* Lists */
#gform_confirmation_message_1 ul,
#gform_confirmation_message_1 ol {
    margin: 0 !important;
    padding-left: 20px !important;
    list-style: none !important;
}

#gform_confirmation_message_1 li {
    margin-bottom: 5px !important;
    color: #000000 !important;
}

#gform_confirmation_message_1 li::marker {
    display: none !important;
    content: none !important;
}

#gform_confirmation_message_1 ul.bulleted {
    list-style-type: none !important;
}

/* Links */
#gform_confirmation_message_1 a {
    color: #000000 !important;
    text-decoration: underline !important;
}

#gform_confirmation_message_1 a:hover {
    color: #000000 !important;
    text-decoration: underline !important;
}

/* Map It links */
#gform_confirmation_message_1 a.map-it-link {
    display: inline-block !important;
    margin-top: 8px !important;
    padding: 6px 12px !important;
    background-color: #ffffff !important;
    color: #000000 !important;
    border: 2px solid #000000 !important;
    border-radius: 4px !important;
    font-weight: 700 !important;
    text-decoration: none !important;
}

#gform_confirmation_message_1 a.map-it-link:hover {
    background-color: #000000 !important;
    color: #ffffff !important;
}

/* Last row - remove bottom border */
#gform_confirmation_message_1 tbody tr:last-child td {
    border-bottom: none !important;
}

/* Mobile responsive */
@media only screen and (max-width: 600px) {
    #gform_confirmation_message_1 table {
        width: 100% !important;
    }
    
    #gform_confirmation_message_1 img {
        max-width: 80px !important;
        display: block !important;
        margin: 0 0 8px 0 !important;
    }
    
    #gform_confirmation_message_1 td {
        padding: 10px 12px !important;
        font-size: 13px !important;
    }
} 