/* ==========================================================================
   Cleaning Quote Calculator — ccc-quote.css  v1.1.0
   ========================================================================== */

.ccc-wrap {
    font-family: "Helvetica Neue", Arial, sans-serif;
    background: linear-gradient(175deg, #f0fdf8 0%, #f8fafc 40%, #fff 100%);
    min-height: 100vh;
    padding: 40px 20px 140px;
    box-sizing: border-box;
}
.ccc-container { max-width: 700px; margin: 0 auto; }

.ccc-cat-title-wrap { display: flex; align-items: center; gap: 10px; margin: 30px 0 15px; }
.ccc-cat-line { width: 5px; height: 28px; border-radius: 3px; background: linear-gradient(180deg, #1a6b5a, #2dd4a8); }
.ccc-cat-title { margin: 0; font-size: 22px; font-family: "Georgia", serif; color: #1e293b; letter-spacing: 0.5px; }

/* ── Item card ── */
.ccc-item {
    padding: 16px 20px; border-radius: 14px; background: #fff;
    border: 2px solid #f1f5f9; transition: all .25s ease;
    box-shadow: 0 1px 3px rgba(0,0,0,.04); margin-bottom: 12px;
}
.ccc-item.is-active {
    background: linear-gradient(135deg, #f0fdf8, #ecfdf5);
    border-color: #86efac; box-shadow: 0 2px 12px rgba(45,212,168,.1);
}
.ccc-item-top { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.ccc-item-name { font-weight: 600; font-size: 16px; color: #1e293b; }
.ccc-item-desc { font-size: 13px; color: #94a3b8; margin-top: 4px; }

/* ── Main stepper ── */
.ccc-stepper {
    display: flex; align-items: center; border-radius: 10px; overflow: hidden;
    border: 2px solid #e2e8f0; background: #fff; flex-shrink: 0;
}
.ccc-stepper button {
    width: 40px; height: 40px; border: none; font-size: 22px; font-weight: 700;
    cursor: pointer; transition: all .15s; display: flex; align-items: center; justify-content: center;
}
.ccc-stepper .ccc-minus { background: #f8fafc; color: #cbd5e1; }
.ccc-stepper.has-val .ccc-minus { background: #fee2e2; color: #dc2626; }
.ccc-stepper .ccc-plus { background: #dcfce7; color: #16a34a; }
.ccc-stepper input {
    width: 48px; height: 40px; border: none;
    border-left: 2px solid #e2e8f0; border-right: 2px solid #e2e8f0;
    text-align: center; font-size: 16px; font-weight: 600; color: #1e293b;
    background: #fff; pointer-events: none;
}

/* ── Add-ons ── */
.ccc-addons-wrap {
    display: none; gap: 10px; margin-top: 12px; padding-top: 12px;
    border-top: 1px dashed #cbd5e1; flex-wrap: wrap;
}
.ccc-item.is-active .ccc-addons-wrap { display: flex; }

.ccc-ao {
    display: inline-flex; flex: 1; min-width: 200px; justify-content: space-between;
    align-items: center; gap: 8px; padding: 6px 6px 6px 12px; border-radius: 8px;
    background: #f8fafc; border: 1.5px solid #e2e8f0; transition: all .2s;
}
.ccc-ao-label { font-size: 13px; font-weight: 600; color: #475569; white-space: nowrap; user-select: none; }

.ccc-ao-stepper {
    display: flex; align-items: center; border-radius: 6px; overflow: hidden;
    border: 1.5px solid #e2e8f0; background: #fff;
}
.ccc-ao-stepper button {
    width: 28px; height: 28px; border: none; font-size: 16px; font-weight: 700;
    cursor: pointer; display: flex; align-items: center; justify-content: center;
    padding: 0; transition: all 0.15s;
}
.ccc-ao-stepper .ccc-ao-minus { background: #f8fafc; color: #cbd5e1; }
.ccc-ao-stepper.has-val .ccc-ao-minus { background: #fee2e2; color: #dc2626; }
.ccc-ao-stepper .ccc-ao-plus { background: #f8fafc; color: #cbd5e1; }
.ccc-ao-stepper.can-add .ccc-ao-plus { background: #dcfce7; color: #16a34a; }
.ccc-ao-stepper input {
    width: 30px; height: 28px; border: none;
    border-left: 1.5px solid #e2e8f0; border-right: 1.5px solid #e2e8f0;
    text-align: center; font-size: 13px; font-weight: 700; color: #94a3b8;
    background: #fff; pointer-events: none;
}

/* ── ZIP box ── */
.ccc-zip-box {
    background: #fff; border: 2px solid #e2e8f0; border-radius: 14px; padding: 20px;
    display: flex; align-items: center; gap: 15px;
    box-shadow: 0 1px 3px rgba(0,0,0,.04); position: relative; z-index: 10;
}
.ccc-zip-box input {
    border: 2px solid #cbd5e1; border-radius: 8px; padding: 10px 14px; font-size: 16px;
    outline: none; width: 120px; transition: border 0.2s;
}
.ccc-zip-box input:focus { border-color: #1a6b5a; }

/* ── Sticky footer ── */
.ccc-footer {
    position: fixed; bottom: 0; left: 0; right: 0; z-index: 100;
    background: linear-gradient(135deg, #1a6b5a, #15876e); padding: 18px 24px;
    display: flex; align-items: center; justify-content: center; gap: 40px;
    box-shadow: 0 -4px 30px rgba(0,0,0,.18); flex-wrap: wrap;
}
.ccc-footer-price { display: flex; align-items: baseline; gap: 10px; }
.ccc-footer-price span:first-child { color: #d1fae5; font-size: 15px; font-weight: 500; }
.ccc-footer-price span:last-child { color: #fff; font-size: 34px; font-weight: 800; font-family: "Georgia", serif; letter-spacing: -1px; }

.ccc-add-to-cart {
    background: #2dd4a8; color: #0f4f42; border: none; padding: 14px 32px;
    border-radius: 10px; font-size: 16px; font-weight: bold; cursor: pointer;
    transition: all 0.2s; box-shadow: 0 4px 15px rgba(45,212,168,.3);
}
.ccc-add-to-cart:hover { background: #34e0b3; transform: translateY(-1px); }
.ccc-add-to-cart:disabled { background: #94a3b8; color: #e2e8f0; cursor: not-allowed; box-shadow: none; transform: none; }

/* ── Lock state ── */
#ccc-services-wrap { transition: opacity 0.3s ease; }
#ccc-services-wrap.is-locked { opacity: 0.35; pointer-events: none; filter: grayscale(50%); }
.ccc-item-price-label, .ccc-ao-price-label { transition: opacity 0.2s ease; }
#ccc-services-wrap.is-locked .ccc-item-price-label,
#ccc-services-wrap.is-locked .ccc-ao-price-label { opacity: 0; visibility: hidden; }


/* ==========================================================================
   NEW: Edit banner — shown above ZIP when an existing cart item is detected
   ========================================================================== */
.ccc-edit-banner {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 16px 20px;
    margin-bottom: 16px;
    background: linear-gradient(135deg, #fffbeb, #fef9c3);
    border: 2px solid #fbbf24;
    border-radius: 14px;
    box-shadow: 0 2px 10px rgba(251, 191, 36, 0.15);
    /* For the JS fade-out transition */
    max-height: 600px;
    overflow: visible;
    transition: opacity 0.4s ease, max-height 0.4s ease, margin-bottom 0.4s ease, padding 0.4s ease;
}

.ccc-edit-banner-icon {
    font-size: 22px;
    flex-shrink: 0;
    line-height: 1;
    margin-top: 2px;
}

.ccc-edit-banner-body {
    flex: 1;
    min-width: 0;
}

.ccc-edit-banner-checkout {
    font-size: 13px;
    font-weight: 600;
    color: #1a6b5a;
    white-space: nowrap;
    text-decoration: none;
    border: 1.5px solid #1a6b5a;
    padding: 6px 14px;
    border-radius: 8px;
    transition: background 0.2s ease;
    flex-shrink: 0;
    align-self: center;
}
.ccc-edit-banner-checkout:hover {
    background: #f0fdf8;
}