/*
 * Rabbit Family — Where to Buy
 *
 * Interactive world map and retailer/contact panel. The component is rendered
 * by the [rabbit_where_to_buy] shortcode and appended automatically to the
 * page whose slug is "where-to-buy".
 */
.rabbit-wtb {
    --rabbit-wtb-wine: #8c2637;
    --rabbit-wtb-wine-dark: #5c1725;
    --rabbit-wtb-olive: #6f7d35;
    --rabbit-wtb-ink: #292522;
    --rabbit-wtb-muted: #77736f;
    --rabbit-wtb-paper: #f6f5f3;
    --rabbit-wtb-white: #ffffff;
    --rabbit-wtb-line: #d9d6d2;
    --rabbit-wtb-map: #e7e3df;
    --rabbit-wtb-australia: #39747c;
    --rabbit-wtb-chile: #a27835;
    --rabbit-wtb-russia: #87934e;
    box-sizing: border-box;
    color: var(--rabbit-wtb-ink);
    margin: 0 auto;
    max-width: 1440px;
    padding: clamp(64px, 8vw, 118px) clamp(20px, 5vw, 72px);
}

.rabbit-wtb *,
.rabbit-wtb *::before,
.rabbit-wtb *::after {
    box-sizing: inherit;
}

.rabbit-wtb__heading {
    align-items: end;
    display: flex;
    gap: 48px;
    justify-content: space-between;
    margin-bottom: clamp(32px, 5vw, 58px);
}

.rabbit-wtb__heading-copy {
    max-width: 760px;
}

.rabbit-wtb__eyebrow,
.rabbit-wtb__panel-eyebrow {
    color: var(--rabbit-wtb-wine);
    font-family: "Jost", Arial, sans-serif;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.16em;
    line-height: 1.4;
    margin: 0 0 12px;
    text-transform: uppercase;
}

.rabbit-wtb h2,
.rabbit-wtb h3 {
    color: var(--rabbit-wtb-ink);
    font-family: "Cormorant Garamond", Georgia, serif;
    font-weight: 500;
    margin: 0;
    padding: 0;
}

.rabbit-wtb h2 {
    font-size: clamp(42px, 5.8vw, 78px);
    line-height: 0.98;
}

.rabbit-wtb h3 {
    font-size: clamp(32px, 3.5vw, 48px);
    line-height: 1;
}

.rabbit-wtb__heading-copy > p:last-child,
.rabbit-wtb__description {
    color: var(--rabbit-wtb-muted);
    font-family: "Jost", Arial, sans-serif;
    font-size: 17px;
    line-height: 1.7;
}

.rabbit-wtb__heading-copy > p:last-child {
    margin: 20px 0 0;
    max-width: 680px;
}

.rabbit-wtb__select-label {
    color: var(--rabbit-wtb-muted);
    display: grid;
    flex: 0 1 360px;
    font-family: "Jost", Arial, sans-serif;
    font-size: 13px;
    gap: 8px;
    min-width: 300px;
}

.rabbit-wtb__select {
    appearance: auto;
    background-color: var(--rabbit-wtb-white);
    border: 1px solid var(--rabbit-wtb-line);
    border-radius: 4px;
    color: var(--rabbit-wtb-ink);
    font-family: "Jost", Arial, sans-serif;
    font-size: 16px;
    min-height: 50px;
    padding: 10px 14px;
    width: 100%;
}

.rabbit-wtb__select:focus-visible,
.rabbit-wtb a:focus-visible,
.rabbit-wtb button:focus-visible {
    outline: 3px solid var(--rabbit-wtb-olive);
    outline-offset: 3px;
}

.rabbit-wtb__layout {
    align-items: start;
    display: grid;
    gap: clamp(28px, 4vw, 58px);
    grid-template-columns: minmax(0, 1.5fr) minmax(340px, 0.8fr);
}

.rabbit-wtb__map {
    background: var(--rabbit-wtb-paper);
    min-height: 390px;
    overflow: hidden;
    padding: 22px;
    position: relative;
}

.rabbit-world-map {
    display: block;
    height: auto;
    overflow: visible;
    width: 100%;
}

.rabbit-map-country {
    cursor: pointer;
    fill: var(--rabbit-wtb-map);
    stroke: var(--rabbit-wtb-white);
    stroke-width: 1;
    transition: fill 180ms ease, filter 180ms ease, stroke-width 180ms ease;
    vector-effect: non-scaling-stroke;
}

.rabbit-map-country--fsp {
    fill: var(--rabbit-wtb-olive);
}

.rabbit-map-country--russia {
    fill: var(--rabbit-wtb-russia);
    stroke-width: 1.6;
}

.rabbit-map-country--australia {
    fill: var(--rabbit-wtb-australia);
}

.rabbit-map-country--chile {
    fill: var(--rabbit-wtb-chile);
}

.rabbit-map-country--other {
    fill: var(--rabbit-wtb-map);
}

.rabbit-map-country--retailer {
    fill: var(--rabbit-wtb-wine);
}

.rabbit-map-country:hover,
.rabbit-map-country.is-selected {
    filter: brightness(1.16);
    stroke: var(--rabbit-wtb-wine-dark);
    stroke-width: 2.5;
}

.rabbit-wtb__hub {
    align-items: center;
    appearance: none;
    background: transparent;
    border: 0;
    color: var(--rabbit-wtb-ink);
    cursor: pointer;
    display: inline-flex;
    font-family: "Jost", Arial, sans-serif;
    font-size: 12px;
    font-weight: 600;
    gap: 7px;
    line-height: 1;
    padding: 8px;
    position: absolute;
    text-shadow: 0 1px 0 var(--rabbit-wtb-white);
    transform: translate(-50%, -50%);
    white-space: nowrap;
    z-index: 2;
}

.rabbit-wtb__hub--fsp {
    left: 51%;
    top: 27%;
}

.rabbit-wtb__hub--africa {
    left: 51%;
    top: 52%;
}

.rabbit-wtb__hub--australia {
    left: 78%;
    top: 45%;
}

.rabbit-wtb__hub--chile {
    left: 29%;
    top: 67%;
}

.rabbit-wtb__hub-dot,
.rabbit-wtb__key {
    border-radius: 50%;
    display: inline-block;
    flex: 0 0 auto;
}

.rabbit-wtb__hub-dot {
    background: var(--rabbit-wtb-olive);
    border: 2px solid var(--rabbit-wtb-white);
    box-shadow: 0 0 0 5px rgba(111, 125, 53, 0.22);
    height: 14px;
    transition: box-shadow 180ms ease, transform 180ms ease;
    width: 14px;
}

.rabbit-wtb__hub--australia .rabbit-wtb__hub-dot {
    background: var(--rabbit-wtb-australia);
    box-shadow: 0 0 0 5px rgba(57, 116, 124, 0.2);
}

.rabbit-wtb__hub--chile .rabbit-wtb__hub-dot {
    background: var(--rabbit-wtb-chile);
    box-shadow: 0 0 0 5px rgba(162, 120, 53, 0.2);
}

.rabbit-wtb__hub:hover .rabbit-wtb__hub-dot,
.rabbit-wtb__hub.is-selected .rabbit-wtb__hub-dot {
    box-shadow: 0 0 0 8px rgba(111, 125, 53, 0.28);
    transform: scale(1.12);
}

.rabbit-wtb__hub--australia:hover .rabbit-wtb__hub-dot,
.rabbit-wtb__hub--australia.is-selected .rabbit-wtb__hub-dot {
    box-shadow: 0 0 0 8px rgba(57, 116, 124, 0.26);
}

.rabbit-wtb__hub--chile:hover .rabbit-wtb__hub-dot,
.rabbit-wtb__hub--chile.is-selected .rabbit-wtb__hub-dot {
    box-shadow: 0 0 0 8px rgba(162, 120, 53, 0.26);
}

.rabbit-wtb__legend {
    color: var(--rabbit-wtb-muted);
    display: flex;
    flex-wrap: wrap;
    font-family: "Jost", Arial, sans-serif;
    font-size: 12px;
    gap: 10px 22px;
    margin-top: 16px;
}

.rabbit-wtb__legend > span {
    align-items: center;
    display: inline-flex;
    gap: 8px;
}

.rabbit-wtb__key {
    height: 10px;
    width: 10px;
}

.rabbit-wtb__key--retailer {
    background: var(--rabbit-wtb-wine);
}

.rabbit-wtb__key--fsp {
    background: var(--rabbit-wtb-olive);
}

.rabbit-wtb__key--australia {
    background: var(--rabbit-wtb-australia);
}

.rabbit-wtb__key--chile {
    background: var(--rabbit-wtb-chile);
}

.rabbit-wtb__panel {
    background: var(--rabbit-wtb-white);
    border: 1px solid var(--rabbit-wtb-line);
    min-height: 390px;
    padding: clamp(26px, 4vw, 42px);
}

.rabbit-wtb__panel-heading {
    align-items: start;
    display: flex;
    gap: 18px;
    justify-content: space-between;
}

.rabbit-wtb__count {
    color: var(--rabbit-wtb-muted);
    flex: 0 0 120px;
    font-family: "Jost", Arial, sans-serif;
    font-size: 12px;
    line-height: 1.45;
    margin: 4px 0 0;
    text-align: right;
}

.rabbit-wtb__description {
    border-bottom: 1px solid var(--rabbit-wtb-line);
    margin: 20px 0 0;
    padding-bottom: 24px;
}

.rabbit-wtb__retailers {
    display: grid;
    gap: 0;
    list-style: none;
    margin: 0;
    padding: 0;
}

.rabbit-wtb__retailer {
    border-bottom: 1px solid var(--rabbit-wtb-line);
    margin: 0;
    padding: 0;
}

.rabbit-wtb__retailer a {
    align-items: center;
    color: var(--rabbit-wtb-ink);
    display: grid;
    font-family: "Jost", Arial, sans-serif;
    gap: 2px 14px;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 16px 2px;
    text-decoration: none;
}

.rabbit-wtb__retailer a:hover .rabbit-wtb__retailer-name {
    color: var(--rabbit-wtb-wine);
}

.rabbit-wtb__retailer-name {
    font-size: 16px;
    font-weight: 600;
    line-height: 1.4;
}

.rabbit-wtb__retailer-wines {
    color: var(--rabbit-wtb-muted);
    font-size: 12px;
    grid-column: 1;
    line-height: 1.45;
}

.rabbit-wtb__external {
    color: var(--rabbit-wtb-wine);
    grid-column: 2;
    grid-row: 1 / span 2;
}

.rabbit-wtb__show-all,
.rabbit-wtb__contact {
    align-items: center;
    background: var(--rabbit-wtb-wine);
    border: 1px solid var(--rabbit-wtb-wine);
    border-radius: 3px;
    color: var(--rabbit-wtb-white);
    cursor: pointer;
    display: inline-flex;
    font-family: "Jost", Arial, sans-serif;
    font-size: 14px;
    font-weight: 600;
    justify-content: center;
    line-height: 1.3;
    margin-top: 24px;
    min-height: 48px;
    padding: 12px 20px;
    text-decoration: none;
    transition: background-color 180ms ease, border-color 180ms ease;
}

.rabbit-wtb__show-all:hover,
.rabbit-wtb__contact:hover {
    background: var(--rabbit-wtb-wine-dark);
    border-color: var(--rabbit-wtb-wine-dark);
    color: var(--rabbit-wtb-white);
}

.rabbit-wtb__company {
    color: var(--rabbit-wtb-ink);
    font-family: "Jost", Arial, sans-serif;
    font-size: 21px;
    font-weight: 600;
    margin: 26px 0 0;
}

.rabbit-wtb__contact-note,
.rabbit-wtb__freshness {
    color: var(--rabbit-wtb-muted);
    font-family: "Jost", Arial, sans-serif;
    font-size: 12px;
    line-height: 1.55;
}

.rabbit-wtb__contact-note {
    margin: 12px 0 0;
}

.rabbit-wtb__freshness {
    margin: 24px 0 0;
    text-align: center;
}

@media (max-width: 1100px) {
    .rabbit-wtb__layout {
        grid-template-columns: minmax(0, 1.25fr) minmax(320px, 0.85fr);
    }

    .rabbit-wtb__map {
        min-height: 340px;
        padding: 14px;
    }
}

@media (max-width: 980px) {
    .rabbit-wtb__heading {
        align-items: stretch;
        flex-direction: column;
        gap: 28px;
    }

    .rabbit-wtb__select-label {
        flex: none;
        min-width: 0;
        width: 100%;
    }

    .rabbit-wtb__layout {
        grid-template-columns: 1fr;
    }

    .rabbit-wtb__panel {
        min-height: 0;
    }
}

@media (max-width: 767px) {
    .rabbit-wtb {
        padding-bottom: 72px;
        padding-top: 72px;
    }

    .rabbit-wtb__heading {
        margin-bottom: 28px;
    }

    .rabbit-wtb__map,
    .rabbit-wtb__legend {
        display: none;
    }

    .rabbit-wtb__layout {
        display: block;
    }

    .rabbit-wtb__panel {
        padding: 26px 20px;
    }

    .rabbit-wtb__panel-heading {
        display: block;
    }

    .rabbit-wtb__count {
        margin-top: 10px;
        text-align: left;
    }
}

@media (prefers-reduced-motion: reduce) {
    .rabbit-map-country,
    .rabbit-wtb__hub-dot,
    .rabbit-wtb__show-all,
    .rabbit-wtb__contact {
        transition: none;
    }
}
