/* ===============================
   Product Summary
================================= */

.single-product div.product .summary .fc-product-summary{
    margin:0 0 28px;
}

.fc-product-title{
    margin:0 0 14px;
    padding-bottom:14px;
    border-bottom:1px solid #e6e6e6;
    color:#1c1c1c;
    font-size:clamp(34px,4vw,50px);
    line-height:1.15;
    font-weight:700;
    letter-spacing:-0.02em;
}

.fc-product-meta{
    display:flex;
    flex-wrap:wrap;
    gap:6px 10px;
    margin-bottom:14px;
    font-size:15px;
    line-height:1.6;
    color:#111;
}

.fc-meta-group a{
    color:#f44336;
    text-decoration:none;
}

.fc-meta-group a:hover{
    color:#c62828;
    text-decoration:underline;
}

.fc-product-price{
    margin:0 0 14px;
    color:#1c1c1c;
}

.fc-product-price.is-sale{
    display:flex;
    flex-wrap:wrap;
    align-items:baseline;
    gap:10px;
}

.fc-price-regular{
    color:#b7b7b7;
    font-size:22px;
    font-weight:700;
    text-decoration:line-through;
}

.fc-price-sale,
.fc-price-current{
    color:#ff2f2f;
    font-size:clamp(28px,3vw,44px);
    line-height:1.2;
    font-weight:800;
}

.fc-product-details-line{
    margin:0;
    font-size:17px;
    line-height:1.6;
    color:#111;
}

.fc-detail-label,
.fc-detail-value,
.fc-detail-price{
    font-weight:700;
}

.fc-detail-price .amount{
    color:#1aaa2a;
    font-weight:800;
}

.fc-detail-stock{
    color:#2cbf3f;
    font-weight:700;
}

.fc-detail-separator{
    display:inline-block;
    margin:0 8px;
    color:#666;
}

/* ===============================
   Flooring Calculator
================================= */

#fc-calculator{
    background:linear-gradient(180deg,#fff 0%,#fffdfa 100%);
    border:1px solid #eadfce;
    border-radius:22px;
    padding:34px;
    margin:22px 0 25px;
    box-shadow:0 20px 44px rgba(33,24,13,.08);
}

#fc-calculator h3{
    font-size:clamp(34px,3vw,52px);
    font-weight:700;
    color:#1e2230;
    margin:0 0 25px;
    position:relative;
    line-height:1.1;
    letter-spacing:-0.02em;
}

#fc-calculator h3:after{
    content:"";
    width:70px;
    height:3px;
    background:#c8102e;
    display:block;
    margin-top:12px;
}

/* ===============================
   Form
================================= */

.fc-row{
    display:flex;
    gap:20px;
    flex-wrap:wrap;
    align-items:flex-end;
    margin-bottom:30px;
}

.fc-col{
    flex:1;
    min-width:180px;
}

.fc-col label{
    display:block;
    font-size:14px;
    font-weight:700;
    color:#232323;
    margin-bottom:10px;
}

.fc-col input,
.fc-col select{
    width:100%;
    height:52px;
    border:1px solid #ddd8d2;
    border-radius:12px;
    padding:0 15px;
    font-size:15px;
    background:#fff;
    transition:.3s;
}

.fc-col input:focus,
.fc-col select:focus{
    outline:none;
    border-color:#c8102e;
    box-shadow:0 0 0 3px rgba(200,16,46,.15);
}

.fc-col input.is-error{
    border-color:#ef4444;
    box-shadow:0 0 0 3px rgba(239,68,68,.12);
    background:#fff8f8;
}

.fc-field-note{
    display:block;
    margin-top:9px;
    color:#6c6770;
    font-size:13px;
    line-height:1.5;
}

.fc-inline-message{
    display:block;
    margin-top:8px;
    font-size:13px;
    line-height:1.45;
    font-weight:600;
}

.fc-inline-message.is-error{
    color:#c81e1e;
}

/* ===============================
   Button
================================= */

#fc_calculate{
    background:linear-gradient(135deg,#c8102e 0%,#9e1028 100%);
    color:#fff;
    border:none;
    height:52px;
    min-width:180px;
    padding:0 35px;
    border-radius:12px;
    font-size:15px;
    font-weight:700;
    cursor:pointer;
    transition:.3s;
    box-shadow:0 12px 22px rgba(200,16,46,.24);
}

#fc_calculate:hover{
    background:linear-gradient(135deg,#b40f29 0%,#8d0d23 100%);
    transform:translateY(-2px);
}

/* ===============================
   Results
================================= */

.fc-results{
    margin-top:8px;
}

.fc-results-header{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:16px;
    margin-bottom:20px;
}

.fc-results-eyebrow{
    margin:0 0 6px;
    color:#c8102e;
    font-size:12px;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.fc-results-header h4{
    margin:0;
    color:#1f2430;
    font-size:24px;
    line-height:1.2;
    font-weight:700;
}

.fc-results-caption{
    margin:0;
    color:#6c6770;
    font-size:14px;
    line-height:1.5;
}

.fc-results-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}

.fc-result-card{
    padding:20px 22px;
    border:1px solid #eee3d7;
    border-radius:18px;
    background:#fff;
    box-shadow:0 10px 24px rgba(34,27,19,.05);
}

.fc-result-card-accent{
    background:linear-gradient(135deg,#fff7f8 0%,#fff 100%);
    border-color:#f4cfd6;
}

.fc-result-label{
    display:block;
    margin-bottom:10px;
    color:#6e6870;
    font-size:13px;
    font-weight:700;
    letter-spacing:.04em;
    text-transform:uppercase;
}

.fc-result-value{
    display:block;
    color:#1e2230;
    font-size:28px;
    line-height:1.15;
    font-weight:800;
}

.fc-result-card small{
    display:block;
    margin-top:8px;
    color:#7b7280;
    font-size:13px;
}

/* ===============================
   Highlight Values
================================= */

#fc_total_price{
    color:#c8102e;
    font-size:22px;
    font-weight:700;
}

#fc_boxes{
    color:#111;
    font-size:22px;
    font-weight:700;
}

#fc_total_sqft{
    color:#111;
    font-size:22px;
    font-weight:700;
}

.stock-green{
    color:#2e7d32;
    font-weight:700;
}

.stock-red{
    color:#d32f2f;
    font-weight:700;
}

/* ===============================
   Quantity
================================= */

.quantity input.qty{
    width:80px;
    height:52px;
    text-align:center;
    font-size:18px;
    border-radius:6px;
}

/* ===============================
   Add to Cart
================================= */

.single_add_to_cart_button{
    height:52px;
    padding:0 40px;
    background:linear-gradient(135deg,#d84b67 0%,#c63f5d 100%);
    border:none;
    border-radius:12px;
    color:#fff;
    font-size:16px;
    font-weight:700;
    transition:.3s;
}

.single_add_to_cart_button:hover{
    background:#c8102e;
}

.single_add_to_cart_button.disabled{
    opacity:.55;
    cursor:not-allowed;
}

/* ===============================
   Info Box
================================= */

.fc-note{
    margin-top:20px;
    background:#fff9eb;
    border:1px solid #f1d78b;
    border-radius:8px;
    padding:16px 18px;
    color:#555;
    font-size:14px;
}

/* ===============================
   ZIP Gate
================================= */

.fc-zip-gate{
    margin:0 0 24px;
    padding:24px;
    border:1px solid #eadfce;
    border-radius:22px;
    background:linear-gradient(135deg,#fffdf8 0%,#f8f1e5 100%);
    box-shadow:0 16px 34px rgba(41,31,17,.06);
}

.fc-zip-header{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:16px;
    margin-bottom:18px;
}

.fc-zip-eyebrow{
    margin:0 0 6px;
    color:#c8102e;
    font-size:12px;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.fc-zip-header h4{
    margin:0;
    color:#1f2430;
    font-size:28px;
    line-height:1.15;
    font-weight:800;
}

.fc-zip-current{
    display:flex;
    align-items:center;
    gap:12px;
    padding:10px 14px;
    border:1px solid #eadfce;
    border-radius:999px;
    background:rgba(255,255,255,.75);
}

.fc-zip-current-label{
    color:#6c6770;
    font-size:12px;
    font-weight:700;
    letter-spacing:.06em;
    text-transform:uppercase;
}

.fc-zip-current-value{
    color:#1f2430;
    font-size:16px;
    font-weight:800;
}

.fc-zip-edit{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:8px 12px;
    border:1px solid #d7cbb9;
    border-radius:999px;
    background:#fff;
    color:#1f2430;
    font-size:13px;
    font-weight:700;
    cursor:pointer;
    transition:.2s ease;
}

.fc-zip-edit:hover{
    border-color:#c8102e;
    color:#c8102e;
    transform:translateY(-1px);
}

.fc-zip-edit svg{
    width:14px;
    height:14px;
    fill:currentColor;
}

.fc-zip-form label{
    display:block;
    margin-bottom:8px;
    font-size:15px;
    font-weight:700;
    color:#222;
}

.fc-zip-helper{
    margin:0 0 14px;
    color:#6c6770;
    font-size:14px;
    line-height:1.5;
}

.fc-zip-actions{
    display:flex;
    gap:12px;
    align-items:flex-end;
    flex-wrap:wrap;
}

.fc-zip-actions input{
    flex:1 1 260px;
    width:auto;
    height:54px;
    border:1px solid #ddd8d2;
    border-radius:14px;
    padding:0 16px;
    font-size:15px;
    background:#fff;
}

.fc-zip-actions input:focus{
    outline:none;
    border-color:#c8102e;
    box-shadow:0 0 0 3px rgba(200,16,46,.15);
}

.fc-zip-actions input[readonly]{
    background:#fffcf7;
    color:#3c3c3c;
    cursor:default;
}

.fc-zip-actions .button{
    height:54px;
    padding:0 28px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:14px;
    background:linear-gradient(135deg,#c8102e 0%,#9e1028 100%);
    box-shadow:0 12px 22px rgba(200,16,46,.2);
}

.fc-zip-message,
.fc-zip-unavailable{
    margin-top:14px;
}

.fc-zip-success{
    color:#18794e;
    font-weight:700;
}

.fc-zip-error{
    color:#b42318;
    font-weight:600;
}

.fc-zip-unavailable p{
    margin:0 0 12px;
    font-size:16px;
    font-weight:700;
    color:#222;
}

/* ===============================
   Checkout Review
================================= */

.woocommerce-checkout-review-order-table .product-name{
    width:70%;
}

.woocommerce-checkout-review-order-table .product-total{
    width:30%;
    white-space:nowrap;
    vertical-align:middle;
}

.woocommerce-checkout-review-order-table .cart_item .product-name{
    padding-top:22px;
    padding-bottom:22px;
}

.woocommerce-checkout-review-order-table .cart_item .product-total{
    font-size:32px;
    font-weight:800;
    color:#1f2430;
}

.woocommerce-checkout-review-order-table .cart_item .product-name a{
    display:inline-block;
    margin-bottom:10px;
    color:#c8102e;
    font-size:18px;
    font-weight:700;
    text-decoration:none;
}

.woocommerce-checkout-review-order-table .cart_item .product-name .product-quantity{
    display:inline-block;
    margin-left:6px;
    color:#1f2430;
    font-size:18px;
    font-weight:800;
}

.woocommerce-checkout-review-order-table .cart_item .product-name .wc-item-meta{
    margin:0;
    padding:0;
}

.woocommerce-checkout-review-order-table .cart_item .product-name .wc-item-meta li{
    display:block;
    margin:0 0 6px;
    line-height:1.45;
}

.woocommerce-checkout-review-order-table .cart_item .product-name .wc-item-meta li:last-child{
    margin-bottom:0;
}

.woocommerce-checkout-review-order-table .cart_item .product-name .wc-item-meta strong,
.woocommerce-checkout-review-order-table .cart_item .product-name .wc-item-meta .wc-item-meta-label{
    display:inline;
    margin:0;
    color:#33415c;
    font-size:16px;
    font-weight:800;
}

.woocommerce-checkout-review-order-table .cart_item .product-name .wc-item-meta p,
.woocommerce-checkout-review-order-table .cart_item .product-name .wc-item-meta span{
    display:inline;
    margin:0;
    color:#33415c;
    font-size:16px;
    font-weight:700;
}

.woocommerce-checkout-review-order-table .cart_item .product-name .wc-item-meta .wc-item-meta-label::after,
.woocommerce-checkout-review-order-table .cart_item .product-name .wc-item-meta strong::after{
    content:": ";
}

.woocommerce-checkout-review-order-table .fc-delivery-note td p{
    margin:0;
}

/* ===============================
   Mobile
================================= */

@media(max-width:768px){

    .fc-product-title{
        font-size:clamp(28px,8vw,40px);
    }

    .fc-product-price.is-sale{
        gap:4px 10px;
    }

    .fc-price-regular{
        font-size:18px;
    }

    .fc-price-sale,
    .fc-price-current{
        font-size:clamp(24px,7vw,34px);
    }

    .fc-product-details-line{
        font-size:15px;
    }

    .fc-detail-separator{
        margin:0 6px;
    }

    .fc-row{
        flex-direction:column;
    }

    .fc-col{
        width:100%;
    }

    #fc_calculate{
        width:100%;
        min-width:0;
    }

    .fc-results-header{
        flex-direction:column;
        align-items:flex-start;
    }

    .fc-results-grid{
        grid-template-columns:1fr;
    }

    .fc-zip-actions{
        flex-direction:column;
        align-items:stretch;
    }

    .fc-zip-header{
        flex-direction:column;
    }

    .fc-zip-current{
        width:100%;
        justify-content:space-between;
        border-radius:18px;
    }

    .fc-zip-actions input,
    .fc-zip-actions .button{
        width:100%;
    }

    .woocommerce-checkout-review-order-table .product-name,
    .woocommerce-checkout-review-order-table .product-total{
        width:auto;
    }

    .woocommerce-checkout-review-order-table .cart_item .product-total{
        font-size:24px;
    }

    .fc-result-card{
        padding:18px;
    }

    .fc-result-value{
        font-size:24px;
    }

    #fc-calculator h3{
        font-size:32px;
    }

}
