.distributors-page {
    width: 100%;
    padding: calc(var(--header-offset) + var(--header-height) + 4rem) 0.55rem 0.85rem;
    background: #ffffff;
    color: #15120f;
}

.distributors-map {
    min-height: calc(100vh - var(--header-offset) - var(--header-height) - 1.85rem);
    padding: clamp(2.6rem, 4.2vw, 4.4rem) 0.75rem 0.75rem;
    border-radius: 1rem;
    background: #f0f0ef;
}

.distributors-map__header {
    padding: 0 clamp(1.4rem, 2.4vw, 3rem);
}

.distributors-map__title {
    margin: 0;
    color: #050505;
    font-family: var(--font-family-display);
    font-size: clamp(4.4rem, 7vw, 6.75rem);
    font-weight: 400;
    line-height: 0.92;
    letter-spacing: 0;
}

.distributors-map__subtitle {
    margin: clamp(1.25rem, 2vw, 2rem) 0 clamp(2.2rem, 4vw, 3.75rem);
    color: #71736a;
    font-family: var(--font-family-base);
    font-size: clamp(1.45rem, 1.8vw, 1.9rem);
    font-weight: 600;
    line-height: 1.2;
}

.distributors-map__canvas {
    position: relative;
    width: 100%;
    height: clamp(31rem, 58vh, 43rem);
    overflow: hidden;
    border-radius: 1rem;
    background: #242424;
}

.distributors-map__canvas > div:not(.distributors-map__fallback) {
    border-radius: inherit;
}

.distributors-map__fallback {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 2rem;
    background:
        linear-gradient(rgba(24, 24, 24, 0.9), rgba(24, 24, 24, 0.9)),
        radial-gradient(circle at 46% 40%, rgba(255, 222, 127, 0.16), transparent 28%),
        #242424;
    color: rgba(255, 255, 255, 0.72);
    font-family: var(--font-family-base);
    font-size: 1rem;
    text-align: center;
}

.distributors-map__canvas.is-loaded .distributors-map__fallback {
    display: none;
}

.distributors-map__status {
    margin: 1rem clamp(1.4rem, 2.4vw, 3rem) 0;
    color: #5f615a;
    font-family: var(--font-family-base);
    font-size: 0.94rem;
    font-weight: 600;
    line-height: 1.4;
}

.distributors-map__status[data-state="loading"] {
    color: #8b6a2f;
}

.distributors-map__status[data-state="error"] {
    color: #9a3d34;
}

.distributors-map__status[data-state="success"] {
    color: #4f5f3c;
}

.distributors-map__status[data-state="empty"] {
    color: #71736a;
}

.distributors-map__locations {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr));
    gap: 0.85rem;
    padding: 1rem clamp(1.4rem, 2.4vw, 3rem) 0;
}

.distributors-location {
    display: grid;
    gap: 0.35rem;
    min-height: 8.5rem;
    padding: 1rem;
    border: 1px solid rgba(80, 78, 70, 0.14);
    border-radius: 0.75rem;
    background: #ffffff;
    color: #15120f;
    text-align: left;
    cursor: pointer;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.distributors-location:hover,
.distributors-location:focus-visible {
    border-color: rgba(80, 78, 70, 0.34);
    box-shadow: 0 16px 28px rgba(26, 24, 21, 0.08);
    outline: none;
    transform: translateY(-1px);
}

.distributors-location strong,
.distributors-map-info strong {
    color: #15120f;
    font-family: var(--font-family-base);
    font-size: 0.96rem;
    font-weight: 700;
    line-height: 1.2;
}

.distributors-location span,
.distributors-location small,
.distributors-location-empty,
.distributors-map-info p,
.distributors-map-info small {
    color: #71736a;
    font-family: var(--font-family-base);
    font-size: 0.86rem;
    line-height: 1.4;
}

.distributors-location small {
    color: #8a8c82;
}

.distributors-location-empty {
    margin: 0;
    padding: 1rem 0;
}

.distributors-map-info {
    display: grid;
    gap: 0.28rem;
    max-width: 17rem;
}

.distributors-map-info p {
    margin: 0;
}

.distributor-program {
    padding: clamp(5.2rem, 8vw, 8rem) 0 3.5rem;
    background: #ffffff;
}

.distributor-program__intro {
    display: grid;
    grid-template-columns: minmax(24rem, 0.92fr) minmax(0, 1.08fr);
    gap: clamp(3rem, 6vw, 7.5rem);
    align-items: start;
    padding: 0 clamp(0.85rem, 1.25vw, 1.5rem);
    margin-bottom: clamp(2.6rem, 4vw, 4.2rem);
}

.distributor-program__title {
    margin: 0;
    color: #b2b2a4;
    font-family: var(--font-family-display);
    font-size: clamp(3.5rem, 4.8vw, 5.8rem);
    font-weight: 400;
    line-height: 0.94;
    letter-spacing: 0;
}

.distributor-program__title em {
    font-style: italic;
    font-weight: 400;
}

.distributor-program__copy {
    max-width: 58rem;
    margin: 0;
    color: #b2b2a4;
    font-family: var(--font-family-base);
    font-size: clamp(1.26rem, 1.62vw, 1.72rem);
    font-weight: 500;
    line-height: 1.3;
}

.distributor-program__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(1rem, 1.35vw, 1.55rem);
}

.distributor-card {
    position: relative;
    min-height: clamp(28rem, 31vw, 39rem);
    overflow: hidden;
    border-radius: 1rem;
    background: #d1cfce;
}

.distributor-card__title {
    position: absolute;
    top: clamp(1.5rem, 2vw, 2rem);
    left: clamp(1.35rem, 2vw, 2rem);
    z-index: 2;
    margin: 0;
    color: #ffffff;
    font-family: var(--font-family-display);
    font-size: clamp(1.8rem, 2.05vw, 2.6rem);
    font-weight: 400;
    line-height: 0.95;
    letter-spacing: 0;
    text-transform: uppercase;
}

.distributor-card__image {
    position: absolute;
    right: 5%;
    bottom: 0;
    left: 5%;
    width: 90%;
    height: 88%;
    object-fit: contain;
    object-position: center bottom;
    max-width: none;
}

.distributor-card:nth-child(5) .distributor-card__image {
    height: 94%;
}

.distributor-card:nth-child(9) .distributor-card__image {
    height: 94%;
}

.distributor-program__action {
    display: flex;
    justify-content: center;
    padding-top: clamp(2.6rem, 4vw, 4.2rem);
}

.distributor-program__contact {
    color: #050505;
    font-family: var(--font-family-display);
    font-size: clamp(3rem, 4vw, 4.4rem);
    font-weight: 400;
    line-height: 1;
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: 0.26em;
}

.page-loaded .distributors-map__header,
.page-loaded .distributors-map__canvas,
.page-loaded .distributor-program__intro,
.page-loaded .distributor-card,
.page-loaded .distributor-program__action {
    animation: distributors-rise 0.62s ease-out both;
}

.page-loaded .distributors-map__canvas {
    animation-delay: 0.08s;
}

.page-loaded .distributor-card:nth-child(1) {
    animation-delay: 0.04s;
}

.page-loaded .distributor-card:nth-child(2) {
    animation-delay: 0.08s;
}

.page-loaded .distributor-card:nth-child(3) {
    animation-delay: 0.12s;
}

.page-loaded .distributor-card:nth-child(4) {
    animation-delay: 0.16s;
}

.page-loaded .distributor-card:nth-child(5) {
    animation-delay: 0.2s;
}

.page-loaded .distributor-card:nth-child(6) {
    animation-delay: 0.24s;
}

@keyframes distributors-rise {
    from {
        opacity: 0;
        transform: translateY(18px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (min-width: 1081px) and (max-width: 1500px), (min-width: 1081px) and (max-height: 940px) {
    .distributors-page {
        padding-top: calc(var(--header-offset) + var(--header-height) + 3.8rem);
    }

    .distributors-map {
        min-height: calc(100vh - var(--header-offset) - var(--header-height) - 1.65rem);
        padding-top: 3rem;
    }

    .distributors-map__title {
        font-size: clamp(4.25rem, 5.9vw, 5.8rem);
    }

    .distributors-map__subtitle {
        margin-bottom: 2.6rem;
        font-size: clamp(1.28rem, 1.55vw, 1.55rem);
    }

    .distributors-map__canvas {
        height: clamp(28rem, 55vh, 38rem);
    }

    .distributor-program {
        padding-top: 6rem;
    }

    .distributor-program__intro {
        grid-template-columns: minmax(20rem, 0.85fr) minmax(0, 1.15fr);
        gap: 4.5rem;
    }

    .distributor-program__title {
        font-size: clamp(3.2rem, 4.25vw, 4.65rem);
    }

    .distributor-program__copy {
        max-width: 48rem;
        font-size: clamp(1.1rem, 1.35vw, 1.35rem);
        line-height: 1.34;
    }

    .distributor-card {
        min-height: clamp(24rem, 30vw, 32rem);
    }

    .distributor-card__title {
        font-size: clamp(1.45rem, 1.8vw, 1.9rem);
    }

    .distributor-program__contact {
        font-size: clamp(2.6rem, 3.5vw, 3.8rem);
    }
}

@media (max-width: 1080px) {
    .distributors-page {
        padding: 1.25rem 0.75rem 0.75rem;
    }

    .distributors-map {
        min-height: auto;
        padding-top: 3.2rem;
    }

    .distributors-map__title {
        font-size: clamp(3.6rem, 9vw, 5.25rem);
    }

    .distributors-map__subtitle {
        font-size: 1.28rem;
    }

    .distributors-map__canvas {
        height: 32rem;
    }

    .distributors-map__status {
        margin-inline: 1.4rem;
    }

    .distributors-map__locations {
        padding-inline: 1.4rem;
    }

    .distributor-program {
        padding-top: 5rem;
    }

    .distributor-program__intro {
        grid-template-columns: 1fr;
        gap: 1.6rem;
        margin-bottom: 2.4rem;
    }

    .distributor-program__title {
        font-size: clamp(3.25rem, 8vw, 4.8rem);
    }

    .distributor-program__copy {
        max-width: 46rem;
        font-size: 1.18rem;
        line-height: 1.36;
    }

    .distributor-program__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .distributor-card {
        min-height: 30rem;
    }

    .distributor-card__title {
        font-size: 1.55rem;
    }
}

@media (max-width: 720px) {
    .distributors-map {
        padding: 2.4rem 0.55rem 0.55rem;
        border-radius: 0.9rem;
    }

    .distributors-map__header {
        padding: 0 0.65rem;
    }

    .distributors-map__title {
        font-size: clamp(3.2rem, 15vw, 4.35rem);
    }

    .distributors-map__subtitle {
        margin-top: 1rem;
        margin-bottom: 1.9rem;
        font-size: 1.08rem;
    }

    .distributors-map__canvas {
        height: 26rem;
        border-radius: 0.8rem;
    }

    .distributor-program {
        padding-top: 4rem;
        padding-bottom: 2.75rem;
    }

    .distributor-program__intro {
        padding: 0 0.65rem;
    }

    .distributor-program__title {
        font-size: clamp(2.9rem, 12vw, 4rem);
    }

    .distributor-program__copy {
        font-size: 1.04rem;
    }

    .distributor-program__grid {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .distributor-card {
        min-height: 31rem;
        border-radius: 0.85rem;
    }

    .distributor-card__title {
        top: 1.4rem;
        left: 1.25rem;
        font-size: 1.65rem;
    }

    .distributor-program__contact {
        font-size: clamp(2.5rem, 11vw, 3.5rem);
    }
}

@media (max-width: 520px) {
    .distributors-page {
        padding: 0.9rem 0.55rem 0.55rem;
    }

    .distributors-map {
        padding-top: 2rem;
    }

    .distributors-map__title {
        font-size: clamp(3rem, 14vw, 3.75rem);
    }

    .distributors-map__subtitle {
        max-width: 22rem;
        font-size: 1rem;
    }

    .distributors-map__canvas {
        height: 22rem;
    }

    .distributor-program {
        padding-top: 3.3rem;
    }

    .distributor-program__title {
        font-size: clamp(2.55rem, 12vw, 3.4rem);
    }

    .distributor-card {
        min-height: 26rem;
    }

    .distributor-card__title {
        font-size: 1.4rem;
    }

    .distributor-card__image {
        height: 86%;
    }
}
