.loreno-product-estimator-section {
    padding-block: clamp(2rem, 5vw, 5rem);
}

.loreno-product-estimator-section .loreno-estimator {
    margin-top: 0;
    background:
        radial-gradient(circle at 12% 0, rgba(8,112,85,.08), transparent 26rem),
        var(--loreno-paper, #f8faf7);
    border: 1px solid rgba(8,112,85,.15);
    box-shadow: 0 24px 70px rgba(16,49,40,.10);
}

.loreno-product-estimator-section .loreno-estimator__grid input {
    width: 100%;
    min-height: 3rem;
    background: rgba(255,255,255,.9);
}

.loreno-product-estimator-section .loreno-estimator__result {
    min-height: 4.5rem;
    background: linear-gradient(135deg, #e7f6ef, #f5fbf8);
}

.loreno-product-estimator-section .loreno-estimator__result strong {
    letter-spacing: .01em;
}

@media (max-width: 640px) {
    .loreno-product-estimator-section {
        padding-inline: .75rem;
    }

    .loreno-product-estimator-section .loreno-estimator {
        border-radius: 18px;
        padding: 1rem;
    }
}

.loreno-estimator-modal[hidden] { display: none !important; }
.loreno-estimator-modal {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: grid;
    place-items: center;
    padding: clamp(.75rem, 3vw, 2rem);
}
.loreno-estimator-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(5, 24, 19, .58);
    backdrop-filter: blur(10px);
}
.loreno-estimator-modal__dialog {
    position: relative;
    width: min(980px, 100%);
    max-height: min(90vh, 820px);
    overflow: auto;
    border: 1px solid rgba(255,255,255,.72);
    border-radius: 28px;
    background: #f9fcfa;
    box-shadow: 0 30px 100px rgba(4, 32, 24, .35);
    animation: loreno-estimator-in .26s ease both;
}
.loreno-estimator-modal__dialog .loreno-estimator {
    margin: 0;
    border: 0;
    border-radius: inherit;
    box-shadow: none;
}
.loreno-estimator-modal__close {
    position: absolute;
    inset-block-start: .8rem;
    inset-inline-end: .9rem;
    z-index: 2;
    width: 2.5rem;
    height: 2.5rem;
    border: 1px solid rgba(8,112,85,.2);
    border-radius: 50%;
    background: rgba(255,255,255,.82);
    color: #087055;
    font-size: 1.6rem;
    line-height: 1;
    cursor: pointer;
    transition: transform .2s ease, background .2s ease;
}
.loreno-estimator-modal__close:hover { transform: rotate(8deg) scale(1.04); background: #e7f5ef; }
.loreno-button--estimate {
    background: linear-gradient(135deg, #0d8064, #075641);
    color: #fff;
    border-color: transparent;
    box-shadow: 0 10px 24px rgba(8,112,85,.18);
}
.loreno-button--estimate:hover { color: #fff; transform: translateY(-2px); }
.loreno-product-estimator-section { display: none !important; }
body.loreno-estimator-open { overflow: hidden; }

@keyframes loreno-estimator-in {
    from { opacity: 0; transform: translateY(16px) scale(.98); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (max-width: 640px) {
    .loreno-estimator-modal__dialog { max-height: 94vh; border-radius: 20px; }
    .loreno-estimator-modal__dialog .loreno-estimator { padding: 1.1rem; }
    .loreno-estimator-modal__close { inset-block-start: .55rem; inset-inline-end: .55rem; }
}

/* Product-page estimator: the modal uses this file without the visualizer
   stylesheet, so keep the complete polished card styles here as well. */
.loreno-estimator-modal .loreno-estimator {
    padding: clamp(1.4rem, 3vw, 2.8rem);
    background:
        radial-gradient(circle at 88% 0, rgba(13,128,100,.10), transparent 22rem),
        #f8faf8;
}
.loreno-estimator-modal .loreno-estimator__heading {
    padding-inline-end: 3rem;
    margin-bottom: 1.7rem;
}
.loreno-estimator-modal .loreno-estimator__heading h2 {
    margin: .55rem 0 .65rem;
    color: #103f32;
    font-size: clamp(1.35rem, 2.6vw, 2.2rem);
    line-height: 1.45;
    letter-spacing: -.025em;
}
.loreno-estimator-modal .loreno-estimator__heading p {
    margin: 0;
    color: #60766e;
    line-height: 1.9;
}
.loreno-estimator-modal .loreno-estimator__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}
.loreno-estimator-modal .loreno-estimator__grid label {
    display: grid;
    gap: .45rem;
    color: #31594d;
    font-size: .86rem;
    font-weight: 700;
}
.loreno-estimator-modal .loreno-estimator__grid input {
    width: 100%;
    min-height: 3.2rem;
    padding: .65rem .8rem;
    border: 1px solid #d7e5df;
    border-radius: 14px;
    color: #173d32;
    background: #fff;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
    transition: border-color .2s ease, box-shadow .2s ease;
}
.loreno-estimator-modal .loreno-estimator__grid input:focus {
    outline: 0;
    border-color: #0d8064;
    box-shadow: 0 0 0 4px rgba(13,128,100,.12);
}
.loreno-estimator-modal .loreno-estimator__result {
    display: grid;
    gap: .4rem;
    margin-top: 1.35rem;
    padding: 1.15rem 1.3rem;
    border: 1px solid rgba(13,128,100,.14);
    border-radius: 18px;
    background: linear-gradient(135deg, #e2f5ec, #f4fbf7);
}
.loreno-estimator-modal .loreno-estimator__result strong {
    color: #087055;
    font-size: clamp(1.35rem, 3vw, 2rem);
}
.loreno-estimator-modal .loreno-estimator__result span {
    color: #5d766c;
    line-height: 1.8;
}
@media (max-width: 760px) {
    .loreno-estimator-modal .loreno-estimator__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 460px) {
    .loreno-estimator-modal .loreno-estimator__grid { grid-template-columns: 1fr; }
    .loreno-estimator-modal .loreno-estimator__heading { padding-inline-end: 1.5rem; }
}
