/* Final font lock: loaded after all storefront styles. */
:root {
    --font-heading: "Inter", Arial, sans-serif;
    --font-body: "Inter", Arial, sans-serif;
    --font-display: "Inter", Arial, sans-serif;
}

html,
body,
button,
input,
select,
textarea,
.home-luxury,
.site-header,
.site-footer {
    font-family: var(--font-body) !important;
}

h1,
h2,
h3,
h4,
h5,
h6,
.hero-title,
.section-title,
.page-title,
.collection-hero h1,
.home-luxury h1,
.home-luxury h2,
.home-luxury h3,
.home-hero__copy h1,
.home-section-header h2,
.home-section-heading h2,
.home-section-heading--center h2,
.homepage-product-section__header h2,
.delivery-offer__content h2,
.home-promo-banner__copy h2,
.home-local-delivery__copy h2,
.home-faq__intro h2,
.site-footer__brand-copy h2,
.sales-hero__content h1,
.media-gallery-hero__copy h1,
.media-gallery-section__header h2,
.pdp-title,
.payment-intro h1,
.checkout-panel-title,
.account-card-header h1,
.account-card-header h2 {
    font-family: var(--font-heading) !important;
    font-weight: 600 !important;
}

.home-luxury .home-hero__copy h1,
.home-hero__copy h1 {
    font-size: clamp(2.55rem, 6vw, 4.65rem) !important;
    line-height: 1.02 !important;
    letter-spacing: -0.01em !important;
}

.delivery-offer__content h2 {
    font-size: clamp(2.4rem, 6vw, 4.1rem) !important;
    line-height: 1.02 !important;
    letter-spacing: -0.01em !important;
}

/* Final homepage map lock: the map must feel like a real panel, not a thumbnail. */
.home-luxury .home-local-delivery__layout,
.home-local-delivery__layout {
    align-items: stretch !important;
}

.home-luxury .home-local-delivery__map,
.home-local-delivery__map {
    position: relative !important;
    min-height: clamp(420px, 34vw, 560px) !important;
    height: auto !important;
    background: #fff7f9 !important;
}

.home-luxury .home-local-delivery__map iframe,
.home-local-delivery__map iframe {
    width: 100% !important;
    height: 100% !important;
    min-height: inherit !important;
    display: block !important;
    border: 0 !important;
    filter: saturate(0.94) contrast(1.02);
}

.home-local-delivery__map-link {
    position: absolute !important;
    left: 18px !important;
    bottom: 18px !important;
    z-index: 2 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 42px !important;
    padding: 0.72rem 1.15rem !important;
    border-radius: 999px !important;
    background: #fff !important;
    color: #742640 !important;
    border: 1px solid #ead5da !important;
    box-shadow: 0 12px 26px rgba(43, 43, 43, 0.12) !important;
    font-family: var(--font-heading, Inter, Arial, sans-serif) !important;
    font-size: 0.74rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.1em !important;
    text-decoration: none !important;
    text-transform: uppercase !important;
}

@media (max-width: 900px) {
    .home-luxury .home-local-delivery__map,
    .home-local-delivery__map {
        min-height: 360px !important;
    }
}

@media (max-width: 560px) {
    .home-luxury .home-local-delivery__map,
    .home-local-delivery__map {
        min-height: 320px !important;
        border-radius: 16px !important;
    }

    .home-local-delivery__map-link {
        left: 14px !important;
        right: 14px !important;
        bottom: 14px !important;
        width: auto !important;
    }
}

/* Homepage typography balance: keep text readable and stop oversized stacking. */
.home-luxury .home-hero__copy h1,
.home-hero__copy h1 {
    max-width: 11.5em !important;
    font-size: clamp(2.35rem, 4.6vw, 3.95rem) !important;
    line-height: 1.05 !important;
    letter-spacing: -0.012em !important;
}

.home-luxury .home-section-heading,
.home-section-heading {
    gap: 1rem !important;
    align-items: center !important;
}

.home-luxury .home-section-heading h2,
.home-section-heading h2,
.home-section-heading--center h2 {
    max-width: 18em !important;
    margin: 0 !important;
    font-size: clamp(1.55rem, 2.15vw, 2.25rem) !important;
    line-height: 1.14 !important;
    letter-spacing: 0.035em !important;
    text-wrap: balance;
}

.home-luxury .home-section-heading--center h2,
.home-section-heading--center h2 {
    margin-inline: auto !important;
}

.home-luxury .home-promo-banner__copy h2,
.home-promo-banner__copy h2,
.home-luxury .home-why-choose__intro h2,
.home-why-choose__intro h2,
.home-luxury .home-faq__intro h2,
.home-faq__intro h2 {
    max-width: 12em !important;
    font-size: clamp(1.7rem, 2.65vw, 2.65rem) !important;
    line-height: 1.12 !important;
    letter-spacing: -0.005em !important;
    text-wrap: balance;
}

.home-luxury .home-local-delivery__copy h2,
.home-local-delivery__copy h2 {
    max-width: 15em !important;
    font-size: clamp(1.75rem, 2.5vw, 2.55rem) !important;
    line-height: 1.12 !important;
    letter-spacing: -0.005em !important;
    text-wrap: balance;
}

.home-luxury .home-local-delivery__copy p:not(.home-eyebrow),
.home-local-delivery__copy p:not(.home-eyebrow) {
    max-width: 42rem !important;
    font-size: 1rem !important;
    line-height: 1.72 !important;
}

.home-luxury .home-product-card .product-title,
.home-luxury .home-product-card__title,
.home-product-card .product-title,
.home-product-card__title {
    min-height: 0 !important;
    font-family: var(--font-body, Inter, Arial, sans-serif) !important;
    font-size: 0.92rem !important;
    line-height: 1.3 !important;
    letter-spacing: 0.015em !important;
    text-transform: uppercase !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
}

.home-luxury .home-occasion-card__body h3,
.home-occasion-card__body h3,
.home-luxury .home-feature-card h3,
.home-feature-card h3,
.home-luxury .home-review-card h3,
.home-review-card h3 {
    font-family: var(--font-body, Inter, Arial, sans-serif) !important;
    font-size: 0.88rem !important;
    line-height: 1.25 !important;
    letter-spacing: 0.06em !important;
}

@media (max-width: 760px) {
    .home-luxury .home-hero__copy,
    .home-hero__copy {
        width: 100% !important;
        max-width: 100% !important;
        flex: 0 0 100% !important;
    }

    .home-luxury .home-hero__copy h1,
    .home-hero__copy h1 {
        font-size: clamp(2rem, 9vw, 2.55rem) !important;
        max-width: 100% !important;
    }

    .home-luxury .home-section-heading,
    .home-section-heading {
        align-items: flex-start !important;
    }

    .home-luxury .home-section-heading h2,
    .home-section-heading h2,
    .home-section-heading--center h2 {
        font-size: clamp(1.35rem, 7vw, 1.9rem) !important;
        letter-spacing: 0.025em !important;
    }

    .home-luxury .home-promo-banner__copy h2,
    .home-promo-banner__copy h2,
    .home-luxury .home-why-choose__intro h2,
    .home-why-choose__intro h2,
    .home-luxury .home-local-delivery__copy h2,
    .home-local-delivery__copy h2,
    .home-luxury .home-faq__intro h2,
    .home-faq__intro h2 {
        font-size: clamp(1.5rem, 7vw, 1.95rem) !important;
        line-height: 1.14 !important;
    }
}

/* Final homepage text tuning after visual QA. */
.home-luxury .home-hero__copy h1,
.home-hero__copy h1 {
    font-size: clamp(2.35rem, 3.9vw, 3.35rem) !important;
    line-height: 1.07 !important;
}

.home-luxury .home-promo-banner__copy h2,
.home-promo-banner__copy h2,
.home-luxury .home-why-choose__intro h2,
.home-why-choose__intro h2,
.home-luxury .home-faq__intro h2,
.home-faq__intro h2 {
    font-size: clamp(1.55rem, 2.15vw, 2.15rem) !important;
    line-height: 1.14 !important;
}

.home-luxury .home-local-delivery__copy h2,
.home-local-delivery__copy h2 {
    max-width: 18em !important;
    font-size: clamp(1.55rem, 2vw, 2rem) !important;
    line-height: 1.16 !important;
}

@media (max-width: 760px) {
    .home-luxury .home-hero__copy,
    .home-hero__copy {
        width: 100% !important;
        max-width: 100% !important;
        flex: 0 0 100% !important;
    }

    .home-luxury .home-hero__copy h1,
    .home-hero__copy h1 {
        font-size: clamp(2rem, 8.5vw, 2.35rem) !important;
        max-width: 9.5em !important;
    }

    .home-luxury .home-local-delivery__copy h2,
    .home-local-delivery__copy h2,
    .home-luxury .home-promo-banner__copy h2,
    .home-promo-banner__copy h2,
    .home-luxury .home-why-choose__intro h2,
    .home-why-choose__intro h2,
    .home-luxury .home-faq__intro h2,
    .home-faq__intro h2 {
        font-size: clamp(1.45rem, 6.2vw, 1.7rem) !important;
        line-height: 1.18 !important;
    }
}

/* Homepage hero, gallery, and Nashville clock refinements. */
.site-header .header-nashville-clock,
.header-nashville-clock {
    display: inline-flex;
    align-items: baseline;
    justify-content: center;
    gap: 0.5rem;
    margin-top: 0.28rem;
    font-family: "Playfair Display", Georgia, serif !important;
    font-size: 0.64rem;
    line-height: 1;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #6f5d62;
    white-space: nowrap;
}

.site-header .header-nashville-clock time,
.header-nashville-clock time {
    min-width: 3.5em;
    font-family: "Playfair Display", Georgia, serif !important;
    font-size: 0.78rem;
    letter-spacing: 0.18em;
    color: #1e1a1b;
}

.storefront-page--home .site-main {
    font-size: 0 !important;
    line-height: 0 !important;
}

.storefront-page--home .site-main > .page-home {
    font-size: 16px !important;
    line-height: 1.5 !important;
}

.home-luxury .home-hero {
    margin-top: 0 !important;
    background-color: #fff !important;
    background-position: center top !important;
}

.home-luxury .home-hero::before,
.home-luxury .home-hero::after {
    background-color: #fff !important;
}

.home-luxury .home-hero__inner {
    padding-top: 0 !important;
}

.home-luxury .home-real-gallery__item img {
    object-position: center center !important;
}

@media (max-width: 760px) {
    .site-header .header-nashville-clock,
    .header-nashville-clock {
        gap: 0.35rem;
        margin-top: 0.18rem;
        font-size: 0.48rem;
        letter-spacing: 0.1em;
    }

    .site-header .header-nashville-clock time,
    .header-nashville-clock time {
        min-width: 3.2em;
        font-size: 0.56rem;
        letter-spacing: 0.12em;
    }
}
