.rg-store-locator {
        --rg-red: #ff1018;
        --rg-green: #45d765;
        --rg-text: #f6f7f8;
        --rg-muted: rgba(246, 247, 248, 0.7);
        --rg-line: rgba(255, 255, 255, 0.14);
        --rg-panel: linear-gradient(120deg, rgba(31, 36, 40, 0.92), rgba(11, 13, 15, 0.98));
        --rg-card: rgba(10, 12, 14, 0.76);
        background: #181818;
        color: var(--rg-text);
        padding: 74px 0 84px;
}

.rg-store-locator *,
.rg-store-locator *::before,
.rg-store-locator *::after {
        box-sizing: border-box;
}

.rg-store-locator--home {
        padding-top: 70px;
}

.rg-store-locator__inner {
        width: min(1720px, calc(100% - 96px));
        margin: 0 auto;
}

.rg-store-locator__header {
        display: grid;
        gap: 16px;
        justify-items: center;
        margin-bottom: 34px;
        text-align: center;
}

.rg-store-locator__title {
        position: relative;
        margin: 0;
        color: var(--rg-red);
        font-family: "Oswald", "Arial Narrow", Arial, sans-serif;
        font-size: clamp(34px, 3vw, 52px);
        font-weight: 700;
        line-height: 1;
        letter-spacing: 0;
        text-transform: uppercase;
}

.rg-store-locator__title::after {
        content: "";
        display: block;
        width: 82px;
        height: 4px;
        margin: 18px auto 0;
        background: var(--rg-red);
        box-shadow: 0 0 16px rgba(255, 16, 24, 0.35);
}

.rg-store-locator__lead {
        max-width: 820px;
        margin: 0;
        color: var(--rg-muted);
        font-size: 20px;
        line-height: 1.45;
}

.rg-store-locator__layout {
        display: grid;
        grid-template-columns: minmax(320px, 430px) minmax(0, 1fr);
        gap: 28px;
        align-items: stretch;
}

.rg-store-locator--home .rg-store-locator__layout {
        grid-template-columns: minmax(300px, 0.58fr) minmax(760px, 1.42fr);
        gap: 32px;
}

.rg-store-locator__copy,
.rg-store-locator__map {
        border: 1px solid var(--rg-line);
        background: var(--rg-panel);
        box-shadow: 0 24px 46px rgba(0, 0, 0, 0.34);
}

.rg-store-locator__copy {
        display: flex;
        flex-direction: column;
        justify-content: center;
        min-height: 560px;
        padding: 44px;
}

.rg-store-locator__eyebrow {
        color: var(--rg-red);
        font-size: 13px;
        font-weight: 700;
        letter-spacing: 0;
        text-transform: uppercase;
}

.rg-store-locator__copy h2 {
        margin: 14px 0 18px;
        color: var(--rg-text);
        font-family: "Oswald", "Arial Narrow", Arial, sans-serif;
        font-size: clamp(31px, 2.4vw, 46px);
        font-weight: 700;
        line-height: 1.08;
        letter-spacing: 0;
        text-transform: uppercase;
}

.rg-store-locator__copy p {
        margin: 0 0 30px;
        color: var(--rg-muted);
        font-size: 18px;
        line-height: 1.55;
}

.rg-store-locator__anchor {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 54px;
        padding: 0 22px;
        border: 1px solid rgba(255, 16, 24, 0.75);
        background: linear-gradient(135deg, rgba(255, 16, 24, 0.26), rgba(78, 0, 0, 0.18));
        color: var(--rg-text);
        font-size: 17px;
        font-weight: 700;
        text-decoration: none;
        text-transform: uppercase;
        transition: background 180ms ease, border-color 180ms ease, transform 180ms ease;
}

.rg-store-locator__anchor:hover,
.rg-store-locator__anchor:focus {
        border-color: var(--rg-red);
        background: linear-gradient(135deg, rgba(255, 16, 24, 0.52), rgba(100, 0, 0, 0.28));
        color: #fff;
        transform: translateY(-1px);
}

.rg-store-locator__anchor:visited {
        color: var(--rg-text);
}

.rg-store-locator__map {
        min-width: 0;
        padding: 28px;
}

.rg-store-locator--home .rg-store-locator__map {
        padding: 22px;
}

.rg-store-locator__preview {
        display: grid;
        grid-template-rows: 1fr auto;
        min-height: 560px;
        overflow: hidden;
        border: 1px solid var(--rg-line);
        background: #0b0d0f;
}

.rg-store-locator__preview-map {
        position: relative;
        min-height: 460px;
        background:
                radial-gradient(circle at 57% 48%, rgba(255, 16, 24, 0.16), transparent 9%),
                radial-gradient(circle at 70% 68%, rgba(255, 255, 255, 0.09), transparent 16%),
                linear-gradient(0deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px),
                linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px),
                linear-gradient(120deg, rgba(31, 36, 40, 0.7), rgba(8, 10, 12, 0.98));
        background-size: auto, auto, 72px 72px, 72px 72px, auto;
}

.rg-store-locator--home .rg-store-locator__preview {
        min-height: 640px;
}

.rg-store-locator--home .rg-store-locator__preview-map {
        min-height: 552px;
        background-size: auto, auto, 64px 64px, 64px 64px, auto;
}

.rg-store-locator__preview-map::before,
.rg-store-locator__preview-map::after {
        content: "";
        position: absolute;
        inset: 14% 7%;
        border: 1px solid rgba(255, 255, 255, 0.08);
        transform: skew(-12deg);
}

.rg-store-locator__preview-map::after {
        inset: 28% 18%;
        border-color: rgba(255, 16, 24, 0.16);
        transform: skew(14deg);
}

.rg-store-locator--home .rg-store-locator__preview-map::before {
        inset: 7% 4%;
}

.rg-store-locator--home .rg-store-locator__preview-map::after {
        inset: 23% 13%;
}

.rg-store-locator__preview-region {
        position: absolute;
        z-index: 1;
        color: rgba(255, 255, 255, 0.34);
        font-size: 13px;
        font-weight: 700;
        text-transform: uppercase;
}

.rg-store-locator__preview-region--dach {
        left: 44%;
        top: 31%;
}

.rg-store-locator__preview-region--italy {
        left: 55%;
        top: 58%;
}

.rg-store-locator__preview-route {
        position: absolute;
        z-index: 1;
        height: 1px;
        background: linear-gradient(90deg, transparent, rgba(255, 16, 24, 0.28), transparent);
        transform-origin: left center;
}

.rg-store-locator__preview-route--one {
        left: 22%;
        top: 62%;
        width: 52%;
        transform: rotate(-10deg);
}

.rg-store-locator__preview-route--two {
        left: 35%;
        top: 36%;
        width: 36%;
        transform: rotate(24deg);
}

.rg-store-locator__preview-route--three {
        left: 48%;
        top: 70%;
        width: 28%;
        transform: rotate(-31deg);
}

.rg-store-locator__preview-pin {
        position: absolute;
        z-index: 2;
        width: 18px;
        height: 18px;
        border: 4px solid var(--rg-red);
        border-radius: 50%;
        background: #fff;
        box-shadow: 0 0 0 8px rgba(255, 16, 24, 0.13), 0 0 28px rgba(255, 16, 24, 0.44);
}

.rg-store-locator__preview-pin--bruneck {
        left: 54%;
        top: 48%;
}

.rg-store-locator__preview-pin--north {
        left: 34%;
        top: 30%;
}

.rg-store-locator__preview-pin--west {
        left: 19%;
        top: 62%;
}

.rg-store-locator__preview-pin--south {
        left: 76%;
        top: 69%;
}

.rg-store-locator__preview-pin--east {
        left: 68%;
        top: 39%;
}

.rg-store-locator__preview-pin--center {
        left: 46%;
        top: 55%;
}

.rg-store-locator__preview-pin--alps {
        left: 57%;
        top: 62%;
}

.rg-store-locator__preview-pin--coast {
        left: 39%;
        top: 73%;
}

.rg-store-locator__preview-footer {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 18px;
        padding: 22px;
        border-top: 1px solid var(--rg-line);
        color: var(--rg-text);
        font-size: 18px;
        font-weight: 700;
        text-transform: uppercase;
}

.rg-store-locator--home .rg-store-locator__preview-footer {
        padding: 18px 24px;
}

.rg-store-locator__preview-link {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 48px;
        padding: 0 20px;
        border: 1px solid var(--rg-red);
        background: var(--rg-red);
        color: #fff;
        font-size: 15px;
        font-weight: 700;
        text-decoration: none;
        text-transform: uppercase;
        transition: background 180ms ease, transform 180ms ease;
}

.rg-store-locator__preview-link:hover,
.rg-store-locator__preview-link:focus {
        background: #c90008;
        color: #fff;
        transform: translateY(-1px);
}

.rg-store-locator__preview-link:visited {
        color: #fff;
}

.rg-store-locator #wpsl-wrap {
        display: grid;
        grid-template-columns: 1fr;
        gap: 18px;
        margin: 0;
        color: var(--rg-text);
}

.rg-store-locator #wpsl-wrap::before {
        content: "";
        display: block;
        width: 100%;
        height: 0;
}

.rg-store-locator .wpsl-search {
        margin: 0;
        padding: 22px;
        border: 1px solid var(--rg-line);
        background: rgba(255, 255, 255, 0.045);
}

.rg-store-locator #wpsl-search-wrap form {
        display: grid !important;
        grid-template-columns: minmax(280px, 1fr) minmax(132px, 160px) minmax(120px, 150px) minmax(120px, auto);
        gap: 18px 20px;
        align-items: end;
        width: 100%;
        margin: 0;
}

.rg-store-locator .wpsl-input,
.rg-store-locator .wpsl-select-wrap,
.rg-store-locator #wpsl-radius,
.rg-store-locator #wpsl-results,
.rg-store-locator .wpsl-search-btn-wrap {
        float: none;
        width: auto;
        min-width: 0;
        margin: 0;
}

.rg-store-locator .wpsl-select-wrap {
        display: contents;
}

.rg-store-locator .wpsl-input label,
.rg-store-locator #wpsl-radius label,
.rg-store-locator #wpsl-category label,
.rg-store-locator #wpsl-results label {
        display: block;
        width: auto;
        margin: 0 0 8px;
        color: var(--rg-muted);
        font-size: 14px;
        font-weight: 700;
        line-height: 1.2;
        text-transform: uppercase;
}

.rg-store-locator #wpsl-search-input,
.rg-store-locator #wpsl-radius-dropdown,
.rg-store-locator #wpsl-results-dropdown {
        width: 100% !important;
        min-height: 50px;
        border: 1px solid rgba(255, 255, 255, 0.16);
        background: rgba(8, 10, 12, 0.94);
        color: var(--rg-text);
        font-size: 17px;
        outline: none;
}

.rg-store-locator #wpsl-search-input {
        padding: 0 16px;
}

.rg-store-locator #wpsl-radius-dropdown,
.rg-store-locator #wpsl-results-dropdown {
        min-width: 132px;
}

.rg-store-locator .wpsl-search-btn-wrap {
        min-width: 120px;
}

.rg-store-locator #wpsl-search-btn,
.rg-store-locator .wpsl-search-btn-wrap input {
        width: 100%;
}

.rg-store-locator #wpsl-search-input:focus,
.rg-store-locator #wpsl-radius-dropdown:focus,
.rg-store-locator #wpsl-results-dropdown:focus {
        border-color: rgba(255, 16, 24, 0.8);
        box-shadow: 0 0 0 3px rgba(255, 16, 24, 0.14);
}

.rg-store-locator #wpsl-search-btn,
.rg-store-locator .wpsl-search-btn-wrap input {
        min-height: 50px;
        padding: 0 26px;
        border: 1px solid var(--rg-red);
        background: var(--rg-red);
        color: #fff;
        font-size: 16px;
        font-weight: 700;
        text-transform: uppercase;
        cursor: pointer;
        transition: background 180ms ease, transform 180ms ease;
}

.rg-store-locator #wpsl-search-btn:hover,
.rg-store-locator #wpsl-search-btn:focus,
.rg-store-locator .wpsl-search-btn-wrap input:hover,
.rg-store-locator .wpsl-search-btn-wrap input:focus {
        background: #c90008;
        transform: translateY(-1px);
}

.rg-store-locator .wpsl-gmap-wrap {
        position: relative;
        overflow: hidden;
        border: 1px solid var(--rg-line);
        background: #0b0d0f;
}

.rg-store-locator #wpsl-gmap {
        width: 100% !important;
        height: 540px !important;
        min-height: 540px;
        background: radial-gradient(circle at 45% 42%, rgba(255, 16, 24, 0.16), transparent 26%), #151719;
}

.rg-store-locator #wpsl-result-list {
        width: 100%;
        margin: 0;
        color: var(--rg-text);
}

.rg-store-locator #wpsl-stores {
        width: 100%;
        height: auto !important;
        max-height: 280px;
        overflow: auto;
        background: rgba(10, 12, 14, 0.74);
}

.rg-store-locator #wpsl-stores ul {
        display: grid;
        gap: 10px;
        margin: 0;
        padding: 0;
        list-style: none;
}

.rg-store-locator #wpsl-stores li {
        margin: 0;
        padding: 16px;
        border: 1px solid rgba(255, 255, 255, 0.1);
        background: rgba(255, 255, 255, 0.035);
}

.rg-store-locator .wpsl-provided-by {
        justify-self: end;
        color: rgba(246, 247, 248, 0.42);
        font-size: 12px;
}

.rg-store-locator .wpsl-provided-by a {
        color: rgba(246, 247, 248, 0.62);
}

.rg-store-locator__notice {
        padding: 28px;
        border: 1px solid rgba(255, 16, 24, 0.4);
        background: rgba(255, 16, 24, 0.08);
        color: var(--rg-text);
        font-size: 18px;
}

@media (max-width: 1180px) {
        .rg-store-locator__inner {
                width: min(100% - 48px, 1080px);
        }

        .rg-store-locator__layout,
        .rg-store-locator--home .rg-store-locator__layout {
                grid-template-columns: 1fr;
        }

        .rg-store-locator__copy {
                min-height: 0;
        }
}

@media (max-width: 1360px) {
        .rg-store-locator #wpsl-search-wrap form {
                grid-template-columns: minmax(260px, 1fr) minmax(132px, 160px) minmax(120px, 150px);
        }

        .rg-store-locator .wpsl-search-btn-wrap {
                grid-column: 1 / -1;
                width: 170px;
        }
}

@media (max-width: 920px) {
        .rg-store-locator #wpsl-search-wrap form {
                grid-template-columns: 1fr 1fr;
        }

        .rg-store-locator .wpsl-input {
                grid-column: 1 / -1;
        }

        .rg-store-locator .wpsl-search-btn-wrap {
                width: 100%;
        }
}

@media (max-width: 780px) {
        .rg-store-locator {
                padding: 52px 0 60px;
        }

        .rg-store-locator__inner {
                width: min(100% - 28px, 680px);
        }

        .rg-store-locator__lead,
        .rg-store-locator__copy p {
                font-size: 16px;
        }

        .rg-store-locator__copy,
        .rg-store-locator__map,
        .rg-store-locator .wpsl-search {
                padding: 20px;
        }

        .rg-store-locator__preview,
        .rg-store-locator__preview-map {
                min-height: 360px;
        }

        .rg-store-locator__preview-footer {
                align-items: stretch;
                flex-direction: column;
                font-size: 16px;
        }

        .rg-store-locator #wpsl-search-wrap form {
                grid-template-columns: 1fr;
        }

        .rg-store-locator #wpsl-gmap {
                height: 420px !important;
                min-height: 420px;
        }
}
