/* Homepage content sizing and slider controls. */
.categories-section .section-heading,
.featured-section .featured-heading,
.services-section .section-heading,
.testimonials-section .section-heading,
.home-about-content,
.quote-card-inner > * {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
    overflow-wrap: anywhere;
}
.categories-section .section-heading h2,
.services-section .section-heading h2,
.testimonials-section .section-heading h2 {
    line-height: 1.2 !important;
    height: auto;
}
.categories-section .home-rich-description,
.services-section .section-heading p,
.testimonials-section .section-heading p {
    white-space: normal;
    overflow-wrap: anywhere;
}
.services-section .section-heading p {
    color: #c9c1b6 !important;
}
.category-showcase-section .featured-header {
    flex-wrap: wrap;
    align-items: center;
}
.category-showcase-section .featured-heading {
    flex: 1 1 360px;
}
.category-showcase-section .featured-arrows,
.services-section .services-arrows,
.testimonials-section .testimonials-arrows {
    display: flex !important;
    gap: 10px;
    flex-shrink: 0;
    align-items: center;
}
.category-showcase-section .featured-arrows {
    margin-left: auto;
}
.category-showcase-section .featured-arrow-btn,
.services-section .services-slider-btn,
.testimonials-section .testimonials-slider-btn {
    width: 44px !important;
    height: 44px !important;
    min-width: 44px;
    opacity: 1;
}
.category-showcase-section .showcase-floating-arrow:disabled,
.category-showcase-section .showcase-floating-arrow.disabled {
    opacity: .4 !important;
    cursor: default;
}
.category-showcase-section .featured-arrow-btn:disabled,
.services-section .services-slider-btn:disabled,
.testimonials-section .testimonials-slider-btn:disabled {
    opacity: .45 !important;
}
.services-section .service-card h3,
.services-section .service-card h3 a,
.testimonials-section .testimonial-quote-body,
.testimonials-section .testimonial-info {
    min-width: 0;
    white-space: normal;
    overflow-wrap: anywhere;
}
.services-section .services-slider,
.testimonials-section .testimonials-slider,
.category-showcase-section .showcase-slider-track {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
}
.services-slider:focus-visible,
.testimonials-slider:focus-visible {
    outline: 2px solid #9a794b;
    outline-offset: -2px;
}
@media (max-width: 991px) {
    .category-showcase-section .featured-decoration {
        display: none;
    }
    .category-showcase-section .featured-header {
        display: flex;
        gap: 16px;
    }
    .category-showcase-section .featured-arrows {
        flex-basis: 100%;
        justify-content: flex-end;
    }
    .services-section .services-header,
    .testimonials-section .testimonials-header {
        padding-inline: 0 !important;
        min-width: 0;
        flex-wrap: wrap;
    }
}
@media (max-width: 768px) {
    .home-hero .home-hero-arrow {
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        top: auto !important;
        bottom: 14px !important;
        left: auto !important;
        width: 44px !important;
        height: 44px !important;
        padding: 0;
        border-radius: 50%;
        border: 1px solid #ffffff70;
        background: #201a14b3;
        color: #fff;
        opacity: 1 !important;
        transform: none !important;
        z-index: 12;
    }
    .home-hero .home-hero-arrow-prev {
        right: 68px !important;
    }
    .home-hero .home-hero-arrow-next {
        right: 16px !important;
    }
    .home-hero .home-hero-dots {
        right: 128px !important;
        max-width: calc(100% - 148px);
        flex-wrap: wrap;
        gap: 10px !important;
    }
}
@media (max-width: 575px) {
    .category-showcase-section .showcase-slider-track > .ui-product-card,
    .services-section .services-slider > .service-card,
    .testimonials-section .testimonials-slider > .testimonial-card {
        flex: 0 0 100% !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        box-sizing: border-box;
    }
    .services-section .services-slider,
    .testimonials-section .testimonials-slider,
    .category-showcase-section .showcase-slider-track {
        gap: 16px;
        scroll-snap-type: x mandatory;
    }
    .services-section .service-card,
    .testimonials-section .testimonial-card {
        scroll-snap-align: start;
    }
    .services-section .services-header,
    .testimonials-section .testimonials-header {
        gap: 18px;
    }
}

/* Compact collection heading: navigation sits beside the title. */
@media (max-width: 767px) {
    .category-showcase-section .category-showcase-banner {
        margin-bottom: 20px !important;
    }
    .category-showcase-section .category-showcase-banner img {
        border-radius: 12px !important;
    }
    .category-showcase-section .featured-header {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto !important;
        align-items: center !important;
        gap: 10px 16px !important;
        margin-top: 0 !important;
        margin-bottom: 24px !important;
        padding-bottom: 20px !important;
        border-bottom: 1px solid #eee9e0 !important;
    }
    .category-showcase-section .featured-heading {
        display: contents !important;
    }
    .category-showcase-section .featured-eyebrow {
        grid-column: 1 / -1 !important;
        grid-row: 1 !important;
        margin: 0 !important;
        font-size: 10px !important;
        line-height: 1.5 !important;
        letter-spacing: 2.2px !important;
        color: #957441 !important;
    }
    .category-showcase-section .featured-heading h2 {
        grid-column: 1 !important;
        grid-row: 2 !important;
        min-width: 0 !important;
        margin: 0 !important;
        font-size: clamp(30px, 8vw, 38px) !important;
        line-height: 1.15 !important;
        letter-spacing: -.025em !important;
    }
    .category-showcase-section .featured-heading p {
        grid-column: 1 / -1 !important;
        grid-row: 3 !important;
        margin: 0 !important;
        font-size: 14px !important;
        line-height: 1.7 !important;
        color: #70716b !important;
    }
    .category-showcase-section .featured-arrows {
        grid-column: 2 !important;
        grid-row: 2 !important;
        margin: 0 !important;
        gap: 8px !important;
    }
    .category-showcase-section .featured-arrow-btn {
        border-radius: 12px !important;
        border: 1px solid #dfddd4 !important;
        background: #f8f7f3 !important;
        color: #353b32 !important;
        box-shadow: none !important;
    }
    .category-showcase-section .featured-arrow-btn:hover:not(:disabled) {
        background: #353b32 !important;
        border-color: #353b32 !important;
        color: #fff !important;
        transform: none !important;
        box-shadow: none !important;
    }
}

/* The active upload provides the hero's intrinsic height on every screen. */
.home-hero.home-hero--image-sized {
    padding: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    aspect-ratio: auto !important;
    touch-action: pan-y;
    user-select: none;
    -webkit-user-select: none;
}
.home-hero--image-sized .home-hero-slide {
    display: block !important;
    padding: 0 !important;
    margin: 0 !important;
    position: absolute !important;
    inset: 0 auto auto 0 !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    aspect-ratio: auto !important;
    background-image: none !important;
    background-size: contain !important;
    touch-action: pan-y;
    transition: opacity 0.45s ease-in-out;
}
.home-hero--image-sized .home-hero-slide.active {
    position: relative !important;
}
.home-hero--image-sized .home-hero-image {
    display: block;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    object-fit: contain !important;
    object-position: center;
    -webkit-user-drag: none;
    user-drag: none;
    pointer-events: none;
}

.home-hero--image-sized .home-hero-content {
    position: absolute !important;
    top: 50% !important;
    bottom: auto !important;
    transform: translateY(-50%) !important;
}
