/* Explain: Component styling for cards, forms, and scrollable sections. */
.eyebrow {
    font-size: 0.75rem;
    font-weight: 900;
    letter-spacing: 0.22em;
    text-transform: uppercase;
}

.hero-flooring {
    position: relative;
    z-index: 1;
    isolation: isolate;
}

.hero-flooring::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background:
        linear-gradient(180deg, color-mix(in srgb, var(--charcoal-color) 72%, transparent), color-mix(in srgb, var(--walnut-color) 70%, transparent)),
        radial-gradient(circle at center, color-mix(in srgb, var(--surface-color) 10%, transparent), transparent 34rem);
}

.brand-mark,
.texture-blob {
    border-radius: 68% 32% 64% 36% / 42% 62% 38% 58%;
}

.estimate-form-panel {
    border: 1px solid color-mix(in srgb, var(--surface-color) 38%, transparent);
    background: color-mix(in srgb, var(--surface-color) 90%, transparent);
    box-shadow: var(--shadow-soft);
    backdrop-filter: blur(18px);
}

.estimate-form-panel.is-dark {
    border-color: color-mix(in srgb, var(--surface-color) 20%, transparent);
    background: color-mix(in srgb, var(--surface-color) 10%, transparent);
}

.service-card,
.project-card,
.timeline-card,
.faq-card,
.reassurance-card {
    border: 1px solid var(--border-color);
    border-radius: 2rem;
    background: color-mix(in srgb, var(--surface-color) 86%, transparent);
    box-shadow: var(--shadow-card);
    transition: transform 300ms ease, border-color 300ms ease, background 300ms ease;
}

.review-card {
    border: 1px solid color-mix(in srgb, var(--surface-color) 18%, transparent);
    border-radius: 2rem;
    background: color-mix(in srgb, var(--surface-color) 10%, transparent);
    box-shadow: var(--shadow-card);
    transition: transform 300ms ease, border-color 300ms ease, background 300ms ease;
}

.service-card:hover,
.project-card:hover,
.timeline-card:hover,
.reassurance-card:hover {
    transform: translateY(-0.35rem);
    border-color: color-mix(in srgb, var(--walnut-color) 38%, transparent);
    background: color-mix(in srgb, var(--surface-color) 96%, transparent);
}

.review-card:hover {
    transform: translateY(-0.35rem);
    border-color: color-mix(in srgb, var(--sage-color) 58%, transparent);
    background: color-mix(in srgb, var(--surface-color) 15%, transparent);
}

.service-dot {
    display: inline-flex;
    height: 3.25rem;
    width: 3.25rem;
    align-items: center;
    justify-content: center;
    border-radius: 68% 32% 64% 36% / 42% 62% 38% 58%;
    background: color-mix(in srgb, var(--sage-color) 24%, var(--beige-color));
    color: var(--walnut-color);
}

.project-split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    overflow: hidden;
    border-radius: 1.5rem;
}

.project-split img {
    height: 13rem;
    width: 100%;
    object-fit: cover;
}

.estimate-status.success {
    display: block;
    border: 1px solid color-mix(in srgb, var(--sage-color) 48%, transparent);
    background: color-mix(in srgb, var(--sage-color) 18%, transparent);
    color: var(--charcoal-color);
}

.estimate-status.error {
    display: block;
    border: 1px solid color-mix(in srgb, var(--walnut-color) 42%, transparent);
    background: color-mix(in srgb, var(--walnut-color) 12%, transparent);
    color: var(--charcoal-color);
}

#services,
#proof,
#portfolio,
#process,
#warranty,
#reviews,
#articles,
#faq,
#estimate {
    scroll-margin-top: 6rem;
}

.floating-contact-layer {
    position: relative;
    z-index: 10000;
    pointer-events: none;
}

.floating-contact-button {
    position: fixed;
    right: 1.25rem;
    bottom: 1.25rem;
    z-index: 9999;
    display: inline-flex;
    min-height: 3.5rem;
    align-items: center;
    gap: 0.6rem;
    pointer-events: auto;
    visibility: hidden;
    opacity: 0;
    transform: translateY(1rem) scale(0.96);
    box-shadow: 0 22px 55px color-mix(in srgb, var(--charcoal-color) 28%, transparent);
}

.floating-contact-button.is-visible {
    visibility: visible;
    opacity: 1;
    transform: translateY(0) scale(1);
}

.floating-contact-modal {
    position: fixed;
    inset: 0;
    z-index: 10000;
    overflow-y: auto;
    background:
        linear-gradient(135deg, color-mix(in srgb, var(--charcoal-color) 88%, transparent), color-mix(in srgb, var(--walnut-color) 82%, transparent)),
        var(--charcoal-color);
    pointer-events: auto;
}

.floating-contact-modal.hidden {
    display: none;
}

.contact-modal-open {
    overflow: hidden;
}

@media (max-width: 640px) {
    .project-split img {
        height: 11rem;
    }

    .floating-contact-button {
        right: 0.75rem;
        bottom: max(0.75rem, env(safe-area-inset-bottom));
        left: 0.75rem;
        justify-content: center;
        width: auto;
        min-height: 3.75rem;
        border-radius: 9999px;
    }
}
