/* ── Floating button ──────────────────────────────────────── */
.float-callback {
    position:      fixed;
    bottom:        28px;
    right:         28px;
    z-index:       900;
    display:       flex;
    align-items:   center;
    gap:           8px;
    padding:       12px 20px;
    background:    var(--color-accent, #8B7355);
    color:         #fff;
    border:        none;
    border-radius: 40px;
    font-family:   var(--font-body, 'PT Sans', sans-serif);
    font-size:     0.9rem;
    font-weight:   600;
    cursor:        pointer;
    box-shadow:    0 4px 16px rgba(139,115,85,.4);
    transition:    transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.float-callback:hover {
    background:   #7a6347;
    transform:    translateY(-2px);
    box-shadow:   0 6px 20px rgba(139,115,85,.5);
}
@media (max-width: 900px) {
    /* Lift button above the fixed filter bar (~68px tall) */
    .float-callback { bottom: 80px; }
}

@media (max-width: 600px) {
    .float-callback span { display: none; }
    .float-callback { padding: 14px; border-radius: 50%; bottom: 80px; right: 16px; }
}

/* ── Modal overlay ────────────────────────────────────────── */
.callback-modal {
    display:  none;
    position: fixed;
    inset:    0;
    z-index:  1000;
}
.callback-modal.is-open { display: block; }

.callback-modal__overlay {
    position:   absolute;
    inset:      0;
    background: rgba(0,0,0,.55);
    cursor:     pointer;
}

.callback-modal__box {
    position:         absolute;
    top:              50%;
    left:             50%;
    transform:        translate(-50%, -50%);
    width:            min(480px, calc(100vw - 32px));
    background:       #fff;
    border-radius:    var(--radius-md, 6px);
    padding:          36px 32px 28px;
    box-shadow:       0 16px 48px rgba(0,0,0,.18);
}
.callback-modal__close {
    position:   absolute;
    top:        14px;
    right:      14px;
    background: none;
    border:     none;
    cursor:     pointer;
    color:      #888;
    padding:    4px;
    line-height: 1;
}
.callback-modal__close:hover { color: var(--color-primary, #2c2c2c); }

.callback-modal__title {
    font-family: var(--font-heading, 'PT Serif', serif);
    font-size:   1.4rem;
    color:       var(--color-primary, #2c2c2c);
    margin:      0 0 8px;
    line-height: 1.3;
}
.callback-modal__sub {
    font-size:  0.9rem;
    color:      #666;
    margin:     0 0 20px;
    line-height: 1.5;
}

.callback-modal__field { margin-bottom: 12px; }
.callback-modal__input {
    width:         100%;
    border:        1px solid #d0d0d0;
    border-radius: var(--radius-md, 6px);
    padding:       12px 14px;
    font-size:     1rem;
    font-family:   var(--font-body, 'PT Sans', sans-serif);
    color:         var(--color-primary, #2c2c2c);
    box-sizing:    border-box;
    transition:    border-color .15s ease;
}
.callback-modal__input:focus {
    outline:       none;
    border-color:  var(--color-accent, #8B7355);
}

.callback-modal__submit {
    width:         100%;
    padding:       13px;
    background:    var(--color-accent, #8B7355);
    color:         #fff;
    border:        none;
    border-radius: var(--radius-md, 6px);
    font-family:   var(--font-body, 'PT Sans', sans-serif);
    font-size:     1rem;
    font-weight:   600;
    cursor:        pointer;
    margin-top:    4px;
    transition:    background .2s ease;
}
.callback-modal__submit:hover { background: #7a6347; }

.callback-modal__consent {
    font-size:  0.75rem;
    color:      #999;
    text-align: center;
    margin:     10px 0 0;
    line-height: 1.4;
}
.callback-modal__consent a { color: inherit; text-decoration: underline; }

.callback-modal__trust {
    list-style: none;
    padding:    0;
    margin:     18px 0 0;
    border-top: 1px solid #f0f0f0;
    padding-top: 14px;
}
.callback-modal__trust li {
    font-size:   0.8rem;
    color:       #555;
    padding:     3px 0;
    line-height: 1.4;
}

.callback-modal__success {
    text-align: center;
    padding:    20px 0 8px;
}
.callback-modal__success-text {
    font-size:  1.05rem;
    color:      var(--color-accent, #8B7355);
    font-weight: 600;
}
