/* Wrapper for image + SVG border */
#loadQuoteBtnWrapper {
        position: relative;
        display: inline-block;
}

/* SVG overlay (marching ants container) */
#loadQuoteBtnWrapper .ants-border {
        position: absolute;
        inset: -6px;
        width: calc(100% + 12px);
        height: calc(100% + 12px);
        pointer-events: none;
}

/* Marching ants border */
#loadQuoteBtnWrapper .ants-border rect {
        fill: none;
        stroke: #6c757d;   /* Bootstrap secondary */
        stroke-width: 2;
        stroke-dasharray: 6 6;
        animation: marchingAnts 1s linear infinite;
}

/* Animation */
@keyframes marchingAnts {
        to {
                stroke-dashoffset: -12;
        }
}

/* Image styling + centering */
#loadQuoteBtn {
        display: block;
        margin: 0 auto;
        border-radius: 12px;
        position: relative;
        z-index: 1;
}

/* Hover effect (applies to wrapper for better UX) */
#loadQuoteBtnWrapper:hover {
        transform: scale(1.03);
        transition: 0.2s ease;
}

/* %% Placeholder while Roofr preloads %%%%%%%%%%%%%%%%%%%%%%%%%%% */
.roofr-placeholder--loading #loadQuoteBtn {
        opacity: 0.65;
        filter: grayscale(0.15);
}

.roofr-placeholder-hint {
        font-size: 0.85rem;
}

/* %% Hidden viewport warmup host (positioned below the fold, extremely small) %% */
.roofr-preload-host {
        position: fixed;
        bottom: -100px;
        left: -100px;
        width: 1px;
        height: 1px;
        margin: 0;
        padding: 0;
        border: 0;
        opacity: 0.01;
        pointer-events: none;
        z-index: -9999;
        overflow: hidden;
        clip-path: inset(0);
}

.roofr-preload-host .roofr-embed-frame--preloading {
        width: 100%;
        height: 100%;
        border: 0;
        display: block;
}

/* %% Visible embed in #roofrContainer %%%%%%%%%%%%%%%%%%%%%% */
.roofr-embed-wrap {
        text-align: center;
        opacity: 0;
        transform: translateY(4px);
        transition: opacity 0.1s ease, transform 0.1s ease;
}

.roofr-embed-wrap--visible {
        opacity: 1;
        transform: translateY(0);
}