/* PGB WooCommerce Price Strikethrough Styles */
.pgb-woo-price del,
.pgb-wcl-price del,
.pgb-specs-price-val del,
.pgb-sc-price del,
.pgb-woo-card-wrapper .pgb-woo-price del {
    text-decoration: line-through;
    color: #999 !important;
    font-weight: 400;
    margin-right: 6px;
}

.pgb-woo-price ins,
.pgb-wcl-price ins,
.pgb-specs-price-val ins,
.pgb-sc-price ins,
.pgb-woo-card-wrapper .pgb-woo-price ins {
    text-decoration: none;
    color: #b12704 !important;
    font-weight: 700;
}

/* PGB Woo Product Card Styles */
.elementor-widget-pgb-woo-product-box .elementor-widget-container {
    height: 100%;
}

.pgb-woo-card-wrapper {
    border: 1px solid #e0e0e0;
    /*border-top: 4px solid #388e3c; */
    border-radius: 8px;
    background-color: #fff;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    font-family: inherit;
    height: 100%;
}

.pgb-woo-image-container {
    position: relative; 
    width: 100%;
    background-color: #dcedc8;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}


.pgb-woo-img {
    width: 100%;
    height: 220px; /* Standardize the height for a clean product grid */
    object-fit: cover;
    display: block;
    margin: 0;
    /* Removed position: absolute, top, and left */
}

.pgb-woo-image-placeholder {
    color: #2e7d32;
    font-weight: 600;
    font-size: 14px;
    padding: 80px 20px; /* Gives the placeholder intrinsic height */
    text-align: center;
}

.pgb-woo-content {
    padding: 24px;
    border-top: 1px solid #f1f1f1;
}

.pgb-woo-title {
    margin: 0 0 10px;
    font-size: 20px;
    color: #111;
    font-weight: 800;
    line-height: 1.2;
}

.pgb-woo-desc {
    font-size: 14px;
    color: #666;
    margin-bottom: 18px;
    line-height: 1.5;
}

.pgb-woo-desc p {
    margin: 0; /* Override default WP paragraph margins in the desc */
}

.pgb-woo-price {
    font-size: 18px;
    color: #00c853; /* Bright green price */
    font-weight: 800;
    margin-bottom: 15px;
}

.pgb-woo-price ins {
    text-decoration: none;
}

.pgb-woo-price del {
    color: #999;
    font-size: 14px;
    font-weight: 400;
    margin-right: 8px;
}

.pgb-woo-link {
    display: inline-block;
    color: #2e7d32; /* Darker green link */
    font-size: 15px;
    text-decoration: none;
    font-weight: 600;
    transition: color 0.2s ease;
}

.pgb-woo-link:hover {
    color: #1b5e20;
}


/* NEW: Top Badge (Black label over image) */
.pgb-woo-top-badge {
    position: absolute;
    top: 15px;
    left: 15px;
    background-color: #111; /* Default background */
    color: #fff;            /* Default text color */
    padding: 5px 12px;
    border-radius: 4px;
    font-size: 13px;
    font-weight: 700;
    z-index: 10;
}

/* NEW: Sub Badge (Light green label above title) */
.pgb-woo-sub-badge {
    display: inline-block;
    background-color: #eaf3e5; /* Default background */
    color: #2e7d32;            /* Default text color */
    padding: 4px 8px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.5px;
    margin-bottom: 12px;
}


/*-----------------------------------------------
  PGB ICON WIDGET STYLES
-----------------------------------------------*/
.pgb-icon-container {
    display: flex;
    /* Optional: Change to center or flex-end if you want alignment controls later */
    align-items: flex-start; 
}

.pgb-icon-wrapper {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    line-height: 1;
}

.pgb-icon-wrapper img {
    display: block;
    object-fit: contain;
}

.pgb-icon-wrapper svg {
    display: block;
}

/*-----------------------------------------------
  PGB PRODUCT HERO WIDGET STYLES
-----------------------------------------------*/
.pgb-hero-wrapper {
    background: #f7f7f5;
    padding: 72px 40px 64px;
    border-radius: 8px; /* Encapsulates the hero if placed inside a container */
    margin-bottom: 27px;    
}

.pgb-hero-content-col {
}

.pgb-hero-eyebrow {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .12em;
    color: #2d8c2a;
    margin-bottom: 14px;
}

.pgb-hero-title {
    font-size: 42px;
    font-weight: 900;
    line-height: 1.1;
    color: #1a1a1a;
    margin-bottom: 18px;
    letter-spacing: -1px;
    font-family: 'Archivo Black', 'Josefin Sans', Arial, sans-serif;
}

.pgb-hero-title span {
    color: #3db83a;
}

.pgb-hero-sub {
    font-size: 15px;
    color: #555;
    line-height: 1.65;
    margin-bottom: 28px;
    max-width: 460px;
}

.pgb-hero-btns {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 24px;
}

.pgb-hero-btn-p {
    background: #3db83a;
    color: #fff;
    padding: 13px 26px;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    display: inline-block;
    border: none;
    cursor: pointer;
    transition: opacity 0.2s;
}

.pgb-hero-btn-p:hover {
    opacity: 0.85;
}

.pgb-hero-btn-s {
    background: transparent;
    color: #1a1a1a;
    padding: 12px 26px;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 700;
    border: 1.5px solid #1a1a1a;
    text-decoration: none;
    display: inline-block;
    transition: all 0.2s;
}

.pgb-hero-btn-s:hover {
    background: #1a1a1a;
    color: #fff;
}

.pgb-hero-pills {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
}

.pgb-hero-pill {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 12px;
    font-weight: 600;
    color: #444;
}

.pgb-hero-pill-dot {
    width: 7px;
    height: 7px;
    background: #3db83a;
    border-radius: 50%;
    flex-shrink: 0;
}

.pgb-hero-img-col {
    height: 100%;
}

.pgb-hero-img-wrap {
    /*background: #d4e8c2;*/
    border-radius: 8px;
    /*min-height: 400px;*/
    overflow: hidden;
    position: relative;
    height: 100%;
}

.pgb-hero-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    /*position: absolute;*/
    top: 0;
    left: 0;
}

.pgb-hero-img-fallback {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    width: 100%;
    position: absolute;
    color: #2d8c2a;
    font-size: 14px;
    font-weight: 600;
}

.pgb-hero-price-tag {
    position: absolute;
    bottom: 16px;
    left: 16px;
    background: rgba(26, 26, 26, 0.92);
    color: #fff;
    border-radius: 8px;
    padding: 12px 18px;
    z-index: 10;
}

.pgb-hero-price-tag .pgb-p {
    font-size: 22px;
    font-weight: 900;
    color: #fff;
    line-height: 1;
    margin-bottom: 4px;
}

.pgb-hero-price-tag .pgb-l {
    font-size: 11px;
    color: #9be58f;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.pgb-hero-price-tag del {
    color: #adadad !important;
}

/* Tablet & Mobile Overrides */
@media (max-width: 900px) {
    .pgb-hero-wrapper {
        padding: 40px 20px;
    }
    
    .pgb-hero-title {
        font-size: 32px;
    }

    .pgb-hero-img-wrap {
        min-height: 300px;
    }
}



/*-------------------------------------------------
PGB ELEMENTOR KITS
------------------------------------------------*/    
/* IMAGE BOXES */
/* Force the Elementor widget container to stretch */
.elementor-widget-pgb-image-box .elementor-widget-container {
    height: 100%;
}

.pgb-image-box-wrapper {
    border: 1px solid #e0e0e0; 
    border-radius: 8px;
    background-color: #fff;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    height: 100%; /* <-- Add this line */
}

.image-box-green .pgb-image-box-wrapper {
    border-top: 3px solid #3db83a !important;
}

.pgb-image-container {
    position: relative;
    width: 100%;
}

.pgb-image-box-img {
    width: 100%;
    object-fit: cover;
    display: block;
}

.pgb-popular-tag {
    position: absolute;
    top: 15px;
    left: 15px;
    background: #111;
    color: #fff;
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 700;
    z-index: 10;
}

.pgb-image-box-content {
    padding: 20px;
    display: flex;             /* <-- Add this */
    flex-direction: column;    /* <-- Add this */
    flex-grow: 1;              /* <-- Add this to fill remaining space */
}

.pgb-sub-tag {
    display: inline-block;
    background-color: #eaf3e5; 
    color: #2e7d32; 
    padding: 4px 8px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    margin-bottom: 10px;
    align-self: flex-start;    /* <-- Add this so it doesn't stretch full width */
}

.pgb-image-box-title {
    margin: 0 0 8px;
    font-size: 20px;
    color: #111;
    font-weight: bold;
}

.pgb-image-box-desc {
    font-size: 14px;
    color: #555;
    margin-bottom: 15px;
    line-height: 1.5;
}

.pgb-image-box-link {
    display: inline-block;
    color: #2e7d32; 
    font-size: 14px;
    text-decoration: none;
    font-weight: 600;
    margin-top: auto;          /* <-- Add this to push to the bottom */
}

.pgb-image-box-link:hover {
    text-decoration: underline;
}

/* HACK DIRTY GREEN BOX */
div[data-id='b4ad618'] .pgb-image-box-wrapper {
    border: 1px solid #3DB83A; 
    background: #f9fef9;
}

div[data-id='b4ad618'] .pgb-image-box-wrapper {
    background: #f9fef9;
}

/* Image Box Button Style */
.pgb-image-box-btn {
    display: block;
    text-align: center;
    background: #3db83a;
    color: #fff;
    padding: 12px 20px;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    transition: opacity 0.2s ease;
    margin-top: auto; /* Pushes the button to the bottom of the box */
}

.pgb-image-box-btn:hover {
    opacity: 0.85;
    color: #fff;
}



/*-----------------------------------------------
  PGB WOO SPECS WIDGET STYLES
-----------------------------------------------*/
.pgb-specs-wrapper {
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    gap: 48px;
    align-items: center;
    font-family: 'Josefin Sans', Arial, sans-serif;
    color: #1a1a1a;
    align-content: center;
}

/* Image Column */
.pgb-specs-img-wrap {   
    border-radius: 8px;
    min-height: 370px;
    /*overflow: hidden;*/
    position: relative;
    height: 100%;
}

.pgb-specs-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    position: absolute;
    top: 0;
    left: 0;
}

.pgb-specs-img-fallback {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    width: 100%;
    position: absolute;
    color: #2d8c2a;
    font-size: 14px;
    font-weight: 600;
}

/* Pricing & Reviews */
.pgb-specs-price-row {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin-bottom: 6px;
}

.pgb-specs-price-val {
    font-size: 34px;
    font-weight: 900;
    color: #1a1a1a;
    letter-spacing: -1px;
    font-family: 'Archivo Black', 'Josefin Sans', Arial, sans-serif;
}

.pgb-specs-price-unit {
    font-size: 14px;
    color: #777;
    font-weight: 600;
}

.pgb-specs-review-row {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 20px;
}

.pgb-specs-stars {
    color: #3db83a;
    display: flex;
    gap: 2px;
}

.pgb-specs-review-link {
    font-size: 13px;
    color: #2d8c2a;
    font-weight: 700;
    text-decoration: none;
    transition: opacity 0.2s;
}

.pgb-specs-review-link:hover {
    opacity: 0.8;
}

/* Specs Table */
.pgb-specs-table {
    width: 100%;
    border-collapse: collapse;
    border-radius: 8px;
    border: 1px solid #e8e8e8;
    margin-top: 8px;
    margin-bottom: 22px;
}

.pgb-specs-table td {
    padding: 14px 18px;
    font-size: 13px;
    border-bottom: 1px solid #e8e8e8;
}

.pgb-specs-table tr:last-child td {
    border-bottom: none;
}

.pgb-specs-table td.pgb-spec-lbl {
    font-weight: 700;
    color: #888;
    letter-spacing: .05em;
    font-size: 11px;
    width: 46%;
    background: #fafafa;
}

.pgb-specs-table td.pgb-spec-val {
    font-weight: 800;
    color: #1a1a1a;
}

/* Buttons */
.pgb-specs-btns {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.pgb-specs-btn-p {
    background: #3db83a;
    color: #fff;
    padding: 13px 26px;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    display: inline-block;
    border: none;
    cursor: pointer;
    transition: opacity 0.2s;
}

.pgb-specs-btn-p:hover {
    opacity: 0.85;
}

.pgb-specs-btn-s {
    background: transparent;
    color: #1a1a1a;
    padding: 12px 26px;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 700;
    border: 1.5px solid #1a1a1a;
    text-decoration: none;
    display: inline-block;
    transition: all 0.2s;
}

.pgb-specs-btn-s:hover {
    background: #1a1a1a;
    color: #fff;
}

/* WooCommerce Style Image Hover Zoom */
.pgb-woo-zoom-wrap {
    overflow: hidden;
    position: relative;
    cursor: crosshair; /* Shows the classic zoom plus cursor */
}

.pgb-woo-zoom-wrap img.pgb-woo-zoom-img {
    transition: transform 0.15s ease-out, transform-origin 0s; /* Smooth scale, instant tracking */
    width: 100%;
    height: 100%;
    object-fit: contain;
    transform-origin: center center;
}

.pgb-woo-zoom-wrap:hover img.pgb-woo-zoom-img {
    transform: scale(2.2); /* Adjust this number (e.g., 1.5, 2.5) to control zoom intensity */
}

/* Responsive Overrides */
@media (max-width: 900px) {
    .pgb-specs-wrapper {
        grid-template-columns: 1fr;
        gap: 32px;
    }
    
    .pgb-specs-img-wrap {
        min-height: 280px;
    }
}

/*-----------------------------------------------
  PGB GOOGLE REVIEW WIDGET STYLES
-----------------------------------------------*/
/* Force the Elementor container to stretch full height */
.elementor-widget-pgb-google-review .elementor-widget-container {
    height: 100%;
}

.pgb-google-review-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    background: #fff;
    padding: 24px;
    border-radius: 8px;
    border: 1px solid #e0e0e0;
    font-family: 'Josefin Sans', Arial, sans-serif;
}

/* 1. Pull stars to the top */
.pgb-gr-stars {
    order: 1;
    margin-bottom: 12px;
}

/* 2. Pull review text to the middle and let it fill empty space */
.pgb-gr-content {
    order: 2;
    font-size: 14px;
    color: #555;
    line-height: 1.6;
    margin-bottom: 20px;
}

/* 3. Push Author Header to the bottom */
.pgb-gr-header {
    order: 3;
    margin-top: auto; /* Locks the author to the bottom edge */
    display: flex;
    align-items: center;
    border-top: 1px solid #f1f1f1;
    padding-top: 15px;
}

/* Author Internal Styling */
.pgb-gr-avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    overflow: hidden;
    margin-right: 12px;
    flex-shrink: 0;
}

.pgb-gr-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.pgb-gr-initial {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-weight: 700;
    font-size: 18px;
    text-transform: uppercase;
}

.pgb-gr-meta {
    flex-grow: 1;
}

.pgb-gr-name {
    font-weight: 700;
    font-size: 14px;
    color: #111;
    margin-bottom: 2px;
}

.pgb-gr-date {
    font-size: 12px;
    color: #888;
}

.pgb-gr-google-icon {
    flex-shrink: 0;
    display: flex;
    align-items: center;
}

/*-----------------------------------------------
  FIX: ELEMENTSKIT TESTIMONIAL EQUAL HEIGHTS
-----------------------------------------------*/
/* 1. Force Swiper slides to stretch to the tallest slide */
.elementskit-testimonial-slider .swiper-slide {
    height: auto !important; 
}

/* 2. Make sure the inner wrapper fills that stretched height */
.elementskit-testimonial-slider .swiper-slide-inner {
    height: 100%;
}

/* 3. Turn the card into a flex column */
.elementskit-single-testimonial-slider {
    height: 100%;
    display: flex;
    flex-direction: column;
}

/* 4. Push the author block to the absolute bottom */
.elementskit-commentor-bio {
    margin-top: auto;
}


/*-----------------------------------------------
  PGB WOO CARD LINK WIDGET STYLES
-----------------------------------------------*/
.pgb-woo-card-link {
    background: #fff;
    border: 1px solid #e8e8e8;
    border-radius: 8px;
    padding: 18px;
    text-decoration: none;
    display: block;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
    height: 100%;
}

.pgb-woo-card-link:hover {
    border-color: #3db83a;
}

.pgb-wcl-name {
    font-size: 14px;
    font-weight: 800;
    color: #1a1a1a;
    margin-bottom: 4px;
    font-family: 'Archivo Black', 'Josefin Sans', Arial, sans-serif;
    line-height: 1.2;
}

.pgb-wcl-spec {
    font-size: 11px;
    color: #888;
    margin-bottom: 8px;
    font-family: inherit;
}

.pgb-wcl-price {
    font-size: 16px;
    font-weight: 900;
    color: #3db83a;
    font-family: inherit;
}

.pgb-wcl-price span {
    font-size: 11px;
    color: #999;
    font-weight: 600;
    margin-left: 2px;
}

/* Ensure the Elementor container stretches to fill the grid if placed in a Flexbox/Grid layout */
.elementor-widget-pgb-woo-card-link .elementor-widget-container {
    height: 100%;
}


/*-----------------------------------------------
  PGB WOO CTA WIDGET STYLES
-----------------------------------------------*/
.pgb-woo-cta-container {
    background: #1A1A1A;
    padding: 72px 40px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: center;
    border-radius: 0;
    width: 100%;
    font-family: 'Josefin Sans', Arial, sans-serif;
}

.pgb-wcta-left .pgb-wcta-eyebrow {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .12em;
    color: #3db83a;
    margin-bottom: 10px;
}

.pgb-wcta-left .pgb-wcta-title {
    font-size: 30px;
    font-weight: 900;
    color: #fff;
    line-height: 1.15;
    margin-bottom: 14px;
    letter-spacing: -.5px;
    font-family: 'Archivo Black', 'Josefin Sans', Arial, sans-serif;
}

.pgb-wcta-left .pgb-wcta-sub {
    font-size: 15px;
    color: #aaa;
    line-height: 1.65;
    max-width: 440px;
}

/* Right Side Card */
.pgb-wcta-card {
    background: rgba(255, 255, 255, .05);
    border-radius: 0;
    padding: 32px;
    border: 1px solid rgba(255, 255, 255, .1);
    text-align: center;
    border-radius: 15px;
}

.pgb-wcta-card p {
    color: #aaa;
    font-size: 13px;
    line-height: 1.6;
    margin-bottom: 20px;
}

/* Stacked Buttons */
.pgb-wcta-btn {
    display: block;
    text-align: center;
    padding: 13px 26px;
    border-radius: 5;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    margin-bottom: 10px;
    transition: all 0.2s ease;
    border: none;
    cursor: pointer;
    font-family: inherit;
}

.pgb-wcta-btn-1 {
    background: #3db83a;
    color: #fff;
}

.pgb-wcta-btn-1:hover {
    opacity: 0.85;
}

.pgb-wcta-btn-2 {
    background: #2d8c2a;
    color: #fff;
}

.pgb-wcta-btn-2:hover {
    opacity: 0.85;
}

.pgb-wcta-btn-3 {
    border: 1.5px solid #555;
    background: transparent;
    color: #ccc;
    margin-bottom: 0;
}

.pgb-wcta-btn-3:hover {
    border-color: #777;
    color: #fff;
}

/* Responsive Overrides */
@media (max-width: 900px) {
    .pgb-woo-cta-container {
        grid-template-columns: 1fr;
        padding: 40px 20px;
        gap: 32px;
    }
}


/*-----------------------------------------------
  PGB SORTABLE PRODUCT TILES WIDGET STYLES
-----------------------------------------------*/
.pgb-sortable-wrapper {
    width: 100%;
    font-family: 'Josefin Sans', Arial, sans-serif;
}

/* Pills */
.pgb-filter-pills {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
    margin-bottom: 30px;
}

.pgb-pill {
    background: #fff;
    color: #444;
    border: 1px solid #ddd;
    border-radius: 20px;
    padding: 8px 20px;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s ease;
    font-family: inherit;
}

.pgb-pill:hover {
    background: #3db83a;
    color: #fff;
}

.pgb-pill.active {
    background: #3db83a;
    color: #fff;
    border-color: #3db83a;
}

/* Grid Layout */
.pgb-sortable-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    align-items: stretch;
}

/* Cards */
.pgb-sortable-card {
    background: #fff;
    border: 1px solid #e8e8e8;
    border-radius: 8px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: opacity 0.3s ease, transform 0.3s ease;
}

/* JS Hidden State */
.pgb-sortable-card.pgb-hidden {
    display: none;
}

.pgb-sc-img-wrap {
    /*height: 180px;*/
    background: #f4f5f6;
    overflow: hidden;
    border-bottom: 1px solid #efefef;
}

.pgb-sc-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.pgb-sc-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    color: #2d8c2a;
    font-size: 12px;
    font-weight: 600;
}

.pgb-sc-content {
    padding: 20px;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

.pgb-sc-badge {
    display: inline-block;
    background-color: #eaf3e5;
    color: #2e7d32;
    padding: 4px 8px;
    border-radius: 4px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    margin-bottom: 12px;
    align-self: flex-start;
}

html body .pgb-sc-title {
    font-size: 20px !important;
    font-weight: 900;
    color: #1a1a1a;
    margin: 0 0 10px;
    line-height: 1.2;
    font-family: 'Archivo Black', 'Josefin Sans', Arial, sans-serif;
    text-transform: uppercase !important;
}

.pgb-sc-desc {
    font-size: 13px;
    color: #666;
    line-height: 1.5;
    margin-bottom: 15px;
}

/* Footer container that strictly locks to the bottom */
.pgb-sc-footer {
    margin-top: auto !important;
    width: 100%;
}

.pgb-sc-price {
    font-size: 20px;
    font-weight: 900;
    color: #3db83a;
    margin-bottom: 20px;
}

.pgb-sc-btn {
    display: block;
    text-align: center;
    background: #fff;
    color: #1a1a1a;
    padding: 10px;
    border: 1px solid #1a1a1a;
    border-radius: 4px;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    transition: all 0.2s ease;
}

.pgb-sc-btn:hover {
    background: #1a1a1a;
    color: #fff;
}

/* Tablet / Mobile Overrides */
@media (max-width: 900px) {
    .pgb-sortable-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 600px) {
    .pgb-sortable-grid {
        grid-template-columns: 1fr;
    }
}

/* ============================================================
   BENTO LIGHTBOX — Custom lightbox with prev/next navigation
   ============================================================ */
.pgb-bento-lightbox-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.92);
    z-index: 999999;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    animation: pgbBentoFadeIn 0.25s ease forwards;
}

@keyframes pgbBentoFadeIn {
    from { opacity: 0; }
    to   { opacity: 1; }
}

.pgb-bento-lightbox-container {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: 95vw;
    max-height: 95vh;
}

.pgb-bento-lightbox-image-wrapper {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    max-width: 100%;
    max-height: 90vh;
}

.pgb-bento-lightbox-image {
    display: block;
    max-width: 100%;
    max-height: 85vh;
    width: auto;
    height: auto;
    border-radius: 4px;
    box-shadow: 0 4px 30px rgba(0, 0, 0, 0.5);
}

/* Close button */
.pgb-bento-lightbox-close {
    position: absolute;
    top: -40px;
    right: 0;
    background: none;
    border: none;
    color: #fff;
    font-size: 36px;
    line-height: 1;
    cursor: pointer;
    padding: 4px 12px;
    z-index: 10;
    opacity: 0.7;
    transition: opacity 0.2s ease;
}

.pgb-bento-lightbox-close:hover {
    opacity: 1;
}

/* Navigation arrows */
.bento-lightbox-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 48px;
    height: 48px;
    min-width: 44px;
    min-height: 44px;
    border: none;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.15);
    color: #fff;
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10;
    opacity: 0.6;
    transition: all 0.2s ease;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    padding: 0;
    margin: 0;
    user-select: none;
    -webkit-user-select: none;
    touch-action: manipulation;
}

.bento-lightbox-prev {
    left: 16px;
}

.bento-lightbox-next {
    right: 16px;
}

.bento-lightbox-nav:hover {
    opacity: 1;
    background: rgba(255, 255, 255, 0.3);
    transform: translateY(-50%) scale(1.1);
}

.bento-lightbox-nav:active {
    transform: translateY(-50%) scale(0.95);
}

/* Counter */
.bento-lightbox-counter {
    color: rgba(255, 255, 255, 0.7);
    font-size: 14px;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    margin-top: 12px;
    letter-spacing: 1px;
}

/* Touch-friendly: show nav buttons more prominently on mobile */
@media (max-width: 768px) {
    .bento-lightbox-nav {
        width: 44px;
        height: 44px;
        font-size: 20px;
        opacity: 0.8;
        background: rgba(255, 255, 255, 0.2);
    }

    .bento-lightbox-prev {
        left: 8px;
    }

    .bento-lightbox-next {
        right: 8px;
    }

    .pgb-bento-lightbox-close {
        top: -38px;
        font-size: 32px;
    }
}

@media (max-width: 480px) {
    .bento-lightbox-nav {
        width: 40px;
        height: 40px;
        min-width: 44px;
        min-height: 44px;
        font-size: 18px;
    }

    .bento-lightbox-prev {
        left: 4px;
    }

    .bento-lightbox-next {
        right: 4px;
    }
}

/* =========================================================
   Single Product Sidebar — Specs Table + Measurement Calculator
   The specs table is hand-pasted HTML inside the short
   description (no class hook), and the Length/Width/Total/Price
   rows come from the WooCommerce Measurement Price Calculator
   plugin. Neither was ever styled to match the site, so both
   are re-skinned here to match the .pgb-specs-table look used
   elsewhere (8px radius, #e8e8e8 borders, #fafafa zebra/label bg).
   ========================================================= */

/* General rhythm between summary blocks */
body.single-product .summary.entry-summary > .price {
    margin: 4px 0 16px;
}

body.single-product .summary.entry-summary .woocommerce-product-details__short-description {
    margin-bottom: 4px;
}

body.single-product .summary.entry-summary .woocommerce-product-details__short-description h3 {
    margin-top: 4px;
    margin-bottom: 4px;
    font-size: 18px;
}

body.single-product .summary.entry-summary form.cart {
    margin-bottom: 20px;
}

body.single-product .summary.entry-summary .product_meta {
    margin-top: 18px;
    padding-top: 14px;
    border-top: 1px solid #e8e8e8;
}

/* --- Specs table (hand-pasted into the short description) --- */
body.single-product .summary.entry-summary .woocommerce-product-details__short-description table {
    width: 100%;
    border-collapse: collapse;
    border-radius: 8px;
    border: 1px solid #e8e8e8;
    margin: 18px 0 22px;
}

body.single-product .summary.entry-summary .woocommerce-product-details__short-description table td,
body.single-product .summary.entry-summary .woocommerce-product-details__short-description table th {
    padding: 14px 18px;
    font-size: 13px;
    line-height: 1.5;
    border: none;
    border-bottom: 1px solid #e8e8e8;
    vertical-align: top;
}

body.single-product .summary.entry-summary .woocommerce-product-details__short-description table tr:last-child td,
body.single-product .summary.entry-summary .woocommerce-product-details__short-description table tr:last-child th {
    border-bottom: none;
}

body.single-product .summary.entry-summary .woocommerce-product-details__short-description table tr:nth-child(even) {
    background: #fafafa;
}

body.single-product .summary.entry-summary .woocommerce-product-details__short-description table td:first-child,
body.single-product .summary.entry-summary .woocommerce-product-details__short-description table th:first-child {
    font-weight: 700;
    color: #888;
    letter-spacing: .03em;
    font-size: 11px;
    text-transform: uppercase;
    width: 42%;
    background: #fafafa;
}

body.single-product .summary.entry-summary .woocommerce-product-details__short-description table td:last-child,
body.single-product .summary.entry-summary .woocommerce-product-details__short-description table th:last-child {
    font-weight: 700;
    color: #1a1a1a;
    font-size: 13px;
    text-transform: none;
    letter-spacing: normal;
    background: transparent;
}

body.single-product .summary.entry-summary .woocommerce-product-details__short-description table td ul {
    margin: 0;
    padding-left: 18px;
}

/* --- Measurement calculator (Length / Width / Total Area / Product Price) --- */
body.single-product .summary.entry-summary table#price_calculator {
    overflow: hidden;
    width: 100%;
    border: 1px solid #e8e8e8;
    border-radius: 8px;
    padding: 4px 18px;
    padding-bottom: 20px;
    margin: 0 0 18px;
    background: #fafafa;
}

.pgb-total-row.pgb-total-area {
    border-bottom: 1px solid #dbd6d6;
}

button.single_add_to_cart_button  {
    margin-bottom:10px
}

body.single-product .summary.entry-summary table#price_calculator tr.price-table-row td {
    padding: 10px 0;
    border-bottom: 1px solid #e8e8e8;
    font-size: 14px;
    color: #444;
}

body.single-product .summary.entry-summary table#price_calculator tr.price-table-row:last-child td {
    border-bottom: none;
}

body.single-product .summary.entry-summary table#price_calculator td label {
    font-weight: 600;
    color: #1a1a1a;
}

body.single-product .summary.entry-summary table#price_calculator select.amount_needed {
    display: block;
    width: 100%;
    max-width: 150px;
    margin-left: auto;
    padding: 8px 34px 8px 12px;
    border: 1px solid #d8d8d8;
    border-radius: 4px;
    font-size: 14px;
    color: #1a1a1a;
    background-color: #fff;
}

body.single-product .summary.entry-summary table#price_calculator select.amount_needed:focus {
    border-color: var(--global-palette1, #2B6CB0);
    outline: none;
    box-shadow: 0 0 0 3px rgba(43, 108, 176, 0.15);
}

body.single-product .summary.entry-summary table#price_calculator tr.total-amount td,
body.single-product .summary.entry-summary table#price_calculator tr.calculated-price td {
    padding-top: 14px;
    font-weight: 700;
    font-size: 15px;
    color: #1a1a1a;
}

body.single-product .summary.entry-summary table#price_calculator tr.calculated-price {
    border-top: 2px solid #e0e0e0;
}

body.single-product .summary.entry-summary table#price_calculator tr.calculated-price td {
    padding-top: 16px;
}

body.single-product .summary.entry-summary table#price_calculator .wc-measurement-price-calculator-total-amount {
    font-weight: 700;
    color: #1a1a1a;
}

body.single-product .summary.entry-summary table#price_calculator .product_price {
    font-size: 20px;
    font-weight: 800;
    color: var(--global-palette1, #2B6CB0);
}

@media (max-width: 480px) {
    body.single-product .summary.entry-summary .woocommerce-product-details__short-description table td,
    body.single-product .summary.entry-summary .woocommerce-product-details__short-description table th {
        padding: 10px 12px;
        font-size: 12px;
    }

    body.single-product .summary.entry-summary table#price_calculator tr.price-table-row,
    body.single-product .summary.entry-summary table#price_calculator tr.price-table-row td {
        display: block;
        width: 100%;
    }

    body.single-product .summary.entry-summary table#price_calculator tr.price-table-row td:last-child {
        text-align: left !important;
        margin-top: 6px;
    }

    body.single-product .summary.entry-summary table#price_calculator select.amount_needed {
        max-width: 100%;
        margin-left: 0;
    }
}

/* =========================================================
   Turf Order Configurator Card
   Re-skins the same #price_calculator form (see above) into a
   step-by-step "How to Order Your Turf" card once
   assets/js/pgb-turf-config.js has restructured it and moved it
   to sit right after the description, before the specs table.
   If JS fails to run, the plain calculator styling above still
   applies as a fallback.
   ========================================================= */

body.single-product .pgb-turf-config-card {
    border: 1px solid #e2e2e2;
    border-radius: 12px;
    padding: 24px;
    margin: 22px 0 26px;
    background: #fff;
}

body.single-product .pgb-turf-config-eyebrow {
    display: block;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #3db83a;
    margin-bottom: 6px;
}

body.single-product .pgb-turf-config-title {
    margin: 0 0 8px;
    font-size: 22px;
}

body.single-product .pgb-turf-config-intro {
    margin: 0 0 20px;
    font-size: 14px;
    color: #666;
}

body.single-product .pgb-turf-config-card table#price_calculator {
    border: none;
    border-radius: 0;
    padding: 0;
    background: transparent;
    margin: 0;
}

body.single-product .pgb-turf-config-card table#price_calculator,
body.single-product .pgb-turf-config-card table#price_calculator tbody,
body.single-product .pgb-turf-config-card table#price_calculator tr,
body.single-product .pgb-turf-config-card table#price_calculator td {
    display: block;
    width: 100%;
}

body.single-product .pgb-turf-config-card table#price_calculator .price-table-row.length-input,
body.single-product .pgb-turf-config-card table#price_calculator .price-table-row.width-input,
body.single-product .pgb-turf-config-card table#price_calculator .price-table-row.quantity-input {
    margin-bottom: 22px;
    border-bottom: none !important;
}

body.single-product .pgb-turf-config-card table#price_calculator .price-table-row.length-input td,
body.single-product .pgb-turf-config-card table#price_calculator .price-table-row.width-input td,
body.single-product .pgb-turf-config-card table#price_calculator .price-table-row.quantity-input td {
    padding: 0;
    border-bottom: none !important;
}

body.single-product .pgb-turf-config-card .price-table-row label {
    display: block;
    font-weight: 700;
    font-size: 14px;
    color: #1a1a1a;
    margin-bottom: 10px;
}

body.single-product .pgb-turf-config-card .pgb-config-step-help {
    margin: 8px 0 0;
    font-size: 12px;
    color: #888;
}

/* Step 1: roll width toggle, bound to the real (hidden) select */
body.single-product .pgb-turf-config-card select[name="width_needed"] {
    display: none !important;
}

body.single-product .pgb-turf-config-card .pgb-width-toggle {
    display: flex;
    gap: 10px;
}

body.single-product .pgb-turf-config-card .pgb-width-btn {
    flex: 1;
    padding: 14px 10px;
    font-size: 15px;
    font-weight: 700;
    text-align: center;
    background: #fff;
    color: #1a1a1a;
    border: 1px solid #d8d8d8;
    border-radius: 8px;
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease, color .15s ease;
}

body.single-product .pgb-turf-config-card .pgb-width-btn.is-active {
    background: var(--global-palette1, #3db83a);
    border-color: var(--global-palette1, #3db83a);
    color: #fff;
}

/* Step 2: length select, full width */
body.single-product .pgb-turf-config-card select[name="length_needed"] {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    padding: 12px 34px 12px 14px !important;
    font-size: 15px;
    border: 1px solid #d8d8d8;
    border-radius: 8px;
    background-color: #fff;
}

/* Step 3: quantity */
body.single-product .pgb-turf-config-card .quantity .qty {
    width: 100% !important;
    max-width: 100% !important;
    padding: 12px 14px;
    font-size: 15px;
    border: 1px solid #d8d8d8;
    border-radius: 8px;
    height: auto;
}

/* Totals: Total Area + Product Price. These rows are rebuilt by JS as
   plain <div>s right after the table (not table rows) and grouped in
   their own shaded box, so their layout can't be knocked over by the
   table's own display rules. */
body.single-product .pgb-turf-config-card .pgb-totals-box {
    background: #fafafa;
    border-radius: 8px;
    padding: 6px 16px;
    margin-top: 20px;
}

body.single-product .pgb-turf-config-card .pgb-total-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding: 10px 0;
}

body.single-product .pgb-turf-config-card .pgb-total-row-label {
    font-weight: 700;
    font-size: 14px;
    color: #1a1a1a;
}

body.single-product .pgb-turf-config-card .pgb-total-row-value {
    font-weight: 700;
    font-size: 15px;
    color: #1a1a1a;
}

body.single-product .pgb-turf-config-card .pgb-total-price .pgb-total-row-value,
body.single-product .pgb-turf-config-card .pgb-total-price .product_price {
    font-size: 22px;
    color: var(--global-palette1, #2B6CB0);
}

/* Add to Cart, full width green */
body.single-product .pgb-turf-config-card .quantity {
    margin: 0;
    float: none;
}

body.single-product .pgb-turf-config-card .single_add_to_cart_button {
    display: block;
    width: 100%;
    margin-top: 18px;
    padding: 0;
    height: 52px;
    line-height: 52px;
    font-size: 16px;
    font-weight: 700;
    text-align: center;
    background: var(--pgb-primary) !important;
    border-color: var(--pgb-primary) !important;
    color: #fff !important;
}

body.single-product .pgb-turf-config-card .single_add_to_cart_button:hover {
    background: var(--pgb-primary-hover) !important;
    border-color: var(--pgb-primary-hover) !important;
}

body.single-product .pgb-turf-config-card .pgb-turf-config-footnotes {
    margin-top: 14px;
}

body.single-product .pgb-turf-config-card .pgb-turf-config-footnotes p {
    font-size: 12px;
    color: #888;
    margin: 6px 0 0;
}

body.single-product .pgb-turf-config-card .pgb-turf-config-footnotes a {
    color: inherit;
    text-decoration: underline;
}

/* =========================================================
   Product Grid Images (shop, category, related products) —
   show the full product photo instead of a cropped square.
   Paired with the 'medium' (uncropped) thumbnail size set via
   the woocommerce_archive_thumbnail_size filter in functions.php.
   ========================================================= */
ul.products li.product a.woocommerce-loop-image-link {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f7f7f5;
}

ul.products li.product img.attachment-medium,
ul.products li.product img.attachment-woocommerce_thumbnail {
    width: 100%;
    height: auto;
    object-fit: contain;
}

/* =========================================================
   Primary Color / Primary Buttons
   Site brand green applied to WooCommerce and Gravity Forms
   action buttons (add to cart, checkout, place order, form
   submit). Update --pgb-primary here to re-theme all of them.
   ========================================================= */
:root {
    --pgb-primary: #3db83a;
    --pgb-primary-hover: #2d8c2a;
}

/* WooCommerce buttons (shop, cart, checkout, single product, header mini-cart) */
.woocommerce a.button,
.pgb-width-btn.is-active,
.swal2-confirm,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce .single_add_to_cart_button,
.woocommerce a.add_to_cart_button,
.woocommerce a.added_to_cart,
.woocommerce-cart .wc-proceed-to-checkout .checkout-button,
.woocommerce #place_order,
.widget_shopping_cart a.button,
.woocommerce-mini-cart__buttons a.button,
.kadence-header-cart a.button {
    background-color: var(--pgb-primary) !important;
    border-color: var(--pgb-primary) !important;
    color: #fff !important;
}

.woocommerce a.button:hover,
.pgb-width-btn.is-active:hover,
.swal2-confirm:hover,
.woocommerce a.button:focus,
.woocommerce button.button:hover,
.woocommerce button.button:focus,
.woocommerce input.button:hover,
.woocommerce input.button:focus,
.woocommerce #respond input#submit:hover,
.woocommerce #respond input#submit:focus,
.woocommerce .single_add_to_cart_button:hover,
.woocommerce .single_add_to_cart_button:focus,
.woocommerce a.add_to_cart_button:hover,
.woocommerce a.add_to_cart_button:focus,
.woocommerce a.added_to_cart:hover,
.woocommerce a.added_to_cart:focus,
.woocommerce-cart .wc-proceed-to-checkout .checkout-button:hover,
.woocommerce-cart .wc-proceed-to-checkout .checkout-button:focus,
.woocommerce #place_order:hover,
.woocommerce #place_order:focus,
.widget_shopping_cart a.button:hover,
.widget_shopping_cart a.button:focus,
.woocommerce-mini-cart__buttons a.button:hover,
.woocommerce-mini-cart__buttons a.button:focus,
.kadence-header-cart a.button:hover,
.kadence-header-cart a.button:focus {
    background-color: var(--pgb-primary-hover) !important;
    border-color: var(--pgb-primary-hover) !important;
    color: #fff !important;
}

/* Gravity Forms submit buttons */
.gform_wrapper .gform_footer input[type=submit],
.gform_wrapper .gform_button {
    background-color: var(--pgb-primary) !important;
    border-color: var(--pgb-primary) !important;
    color: #fff !important;
}

.gform_wrapper .gform_footer input[type=submit]:hover,
.gform_wrapper .gform_footer input[type=submit]:focus,
.gform_wrapper .gform_button:hover,
.gform_wrapper .gform_button:focus {
    background-color: var(--pgb-primary-hover) !important;
    border-color: var(--pgb-primary-hover) !important;
    color: #fff !important;
}
