body.adventure-map-page {
    background: #eee2ce;
    overflow-x: hidden;
}

body.adventure-map-page .site-header {
    position: relative;
    z-index: 60;
    overflow: hidden;
    border-bottom: 0 !important;
    background: var(--brand-header-bg, #E31837) !important;
    color: var(--brand-header-text, #fff);
    box-shadow: none;
    backdrop-filter: none;
}

body.adventure-map-page .site-header::after {
    display: none;
}

body.adventure-map-page .site-header__inner {
    min-height: 4.6rem;
    animation: adventure-header-rise .55s ease-out both;
}

body.adventure-map-page .site-header__logo {
    transition: transform .25s ease, filter .25s ease;
}

body.adventure-map-page .site-header__logo:hover {
    filter: drop-shadow(0 .25rem .35rem rgb(42 32 22 / .16));
    transform: translateY(-2px) rotate(-1deg);
}

body.adventure-map-page .site-navigation__center a,
body.adventure-map-page .site-navigation__end > a {
    position: relative;
    color: var(--brand-header-text, #fff) !important;
    transition: color .2s ease, background-color .2s ease, transform .2s ease;
}

body.adventure-map-page .site-navigation__center a::after {
    position: absolute;
    right: 1rem;
    bottom: .25rem;
    left: 1rem;
    height: 2px;
    border-radius: 999px;
    background: #F5C518;
    content: "";
    transform: scaleX(0);
    transform-origin: center;
    transition: transform .2s ease;
}

body.adventure-map-page .site-navigation__center a:first-child,
body.adventure-map-page .site-navigation__center a:hover,
body.adventure-map-page .site-navigation__center a:focus-visible {
    color: #fff !important;
    background: rgb(255 255 255 / .14);
    transform: translateY(-1px);
}

body.adventure-map-page .site-navigation__center a:first-child::after,
body.adventure-map-page .site-navigation__center a:hover::after,
body.adventure-map-page .site-navigation__center a:focus-visible::after {
    transform: scaleX(1);
}

body.adventure-map-page .site-navigation__end > a.brand-primary {
    color: #fff !important;
    background: #e31837 !important;
}

body.adventure-map-page .site-navigation__end > a.brand-primary:hover,
body.adventure-map-page .site-navigation__end > a.brand-primary:focus-visible {
    background: #b5122a !important;
    transform: translateY(-1px);
}

@keyframes adventure-header-rise {
    from {
        opacity: 0;
        transform: translateY(-.65rem);
    }

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

@keyframes adventure-header-line {
    from {
        transform: scaleX(0);
    }

    to {
        transform: scaleX(1);
    }
}

@keyframes adventure-hero-copy-in {
    from {
        opacity: 0;
        transform: translateY(.75rem);
    }

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

@keyframes adventure-hero-orbit {
    0%, 100% {
        opacity: .55;
        transform: translate(0, 0) scale(1);
    }

    50% {
        opacity: .9;
        transform: translate(-.8rem, .45rem) scale(1.04);
    }
}

.adventure-map-catalog {
    max-width: 1240px;
    width: 100%;
    box-sizing: border-box;
    padding-bottom: 5rem;
}

.adventure-map-catalog .ms-catalog__hero {
    width: 100vw;
    margin: 0 calc(50% - 50vw) 1rem;
    padding: 0;
    border-bottom: 1px solid #e8e1d6;
    background: #fff;
    box-shadow: 0 .8rem 2rem rgb(42 32 22 / .06);
}

.adventure-map-catalog .ms-catalog__head {
    position: relative;
    display: flex;
    align-items: center;
    max-width: 1240px;
    min-height: clamp(7.4rem, 12vw, 10rem);
    box-sizing: border-box;
    padding: clamp(1.35rem, 3vw, 2.4rem) clamp(1.25rem, 6vw, 5rem);
    overflow: hidden;
}

.adventure-map-catalog .ms-catalog__head::before {
    position: absolute;
    top: -4rem;
    right: 8%;
    width: 12rem;
    height: 12rem;
    border: 1px solid rgb(227 24 55 / .13);
    border-radius: 50%;
    content: "";
    animation: adventure-hero-orbit 8s ease-in-out infinite;
}

.adventure-map-catalog .ms-catalog__head::after {
    position: absolute;
    bottom: 0;
    left: clamp(1.25rem, 6vw, 5rem);
    width: clamp(5rem, 12vw, 10rem);
    height: 3px;
    border-radius: 999px;
    background: #e31837;
    content: "";
}

.adventure-map-catalog .ms-catalog__head > div {
    position: relative;
    z-index: 1;
    animation: adventure-hero-copy-in .65s ease-out both;
}

.adventure-map-catalog .ms-catalog__title {
    font-size: clamp(2rem, 4vw, 3.4rem);
    letter-spacing: -.055em;
}

.adventure-map-catalog .ms-catalog__lead {
    max-width: 42rem;
    font-size: clamp(.88rem, 1.2vw, 1.05rem);
}

.adventure-map-catalog .ms-catalog__eyebrow,
.adventure-map__eyebrow {
    color: #a51d2d;
}

.adventure-map {
    display: grid;
    gap: 1rem;
}

.adventure-map__frame {
    position: relative;
    overflow: hidden;
    aspect-ratio: 1024 / 682;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.adventure-map__art {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.adventure-map__route {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
}

.adventure-map__route path {
    fill: none;
    stroke: #8f2d26;
    stroke-width: .75;
    stroke-dasharray: 2 1.5;
    stroke-linecap: round;
    opacity: .72;
    vector-effect: non-scaling-stroke;
}

.adventure-map__node {
    position: absolute;
    z-index: 2;
    width: 0;
    height: 0;
    color: #3d2114;
    text-align: center;
    text-decoration: none;
}

.adventure-map__node--active {
    z-index: 4;
    cursor: pointer;
}

.adventure-map__paw {
    position: absolute;
    left: 0;
    top: 0;
    display: grid;
    place-items: center;
    width: clamp(3.2rem, 8vw, 6.4rem);
    height: clamp(3.2rem, 8vw, 6.4rem);
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background: rgb(255 248 219 / .35);
    box-shadow: 0 0 0 .4rem rgb(255 220 119 / .42), 0 .5rem .8rem rgb(64 32 14 / .35);
}

.adventure-map__paw img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    filter: drop-shadow(0 .28rem .2rem rgb(55 27 12 / .42));
    animation: adventure-map-paw-play 1.6s ease-in-out infinite;
    transform-origin: 50% 50%;
}

.adventure-map__node--active:hover .adventure-map__paw,
.adventure-map__node--active:focus-visible .adventure-map__paw {
    box-shadow: 0 0 0 .65rem rgb(255 220 119 / .58), 0 .6rem 1rem rgb(64 32 14 / .38);
}

.adventure-map__label {
    position: absolute;
    left: 0;
    top: 0;
    display: grid;
    min-width: 0;
    white-space: nowrap;
    padding: .28rem .5rem .32rem;
    border: 1px solid rgb(89 45 21 / .48);
    border-radius: .55rem;
    background: rgb(255 245 207 / .92);
    box-shadow: 0 .2rem .35rem rgb(66 33 12 / .16);
    font-size: clamp(.56rem, 1vw, .82rem);
    line-height: 1.05;
}

.adventure-map__label small {
    font-size: .72em;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.adventure-map__label strong {
    font-size: 1.05em;
}

.adventure-map__node--locked {
    z-index: 1;
    opacity: .72;
}

.adventure-map__node[data-place="s"] .adventure-map__label {
    transform: translate(-50%, .85rem);
}

.adventure-map__node--active[data-place="s"] .adventure-map__label {
    transform: translate(-50%, 2.2rem);
}

.adventure-map__node[data-place="n"] .adventure-map__label {
    transform: translate(-50%, calc(-100% - .55rem));
}

.adventure-map__node[data-place="e"] .adventure-map__label {
    transform: translate(.7rem, -50%);
}

.adventure-map__node[data-place="w"] .adventure-map__label {
    transform: translate(calc(-100% - .7rem), -50%);
}

.adventure-map__legend {
    display: none;
    gap: .4rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.adventure-map__legend li {
    border: 1px solid #d1b17d;
    border-radius: .75rem;
    background: #fff8e8;
}

.adventure-map__legend a,
.adventure-map__legend span {
    display: block;
    padding: .65rem .85rem;
    color: #382419;
    font-weight: 800;
    text-decoration: none;
}

.adventure-map__legend .is-open a {
    background: #d7192d;
    color: #fff;
    border-radius: inherit;
}

.adventure-map__locked-dot {
    position: absolute;
    left: 0;
    top: 0;
    width: clamp(.85rem, 2vw, 1.35rem);
    height: clamp(.85rem, 2vw, 1.35rem);
    transform: translate(-50%, -50%);
    border: .2rem solid #6b3d23;
    border-radius: 50%;
    background: #d3a669;
    box-shadow: 0 0 0 .28rem rgb(255 240 192 / .42);
}

.adventure-map__panel {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    padding: 1.25rem 1.5rem;
    border: 1px solid #d1b17d;
    border-radius: 1rem;
    background: #fff8e8;
    color: #382419;
}

.adventure-map__panel > div {
    min-width: 0;
}

.adventure-map__eyebrow {
    margin: 0 0 .25rem;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.adventure-map__panel h2 {
    margin: 0;
    font-size: clamp(1.35rem, 2.8vw, 2rem);
    line-height: 1.1;
}

.adventure-map__panel p:not(.adventure-map__eyebrow) {
    margin: .35rem 0 0;
    font-weight: 750;
}

.adventure-map__hint {
    display: block;
    margin-top: .45rem;
    color: #755c49;
    font-size: .86rem;
}

.adventure-map__cta {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: .75rem;
    padding: .8rem 1.1rem;
    border-radius: 999px;
    background: #d7192d;
    color: #fff;
    font-weight: 850;
    text-decoration: none;
}

.adventure-map__cta:hover,
.adventure-map__cta:focus-visible {
    background: #a91425;
}

@keyframes adventure-map-paw-play {
    0%, 100% { transform: scale(1) rotate(-4deg); }
    25% { transform: scale(1.08) rotate(3deg); }
    50% { transform: scale(1.02) rotate(-2deg); }
    75% { transform: scale(1.07) rotate(4deg); }
}

@media (max-width: 680px) {
    .adventure-map-catalog .ms-catalog__head::before {
        display: none;
    }

    .adventure-map__frame {
        border: 0;
        border-radius: 0;
    }

    .adventure-map__label {
        display: none;
    }

    .adventure-map__paw {
        width: 2.7rem;
        height: 2.7rem;
    }

    .adventure-map__legend {
        display: grid;
    }

    .adventure-map__panel {
        align-items: stretch;
        flex-direction: column;
        gap: 1rem;
        padding: 1rem;
    }

    .adventure-map__cta {
        justify-content: center;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.adventure-map-page .site-header__inner,
    body.adventure-map-page .site-header::after {
        animation: none;
    }

    .adventure-map-catalog .ms-catalog__head::before,
    .adventure-map-catalog .ms-catalog__head > div {
        animation: none;
    }

    .adventure-map__paw img {
        animation: none;
    }
}
