/* Side consultation form — deliberately follows the original site style. */
.header__cta {
    border: 0;
    cursor: pointer;
}

.consult-modal {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: none;
}

.consult-modal.is-open {
    display: block;
}

.consult-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(18, 16, 16, 0.76);
    backdrop-filter: blur(4px);
}

.consult-modal__panel {
    position: absolute;
    top: 0;
    right: 0;
    width: min(480px, 100%);
    height: 100%;
    height: 100dvh;
    max-height: 100dvh;
    overflow-y: auto;
    padding: 62px 54px 40px;
    padding-top: max(62px, env(safe-area-inset-top, 0px));
    padding-right: max(54px, env(safe-area-inset-right, 0px));
    padding-bottom: max(40px, env(safe-area-inset-bottom, 0px));
    padding-left: max(54px, env(safe-area-inset-left, 0px));
    background: #202020;
    border-left: 1px solid rgba(177, 149, 118, 0.32);
    box-shadow: -18px 0 55px rgba(0, 0, 0, 0.34);
}

.consult-modal__close {
    position: absolute;
    top: max(18px, env(safe-area-inset-top, 0px));
    right: max(22px, env(safe-area-inset-right, 0px));
    border: 0;
    background: transparent;
    color: rgba(255, 255, 224, 0.65);
    font: 32px/1 Helvetica, sans-serif;
    cursor: pointer;
}

.consult-modal__eyebrow {
    margin: 0 0 12px;
    color: #b19576;
    font: 700 11px/1.4 Futura, sans-serif;
    letter-spacing: 1.5px;
    text-transform: uppercase;
}

.consult-modal__title {
    margin: 0 0 14px;
    color: #ffffe0;
    font: 700 32px/1.14 Futura, sans-serif;
    text-transform: uppercase;
}

.consult-modal__intro {
    margin: 0 0 28px;
    color: rgba(255, 255, 224, 0.6);
    font: 15px/1.65 Helvetica, sans-serif;
}

.consult-form {
    display: grid;
    gap: 17px;
}

.consult-form__field {
    display: grid;
    gap: 7px;
    color: #b19576;
    font: 700 11px/1.4 Futura, sans-serif;
    letter-spacing: 0.7px;
    text-transform: uppercase;
}

.consult-form__field small {
    color: rgba(255, 255, 224, 0.45);
    font: 12px Helvetica, sans-serif;
    letter-spacing: 0;
    text-transform: none;
}

.consult-form input,
.consult-form textarea {
    width: 100%;
    padding: 14px 15px;
    border: 1px solid rgba(177, 149, 118, 0.25);
    border-radius: 8px;
    outline: 0;
    background: #373030;
    color: #ffffe0;
    font: 15px Helvetica, sans-serif;
}

.consult-form input:focus,
.consult-form textarea:focus {
    border-color: #b19576;
}

.consult-form textarea {
    resize: vertical;
}

.consult-form__submit {
    min-height: 50px;
    border: 0;
    border-radius: 8px;
    background: #b19576;
    color: #202020;
    font: 700 12px Futura, sans-serif;
    letter-spacing: 1px;
    text-transform: uppercase;
    cursor: pointer;
}

.consult-form__submit:hover {
    background: #c4a98a;
}

.consult-form__status {
    min-height: 20px;
    margin: 0;
    color: #d2b999;
    font: 13px/1.5 Helvetica, sans-serif;
}

html.consult-open,
body.consult-open {
    overflow: hidden !important;
}

@media (max-width: 560px) {
    .consult-modal__panel {
        padding: 58px 24px 30px;
        padding-top: max(58px, env(safe-area-inset-top, 0px));
        padding-right: max(24px, env(safe-area-inset-right, 0px));
        padding-bottom: max(30px, env(safe-area-inset-bottom, 0px));
        padding-left: max(24px, env(safe-area-inset-left, 0px));
    }

    .consult-modal__title {
        font-size: 27px;
    }
}

/* Hide incomplete progressive JPEG decode — show only when fully ready */
.gallery img,
.product-card__img,
.featured-card__img,
.featured-hero__img,
.hero__slide img {
    opacity: 0;
}

.gallery img.is-loaded,
.product-card__img.is-loaded,
.featured-card__img.is-loaded,
.featured-hero__img.is-loaded,
.hero__slide img.is-loaded {
    opacity: 1;
    transition: opacity 0.4s ease;
}
