:root {
    --fsp-navy: #062A55;
    --fsp-dark-navy: #022250;
    --fsp-red: #F73718;

    --fsp-bg: #F4F4F4;
    --fsp-white: #FFFFFF;

    --fsp-text: #1F2937;
    --fsp-muted: #667085;
    --fsp-border: #E4E7EC;

    --fsp-radius: 8px;
    --fsp-radius-lg: 12px;

    --fsp-transition: .25s ease;
}/* =========================================================
   FSP INTERNATIONAL - YITH ENQUIRY / QUOTE LIST
   ========================================================= */


/* Main quote table */
#yith-ywrq-table-list {
    width: 100% !important;
    border-collapse: collapse !important;

    background: var(--fsp-white) !important;
    border: 1px solid var(--fsp-border) !important;

    border-radius: var(--fsp-radius-lg);
    overflow: hidden;
}


/* =========================================================
   HIDE TOTAL / PRICE
   ========================================================= */

#yith-ywrq-table-list th.product-subtotal,
#yith-ywrq-table-list td.product-subtotal,
#yith-ywrq-table-list th.product-price,
#yith-ywrq-table-list td.product-price {
    display: none !important;
}


/* =========================================================
   TABLE HEADER
   ========================================================= */

#yith-ywrq-table-list thead th {
    background: #F8F9FB !important;

    color: var(--fsp-navy) !important;

    font-size: 14px !important;
    font-weight: 700 !important;

    padding: 14px 16px !important;

    border: 1px solid var(--fsp-border) !important;
}


/* =========================================================
   TABLE ROWS / CELLS
   ========================================================= */

#yith-ywrq-table-list tbody td {
    padding: 14px 16px !important;

    height: auto !important;
    min-height: 0 !important;

    vertical-align: middle !important;

    border: 1px solid var(--fsp-border) !important;
}


/* =========================================================
   REMOVE PRODUCT
   ========================================================= */

#yith-ywrq-table-list .product-remove {
    width: 55px !important;
    text-align: center !important;
}

#yith-ywrq-table-list .product-remove a {
    color: var(--fsp-red) !important;

    font-size: 22px !important;
    font-weight: 700 !important;

    text-decoration: none !important;
}


/* =========================================================
   PRODUCT IMAGE
   ========================================================= */

#yith-ywrq-table-list td.product-thumbnail {
    width: 130px !important;
    max-width: 130px !important;
}

#yith-ywrq-table-list td.product-thumbnail a {
    display: block !important;
    width: 100px !important;
}

#yith-ywrq-table-list td.product-thumbnail img {
    width: 100px !important;
    height: 100px !important;

    max-width: 100px !important;
    max-height: 100px !important;

    object-fit: contain !important;

    display: block !important;

    margin: 0 auto !important;

    background: var(--fsp-white) !important;
}


/* =========================================================
   PRODUCT NAME
   ========================================================= */

#yith-ywrq-table-list td.product-name {
    width: auto !important;
}

#yith-ywrq-table-list td.product-name a {
    color: var(--fsp-navy) !important;

    font-size: 15px !important;
    font-weight: 600 !important;

    text-decoration: none !important;

    transition: var(--fsp-transition);
}

#yith-ywrq-table-list td.product-name a:hover {
    color: var(--fsp-red) !important;
}


/* =========================================================
   QUANTITY
   ========================================================= */

#yith-ywrq-table-list .product-quantity {
    width: 150px !important;
}

#yith-ywrq-table-list .product-quantity input,
#yith-ywrq-table-list input.qty {
    width: 65px !important;
    height: 42px !important;

    padding: 8px !important;

    text-align: center !important;

    border: 1px solid var(--fsp-border) !important;
    border-radius: 4px !important;

    background: var(--fsp-white) !important;
}


/* =========================================================
   UPDATE ENQUIRY BUTTON
   ========================================================= */

#yith-ywrq-table-list td.actions {
    text-align: right !important;
}

#yith-ywrq-table-list td.actions .button {
    background: var(--fsp-red) !important;
    color: var(--fsp-white) !important;

    border: 1px solid var(--fsp-red) !important;
    border-radius: 4px !important;

    padding: 11px 22px !important;

    font-weight: 600 !important;
    text-transform: uppercase !important;

    transition: var(--fsp-transition);
}

#yith-ywrq-table-list td.actions .button:hover {
    background: #D92E13 !important;
    border-color: #D92E13 !important;
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 767px) {

    #yith-ywrq-table-list td.product-thumbnail {
        width: 85px !important;
        max-width: 85px !important;
    }

    #yith-ywrq-table-list td.product-thumbnail a,
    #yith-ywrq-table-list td.product-thumbnail img {
        width: 70px !important;
        height: 70px !important;

        max-width: 70px !important;
        max-height: 70px !important;
    }

    #yith-ywrq-table-list th,
    #yith-ywrq-table-list td {
        padding: 9px !important;
    }

    #yith-ywrq-table-list td.product-name a {
        font-size: 14px !important;
    }

    #yith-ywrq-table-list .product-quantity {
        width: 90px !important;
    }

    #yith-ywrq-table-list input.qty {
        width: 52px !important;
    }

}

/* =========================================================
   FSP QUOTE PAGE - PROFESSIONAL LAYOUT
   ========================================================= */

/* Quote form card */
.yith-ywraq-mail-form-wrapper {
    background: #ffffff;
    border: 1px solid var(--fsp-border);
    border-radius: 10px;
    padding: 28px;
    box-shadow: 0 6px 20px rgba(0,0,0,0.05);
}

/* Form heading */
.yith-ywraq-mail-form-wrapper h3 {
    color: var(--fsp-navy);
    font-size: 24px;
    font-weight: 700;
    margin: 0 0 22px;
}

/* Labels */
#yith-ywraq-mail-form label {
    display: block;
    color: var(--fsp-text);
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 7px;
}

/* Form spacing */
#yith-ywraq-mail-form .form-row {
    margin-bottom: 18px;
}

/* Inputs */
#yith-ywraq-mail-form input[type="text"],
#yith-ywraq-mail-form input[type="email"],
#yith-ywraq-mail-form input[type="tel"],
#yith-ywraq-mail-form textarea {
    width: 100% !important;
    border: 1px solid #D7DCE2 !important;
    background: #ffffff !important;
    border-radius: 5px !important;
    padding: 13px 14px !important;
    font-size: 15px !important;
    color: var(--fsp-text) !important;
    box-sizing: border-box;
}

/* Input focus */
#yith-ywraq-mail-form input:focus,
#yith-ywraq-mail-form textarea:focus {
    border-color: var(--fsp-navy) !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(6,42,85,.08) !important;
}

/* Message */
#yith-ywraq-mail-form textarea {
    min-height: 140px;
    resize: vertical;
}

/* Required star */
#yith-ywraq-mail-form .required {
    color: var(--fsp-red);
    text-decoration: none;
}

/* Submit */
#yith-ywraq-mail-form .raq-send-request {
    width: 100%;
    background: var(--fsp-red) !important;
    color: #ffffff !important;
    border: 1px solid var(--fsp-red) !important;
    border-radius: 4px !important;
    padding: 14px 24px !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    cursor: pointer;
    transition: .25s ease;
}

#yith-ywraq-mail-form .raq-send-request:hover {
    background: #D92E13 !important;
    border-color: #D92E13 !important;
}

/* Product list card */
#yith-ywraq-form {
    background: #ffffff;
    border: 1px solid var(--fsp-border);
    border-radius: 10px;
    padding: 22px;
    box-shadow: 0 6px 20px rgba(0,0,0,0.05);
}

/* Quote table */
#yith-ywrq-table-list {
    border: 0 !important;
    background: transparent !important;
}

/* Header */
#yith-ywrq-table-list thead th {
    background: #F8FAFC !important;
    border: 0 !important;
    border-bottom: 1px solid var(--fsp-border) !important;
    color: var(--fsp-navy) !important;
    padding: 13px 12px !important;
}

/* Rows */
#yith-ywrq-table-list tbody td {
    border: 0 !important;
    border-bottom: 1px solid #EEF0F3 !important;
    background: #ffffff !important;
    padding: 14px 12px !important;
}

/* Product name */
#yith-ywrq-table-list .product-name a {
    color: var(--fsp-navy) !important;
    font-weight: 600 !important;
}

/* Product image */
#yith-ywrq-table-list .product-thumbnail img {
    width: 72px !important;
    height: 72px !important;
    object-fit: contain !important;
    background: #F8FAFC !important;
    border-radius: 7px !important;
    padding: 5px;
}

/* Update button */
#yith-ywrq-table-list .actions .button {
    background: transparent !important;
    color: var(--fsp-navy) !important;
    border: 1px solid var(--fsp-navy) !important;
    padding: 10px 18px !important;
    border-radius: 4px !important;
    font-weight: 600 !important;
}

#yith-ywrq-table-list .actions .button:hover {
    background: var(--fsp-navy) !important;
    color: #ffffff !important;
}

/* Mobile */
@media (max-width: 767px) {
    #yith-ywraq-form,
    .yith-ywraq-mail-form-wrapper {
        padding: 18px;
    }

    .yith-ywraq-mail-form-wrapper h3 {
        font-size: 22px;
    }
}
/* =========================================================
   FSP PROFESSIONAL RFQ TABLE
   ========================================================= */

.fsp-quote-table {
    width: 100%;
}

/* Header */
.fsp-quote-table thead th {
    background: #F8FAFC !important;
    color: var(--fsp-navy) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    padding: 14px !important;
    border: 0 !important;
    border-bottom: 1px solid var(--fsp-border) !important;
}

/* Product rows */
.fsp-quote-table tbody td {
    background: #fff !important;
    padding: 16px 14px !important;
    vertical-align: middle !important;
    border: 0 !important;
    border-bottom: 1px solid #EEF0F3 !important;
}


/* Serial number */
.fsp-col-sno {
    width: 65px;
    text-align: center !important;
    color: var(--fsp-muted);
    font-weight: 600;
}


/* Product */
.fsp-quote-product-wrap {
    display: flex;
    align-items: center;
    gap: 16px;
}

.fsp-quote-thumb {
    width: 78px;
    min-width: 78px;
    height: 78px;

    background: #F8FAFC;
    border-radius: 8px;

    display: flex;
    align-items: center;
    justify-content: center;

    overflow: hidden;
}

.fsp-quote-thumb img {
    width: 70px !important;
    height: 70px !important;

    object-fit: contain !important;
}

.fsp-quote-product-info {
    min-width: 0;
}

.fsp-quote-product-title {
    display: block;

    color: var(--fsp-navy) !important;

    font-size: 15px;
    font-weight: 600;

    line-height: 1.4;
    text-decoration: none !important;
}

.fsp-quote-product-title:hover {
    color: var(--fsp-red) !important;
}


/* Variation metadata */
.fsp-quote-variation {
    margin-top: 5px;

    color: var(--fsp-muted);

    font-size: 12px;
    line-height: 1.4;
}


/* SKU */
.fsp-col-sku {
    width: 165px;
    color: var(--fsp-text);
    font-size: 13px;
}


/* Category */
.fsp-col-category {
    width: 210px;
    color: var(--fsp-muted);
    font-size: 13px;
}


/* Quantity */
.fsp-quote-table .product-quantity {
    width: 110px;
    text-align: center !important;
}

.fsp-quote-table input.qty {
    width: 58px !important;
    height: 40px !important;

    border: 1px solid var(--fsp-border) !important;
    border-radius: 4px !important;

    text-align: center !important;
}


/* Remove */
.fsp-col-action {
    width: 80px;
    text-align: center !important;
}

.fsp-col-action a.remove {
    display: inline-flex !important;

    width: 30px !important;
    height: 30px !important;

    align-items: center;
    justify-content: center;

    border-radius: 50%;

    color: var(--fsp-red) !important;

    font-size: 20px !important;
    font-weight: 600 !important;

    text-decoration: none !important;
}

.fsp-col-action a.remove:hover {
    background: rgba(247,55,24,.08) !important;
}


/* Update enquiry */
.fsp-quote-actions-row td {
    background: #F8FAFC !important;
    text-align: right !important;
}

.fsp-quote-actions-row .button {
    background: transparent !important;

    color: var(--fsp-navy) !important;

    border: 1px solid var(--fsp-navy) !important;
    border-radius: 4px !important;

    padding: 10px 18px !important;

    font-weight: 600 !important;
    text-transform: uppercase !important;
}

.fsp-quote-actions-row .button:hover {
    background: var(--fsp-navy) !important;
    color: #fff !important;
}


/* Empty enquiry */
.fsp-empty-enquiry {
    background: #fff;

    border: 1px solid var(--fsp-border);
    border-radius: 8px;

    padding: 35px;

    text-align: center;
}

.fsp-empty-enquiry-btn {
    display: inline-block;

    margin-top: 12px;
    padding: 12px 22px;

    background: var(--fsp-red);
    color: #fff !important;

    border-radius: 4px;

    font-weight: 600;
    text-decoration: none !important;
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 767px) {

    .fsp-quote-table thead {
        display: none;
    }

    .fsp-quote-table,
    .fsp-quote-table tbody,
    .fsp-quote-table tr,
    .fsp-quote-table td {
        display: block;
        width: 100% !important;
    }

    .fsp-quote-table tr.cart_item {
        position: relative;

        margin-bottom: 14px;
        padding: 14px;

        background: #fff;

        border: 1px solid var(--fsp-border);
        border-radius: 8px;
    }

    .fsp-quote-table tr.cart_item td {
        border: 0 !important;
        padding: 7px 0 !important;
    }

    .fsp-col-sno {
        display: none !important;
    }

    .fsp-quote-product-wrap {
        padding-right: 35px;
    }

    .fsp-quote-thumb {
        width: 65px;
        min-width: 65px;
        height: 65px;
    }

    .fsp-quote-thumb img {
        width: 58px !important;
        height: 58px !important;
    }

    .fsp-col-sku::before {
        content: "SKU: ";
        font-weight: 600;
        color: var(--fsp-navy);
    }

    .fsp-col-category::before {
        content: "Category: ";
        font-weight: 600;
        color: var(--fsp-navy);
    }

    .product-quantity::before {
        content: "Quantity: ";
        font-weight: 600;
        color: var(--fsp-navy);
        margin-right: 10px;
    }

    .fsp-col-action {
        position: absolute;

        top: 12px;
        right: 12px;

        width: auto !important;
    }

}
/* =========================================================
   FSP RFQ CUSTOMER DETAILS
   ========================================================= */

.fsp-rfq-details {
    background: #fff;
    border: 1px solid var(--fsp-border);
    border-radius: 10px;
    padding: 28px 30px;
    box-shadow: 0 6px 20px rgba(0,0,0,.04);
}

.fsp-rfq-form-header {
    margin-bottom: 24px;
}

.fsp-rfq-form-header h3 {
    color: var(--fsp-navy);
    font-size: 24px;
    margin: 0 0 7px;
}

.fsp-rfq-form-header p {
    margin: 0;
    color: var(--fsp-muted);
    font-size: 14px;
    line-height: 1.6;
}

.fsp-rfq-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 22px;
    row-gap: 4px;
}

.fsp-rfq-details .form-row {
    margin: 0 0 18px !important;
}

.fsp-rfq-details label {
    display: block;
    margin-bottom: 7px;

    color: var(--fsp-text);
    font-size: 13px;
    font-weight: 600;
}

.fsp-rfq-details input[type="text"],
.fsp-rfq-details input[type="email"],
.fsp-rfq-details input[type="tel"],
.fsp-rfq-details input[type="date"],
.fsp-rfq-details select,
.fsp-rfq-details textarea {
    width: 100% !important;
    box-sizing: border-box;

    background: #fff;

    border: 1px solid var(--fsp-border) !important;
    border-radius: 5px !important;

    padding: 12px 13px !important;

    color: var(--fsp-text);
    font-size: 14px;
}

.fsp-rfq-details input:focus,
.fsp-rfq-details select:focus,
.fsp-rfq-details textarea:focus {
    border-color: var(--fsp-navy) !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(6,42,85,.07);
}

.fsp-rfq-full {
    width: 100%;
}

.fsp-rfq-details textarea {
    min-height: 130px;
}

.fsp-boq-notice {
    margin: 5px 0 22px;

    padding: 14px 16px;

    background: #F8FAFC;

    border-left: 3px solid var(--fsp-red);

    color: var(--fsp-text);

    font-size: 13px;
    line-height: 1.6;
}

.fsp-boq-notice a {
    color: var(--fsp-red);
    font-weight: 600;
}

.fsp-rfq-submit {
    margin-bottom: 0 !important;
}

.fsp-rfq-submit .raq-send-request {
    width: 100%;

    background: var(--fsp-red) !important;
    color: #fff !important;

    border: 1px solid var(--fsp-red) !important;
    border-radius: 4px !important;

    padding: 14px 25px !important;

    font-weight: 700 !important;
    text-transform: uppercase;

    cursor: pointer;
}

.fsp-rfq-submit .raq-send-request:hover {
    background: #D92E13 !important;
    border-color: #D92E13 !important;
}

@media (max-width: 767px) {

    .fsp-rfq-details {
        padding: 20px 18px;
    }

    .fsp-rfq-grid {
        grid-template-columns: 1fr;
    }

}
.fsp-rfq-success {
    max-width: 760px;
    margin: 25px auto 45px;
    padding: 45px 35px;

    background: #fff;
    border: 1px solid var(--fsp-border);
    border-radius: 10px;

    text-align: center;
    box-shadow: 0 8px 24px rgba(0,0,0,.05);
}

.fsp-rfq-success-icon {
    width: 54px;
    height: 54px;

    margin: 0 auto 18px;

    display: flex;
    align-items: center;
    justify-content: center;

    background: #ECFDF3;
    color: #15803D;

    border-radius: 50%;

    font-size: 26px;
    font-weight: 700;
}

.fsp-rfq-success h2 {
    margin: 0 0 12px;
    color: var(--fsp-navy);
    font-size: 28px;
}

.fsp-rfq-success p {
    max-width: 600px;
    margin: 0 auto 25px;

    color: var(--fsp-muted);
    line-height: 1.7;
}

.fsp-rfq-success-actions {
    display: flex;
    justify-content: center;
    gap: 12px;
    flex-wrap: wrap;
}

.fsp-rfq-success-actions a {
    padding: 12px 20px;
    border-radius: 4px;

    background: var(--fsp-red);
    color: #fff !important;

    font-weight: 600;
    text-decoration: none !important;
}

.fsp-rfq-success-actions a:last-child {
    background: transparent;
    color: var(--fsp-navy) !important;
    border: 1px solid var(--fsp-navy);
}
/* =========================================================
   FSP INTERNATIONAL - FINAL PRODUCT DETAIL DESIGN
   ========================================================= */

/* Product information area */
.single-product .summary {
    max-width: 720px;
}


/* ---------------------------------------------------------
   BREADCRUMB
   --------------------------------------------------------- */

.single-product .woocommerce-breadcrumb {
    margin-bottom: 22px !important;

    color: #667085 !important;

    font-size: 14px !important;
    line-height: 1.5 !important;
}

.single-product .woocommerce-breadcrumb a {
    color: #667085 !important;
    text-decoration: none !important;
}

.single-product .woocommerce-breadcrumb a:hover {
    color: #F73718 !important;
}


/* ---------------------------------------------------------
   PRODUCT TITLE
   --------------------------------------------------------- */

.single-product .product_title {
    margin: 0 0 24px !important;

    color: #062A55 !important;

    font-size: clamp(36px, 3vw, 48px) !important;
    line-height: 1.08 !important;

    font-weight: 700 !important;
}


/* ---------------------------------------------------------
   SKU / CATEGORY
   --------------------------------------------------------- */

.single-product .product_meta {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center;

    gap: 10px 34px !important;

    margin-bottom: 30px !important;

    color: #1F2937 !important;

    font-size: 14px !important;
}

.single-product .product_meta > span {
    display: inline-flex !important;
    align-items: center;
    gap: 4px;
}

.single-product .product_meta .sku_wrapper,
.single-product .product_meta .posted_in {
    font-weight: 700 !important;
}

.single-product .product_meta .sku {
    font-weight: 400 !important;
}

.single-product .product_meta a {
    color: #F73718 !important;
    font-weight: 400 !important;
    text-decoration: none !important;
}

.single-product .product_meta a:hover {
    color: #D92E13 !important;
}


/* ---------------------------------------------------------
   SHORT DESCRIPTION
   --------------------------------------------------------- */

.single-product
.woocommerce-product-details__short-description {
    max-width: 650px;

    margin: 0 0 34px !important;

    color: #1F2937 !important;

    font-size: 16px !important;
    line-height: 1.7 !important;
}

.single-product
.woocommerce-product-details__short-description p {
    margin: 0 !important;
}


/* =========================================================
   PRIMARY CTA - ADD TO ENQUIRY
   ========================================================= */

.single-product .summary .yith-ywraq-add-to-quote {
    margin: 0 !important;
}

.single-product .summary .yith-ywraq-add-to-quote a,
.single-product .summary .yith-ywraq-add-to-quote a:link,
.single-product .summary .yith-ywraq-add-to-quote a:visited,
.single-product .summary .add-request-quote-button,
.single-product .summary .add-request-quote-button:link,
.single-product .summary .add-request-quote-button:visited {

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: 240px !important;
    min-width: 240px !important;
    height: 54px !important;

    box-sizing: border-box !important;

    padding: 0 25px !important;

    background: #F73718 !important;
    background-color: #F73718 !important;

    color: #FFFFFF !important;

    border: 2px solid #F73718 !important;
    border-radius: 5px !important;

    opacity: 1 !important;
    visibility: visible !important;
    filter: none !important;

    font-size: 15px !important;
    line-height: 1 !important;
    font-weight: 700 !important;

    text-transform: uppercase !important;
    letter-spacing: .3px !important;

    text-decoration: none !important;

    box-shadow:
        0 7px 18px rgba(247,55,24,.20) !important;

    cursor: pointer !important;

    transition: all .22s ease !important;
}


/* All interaction states */
.single-product .summary .yith-ywraq-add-to-quote a:hover,
.single-product .summary .yith-ywraq-add-to-quote a:focus,
.single-product .summary .yith-ywraq-add-to-quote a:active,
.single-product .summary .add-request-quote-button:hover,
.single-product .summary .add-request-quote-button:focus,
.single-product .summary .add-request-quote-button:active {

    background: #D92E13 !important;
    background-color: #D92E13 !important;

    color: #FFFFFF !important;

    border-color: #D92E13 !important;

    opacity: 1 !important;
    filter: none !important;

    transform: translateY(-1px);

    box-shadow:
        0 9px 22px rgba(247,55,24,.26) !important;
}


/* =========================================================
   SECONDARY CTA - VIEW ENQUIRY
   ========================================================= */

/*
   Target both the Elementor class AND the link itself.
   This makes the styling more reliable.
*/

.fsp-product-cta-secondary .elementor-button,
.fsp-product-cta-secondary .elementor-button:link,
.fsp-product-cta-secondary .elementor-button:visited,

.single-product .summary a[href*="/request-quote/"],
.single-product .summary a[href*="/request-quote/"]:link,
.single-product .summary a[href*="/request-quote/"]:visited {

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: 240px !important;
    min-width: 240px !important;
    height: 54px !important;

    box-sizing: border-box !important;

    padding: 0 25px !important;

    background: #062A55 !important;
    background-color: #062A55 !important;

    color: #FFFFFF !important;

    border: 2px solid #062A55 !important;
    border-radius: 5px !important;

    opacity: 1 !important;
    visibility: visible !important;
    filter: none !important;

    font-size: 15px !important;
    line-height: 1 !important;
    font-weight: 700 !important;

    text-transform: uppercase !important;
    letter-spacing: .3px !important;

    text-decoration: none !important;

    box-shadow:
        0 7px 18px rgba(6,42,85,.18) !important;

    transition: all .22s ease !important;
}


/* Elementor inner text */
.fsp-product-cta-secondary .elementor-button-text,
.fsp-product-cta-secondary
.elementor-button:hover
.elementor-button-text {

    color: #FFFFFF !important;
    opacity: 1 !important;
}


/* Secondary hover */
.fsp-product-cta-secondary .elementor-button:hover,
.fsp-product-cta-secondary .elementor-button:focus,
.fsp-product-cta-secondary .elementor-button:active,

.single-product .summary a[href*="/request-quote/"]:hover,
.single-product .summary a[href*="/request-quote/"]:focus,
.single-product .summary a[href*="/request-quote/"]:active {

    background: #021E3D !important;
    background-color: #021E3D !important;

    color: #FFFFFF !important;

    border-color: #021E3D !important;

    opacity: 1 !important;
    filter: none !important;

    transform: translateY(-1px);

    box-shadow:
        0 9px 22px rgba(6,42,85,.24) !important;
}


/* =========================================================
   PRODUCT ALREADY ADDED
   ========================================================= */

.single-product .yith_ywraq_add_item_response_message,
.single-product .yith_ywraq_added_to_quote_message {

    display: inline-flex !important;
    align-items: center !important;

    width: auto !important;
    max-width: 330px !important;
    min-height: 54px !important;

    box-sizing: border-box;

    margin: 0 !important;
    padding: 10px 16px !important;

    background: #ECFDF3 !important;

    color: #166534 !important;

    border: 1px solid #BBF7D0 !important;
    border-left: 4px solid #22C55E !important;

    border-radius: 6px !important;

    font-size: 14px !important;
    line-height: 1.45 !important;
    font-weight: 600 !important;

    opacity: 1 !important;
}


/* Remove duplicate YITH browse link */
.single-product .yith_ywraq_add_item_browse_message {
    display: none !important;
}


/* =========================================================
   PRODUCT IMAGE
   ========================================================= */

.single-product .woocommerce-product-gallery {
    background: #FFFFFF;

    border: 1px solid #EEF0F3;
    border-radius: 12px;

    padding: 20px;

    overflow: hidden;
}

.single-product .woocommerce-product-gallery img {
    object-fit: contain !important;
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 767px) {

    .single-product .product_title {
        font-size: 31px !important;
        line-height: 1.12 !important;
    }

    .single-product .product_meta {
        display: block !important;
    }

    .single-product .product_meta > span {
        display: block !important;
        margin-bottom: 7px !important;
    }

    .single-product
    .woocommerce-product-details__short-description {
        font-size: 15px !important;
    }

    .single-product .summary .yith-ywraq-add-to-quote a,
    .single-product .summary .add-request-quote-button,

    .fsp-product-cta-secondary .elementor-button,

    .single-product .summary a[href*="/request-quote/"] {

        width: 100% !important;
        min-width: 100% !important;
    }

    .single-product .yith_ywraq_add_item_response_message,
    .single-product .yith_ywraq_added_to_quote_message {

        width: 100% !important;
        max-width: none !important;
    }
}

/* =========================================================
   FSP PRODUCT PAGE - FINAL MICRO POLISH
   ========================================================= */

/* Long product titles */
.single-product .product_title {
    font-size: clamp(28px, 2.7vw, 28px) !important;
    line-height: 1.10 !important;
    max-width: 680px;
}


/* Added/already-added status */
.single-product .yith_ywraq_add_item_response_message,
.single-product .yith_ywraq_added_to_quote_message {

    width: 340px !important;
    max-width: 340px !important;
    min-height: 54px !important;

    padding: 10px 18px !important;

    display: inline-flex !important;
    align-items: center !important;

    background: #ECFDF3 !important;
    color: #166534 !important;

    border: 1px solid #BBF7D0 !important;
    border-left: 4px solid #22C55E !important;
    border-radius: 6px !important;

    box-sizing: border-box;

    font-size: 14px !important;
    font-weight: 600 !important;
    line-height: 1.4 !important;
}


/* Green check before success status */
.single-product .yith_ywraq_add_item_response_message::before,
.single-product .yith_ywraq_added_to_quote_message::before {
    content: "✓";
    margin-right: 9px;

    color: #15803D;

    font-size: 16px;
    font-weight: 700;
}


/* Keep View Enquiry consistent */
.fsp-product-cta-secondary .elementor-button {
    width: 240px !important;
    height: 54px !important;
}


/* Mobile */
@media (max-width: 767px) {

    .single-product .product_title {
        font-size: 30px !important;
    }

    .single-product .yith_ywraq_add_item_response_message,
    .single-product .yith_ywraq_added_to_quote_message,
    .fsp-product-cta-secondary .elementor-button {

        width: 100% !important;
        max-width: 100% !important;
    }
}
/* =========================================================
   FSP QUICK PRODUCT ENQUIRY
   ========================================================= */

.fsp-quick-enquiry {
    width: 100%;

    margin: 22px 0;

    padding: 24px;

    background: #FFFFFF;

    border: 1px solid var(--fsp-border);
    border-radius: 8px;
}

.fsp-qe-header {
    margin-bottom: 20px;
}

.fsp-qe-header h3 {
    margin: 0 0 6px;

    color: var(--fsp-navy);

    font-size: 22px;
    font-weight: 700;
}

.fsp-qe-header p {
    margin: 0;

    color: var(--fsp-muted);

    font-size: 14px;
    line-height: 1.6;
}

.fsp-qe-grid {
    display: grid;

    grid-template-columns:
        minmax(180px, 1fr)
        minmax(240px, 1.4fr)
        100px
        180px;

    gap: 14px;

    align-items: end;
}

.fsp-qe-field label {
    display: block;

    margin-bottom: 7px;

    color: var(--fsp-text);

    font-size: 13px;
    font-weight: 600;
}

.fsp-qe-field select,
.fsp-qe-field input {
    width: 100%;

    height: 44px;

    box-sizing: border-box;

    padding: 0 12px;

    background: #FFFFFF;

    color: var(--fsp-text);

    border: 1px solid var(--fsp-border);
    border-radius: 4px;
}

.fsp-qe-field select:focus,
.fsp-qe-field input:focus {
    border-color: var(--fsp-navy);

    outline: none;

    box-shadow:
        0 0 0 3px rgba(6,42,85,.07);
}

#fsp-qe-add {
    width: 100%;
    height: 44px;

    border: 0;
    border-radius: 4px;

    background: var(--fsp-red);
    color: #FFFFFF;

    font-size: 13px;
    font-weight: 700;

    cursor: pointer;
}

#fsp-qe-add:hover {
    background: #D92E13;
}

#fsp-qe-add:disabled {
    opacity: .45;
    cursor: not-allowed;
}

.fsp-qe-success,
.fsp-qe-error {
    margin-top: 16px;

    padding: 11px 14px;

    border-radius: 5px;

    font-size: 13px;
    font-weight: 600;
}

.fsp-qe-success {
    background: #ECFDF3;
    color: #166534;

    border: 1px solid #BBF7D0;
}

.fsp-qe-error {
    background: #FEF2F2;
    color: #991B1B;

    border: 1px solid #FECACA;
}

.fsp-qe-footer {
    margin-top: 18px;
    padding-top: 16px;

    border-top: 1px solid var(--fsp-border);

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 15px;
}

#fsp-qe-count {
    color: var(--fsp-muted);
    font-size: 13px;
}

.fsp-qe-view {
    display: inline-flex;

    min-height: 42px;

    padding: 0 18px;

    align-items: center;
    justify-content: center;

    background: var(--fsp-navy);

    color: #FFFFFF !important;

    border-radius: 4px;

    font-size: 13px;
    font-weight: 700;

    text-decoration: none !important;
}

.fsp-qe-view:hover {
    background: #021E3D;
}


/* Tablet */
@media (max-width: 1024px) {

    .fsp-qe-grid {
        grid-template-columns: 1fr 1fr;
    }
}


/* Mobile */
@media (max-width: 767px) {

    .fsp-quick-enquiry {
        padding: 18px;
    }

    .fsp-qe-grid {
        grid-template-columns: 1fr;
    }

    .fsp-qe-footer {
        display: block;
    }

    .fsp-qe-view {
        width: 100%;

        box-sizing: border-box;

        margin-top: 12px;
    }
}
.fsp-enquiry-divider {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 20px 0;
    color: #667085;
    font-size: 12px;
    font-weight: 700;
}

.fsp-enquiry-divider::before,
.fsp-enquiry-divider::after {
    content: "";
    flex: 1;
    height: 1px;
    background: #E4E7EC;
}

.fsp-enquiry-divider span {
    padding: 0 5px;
}
/* =========================================================
   FSP QUICK ENQUIRY - FIX COLUMN OVERFLOW
   ========================================================= */

.fsp-qe-grid {
    display: grid !important;

    /* Category | Product | Qty | Button */
    grid-template-columns:
        minmax(0, 1fr)
        minmax(0, 1.25fr)
        82px
        155px !important;

    gap: 10px !important;

    align-items: end !important;

    width: 100% !important;
    box-sizing: border-box !important;
}


/* Critical: allow grid items to shrink */
.fsp-qe-grid > * {
    min-width: 0 !important;
}


/* Keep controls inside their columns */
.fsp-qe-field select,
.fsp-qe-field input {
    width: 100% !important;
    max-width: 100% !important;

    box-sizing: border-box !important;
}


/* Quantity */
.fsp-qe-qty {
    width: 82px !important;
}


/* Add button */
.fsp-qe-action {
    width: 155px !important;
}

#fsp-qe-add {
    width: 100% !important;
    max-width: 155px !important;

    padding: 0 10px !important;

    white-space: nowrap !important;

    font-size: 12px !important;
}


/* Slightly narrower screens */
@media (max-width: 1200px) {

    .fsp-qe-grid {
        grid-template-columns:
            1fr
            1.2fr
            75px
            145px !important;
    }

    .fsp-qe-qty {
        width: 75px !important;
    }

    .fsp-qe-action {
        width: 145px !important;
    }
}


/* Mobile */
@media (max-width: 767px) {

    .fsp-qe-grid {
        grid-template-columns: 1fr !important;
        gap: 14px !important;
    }

    .fsp-qe-qty,
    .fsp-qe-action {
        width: 100% !important;
    }

    #fsp-qe-add {
        width: 100% !important;
        max-width: none !important;
        height: 46px !important;
    }
}
/* =========================================
   FSP SINGLE PRODUCT PAGE
========================================= */

.fsp-product-hero {
    background: #f4f6f8;
    padding: 56px 24px;
}

.fsp-product-hero-inner {
    display: flex;
    gap: 42px;
    align-items: flex-start;
}

/* Product image card */

.fsp-product-gallery-card {
    background: #ffffff;
    border: 1px solid #e4e7ec;
    border-radius: 12px;
    padding: 20px;
    min-height: 500px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.fsp-product-gallery-card img {
    max-height: 450px;
    width: 100%;
    object-fit: contain;
}

/* Summary */

.fsp-product-summary {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.fsp-product-summary .product_title,
.fsp-product-summary .elementor-heading-title {
    color: #062A55;
    font-weight: 700;
    line-height: 1.08;
}

/* Meta */

.fsp-product-meta-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
    border-top: 1px solid #e4e7ec;
    border-bottom: 1px solid #e4e7ec;
    padding: 14px 0;
}

.fsp-product-meta-grid > div {
    padding: 0 18px;
    border-right: 1px solid #d9dee7;
}

.fsp-product-meta-grid > div:first-child {
    padding-left: 0;
}

.fsp-product-meta-grid > div:last-child {
    border-right: 0;
}

.fsp-product-meta-grid strong {
    display: block;
    color: #667085;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .4px;
    margin-bottom: 3px;
}

/* Short description */

.fsp-product-short-description {
    color: #344054;
    line-height: 1.65;
    font-size: 16px;
}

/* Benefits */

.fsp-product-benefits {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-top: 4px;
}

.fsp-product-benefit {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    padding: 14px 0;
}

.fsp-product-benefit:not(:last-child) {
    border-right: 1px solid #e4e7ec;
}

.fsp-product-benefit i,
.fsp-product-benefit svg {
    color: #062A55;
    font-size: 26px;
}

.fsp-product-benefit strong {
    color: #062A55;
    display: block;
    font-size: 14px;
}

.fsp-product-benefit p {
    color: #667085;
    font-size: 12px;
    margin: 3px 0 0;
    line-height: 1.4;
}

/* Quick spec cards */

.fsp-quick-specs {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
}

.fsp-quick-spec-card {
    background: #ffffff;
    border: 1px solid #e4e7ec;
    border-radius: 10px;
    padding: 20px;
    display: flex;
    align-items: center;
    gap: 14px;
    min-height: 92px;
    box-shadow: 0 4px 14px rgba(16,24,40,.04);
}

.fsp-quick-spec-card .elementor-icon {
    background: #f4f6f8;
    border-radius: 8px;
    padding: 10px;
}

.fsp-quick-spec-card strong {
    display: block;
    color: #667085;
    font-size: 12px;
    margin-bottom: 4px;
}

.fsp-quick-spec-card span {
    color: #062A55;
    font-weight: 700;
}

/* Main cards */

.fsp-product-content-section {
    background: #f4f6f8;
}

.fsp-product-content-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 22px;
}

.fsp-content-card {
    background: #ffffff;
    border: 1px solid #e4e7ec;
    border-radius: 12px;
    padding: 28px;
    box-shadow: 0 4px 14px rgba(16,24,40,.035);
}

.fsp-content-card h2,
.fsp-content-card h3,
.fsp-content-card .elementor-heading-title {
    color: #062A55;
}

/* Overview */

.fsp-product-overview {
    color: #344054;
    line-height: 1.7;
}

/* Technical specifications */

.fsp-technical-specs {
    color: #344054;
    line-height: 1.6;
}

.fsp-technical-specs table {
    width: 100%;
    border-collapse: collapse;
}

.fsp-technical-specs td {
    padding: 10px 14px;
    border-bottom: 1px solid #e4e7ec;
}

.fsp-technical-specs tr:nth-child(odd) {
    background: #f8fafc;
}

.fsp-technical-specs td:first-child {
    width: 42%;
    color: #062A55;
    font-weight: 600;
}

/* Approval */

.fsp-approval-card {
    margin-top: 22px;
}

.fsp-approval-card .elementor-icon {
    color: #F73718;
}

/* Downloads */

.fsp-download-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.fsp-download-card {
    background: #ffffff;
    border: 1px solid #e4e7ec;
    border-radius: 10px;
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-height: 190px;
    transition: all .2s ease;
}

.fsp-download-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 22px rgba(16,24,40,.08);
}

.fsp-download-card .elementor-icon {
    color: #F73718;
    font-size: 30px;
}

.fsp-download-card h3 {
    color: #062A55;
    margin: 0;
}

.fsp-download-card p {
    color: #667085;
    font-size: 13px;
    flex-grow: 1;
}

/* Related */

.fsp-related-section {
    background: #f4f6f8;
}

/* =========================================
   TABLET
========================================= */

@media (max-width: 1024px) {

    .fsp-product-hero-inner {
        gap: 28px;
    }

    .fsp-product-gallery-card {
        min-height: 400px;
    }

    .fsp-quick-specs {
        grid-template-columns: repeat(2, 1fr);
    }

    .fsp-product-benefits {
        grid-template-columns: 1fr;
    }

    .fsp-product-benefit {
        border-right: 0 !important;
        border-bottom: 1px solid #e4e7ec;
    }
}

/* =========================================
   MOBILE
========================================= */

@media (max-width: 767px) {

    .fsp-product-hero {
        padding: 28px 16px;
    }

    .fsp-product-hero-inner {
        flex-direction: column;
    }

    .fsp-product-gallery-card {
        min-height: 330px;
        width: 100%;
    }

    .fsp-product-meta-grid {
        grid-template-columns: 1fr;
    }

    .fsp-product-meta-grid > div {
        border-right: 0;
        border-bottom: 1px solid #e4e7ec;
        padding: 10px 0;
    }

    .fsp-product-meta-grid > div:last-child {
        border-bottom: 0;
    }

    .fsp-quick-specs {
        grid-template-columns: 1fr;
    }

    .fsp-product-content-grid {
        grid-template-columns: 1fr;
    }

    .fsp-download-grid {
        grid-template-columns: 1fr;
    }

    .fsp-content-card {
        padding: 20px;
    }
}
/* FSP PRODUCT CATEGORY BADGE */
.elementor-widget-heading.fsp-product-badge {
    width: fit-content !important;
}

.elementor-widget-heading.fsp-product-badge .elementor-heading-title {
    display: inline-block !important;
    width: auto !important;
    background: #FADADD !important;
    color: #062A55 !important;
    border-radius: 20px !important;
    padding: 5px 12px !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    text-transform: uppercase !important;
}
/* =========================================================
   FSP SINGLE PRODUCT - FINAL CTA OVERRIDE
   ========================================================= */

/* ADD TO ENQUIRY - YITH BUTTON */
body.single-product .yith-ywraq-add-to-quote a,
body.single-product .yith-ywraq-add-to-quote .add-request-quote-button,
body.single-product a.add-request-quote-button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: 100% !important;
    min-width: 220px !important;
    height: 50px !important;

    background: #F73718 !important;
    background-color: #F73718 !important;

    color: #FFFFFF !important;

    border: 2px solid #F73718 !important;
    border-radius: 4px !important;

    font-size: 15px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;

    box-shadow: none !important;
    opacity: 1 !important;
}

body.single-product .yith-ywraq-add-to-quote a:hover,
body.single-product a.add-request-quote-button:hover {
    background: #D92E13 !important;
    border-color: #D92E13 !important;
    color: #FFFFFF !important;
}


/* VIEW ENQUIRY / REQUEST QUOTE - OUTLINED RED */
body.single-product .fsp-product-cta-secondary .elementor-button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: 100% !important;
    min-width: 220px !important;
    height: 50px !important;

    background: #FFFFFF !important;
    background-color: #FFFFFF !important;

    color: #F73718 !important;

    border: 2px solid #F73718 !important;
    border-radius: 4px !important;

    font-size: 15px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;

    box-shadow: none !important;
}

body.single-product
.fsp-product-cta-secondary
.elementor-button .elementor-button-text {
    color: #F73718 !important;
}

body.single-product
.fsp-product-cta-secondary
.elementor-button:hover {
    background: #F73718 !important;
    color: #FFFFFF !important;
    border-color: #F73718 !important;
}

body.single-product
.fsp-product-cta-secondary
.elementor-button:hover
.elementor-button-text {
    color: #FFFFFF !important;
}
/* =========================================================
   FSP QUICK SPECS - CLEAN FINAL VERSION
   ========================================================= */

/* Parent holding all 4 cards */
.fsp-quick-specs {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 18px !important;
    width: 100% !important;
}

/* Individual card */
.fsp-quick-spec-card {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;

    align-items: center !important;
    justify-content: flex-start !important;

    gap: 14px !important;

    width: 100% !important;
    min-width: 0 !important;
    min-height: 92px !important;

    padding: 18px !important;

    background: #ffffff !important;
    border: 1px solid #e4e7ec !important;
    border-radius: 10px !important;

    box-shadow: 0 4px 14px rgba(16,24,40,.04) !important;
    box-sizing: border-box !important;
}

/* Standalone Elementor icon widget */
.fsp-spec-icon {
    width: 48px !important;
    min-width: 48px !important;
    max-width: 48px !important;

    flex: 0 0 48px !important;
}

.fsp-spec-icon .elementor-icon {
    width: 48px !important;
    height: 48px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    background: #f4f6f8 !important;
    color: #062A55 !important;

    border-radius: 8px !important;
    padding: 10px !important;
}

/* Text container */
.fsp-spec-text {
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 0 !important;

    display: flex !important;
    flex-direction: column !important;

    align-items: flex-start !important;
    justify-content: center !important;

    gap: 3px !important;
}

/* Label */
.fsp-spec-label .elementor-heading-title {
    margin: 0 !important;

    color: #667085 !important;

    font-size: 11px !important;
    line-height: 1.2 !important;
    font-weight: 700 !important;

    text-transform: uppercase !important;
    letter-spacing: .3px !important;
}

/* Value */
.fsp-spec-value,
.fsp-spec-value p,
.fsp-spec-value .elementor-heading-title {
    margin: 0 !important;

    color: #062A55 !important;

    font-size: 14px !important;
    line-height: 1.35 !important;
    font-weight: 600 !important;

    text-align: left !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
}

/* Tablet */
@media (max-width: 1024px) {
    .fsp-quick-specs {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

/* Mobile */
@media (max-width: 767px) {
    .fsp-quick-specs {
        grid-template-columns: 1fr !important;
    }
}
/* =========================================================
   FSP PRODUCT CTA - FINAL ALIGNMENT
   ========================================================= */

.fsp-product-cta-row {
    display: flex !important;
    align-items: stretch !important;
    justify-content: space-between !important;
    gap: 18px !important;
}

/* Remove wrapper spacing differences */
.fsp-product-cta-row > *,
.fsp-product-cta-row .yith-ywraq-add-to-quote,
.fsp-product-cta-row .elementor-widget-button,
.fsp-product-cta-row .elementor-widget-container {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* Equal columns */
.fsp-product-cta-row > * {
    flex: 1 1 0 !important;
    width: 50% !important;
    align-self: stretch !important;
}

/* Force exact same button height */
.fsp-product-cta-row .yith-ywraq-add-to-quote a,
.fsp-product-cta-row .add-request-quote-button,
.fsp-product-cta-row .elementor-button {
    width: 100% !important;
    height: 50px !important;
    min-height: 50px !important;

    margin: 0 !important;
    padding: 0 20px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    box-sizing: border-box !important;
}
/* Reduce gap between product CTA and Quick Specs */

.fsp-product-hero {
    padding-bottom: 12px !important;
}

.fsp-quick-specs-section {
    padding-top: 0 !important;
    margin-top: 0 !important;
}

.fsp-quick-specs {
    margin-top: 0 !important;
}
/* Align product summary with image column */
.fsp-product-hero-inner {
    align-items: stretch !important;
}

.fsp-product-summary {
    align-self: stretch !important;
    height: auto !important;
}

/* Push CTA to the bottom of the summary column */
.fsp-product-cta-row {
    margin-top: auto !important;
    margin-bottom: 0 !important;
}

/* =========================================
   FSP PRODUCT GALLERY - REMOVE EMPTY SPACE
========================================= */

.fsp-product-gallery-card {
    min-height: 0 !important;
    height: auto !important;

    align-self: flex-start !important;

    justify-content: flex-start !important;
    align-items: stretch !important;

    padding: 10px !important;
}

/* WooCommerce gallery itself */
.fsp-product-gallery-card .woocommerce-product-gallery {
    width: 100% !important;
    margin: 0 !important;
}

/* Remove unnecessary widget/container spacing */
.fsp-product-gallery-card > .elementor-element,
.fsp-product-gallery-card > .elementor-widget,
.fsp-product-gallery-card > .e-con {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}
/* Tighten hero → Quick Specs spacing */

.fsp-product-hero {
    padding-bottom: 12px !important;
}

.fsp-quick-specs-section {
    margin-top: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 28px !important;
}

.fsp-quick-specs {
    margin-top: 0 !important;
}
/* =========================================
   FSP HERO / QUICK SPECS SPACING FINAL
========================================= */

/* Remove excessive space below hero */
.fsp-product-hero {
    padding-bottom: 14px !important;
}

/* Both hero columns same height */
.fsp-product-hero-inner {
    align-items: flex-start !important;
}

/* Stretch image card to match summary column */
.fsp-product-gallery-card {
    align-self: flex-start !important;
    height: auto !important;
    min-height: 0 !important;
}

/* Keep product image centered inside stretched card */
.fsp-product-gallery-card .woocommerce-product-gallery {
    width: 100% !important;
    height: 100% !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    margin: 0 !important;
}

/* Tight Quick Specs positioning */
.fsp-quick-specs-section {
    margin-top: 0 !important;
    padding-top: 10px !important;
}

.fsp-quick-specs {
    margin-top: 0 !important;
}
/* =========================================
   FSP CTA - ALREADY IN ENQUIRY STATE
========================================= */

.fsp-product-cta-row .yith-ywraq-add-to-quote {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
}

.fsp-product-cta-row .yith_ywraq_add_item_response_message,
.fsp-product-cta-row .yith_ywraq_added_to_quote_message {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    min-height: 50px !important;

    margin: 0 !important;
    padding: 10px 16px !important;

    box-sizing: border-box !important;

    display: flex !important;
    align-items: center !important;

    background: #ECFDF3 !important;
    color: #166534 !important;

    border: 1px solid #BBF7D0 !important;
    border-left: 4px solid #22C55E !important;
    border-radius: 4px !important;

    font-size: 13px !important;
    line-height: 1.35 !important;
    font-weight: 600 !important;
}
/* FSP TECHNICAL SPECIFICATIONS TABLE */

.fsp-spec-table {
    width: 100%;
    border-collapse: collapse;
    margin: 0;
}

.fsp-spec-table td {
    padding: 9px 12px;
    border-bottom: 1px solid #E4E7EC;
    font-size: 13px;
    line-height: 1.4;
    vertical-align: top;
}

.fsp-spec-table tr:last-child td {
    border-bottom: 0;
}

.fsp-spec-table tr:nth-child(odd) {
    background: #F8FAFC;
}

.fsp-spec-table td:first-child {
    width: 40%;
    color: #062A55;
    font-weight: 600;
}

.fsp-spec-table td:last-child {
    color: #344054;
}
/* =========================================================
   FSP PRODUCT DETAILS - COMPACT FINAL STYLE
   ========================================================= */

/* Do not force both cards to equal height */
.fsp-product-content-grid {
    align-items: start !important;
    gap: 18px !important;
}

/* More compact cards */
.fsp-content-card {
    padding: 20px 22px !important;
    border-radius: 10px !important;
}

/* Section headings */
.fsp-content-card .elementor-heading-title {
    font-size: 23px !important;
    line-height: 1.15 !important;
    margin-bottom: 8px !important;
}

/* Product overview text */
.fsp-product-overview,
.fsp-product-overview p {
    font-size: 14px !important;
    line-height: 1.55 !important;
    color: #344054 !important;
}

.fsp-product-overview p {
    margin-bottom: 12px !important;
}

/* Technical table */
.fsp-spec-table {
    width: 100% !important;
    border-collapse: collapse !important;
}

.fsp-spec-table td {
    padding: 6px 10px !important;
    font-size: 12px !important;
    line-height: 1.3 !important;
    vertical-align: middle !important;
}

.fsp-spec-table td:first-child {
    width: 39% !important;
    font-weight: 600 !important;
    color: #062A55 !important;
}

.fsp-spec-table td:last-child {
    color: #344054 !important;
}

/* Slightly softer alternating rows */
.fsp-spec-table tr:nth-child(odd) {
    background: #F8FAFC !important;
}
/* =========================================
   FSP RELATED PRODUCTS
========================================= */

.fsp-related-products ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 20px !important;
}

.fsp-related-products ul.products::before,
.fsp-related-products ul.products::after {
    display: none !important;
}

.fsp-related-products li.product {
    width: 100% !important;
    margin: 0 !important;

    background: #ffffff !important;
    border: 1px solid #e4e7ec !important;
    border-radius: 10px !important;

    padding: 16px !important;

    box-shadow: 0 4px 14px rgba(16,24,40,.04) !important;

    display: flex !important;
    flex-direction: column !important;

    transition: .2s ease !important;
}

.fsp-related-products li.product:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 22px rgba(16,24,40,.08) !important;
}

.fsp-related-products li.product img {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 1 / 1 !important;

    object-fit: contain !important;

    background: #FFFFFF !important;
    border-radius: 7px !important;

    margin-bottom: 14px !important;
    display: block !important;
}

.fsp-related-products .woocommerce-loop-product__title {
    color: #062A55 !important;

    font-size: 15px !important;
    line-height: 1.35 !important;
    font-weight: 700 !important;

    min-height: 3.9em;
}

.fsp-related-products .price {
    display: none !important;
}

/* Button */
.fsp-related-products .button {
    margin-top: auto !important;

    background: #062A55 !important;
    color: #ffffff !important;

    border: 0 !important;
    border-radius: 4px !important;

    padding: 11px 16px !important;

    font-size: 13px !important;
    font-weight: 700 !important;

    text-align: center !important;
}

.fsp-related-products .button:hover {
    background: #F73718 !important;
}

/* Tablet */
@media (max-width: 1024px) {
    .fsp-related-products ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

/* Mobile */
@media (max-width: 767px) {
    .fsp-related-products ul.products {
        grid-template-columns: 1fr !important;
    }
}
/* Hide WooCommerce duplicate Related Products heading */
.fsp-related-products .related.products > h2,
.fsp-related-products section.related > h2 {
    display: none !important;
}
/* Balance Product Overview / Technical Specifications columns */

.fsp-product-content-grid {
    align-items: stretch !important;
}

.fsp-product-content-grid > .fsp-content-card {
    height: 100% !important;
}
/* =========================================
   SINGLE PRODUCT BREADCRUMB - ISOLATED
========================================= */

.fsp-product-breadcrumb-wrap {
    width: min(1280px, calc(100% - 48px)) !important;
    margin-left: auto !important;
    margin-right: auto !important;

    padding-top: 12px !important;
    padding-bottom: 10px !important;
}

.fsp-product-breadcrumb-wrap .woocommerce-breadcrumb {
    width: 100% !important;
    max-width: none !important;

    margin: 0 !important;
    padding: 0 !important;

    font-size: 13px !important;
    line-height: 1.5 !important;
    color: #667085 !important;
}

.fsp-product-breadcrumb-wrap .woocommerce-breadcrumb a {
    color: #667085 !important;
    text-decoration: none !important;
}

.fsp-product-breadcrumb-wrap .woocommerce-breadcrumb a:hover {
    color: #F73718 !important;
}
/* =========================================================
   FSP SINGLE PRODUCT - GLOBAL CONTENT ALIGNMENT
   ========================================================= */

.single-product .fsp-container {
    width: calc(100% - 48px) !important;
    max-width: 1280px !important;
    margin-left: auto !important;
    margin-right: auto !important;

    box-sizing: border-box !important;
}

@media (max-width: 767px) {
    .single-product .fsp-container {
        width: calc(100% - 32px) !important;
    }
}
/* =========================================
   FSP PRODUCTS PAGE HERO
========================================= */

.fsp-products-hero {
    position: relative;
    min-height: 260px;

    display: flex;
    align-items: center;

    padding: 32px 24px;

    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;

    color: #fff;
    overflow: hidden;
}

/* Dark overlay */
.fsp-products-hero::before {
    content: "";
    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            90deg,
            rgba(2,34,80,.96) 0%,
            rgba(2,34,80,.88) 38%,
            rgba(2,34,80,.35) 68%,
            rgba(2,34,80,.08) 100%
        );

    z-index: 0;
}

.fsp-products-hero-inner {
    position: relative;
    z-index: 1;
}

/* Main Products Hero title ONLY */
.fsp-products-hero-title .elementor-heading-title {
    color: #ffffff !important;
    font-size: clamp(32px, 3vw, 42px) !important;
    line-height: 1.08 !important;
    font-weight: 700 !important;
    margin: 0 0 10px !important;
}

.fsp-products-hero p {
    max-width: 650px;

    color: rgba(255,255,255,.90) !important;

    font-size: 15px;
    line-height: 1.6;
}

/* Benefits */
.fsp-products-hero-benefits {
    display: flex;
    gap: 30px;

    margin-top: 22px;
}

.fsp-products-hero-benefit {
    display: flex;
    align-items: center;
    gap: 10px;

    color: #fff;
}

.fsp-products-hero-benefit .elementor-icon {
    color: #ffffff;
    font-size: 22px;
}

.fsp-products-hero-benefit strong {
    display: block;
    color: #fff;
    font-size: 13px;
}

.fsp-products-hero-benefit span {
    display: block;
    margin-top: 2px;

    color: rgba(255,255,255,.72);
    font-size: 11px;
}

/* Mobile */
@media (max-width: 767px) {
    .fsp-products-hero {
        min-height: 230px;
        padding: 26px 16px;
    }

    .fsp-products-hero-benefits {
        flex-direction: column;
        gap: 12px;
    }
}
.fsp-products-hero-benefit .elementor-heading-title {
    font-size: 13px !important;
    line-height: 1.2 !important;
    font-weight: 700 !important;
    color: #ffffff !important;
}

.fsp-products-hero-benefit p {
    font-size: 12px !important;
    line-height: 1.4 !important;
    color: rgba(255,255,255,.78) !important;
}

.fsp-products-hero-benefit .elementor-icon {
    color: #ffffff !important;
    font-size: 22px !important;
}
/* =========================================
   FSP PRODUCTS PAGE CATEGORY CARDS
========================================= */

.fsp-category-grid {
    width: 100% !important;
}

.fsp-category-card {
    width: 100% !important;
    height: 100% !important;
    min-height: 180px !important;

    padding: 14px 16px !important;

    background: #ffffff !important;
    border: 1px solid #E4E7EC !important;
    border-radius: 8px !important;

    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;

    box-sizing: border-box !important;

    transition: .2s ease !important;
}

.fsp-category-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 20px rgba(16,24,40,.08);
}

/* Category image */
.fsp-category-card img {
    width: 100% !important;
    height: 95px !important;
    object-fit: contain !important;
    margin: 0 auto 10px !important;
}

/* Category title */
.fsp-category-card .elementor-heading-title {
    color: #062A55 !important;
    font-size: 14px !important;
    line-height: 1.2 !important;
    font-weight: 700 !important;
}

/* View Products link */
.fsp-category-card .elementor-button,
.fsp-category-card a {
    font-size: 12px;
}

/* Tablet */
@media (max-width: 1024px) {
    .fsp-category-card {
        min-height: 165px !important;
    }
}

/* Mobile */
@media (max-width: 767px) {
    .fsp-category-card {
        min-height: 150px !important;
        padding: 12px !important;
    }

    .fsp-category-card img {
        height: 70px !important;
    }
}
/* PRODUCTS PAGE - COMPACT CATEGORY CAROUSEL (SCOPED) */

.fsp-category-carousel .fsp-category-card {
    min-height: 135px !important;
    height: 135px !important;
    padding: 10px 12px !important;
    border-radius: 8px !important;
    overflow: hidden !important;
}

.fsp-category-carousel .fsp-category-card img {
    height: 58px !important;
    max-height: 58px !important;
    width: 100% !important;
    object-fit: contain !important;
    margin: 0 auto 6px !important;
}

.fsp-category-carousel .fsp-category-card .elementor-heading-title {
    font-size: 12px !important;
    line-height: 1.15 !important;
    font-weight: 700 !important;
}

.fsp-category-carousel .fsp-category-card .elementor-button {
    font-size: 10px !important;
    line-height: 1.2 !important;
}
/* FSP CATEGORY CAROUSEL ARROWS */

.fsp-category-carousel {
    position: relative;
}

.fsp-category-carousel .elementor-swiper-button {
    width: 38px !important;
    height: 38px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    background: #ffffff !important;
    color: #062A55 !important;

    border: 1px solid #E4E7EC !important;
    border-radius: 50% !important;

    box-shadow: 0 4px 12px rgba(16,24,40,.12) !important;
}

.fsp-category-carousel .elementor-swiper-button:hover {
    background: #F73718 !important;
    color: #ffffff !important;
    border-color: #F73718 !important;
}

.fsp-category-carousel .elementor-swiper-button-prev {
    left: 8px !important;
}

.fsp-category-carousel .elementor-swiper-button-next {
    right: 8px !important;
}
/* =========================================
   FSP PRODUCT CATALOGUE CARDS
========================================= */

.fsp-catalog-product-card {
    height: 100% !important;
    padding: 14px !important;

    background: #fff !important;
    border: 1px solid #E4E7EC !important;
    border-radius: 10px !important;

    display: flex !important;
    flex-direction: column !important;

    box-shadow: 0 3px 12px rgba(16,24,40,.04) !important;
    transition: .2s ease !important;
}

.fsp-catalog-product-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 22px rgba(16,24,40,.08) !important;
}

/* Badge */
.fsp-catalog-product-badge {
    align-self: flex-start !important;

    padding: 4px 8px !important;
    margin-bottom: 6px !important;

    background: #EEF2F6 !important;
    color: #062A55 !important;

    border-radius: 20px !important;

    font-size: 9px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
}

/* Image */
.fsp-catalog-product-image {
    height: 190px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    background: #F8FAFC !important;
    border-radius: 7px !important;

    margin-bottom: 12px !important;
}

.fsp-catalog-product-image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
}

/* Brand */
.fsp-catalog-product-brand {
    color: #667085 !important;
    font-size: 10px !important;
    font-weight: 600 !important;
    margin-bottom: 3px !important;
}

/* Product title */
.fsp-catalog-product-title .elementor-heading-title {
    color: #062A55 !important;

    font-size: 14px !important;
    line-height: 1.3 !important;
    font-weight: 700 !important;

    margin: 0 0 6px !important;

    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;

    min-height: 3.9em;
}

/* Model/category */
.fsp-catalog-product-meta {
    color: #667085 !important;
    font-size: 11px !important;
    line-height: 1.4 !important;
}

/* Push buttons to bottom */
.fsp-catalog-product-actions {
    margin-top: auto !important;
    padding-top: 12px !important;
}

/* Main button */
.fsp-catalog-product-actions .elementor-button {
    width: 100% !important;

    background: #F73718 !important;
    color: #fff !important;

    border-radius: 4px !important;

    font-size: 11px !important;
    font-weight: 700 !important;

    min-height: 36px !important;
}

/* Tablet */
@media (max-width: 1024px) {
    .fsp-catalog-product-image {
        height: 180px !important;
    }
}

/* Mobile */
@media (max-width: 767px) {
    .fsp-catalog-product-image {
        height: 200px !important;
    }
}

/* =========================================================
   FSP MASTER STABILITY / ISOLATION LAYER - 2026-09-16
   Keep this section LAST in Additional CSS.
   Purpose: isolate Single Product, Category Carousel and
   Product Catalogue so Elementor template edits cannot cause
   cross-layout CSS collisions.
   ========================================================= */

/* ---------- SINGLE PRODUCT: DESKTOP HERO STRUCTURE ---------- */
body.single-product .fsp-product-hero-inner {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
 align-items: flex-start !important;
    width: 100% !important;
    gap: 42px !important;
}

body.single-product .fsp-product-gallery-card {
    flex: 0 0 42% !important;
    width: 42% !important;
    max-width: 42% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    height: auto !important;
   align-self: flex-start !important;
    overflow: hidden !important;
}

body.single-product .fsp-product-summary {
    flex: 1 1 58% !important;
    width: auto !important;
    max-width: 58% !important;
    min-width: 0 !important;
    height: auto !important;
    align-self: stretch !important;
}

/* Keep only the real product title at the intended size. */
body.single-product .product_title {
    font-size: 28px !important;
    line-height: 1.10 !important;
    font-weight: 700 !important;
    color: #062A55 !important;
}

/* ---------- SINGLE PRODUCT: DETAILS GRID ---------- */
body.single-product .fsp-product-content-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    align-items: start !important;
    gap: 18px !important;
    width: 100% !important;
}

body.single-product .fsp-product-content-grid > .fsp-content-card {
    width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    align-self: start !important;
}

/* ---------- SINGLE PRODUCT: CTA ---------- */
body.single-product .fsp-product-cta-row {
    display: flex !important;
    flex-direction: row !important;
    align-items: stretch !important;
    gap: 18px !important;
    width: 100% !important;
    margin-top: auto !important;
}

body.single-product .fsp-product-cta-row > * {
    flex: 1 1 0 !important;
    width: 50% !important;
    min-width: 0 !important;
}

/* ---------- SINGLE PRODUCT: QUICK SPECS ---------- */
body.single-product .fsp-quick-specs {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 18px !important;
    width: 100% !important;
    margin-top: 0 !important;
}

/* ---------- CATEGORY CAROUSEL: STRICT ISOLATION ---------- */
.fsp-category-carousel {
    position: relative !important;
    width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
}

.fsp-category-carousel .fsp-category-card {
    box-sizing: border-box !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 135px !important;
    min-height: 135px !important;
    max-height: 135px !important;
    padding: 10px 12px !important;
    overflow: hidden !important;
    background: #FFFFFF !important;
    border: 1px solid #E4E7EC !important;
    border-radius: 8px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
}

/* Guard against catalogue-image class accidentally being left on a category image. */
.fsp-category-carousel .fsp-catalog-product-image,
.fsp-category-carousel .fsp-product-image {
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
}

.fsp-category-carousel .fsp-category-card img,
.fsp-category-carousel .fsp-catalog-product-image img,
.fsp-category-carousel .fsp-product-image img {
    display: block !important;
    width: 100% !important;
    height: 58px !important;
    min-height: 0 !important;
    max-height: 58px !important;
    object-fit: contain !important;
    margin: 0 auto 6px !important;
}

.fsp-category-carousel .fsp-category-card .elementor-heading-title {
    margin: 0 !important;
    color: #062A55 !important;
    font-size: 12px !important;
    line-height: 1.15 !important;
    font-weight: 700 !important;
}

.fsp-category-carousel .fsp-category-card .elementor-button {
    font-size: 10px !important;
    line-height: 1.2 !important;
}

.fsp-category-carousel .swiper-pagination,
.fsp-category-carousel .elementor-swiper-button + .swiper-pagination {
    display: none !important;
}

/* ---------- PRODUCTS HERO: SUPPORT TEXT SCALE ---------- */
.fsp-products-hero-benefit .elementor-heading-title {
    font-size: 13px !important;
    line-height: 1.2 !important;
    font-weight: 700 !important;
    color: #FFFFFF !important;
}

.fsp-products-hero-benefit p {
    font-size: 12px !important;
    line-height: 1.4 !important;
    color: rgba(255,255,255,.78) !important;
}

/* ---------- PRODUCT CATALOGUE: STRICT ISOLATION ---------- */
.fsp-catalog-product-card {
    box-sizing: border-box !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 100% !important;
    padding: 14px !important;
    background: #FFFFFF !important;
    border: 1px solid #E4E7EC !important;
    border-radius: 10px !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
}

.fsp-catalog-product-card .fsp-catalog-product-image {
    width: 100% !important;
    height: 190px !important;
    min-height: 190px !important;
    max-height: 190px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
    background: #F8FAFC !important;
    border-radius: 7px !important;
    margin-bottom: 12px !important;
}

.fsp-catalog-product-card .fsp-catalog-product-image img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-height: 190px !important;
    object-fit: contain !important;
}

.fsp-catalog-product-card .fsp-catalog-product-title .elementor-heading-title {
    margin: 0 0 6px !important;
    color: #062A55 !important;
    font-size: 14px !important;
    line-height: 1.3 !important;
    font-weight: 700 !important;
}

.fsp-catalog-product-card .fsp-catalog-product-actions {
    margin-top: auto !important;
    padding-top: 12px !important;
}

/* ---------- RESPONSIVE ---------- */
@media (max-width: 1024px) {
    body.single-product .fsp-product-hero-inner {
        gap: 28px !important;
    }

    body.single-product .fsp-quick-specs {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .fsp-catalog-product-card .fsp-catalog-product-image {
        height: 180px !important;
        min-height: 180px !important;
        max-height: 180px !important;
    }
}

@media (max-width: 767px) {
    body.single-product .fsp-product-hero-inner {
        flex-direction: column !important;
        gap: 24px !important;
    }

    body.single-product .fsp-product-gallery-card,
    body.single-product .fsp-product-summary {
        flex: 0 0 100% !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    body.single-product .fsp-product-content-grid {
        grid-template-columns: 1fr !important;
    }

    body.single-product .fsp-product-cta-row {
        flex-direction: column !important;
        gap: 12px !important;
    }

    body.single-product .fsp-product-cta-row > * {
        width: 100% !important;
    }

    body.single-product .fsp-quick-specs {
        grid-template-columns: 1fr !important;
    }

    .fsp-catalog-product-card .fsp-catalog-product-image {
        height: 200px !important;
        min-height: 200px !important;
        max-height: 200px !important;
    }
}

/* =========================================
   PRODUCT CATALOGUE - FINAL CARD POLISH
========================================= */

/* Small category badge */
.fsp-catalog-product-badge {
    width: fit-content !important;
    max-width: 100% !important;
    align-self: flex-start !important;

    padding: 0 !important;
    margin: 0 0 7px !important;
}

.fsp-catalog-product-badge .elementor-heading-title {
    display: inline-block !important;
    width: auto !important;

    padding: 4px 8px !important;

    background: #EEF2F6 !important;
    color: #062A55 !important;

    border-radius: 20px !important;

    font-size: 9px !important;
    line-height: 1.1 !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;

    margin: 0 !important;
}

/* Brand */
.fsp-catalog-product-brand,
.fsp-catalog-product-brand .elementor-heading-title {
    color: #667085 !important;
    font-size: 10px !important;
    line-height: 1.2 !important;
    font-weight: 600 !important;
}

/* Product title */
.fsp-catalog-product-title .elementor-heading-title {
    color: #062A55 !important;
    font-size: 14px !important;
    line-height: 1.3 !important;
    font-weight: 700 !important;

    margin: 2px 0 7px !important;

    display: -webkit-box !important;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;

    min-height: 3.9em;
}

/* Model + category */
.fsp-catalog-product-meta,
.fsp-catalog-product-meta p,
.fsp-catalog-product-meta .elementor-heading-title {
    color: #667085 !important;
    font-size: 10px !important;
    line-height: 1.35 !important;
}

/* Slightly more compact image */
.fsp-catalog-product-image,
.fsp-catalog-image-holder {
    height: 170px !important;
    min-height: 170px !important;
}

.fsp-catalog-product-image img,
.fsp-catalog-image-holder img {
    height: 170px !important;
    object-fit: contain !important;
}
/* =========================================================
   FSP CATALOGUE - PRODUCT ACTION BUTTONS
   ========================================================= */

.fsp-catalog-product-actions {
    width: 100% !important;
    margin-top: auto !important;
    padding-top: 10px !important;

    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
}


/* ---------------------------------------------------------
   VIEW PRODUCT
   --------------------------------------------------------- */

.fsp-catalog-view-button,
.fsp-catalog-view-button .elementor-widget-container,
.fsp-catalog-view-button .elementor-button-wrapper {
    width: 100% !important;
}

.fsp-catalog-view-button .elementor-button {
    width: 100% !important;
    min-height: 34px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    padding: 8px 12px !important;

    background: #F73718 !important;
    color: #FFFFFF !important;

    border: 1px solid #F73718 !important;
    border-radius: 3px !important;

    font-size: 10px !important;
    line-height: 1 !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;

    box-shadow: none !important;
}

.fsp-catalog-view-button .elementor-button:hover {
    background: #D92E13 !important;
    border-color: #D92E13 !important;
}


/* ---------------------------------------------------------
   YITH SHORTCODE WRAPPER
   --------------------------------------------------------- */

.fsp-catalog-yith,
.fsp-catalog-yith .elementor-widget-container,
.fsp-catalog-yith .yith-ywraq-add-to-quote {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
}


/* ---------------------------------------------------------
   ADD TO ENQUIRY
   --------------------------------------------------------- */

.fsp-catalog-yith .add-request-quote-button,
.fsp-catalog-yith a.add-request-quote-button,
.fsp-catalog-yith .yith-ywraq-add-button a {
    width: 100% !important;
    min-height: 34px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    box-sizing: border-box !important;
    margin: 0 !important;
    padding: 8px 12px !important;

    background: #FFFFFF !important;
    color: #F73718 !important;

    border: 1px solid #F73718 !important;
    border-radius: 3px !important;

    font-size: 10px !important;
    line-height: 1 !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;

    text-decoration: none !important;
    box-shadow: none !important;
}

.fsp-catalog-yith .add-request-quote-button:hover,
.fsp-catalog-yith .yith-ywraq-add-button a:hover {
    background: #F73718 !important;
    color: #FFFFFF !important;
}


/* ---------------------------------------------------------
   PRODUCT ALREADY ADDED
   Hide long YITH status text
   --------------------------------------------------------- */

.fsp-catalog-yith .yith_ywraq_add_item_response_message,
.fsp-catalog-yith .yith_ywraq_added_to_quote_message {
    display: none !important;
}


/* ---------------------------------------------------------
   VIEW ENQUIRY AFTER PRODUCT IS ADDED
   --------------------------------------------------------- */

.fsp-catalog-yith .yith_ywraq_add_item_browse_message {
    width: 100% !important;
    margin: 0 !important;
}

.fsp-catalog-yith .yith_ywraq_add_item_browse_message a {
    width: 100% !important;
    min-height: 34px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    box-sizing: border-box !important;
    padding: 8px 12px !important;

    background: #FFFFFF !important;
    color: #F73718 !important;

    border: 1px solid #F73718 !important;
    border-radius: 3px !important;

    font-size: 10px !important;
    line-height: 1 !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;

    text-decoration: none !important;
}

.fsp-catalog-yith .yith_ywraq_add_item_browse_message a::before {
    content: "✓";
    margin-right: 6px;
    font-weight: 700;
}

.fsp-catalog-yith .yith_ywraq_add_item_browse_message a:hover {
    background: #F73718 !important;
    color: #FFFFFF !important;
}
/* =========================================================
   FSP CATALOGUE ACTIONS - TWO BUTTON ROW
========================================================= */

.fsp-catalog-product-actions {
    width: 100% !important;
    margin-top: auto !important;
    padding-top: 10px !important;

    display: flex !important;
    flex-direction: row !important;
    align-items: stretch !important;
    justify-content: space-between !important;

    gap: 8px !important;
}

/* Both Elementor widgets exactly 50/50 */
.fsp-catalog-product-actions > .elementor-element {
    flex: 1 1 0 !important;
    width: 50% !important;
    min-width: 0 !important;

    margin: 0 !important;
    align-self: stretch !important;
}

/* Remove wrapper spacing */
.fsp-catalog-product-actions .elementor-widget-container,
.fsp-catalog-product-actions .elementor-button-wrapper,
.fsp-catalog-product-actions .yith-ywraq-add-to-quote,
.fsp-catalog-product-actions .yith-ywraq-add-button,
.fsp-catalog-product-actions .yith_ywraq_add_item_browse_message {
    width: 100% !important;
    height: 100% !important;

    margin: 0 !important;
    padding: 0 !important;
}


/* VIEW PRODUCT */
.fsp-catalog-view-button .elementor-button {
    width: 100% !important;
    height: 36px !important;
    min-height: 36px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    margin: 0 !important;
    padding: 0 10px !important;

    background: #F73718 !important;
    color: #fff !important;

    border: 1px solid #F73718 !important;
    border-radius: 3px !important;

    font-size: 10px !important;
    font-weight: 700 !important;
}


/* ADD TO ENQUIRY */
.fsp-catalog-yith .add-request-quote-button,
.fsp-catalog-yith .yith-ywraq-add-button a {
    width: 100% !important;
    height: 36px !important;
    min-height: 36px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    box-sizing: border-box !important;

    margin: 0 !important;
    padding: 0 10px !important;

    background: #fff !important;
    color: #F73718 !important;

    border: 1px solid #F73718 !important;
    border-radius: 3px !important;

    font-size: 10px !important;
    font-weight: 700 !important;

    text-decoration: none !important;
}


/* VIEW ENQUIRY - already added */
.fsp-catalog-yith .yith_ywraq_add_item_browse_message a {
    width: 100% !important;
    height: 36px !important;
    min-height: 36px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    box-sizing: border-box !important;

    margin: 0 !important;
    padding: 0 10px !important;

    background: #fff !important;
    color: #F73718 !important;

    border: 1px solid #F73718 !important;
    border-radius: 3px !important;

    font-size: 10px !important;
    font-weight: 700 !important;

    text-decoration: none !important;
}


/* Hide long YITH success text */
.fsp-catalog-yith .yith_ywraq_add_item_response_message,
.fsp-catalog-yith .yith_ywraq_added_to_quote_message {
    display: none !important;
}


/* MOBILE - stack buttons */
@media (max-width: 767px) {

    .fsp-catalog-product-actions {
        flex-direction: column !important;
        gap: 6px !important;
    }

    .fsp-catalog-product-actions > .elementor-element {
        width: 100% !important;
    }
}
/* PRODUCT CATALOGUE TAXONOMY FILTER */

.fsp-catalogue-filter {
    width: 100% !important;
    margin-bottom: 18px !important;
}

.fsp-catalogue-filter .e-filter {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;

    flex-wrap: nowrap !important;
    overflow-x: auto !important;

    padding: 0 !important;
    scrollbar-width: none;
}

.fsp-catalogue-filter .e-filter::-webkit-scrollbar {
    display: none;
}

.fsp-catalogue-filter .e-filter-item {
    flex: 0 0 auto !important;

    padding: 9px 14px !important;

    background: #fff !important;
    color: #344054 !important;

    border: 1px solid #D0D5DD !important;
    border-radius: 6px !important;

    font-size: 12px !important;
    font-weight: 600 !important;

    white-space: nowrap !important;
}

.fsp-catalogue-filter .e-filter-item[aria-pressed="true"],
.fsp-catalogue-filter .e-filter-item:hover {
    background: #F73718 !important;
    color: #fff !important;
    border-color: #F73718 !important;
}

/* =========================================
   LIVE RESULTS DROPDOWN
   ========================================= */

.fsp-catalogue-search .e-search-results-container,
.fsp-catalogue-search .elementor-search-form__results,
.fsp-catalogue-search .autocomplete-suggestions {
    width: 100%;
    background: #ffffff !important;
    border: 1px solid #d9dee7 !important;
    border-radius: 14px !important;
    box-shadow: 0 12px 30px rgba(16, 24, 40, 0.12) !important;
    padding: 8px !important;
    z-index: 9999 !important;
    max-height: 420px;
    overflow-y: auto;
}

/* Each result item */
.fsp-catalogue-search .e-search-results-item,
.fsp-catalogue-search .elementor-search-form__results .elementor-post,
.fsp-catalogue-search .autocomplete-suggestion {
    display: flex;
    align-items: center;
    gap: 12px;
    background: #fff;
    border-radius: 10px;
    padding: 10px 12px;
    margin: 0 0 6px 0;
    border: 1px solid transparent;
    transition: all 0.2s ease;
}

/* Hover */
.fsp-catalogue-search .e-search-results-item:hover,
.fsp-catalogue-search .elementor-search-form__results .elementor-post:hover,
.fsp-catalogue-search .autocomplete-suggestion:hover {
    background: #f9fafb;
    border-color: #f1f3f7;
    transform: translateY(-1px);
}

/* Result images */
.fsp-catalogue-search .e-search-results-item img,
.fsp-catalogue-search .elementor-search-form__results img,
.fsp-catalogue-search .autocomplete-suggestion img {
    width: 52px;
    height: 52px;
    object-fit: contain;
    border-radius: 8px;
    background: #fff;
    border: 1px solid #eef2f6;
    flex-shrink: 0;
}

/* Result text */
.fsp-catalogue-search .e-search-results-item a,
.fsp-catalogue-search .elementor-search-form__results a,
.fsp-catalogue-search .autocomplete-suggestion {
    color: #0B2E63 !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    line-height: 1.4;
}

/* Optional scrollbar */
.fsp-catalogue-search .e-search-results-container::-webkit-scrollbar,
.fsp-catalogue-search .elementor-search-form__results::-webkit-scrollbar {
    width: 8px;
}

.fsp-catalogue-search .e-search-results-container::-webkit-scrollbar-thumb,
.fsp-catalogue-search .elementor-search-form__results::-webkit-scrollbar-thumb {
    background: #d0d5dd;
    border-radius: 20px;
}

/* =========================================
   MOBILE
   ========================================= */

@media (max-width: 767px) {
    .fsp-catalogue-search {
        margin: 14px 0 18px;
    }

    .fsp-catalogue-search .e-search-results-container,
    .fsp-catalogue-search .elementor-search-form__results,
    .fsp-catalogue-search .autocomplete-suggestions {
        max-height: 320px;
    }

    .fsp-catalogue-search input[type="search"],
    .fsp-catalogue-search .elementor-search-form__input,
    .fsp-catalogue-search .e-search-input {
        font-size: 13px !important;
        min-height: 44px;
    }
}
/* =========================================================
   FSP PRODUCT CATALOGUE TOOLBAR
   Search + Live Results + Sort + Category Filter
========================================================= */


/* ---------------------------------------------------------
   TOOLBAR ROW
--------------------------------------------------------- */

.fsp-catalogue-toolbar {
    width: 100% !important;

    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;

    gap: 12px !important;

    margin: 16px 0 12px !important;
}



/* =========================================================
   SORT
========================================================= */

.fsp-catalogue-sort {
    flex: 0 0 210px !important;
    width: 210px !important;

    margin: 0 !important;
}


.fsp-catalogue-sort select,
.fsp-catalogue-sort .orderby {
    width: 100% !important;
    height: 44px !important;

    padding: 0 36px 0 14px !important;

    background: #ffffff !important;
    color: #344054 !important;

    border: 1px solid #D0D5DD !important;
    border-radius: 8px !important;

    font-size: 12px !important;
    font-weight: 500 !important;

    outline: none !important;

    box-shadow:
        0 2px 8px rgba(16,24,40,.04) !important;
}


.fsp-catalogue-sort select:focus,
.fsp-catalogue-sort .orderby:focus {
    border-color: #F73718 !important;

    box-shadow:
        0 0 0 3px rgba(247,55,24,.10) !important;
}


/* =========================================================
   CATEGORY FILTER PILLS
========================================================= */

.fsp-catalogue-filter {
    width: 100% !important;

    margin: 0 0 20px !important;
}


.fsp-catalogue-filter .e-filter {
    width: 100% !important;

    display: flex !important;
    align-items: center !important;

    gap: 7px !important;

    flex-wrap: nowrap !important;

    overflow-x: auto !important;
    overflow-y: hidden !important;

    padding: 2px 0 5px !important;

    scrollbar-width: none !important;
}


.fsp-catalogue-filter .e-filter::-webkit-scrollbar {
    display: none !important;
}


/* Pills */
.fsp-catalogue-filter .e-filter-item {
    flex: 0 0 auto !important;

    padding: 8px 13px !important;

    background: #ffffff !important;
    color: #344054 !important;

    border: 1px solid #D0D5DD !important;
    border-radius: 6px !important;

    font-size: 11px !important;
    line-height: 1.1 !important;
    font-weight: 600 !important;

    white-space: nowrap !important;

    transition: .18s ease !important;
}


/* Active / hover */
.fsp-catalogue-filter
.e-filter-item[aria-pressed="true"],
.fsp-catalogue-filter
.e-filter-item:hover {
    background: #F73718 !important;
    color: #ffffff !important;

    border-color: #F73718 !important;
}


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

@media (max-width: 767px) {

    .fsp-catalogue-toolbar {
        flex-direction: column !important;
        align-items: stretch !important;

        gap: 8px !important;
    }

    .fsp-catalogue-search,
    .fsp-catalogue-sort {
        width: 100% !important;
        flex: 0 0 100% !important;
    }

    .fsp-catalogue-search input[type="search"],
    .fsp-catalogue-search input[type="text"] {
        min-height: 42px !important;
        font-size: 12px !important;
    }

    .fsp-catalogue-sort select {
        width: 100% !important;
        height: 42px !important;
    }

    .fsp-catalogue-search .e-search-results-container,
    .fsp-catalogue-search .e-search-results,
    .fsp-catalogue-search .elementor-search-form__results {
        max-height: 380px !important;
    }
}
/* =========================================================
   PRODUCT CATALOGUE - SEARCH RESULTS PANEL ONLY
   (visual styling only - safe)
========================================================= */

/* Main filtered results wrapper / panel */
.fsp-product-catalogue-results,
.fsp-search-results-wrap,
.elementor-widget-loop-grid .e-loop-container,
.elementor-loop-container {
    background: #f8fafc !important;
    border: 1px solid #d9e2ec !important;
    border-radius: 14px !important;
    padding: 16px !important;
    box-shadow: 0 6px 20px rgba(15, 23, 42, 0.06) !important;
}

/* Optional: give a little gap between search box and results */
.fsp-product-search,
.elementor-search-form {
    margin-bottom: 14px !important;
}

/* Product cards inside results */
.elementor-loop-container > *,
.e-loop-item,
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
    background: #ffffff !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 12px !important;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.04) !important;
}

/* Hover effect for cards */
.elementor-loop-container > *:hover,
.e-loop-item:hover,
.woocommerce ul.products li.product:hover,
.woocommerce-page ul.products li.product:hover {
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.08) !important;
    border-color: #cfd8e3 !important;
}
/* =========================================================
   FSP PRODUCT SEARCH - ACTIVE FOCUS BACKDROP
========================================================= */

/* Keep search above the dimmed page */
.fsp-catalogue-search {
    position: relative !important;
    z-index: 1001 !important;
}

/* Grey-out the rest of the page while search is active */
body:has(.fsp-catalogue-search input:focus)::before {
    content: "";

    position: fixed;
    inset: 0;

    background: rgba(15, 23, 42, 0.12);

    z-index: 1000;

    pointer-events: none;

    transition: opacity .2s ease;
}

/* Make the active search/results area feel brighter */
.fsp-catalogue-search:focus-within {
    background: #ffffff !important;

    border-radius: 10px;

    box-shadow:
        0 10px 30px rgba(16, 24, 40, 0.12) !important;
}
/* =========================================
   FSP CATALOGUE INFO BAR
========================================= */

.fsp-catalogue-info {
    width: 100% !important;

    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 16px !important;

    margin: 4px 0 14px !important;
}

.fsp-catalogue-info p {
    margin: 0 !important;

    color: #667085 !important;
    font-size: 12px !important;
    line-height: 1.4 !important;
}

.fsp-catalogue-info a {
    color: #062A55 !important;
    font-size: 12px !important;
    font-weight: 600 !important;

    text-decoration: none !important;
}

.fsp-catalogue-info a:hover {
    color: #F73718 !important;
}


/* MOBILE */
@media (max-width: 767px) {

    .fsp-catalogue-info {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 5px !important;
    }
}
/* =========================================================
   FSP PRODUCT CATALOGUE - PAGINATION
========================================================= */

.fsp-catalogue-grid .elementor-pagination {
    width: 100% !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;

    margin-top: 28px !important;
    padding-top: 8px !important;
}


/* All pagination items */
.fsp-catalogue-grid .elementor-pagination .page-numbers {
    min-width: 36px !important;
    height: 36px !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    padding: 0 10px !important;

    background: #FFFFFF !important;
    color: #344054 !important;

    border: 1px solid #D0D5DD !important;
    border-radius: 6px !important;

    font-size: 12px !important;
    line-height: 1 !important;
    font-weight: 600 !important;

    text-decoration: none !important;

    transition: .18s ease !important;
}


/* Hover */
.fsp-catalogue-grid .elementor-pagination a.page-numbers:hover {
    background: #FFF4F1 !important;
    color: #F73718 !important;

    border-color: #F73718 !important;
}


/* Current page */
.fsp-catalogue-grid .elementor-pagination .page-numbers.current {
    background: #F73718 !important;
    color: #FFFFFF !important;

    border-color: #F73718 !important;

    box-shadow: 0 4px 10px rgba(247,55,24,.18) !important;
}


/* Previous / Next */
.fsp-catalogue-grid .elementor-pagination .prev,
.fsp-catalogue-grid .elementor-pagination .next {
    min-width: auto !important;

    padding: 0 14px !important;

    color: #062A55 !important;

    background: #FFFFFF !important;

    font-weight: 700 !important;
}


/* Previous / Next hover */
.fsp-catalogue-grid .elementor-pagination .prev:hover,
.fsp-catalogue-grid .elementor-pagination .next:hover {
    background: #062A55 !important;
    color: #FFFFFF !important;

    border-color: #062A55 !important;
}


/* Dots / ellipsis */
.fsp-catalogue-grid .elementor-pagination .dots {
    border: 0 !important;
    background: transparent !important;

    min-width: 24px !important;

    color: #98A2B3 !important;
}


/* MOBILE */
@media (max-width: 767px) {

    .fsp-catalogue-grid .elementor-pagination {
        margin-top: 22px !important;
    }

    .fsp-catalogue-grid .elementor-pagination .page-numbers {
        min-width: 32px !important;
        height: 32px !important;

        padding: 0 8px !important;

        font-size: 11px !important;
    }

    .fsp-catalogue-grid .elementor-pagination .prev,
    .fsp-catalogue-grid .elementor-pagination .next {
        padding: 0 10px !important;
    }
}
/* FSP CATEGORY FILTER - CLEAN ROW */
.fsp-catalogue-filter {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
}

/* Remove white track/container behind filter */
.fsp-catalogue-filter .e-filter,
.fsp-catalogue-filter .e-filter-items,
.fsp-catalogue-filter .elementor-widget-container {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

/* Keep categories in one horizontal row */
.fsp-catalogue-filter .e-filter {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 7px !important;

    overflow-x: auto !important;
    overflow-y: hidden !important;

    padding: 3px 0 8px !important;

    scrollbar-width: none !important;
}

.fsp-catalogue-filter .e-filter::-webkit-scrollbar {
    display: none !important;
}
/* =========================================================
   FSP CATALOGUE - TIGHTER VERTICAL SPACING
========================================================= */

.fsp-catalogue-filter {
    margin-bottom: 18px !important;
}

/* Info row */
.fsp-catalogue-info {
    margin-top: 0 !important;
    margin-bottom: 18px !important;
}

/* Remove excess spacing around Elementor widgets */
.fsp-catalogue-filter + .elementor-element,
.fsp-catalogue-info + .elementor-element {
    margin-top: 0 !important;
}

/* Catalogue grid */
.fsp-catalogue-grid {
    margin-top: 0 !important;
}
/* FSP SEARCH - HIDE EMPTY ELEMENTOR RESULTS CONTAINER */
.fsp-catalogue-search
output.e-search-results-container:has(> .e-search-results:empty) {
    display: none !important;
}
/* FSP GLOBAL CONTENT WIDTH - FINAL */
.fsp-container {
    width: 100% !important;
    max-width: 1280px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

@media (max-width: 767px) {
    .fsp-container {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
}

.fsp-archive-info a{
    color:#062A55;
    font-size:12px;
    font-weight:600;
    text-decoration:none;
}

.fsp-archive-info a:hover{
    color:#F73718;
}

@media(max-width:767px){
    .fsp-archive-info{
        flex-direction:column;
        align-items:flex-start;
        gap:6px;
    }
}
.fsp-archive-info{
    display:flex;
    justify-content:space-between;
    align-items:center;
    width:100%;

    margin-top:16px;
    margin-bottom:20px;
}

.fsp-archive-info p{
    margin:0;
    font-size:12px;
    color:#667085;
}

.fsp-archive-info a{
    color:#062A55;
    font-size:12px;
    font-weight:600;
    text-decoration:none;
}

.fsp-archive-info a:hover{
    color:#F73718;
}
/* CATEGORY ARCHIVE FINAL SPACING */

.fsp-archive-info {
    width: 100% !important;
    margin-top: 16px !important;
    margin-bottom: 20px !important;
}

.fsp-archive-description {
    max-width: 700px !important;
    margin-bottom: 0 !important;
}

.fsp-archive-grid {
    margin-top: 0 !important;
}
/* FSP PROCESS SECTION */
.fsp-process-section {
    position: relative;
    overflow: hidden;

    padding: 56px 42px !important;

    background:
        linear-gradient(135deg, #F8FAFC 0%, #EEF3F8 100%) !important;

    border: 1px solid #E4E7EC;
    border-radius: 14px;
}


/* PROCESS CARD */
.fsp-process-card {
    position: relative;

    background: #FFFFFF;

    border: 1px solid #E2E8F0;
    border-radius: 12px;

    padding: 26px 22px;

    min-height: 220px;

    box-shadow: 0 5px 18px rgba(16,24,40,.06);

    transition:
        transform .25s ease,
        box-shadow .25s ease,
        border-color .25s ease;
}


.fsp-process-card:hover {
    transform: translateY(-4px);

    border-color: rgba(247,55,24,.35);

    box-shadow:
        0 12px 28px rgba(16,24,40,.10);
}


/* ICON CIRCLE */
.fsp-process-card .fsp-icon-circle {
    width: 68px;
    height: 68px;

    background: #EEF3F8;

    border-radius: 50%;

    display: flex;
    align-items: center;
    justify-content: center;

    margin: 0 auto 18px;

    transition:
        background .25s ease,
        transform .25s ease;
}


.fsp-process-card:hover .fsp-icon-circle {
    background: #F73718;
    transform: scale(1.05);
}


.fsp-process-card:hover .fsp-icon-circle i,
.fsp-process-card:hover .fsp-icon-circle svg {
    color: #FFFFFF !important;
    fill: #FFFFFF !important;
}


/* STEP NUMBER */
.fsp-process-number {
    position: absolute;
    top: 14px;
    left: 16px;

    font-size: 11px;
    font-weight: 700;

    color: #F73718;

    letter-spacing: .08em;
}


/* TITLE */
.fsp-process-card h3 {
    color: #062A55;

    font-size: 15px;
    font-weight: 700;

    margin-bottom: 8px;
}


/* DESCRIPTION */
.fsp-process-card p {
    color: #667085;

    font-size: 12px;
    line-height: 1.55;

    margin: 0;
}


/* MOBILE */
@media (max-width: 767px) {

    .fsp-process-section {
        padding: 34px 18px !important;
    }

    .fsp-process-card {
        min-height: auto;
    }
}
/* =========================================================
   FSP - FROM REQUIREMENT TO SUPPLY
========================================================= */

.fsp-process-section {
    position: relative;
    overflow: hidden;

    background:
        linear-gradient(135deg, #F9FBFD 0%, #EEF4F8 100%) !important;

    border: 1px solid #E4E7EC;
    border-radius: 14px;

    padding: 55px 40px 60px !important;
}


/* PROCESS CARD */
.fsp-process-card {
    position: relative;

    background: #FFFFFF;

    border: 1px solid #DCE4EC;
    border-radius: 14px;

    padding: 28px 22px 30px;

    min-height: 260px;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    text-align: center;

    box-shadow: 0 8px 22px rgba(16,24,40,.06);

    transition:
        transform .25s ease,
        box-shadow .25s ease,
        border-color .25s ease;
}


/* RED BOTTOM ACCENT */
.fsp-process-card::after {
    content: "";

    position: absolute;

    width: 42%;
    height: 4px;

    bottom: 0;
    left: 50%;

    transform: translateX(-50%);

    background: #F73718;

    border-radius: 4px 4px 0 0;
}


.fsp-process-card:hover {
    transform: translateY(-5px);

    border-color: rgba(247,55,24,.35);

    box-shadow: 0 14px 32px rgba(16,24,40,.11);
}


/* NUMBER BADGE */
.fsp-process-number {
    position: absolute;

    top: 14px;
    left: 16px;

    width: 42px;
    height: 42px;

    display: flex;
    align-items: center;
    justify-content: center;

    background: #F73718;
    color: #FFFFFF;

    border-radius: 50%;

    font-size: 13px;
    font-weight: 700;
}


/* ICON CIRCLE */
.fsp-process-card .fsp-icon-circle {
    width: 88px;
    height: 88px;

    display: flex;
    align-items: center;
    justify-content: center;

    margin-bottom: 20px;

    background: #EEF3F8;

    border-radius: 50%;

    transition:
        background .25s ease,
        transform .25s ease;
}


.fsp-process-card .fsp-icon-circle i,
.fsp-process-card .fsp-icon-circle svg {
    color: #062A55 !important;
    fill: #062A55 !important;

    font-size: 34px;
}


.fsp-process-card:hover .fsp-icon-circle {
    background: #F73718;

    transform: scale(1.05);
}


.fsp-process-card:hover .fsp-icon-circle i,
.fsp-process-card:hover .fsp-icon-circle svg {
    color: #FFFFFF !important;
    fill: #FFFFFF !important;
}


/* CARD TITLE */
.fsp-process-card h3 {
    margin: 0 0 10px;

    color: #062A55;

    font-size: 17px;
    line-height: 1.25;
    font-weight: 700;
}


/* DESCRIPTION */
.fsp-process-card p {
    margin: 0;

    color: #667085;

    font-size: 13px;
    line-height: 1.55;
}


/* MOBILE */
@media (max-width: 767px) {

    .fsp-process-section {
        padding: 34px 18px 38px !important;
    }

    .fsp-process-card {
        min-height: auto;
        padding: 26px 20px;
    }
}
.fsp-icon-circle {
    width: 74px !important;
    height: 74px !important;
    min-width: 74px !important;
}

.fsp-icon-circle i,
.fsp-icon-circle svg {
    width: 29px !important;
    height: 29px !important;
}
.fsp-process-number {
    width: 38px !important;
    height: 38px !important;

    font-size: 12px !important;
}
/* PROCESS ARROWS */
.fsp-process-card:not(:last-child)::before {
    content: "›";
    position: absolute;

    right: -24px;
    top: 50%;

    transform: translateY(-50%);

    color: #F73718;
    font-size: 30px;
    font-weight: 500;

    z-index: 20;
}
.fsp-process-card {
    min-height: 220px;
}
.fsp-process-grid {
    gap: 34px !important;
    overflow: visible !important;

    padding-left: 18px !important;
    padding-right: 18px !important;

    box-sizing: border-box !important;
}
.fsp-process-section {
    margin-bottom: 0px !important;
}
.fsp-process-card {
    padding: 22px 20px 22px !important;
    min-height: 200px !important;
}
.fsp-process-card:not(:last-child)::before {
    content: "›";
    position: absolute;
    top: 50%;
    left: calc(100% + 17px);
    right: auto;
    transform: translate(-50%, -50%);
    color: #F73718;
    font-size: 28px;
    font-weight: 500;
    z-index: 20;
}
/* =========================================
   FSP TAXONOMY FILTER NAVIGATION
========================================= */

.fsp-taxonomy-nav {
    width: 100%;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
}

.fsp-taxonomy-nav .fsp-catalogue-filter {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    margin: 0 !important;
}

.fsp-catalogue-filter .e-filter {
    scroll-behavior: smooth;
}


/* NAV BUTTONS */
.fsp-filter-prev,
.fsp-filter-next {
    flex: 0 0 36px !important;

    width: 36px !important;
    height: 36px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    background: #FFFFFF !important;
    color: #062A55 !important;

    border: 1px solid #D0D5DD !important;
    border-radius: 50% !important;

    cursor: pointer;

    box-shadow: 0 3px 10px rgba(16,24,40,.08);

    transition: .2s ease;
}

.fsp-filter-prev:hover,
.fsp-filter-next:hover {
    background: #F73718 !important;
    color: #FFFFFF !important;
    border-color: #F73718 !important;
}
.fsp-filter-prev,
.fsp-filter-next {
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
}

.fsp-filter-prev i,
.fsp-filter-next i,
.fsp-filter-prev svg,
.fsp-filter-next svg {
    font-size: 16px !important;
}

.fsp-catalog-product-image,
.fsp-catalog-image-holder {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 1 / 1 !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    background: #FFFFFF !important;
    border-radius: 7px !important;
    overflow: hidden !important;
}


.fsp-catalog-product-image img,
.fsp-catalog-image-holder img {
    width: 100% !important;
    height: 100% !important;

    object-fit: contain !important;

    display: block !important;
}
/* =========================================================
   FSP CATALOGUE IMAGES - FINAL 500x500 OVERRIDE
========================================================= */

.fsp-catalog-product-card .fsp-catalog-product-image,
.fsp-catalog-product-card .fsp-catalog-image-holder {
    width: 100% !important;

    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;

    aspect-ratio: 1 / 1 !important;

    background: #FFFFFF !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    overflow: hidden !important;
}

.fsp-catalog-product-card .fsp-catalog-product-image img,
.fsp-catalog-product-card .fsp-catalog-image-holder img {
    width: 100% !important;
    height: 100% !important;
    max-height: none !important;

    object-fit: contain !important;

    background: #FFFFFF !important;
}
/* =========================================================
   SINGLE PRODUCT GALLERY - 500x500 FINAL
========================================================= */

body.single-product .fsp-product-gallery-card {
    align-self: flex-start !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 12px !important;
}

/* Exact square gallery */
body.single-product
.fsp-product-gallery-card
.woocommerce-product-gallery {
    width: 500px !important;
    min-width: 500px !important;
    max-width: 500px !important;
    height: 500px !important;
    margin: 0 auto !important;
}

/* Force Woo wrappers to fill the square */
body.single-product
.fsp-product-gallery-card
.woocommerce-product-gallery__wrapper,
body.single-product
.fsp-product-gallery-card
.woocommerce-product-gallery__image,
body.single-product
.fsp-product-gallery-card
.woocommerce-product-gallery__image > a {
    width: 100% !important;
    height: 100% !important;
}
@media (max-width: 767px) {
    body.single-product .fsp-product-gallery-card
    .elementor-widget-woocommerce-product-images,
    body.single-product .fsp-product-gallery-card
    .elementor-widget-container,
    body.single-product .fsp-product-gallery-card
    .woocommerce-product-gallery,
    body.single-product .fsp-product-gallery-card
    .woocommerce-product-gallery__wrapper,
    body.single-product .fsp-product-gallery-card
    .woocommerce-product-gallery__image,
    body.single-product .fsp-product-gallery-card
    .woocommerce-product-gallery__image > a {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        flex-basis: auto !important;
    }
}
/* FIX ELEMENTOR WRAPPER CLIPPING */
body.single-product .fsp-product-gallery-card
.elementor-widget-woocommerce-product-images,
body.single-product .fsp-product-gallery-card
.elementor-widget-container {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
}

/* 500x500 gallery centered */
body.single-product .fsp-product-gallery-card
.woocommerce-product-gallery {
    width: 100% !important;
    max-width: 500px !important;
    min-width: 0 !important;
    height: 500px !important;
    margin: 0 auto !important;
}
/* Product image */
body.single-product
.fsp-product-gallery-card
.woocommerce-product-gallery__image img {
    width: 100% !important;
    height: 100% !important;

    object-fit: contain !important;

transform: none !important;    transform-origin: center center;
}
@media (max-width: 767px) {
    .fsp-hide-mobile {
        display: none !important;
    }
}
/* =========================================
   FSP MOBILE HEADER
========================================= */

@media (max-width: 767px) {

    .fsp-hide-mobile {
        display: none !important;
    }

    .fsp-mobile-header {
        width: 100% !important;
        max-width: 100% !important;

        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;

        align-items: center !important;
        justify-content: space-between !important;

        min-height: 68px !important;
        padding: 8px 14px !important;
        gap: 10px !important;

        overflow: visible !important;
    }

    .fsp-mobile-header > * {
        flex-grow: 0 !important;
        flex-shrink: 0 !important;
        width: auto !important;
        max-width: none !important;
    }
}

/* =========================================================
   FSP CATALOGUE - FINAL 6 COLUMN CARD ALIGNMENT
   ========================================================= */

/* Entire card */
.fsp-catalog-product-card {
    height: 100% !important;
    display: flex !important;
    flex-direction: column !important;
}

/* Product title - same reserved space */
.fsp-catalog-product-title {
    min-height: 58px !important;
    max-height: 58px !important;
    overflow: hidden !important;
}

.fsp-catalog-product-title .elementor-heading-title {
    font-size: 14px !important;
    line-height: 1.3 !important;
    font-weight: 700 !important;

    display: -webkit-box !important;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden !important;
}

/* Category / product meta - same reserved space */
.fsp-catalog-product-meta {
    min-height: 32px !important;
    max-height: 32px !important;
    overflow: hidden !important;
}

.fsp-catalog-product-meta,
.fsp-catalog-product-meta p,
.fsp-catalog-product-meta .elementor-heading-title {
    font-size: 10px !important;
    line-height: 1.3 !important;
}

/* Enquiry action always sits at bottom */
.fsp-catalog-product-actions {
    margin-top: auto !important;
    padding-top: 8px !important;
    width: 100% !important;
}

/* YITH area */
.fsp-catalog-yith,
.fsp-catalog-yith .elementor-widget-container,
.fsp-catalog-yith .yith-ywraq-add-to-quote,
.fsp-catalog-yith .yith_ywraq_add_item_browse_message {
    width: 100% !important;
    margin: 0 !important;
}

/* Add / View Enquiry */
.fsp-catalog-yith .add-request-quote-button,
.fsp-catalog-yith .yith-ywraq-add-button a,
.fsp-catalog-yith .yith_ywraq_add_item_browse_message a {
    width: 100% !important;
    height: 38px !important;
    min-height: 38px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    box-sizing: border-box !important;
    margin: 0 !important;
    padding: 0 8px !important;

    font-size: 10px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
}
/* =========================================================
   FSP 6-COLUMN CATALOGUE - FINAL BUTTON ALIGNMENT
   ========================================================= */

.fsp-catalog-product-card {
    height: 100% !important;
    display: flex !important;
    flex-direction: column !important;
}

/* Brand */
.fsp-catalog-product-brand {
    min-height: 14px !important;
}

/* Product title */
.fsp-catalog-product-title {
    min-height: 58px !important;
    max-height: 58px !important;
    overflow: hidden !important;
}

/* Category / subcategory */
.fsp-catalog-product-meta {
    min-height: 32px !important;
    max-height: 32px !important;
    overflow: hidden !important;
}

/* Push button area to exact bottom */
.fsp-catalog-product-actions {
    margin-top: auto !important;
    padding-top: 10px !important;
    width: 100% !important;
}

/* Same button dimensions */
.fsp-catalog-product-actions a,
.fsp-catalog-product-actions button {
    width: 100% !important;
    height: 38px !important;
    min-height: 38px !important;
    max-height: 38px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    margin: 0 !important;
    padding: 0 8px !important;
    box-sizing: border-box !important;
}
/* =========================================================
   FSP CATALOGUE - ABSOLUTE BOTTOM BUTTON ALIGNMENT
   ========================================================= */

.fsp-catalog-product-card {
    position: relative !important;

    /* reserve space for the enquiry button */
    padding-bottom: 68px !important;
}

/* Pin action area to exact same position in every card */
.fsp-catalog-product-actions {
    position: absolute !important;

    left: 14px !important;
    right: 14px !important;
    bottom: 14px !important;

    width: auto !important;

    margin: 0 !important;
    padding: 0 !important;
}

/* YITH wrappers */
.fsp-catalog-product-actions .elementor-widget-container,
.fsp-catalog-product-actions .elementor-shortcode,
.fsp-catalog-product-actions .yith-ywraq-add-to-quote,
.fsp-catalog-product-actions .yith_ywraq_add_item_browse_message {
    width: 100% !important;
    margin: 0 !important;
}

/* Add / View enquiry button */
.fsp-catalog-product-actions .add-request-quote-button,
.fsp-catalog-product-actions .yith-ywraq-add-button a,
.fsp-catalog-product-actions .yith_ywraq_add_item_browse_message a {
    width: 100% !important;

    height: 38px !important;
    min-height: 38px !important;
    max-height: 38px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    margin: 0 !important;
    padding: 0 8px !important;

    box-sizing: border-box !important;

    font-size: 10px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
}

/* =========================================================
   FSP SINGLE PRODUCT - DOWNLOADS MOBILE FIX
   ========================================================= */

@media (max-width: 767px) {

    body.single-product .fsp-download-grid {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 12px !important;
        width: 100% !important;
    }

    body.single-product .fsp-download-grid > * {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }

    body.single-product .fsp-download-card {
        width: 100% !important;
        min-width: 0 !important;
        min-height: auto !important;

        padding: 18px !important;

        display: flex !important;
        flex-direction: column !important;

        box-sizing: border-box !important;
    }

    body.single-product .fsp-download-card .elementor-heading-title {
        font-size: 17px !important;
        line-height: 1.25 !important;
        word-break: normal !important;
        overflow-wrap: normal !important;
    }

    body.single-product .fsp-download-card .elementor-button {
        width: 100% !important;
    }
}
/* =========================================================
   FSP MOBILE HEADER - CLEAN FINAL
   ========================================================= */

@media (max-width: 767px) {

    .fsp-header-mobile-final {
        width: 100% !important;
        max-width: 100% !important;

        min-height: 74px !important;

        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;

        align-items: center !important;

        padding: 8px 14px !important;
        gap: 10px !important;

        background: #ffffff !important;
        box-sizing: border-box !important;

        position: relative !important;
        z-index: 100 !important;
    }

    .fsp-header-mobile-final > * {
        min-width: 0 !important;
    }
}
/* =========================================================
   FSP HOME HERO - MOBILE HEADER CLEARANCE
   ========================================================= */

@media (max-width: 767px) {

    .fsp-home-hero {
        position: relative !important;
        margin-top: 0 !important;

        /* Move hero content safely below mobile header */
        padding-top: 28px !important;

        z-index: 1 !important;
    }

    .fsp-home-hero > .e-con-inner {
        margin-top: 0 !important;
    }

    /* Prevent first hero widgets being pulled upward */
    .fsp-home-hero .elementor-element:first-child {
        margin-top: 0 !important;
    }
}
/* =========================================================
   FSP HOME HERO - MOBILE FINAL
   ========================================================= */

@media (max-width: 767px) {

    .fsp-home-hero {
        width: 100% !important;

        height: auto !important;
        min-height: 0 !important;

        padding: 24px 18px 32px !important;

        overflow: visible !important;

        background-size: cover !important;
        background-position: center center !important;

        box-sizing: border-box !important;
    }

    .fsp-home-hero > .e-con-inner {
        height: auto !important;
        min-height: 0 !important;
    }

    /* First tagline/widget */
    .fsp-home-hero .elementor-element:first-child {
        margin-top: 0 !important;
    }
}