/*
Theme Name: DNL-LINK
Template: apparatus
Theme URI: https://www.pixouls.com/
Author: Pixouls
Author URI: https://www.pixouls.com/
Description: Client-specific customizations built on the Apparatus framework by Pixouls.
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: apparatus-child
Tags:
*/


/* $TOKENS
--------------------------------------------------------*/
:root {
    /* Type stack */
    --link-ff-display: "Fraunces", Georgia, serif;
    --link-ff-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
    --link-ff-mono: "JetBrains Mono", "SFMono-Regular", ui-monospace, Menlo, monospace;

    /* Section / motion timing */
    --link-ease: cubic-bezier(.2,.7,.1,1);
    --link-ease-soft: cubic-bezier(.4,0,.2,1);
    --link-dur-fast: 240ms;
    --link-dur: 480ms;
    --link-dur-slow: 880ms;

    /* Display type rhythm */
    --link-fs-display-xl: clamp(7.2rem, 14vw, 20.8rem);
    --link-fs-display-lg: clamp(4.8rem, 8vw, 11.2rem);
    --link-fs-display-md: clamp(3.6rem, 5.2vw, 7.2rem);
    --link-fs-display-sm: clamp(2.8rem, 3.6vw, 4.8rem);
    --link-fs-lead: clamp(1.6rem, 1.4vw, 2rem);

    /* Radius */
    --link-r-sm: .8rem;
    --link-r-md: 1.6rem;
    --link-r-lg: 2.4rem;
    --link-r-xl: 4rem;

    /* Hero image veil only (darker than --c-d) */
    --link-veil: #191E21;
}

/* $GLOBAL — overrides only (parent handles reset, .app, base type)
--------------------------------------------------------*/
html { font-family: var(--link-ff-body); }

body {
    background: var(--c-bg);
    font-family: var(--link-ff-body);
    font-feature-settings: "ss01", "cv11";
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

::selection { background: var(--c-pri); color: var(--c-l); text-shadow: none; }


/* $TYPE — sitewide (section title classes for homepage blocks)
--------------------------------------------------------*/
h1, h2, h3, h4, h5,
.link__hero-title,
.link__section-title,
.link__stay-title,
.link__bento-title,
.link__card-title,
.link__note-title {
    font-family: var(--link-ff-display);
    font-weight: 500;
    letter-spacing: -0.018em;
    line-height: 0.96;
    color: var(--c-fg);
    text-wrap: balance;
    font-variation-settings: "opsz" 144, "SOFT" 50, "WONK" 0;
}
.link__hero-title,
.link__section-title,
.link__stay-title,
.link__bento-title,
.link__card-title,
.link__note-title {
    margin: 0;
}
.link__section--dark .link__section-title,
.link__section--dark .link__hero-title,
.link__section--dark .link__stay-title,
.link__section--dark .link__bento-title,
.link__section--dark .link__card-title,
.link__section--dark .link__note-title { color: var(--c-l); }

.link__section-title {
    font-size: var(--link-fs-display-md);
    font-weight: 500;
    line-height: 1;
}

.link__lead {
    font-size: var(--link-fs-lead);
    line-height: 1.5;
    max-width: 56ch;
    margin: 0;
    text-wrap: pretty;
}


/* $FLEX
--------------------------------------------------------*/
.flx--hero {
}
    .flx--hero .flx__backdrop {
        background: linear-gradient(to top, 
        color-mix(in srgb, var(--link-veil) 82%, transparent) 0%, 
        color-mix(in srgb, var(--link-veil) 48%, transparent) 22%, 
        color-mix(in srgb, var(--link-veil) 18%, transparent) 48%, 
        color-mix(in srgb, var(--link-veil) 12%, transparent) 68%);
    }
    .flx--hero h1 {
        font-size: var(--link-fs-display-md);
    }
.flx-acc__title {
    cursor: pointer;
    list-style: none;
    font-family: var(--link-ff-display);
    font-weight: 500;
    letter-spacing: -0.018em;
    line-height: 0.96;
    color: var(--c-fg);
    text-wrap: balance;
    font-variation-settings: "opsz" 144, "SOFT" 50, "WONK" 0;
}
    .flx-acc__title::after {
        font-size: 4.8rem;
    }

/* $FORMS
--------------------------------------------------------*/
.flx .gform_footer {
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: start;
}
.button,
.button.button--pri,
input[type="submit"],
input[type="reset"],
input[type="button"],
button.button {
    border-radius: 999rem;
    font-family: var(--link-ff-body);
    font-size: 1.4rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    padding: .8rem 2.4rem;
}
.app .gfield_checkbox, .app .gfield_radio {
    margin: 0;
}
.app .gform_wrapper.gravity-theme .gfield_checkbox .gfield-choice-input:checked + label::after {
    background-image: url('assets/img/icon-check.svg');
}
.app .gform_wrapper.gravity-theme .gfield_radio .gfield-choice-input:checked + label::after {
    background-image: url('assets/img/icon-radio.svg');
}
/* Newsletter form */
#gform_2 .gform_footer {
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
}
#gform_2 input[type="submit"] {
    height: 5.6rem;
    padding: 0 2.4rem;
}

/* $NOTIF
--------------------------------------------------------*/
.notif:hover {
    background-color: var(--c-d);
}

/* $EYEBROW
--------------------------------------------------------*/
.link__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 1.2rem;
    font-family: var(--link-ff-mono);
    font-size: 1.2rem;
    line-height: 1;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: color-mix(in srgb, var(--c-fg) 70%, var(--c-bg));
}
.link__eyebrow--light { color: color-mix(in srgb, var(--c-fg) 88%, var(--c-bg)); }

.link__eyebrow-mark {
    display: inline-flex;
    flex-shrink: 0;
    line-height: 0;
}
.link__eyebrow-mark-svg {
    width: 3.2rem;
    height: auto;
    display: block;
    overflow: visible;
}
.link__eyebrow-mark-seg {
    stroke: var(--c-pri);
    stroke-width: 2;
    stroke-linecap: round;
}
.link__eyebrow-mark-node {
    fill: none;
    stroke: var(--c-pri);
    stroke-width: 2;
}


/* $BUTTONS
--------------------------------------------------------*/
.link__btn {
    display: inline-flex;
    align-items: center;
    gap: 1.2rem;
    height: 5.6rem;
    padding: 0 2.4rem;
    border-radius: 999rem;
    border: .2rem solid transparent;
    font-family: var(--link-ff-body);
    font-size: 1.4rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    line-height: 1;
    color: var(--c-l);
    background: var(--c-fg);
    cursor: pointer;
    text-decoration: none;
    transition: transform var(--link-dur-fast) var(--link-ease),
                background-color var(--link-dur-fast) var(--link-ease),
                color var(--link-dur-fast) var(--link-ease),
                border-color var(--link-dur-fast) var(--link-ease);
    will-change: transform;
}
.link__btn i { font-size: 1.4rem; line-height: 1; transition: transform var(--link-dur-fast) var(--link-ease); }
.link__btn svg { width: 1.6rem; height: 1.6rem; fill: currentColor; transition: transform var(--link-dur-fast) var(--link-ease); }
.link__btn:hover { transform: translateY(-.2rem); }
.link__btn:hover i.fa-arrow-right,
.link__btn:hover svg { transform: translateX(.4rem); }

.link__btn--primary {
    background: var(--c-pri);
    color: var(--c-l);
    border-color: var(--c-pri);
}
.link__btn--primary:hover { background: color-mix(in srgb, var(--c-pri) 85%, var(--c-d)); border-color: color-mix(in srgb, var(--c-pri) 85%, var(--c-d)); }

.link__btn--accent {
    background: var(--c-sec);
    color: var(--c-d);
    border-color: var(--c-sec);
}
.link__btn--accent:hover { background: color-mix(in srgb, var(--c-sec) 85%, var(--c-d)); border-color: color-mix(in srgb, var(--c-sec) 85%, var(--c-d)); color: var(--c-l); }

.link__btn--ghost {
    background: transparent;
    color: var(--c-fg);
    border-color: var(--c-25);
}
.link__btn--ghost:hover {
    background: var(--c-fg);
    color: var(--c-l);
    border-color: var(--c-fg);
}
.link__section--dark .link__btn--ghost { color: var(--c-l); border-color: color-mix(in srgb, var(--c-l) 36%, transparent); }
.link__section--dark .link__btn--ghost:hover { background: var(--c-l); color: var(--c-d); border-color: var(--c-l); }

.link__btn--link {
    background: transparent;
    color: var(--c-fg);
    height: auto;
    padding: 0;
    border: 0;
    border-radius: 0;
    border-bottom: .1rem solid currentColor;
    padding-bottom: .4rem;
    align-self: flex-start;
    gap: .8rem;
}
.link__btn--link:hover { transform: none; color: var(--c-pri); }
.link__btn--link i, .link__btn--link svg { font-size: 1.2rem; width: 1.2rem; height: 1.2rem; }

.link__btn--link-light { color: var(--c-l); }
.link__btn--link-dark {
    background: transparent;
    color: var(--c-l);
    border-color: color-mix(in srgb, var(--c-l) 32%, transparent);
}
.link__btn--link-dark:hover {
    background: var(--c-l);
    color: var(--c-d);
    border-color: var(--c-l);
}


/* $HEADER — child overrides
--------------------------------------------------------*/
.hdr {
    border-bottom: .1rem solid var(--c-10);
    background: var(--c-bg);
}
.hdr__inner { height: 10.4rem; }
.hdr__logo-img {
    display: block;
    height: 8.8rem;
    width: auto;
    transition: transform var(--link-dur-fast) var(--link-ease);
}
.hdr__logo:hover .hdr__logo-img { transform: scale(1.04); }
.hdr__search {
    color: var(--c-fg);
    font-size: 1.6rem;
    line-height: 1;
    margin-left: 0;
}
.hdr__cta.button {
    display: none;
    border-radius: 999rem;
    background: var(--c-pri);
    border-color: var(--c-pri);
    color: var(--c-l);
    font-family: var(--link-ff-body);
    font-weight: 600;
    font-size: 1.3rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    transition: background-color var(--link-dur-fast) var(--link-ease),
                border-color var(--link-dur-fast) var(--link-ease),
                transform var(--link-dur-fast) var(--link-ease);
}
.hdr__cta.button:hover,
.hdr__cta.button.is-active {
    background: var(--c-fg);
    border-color: var(--c-fg);
    transform: translateY(-.2rem);
}
.hdr__nav-toggle-icon-rect { fill: var(--c-fg); }

/* $NAV — shared (desktop dropdown + mobile drawer)
--------------------------------------------------------*/
.nav__button[aria-expanded="true"] { color: var(--c-pri); }

.nav__button-icon {
    flex-shrink: 0;
    box-sizing: border-box;
    fill: currentColor;
    opacity: .7;
    border: .1rem solid var(--c-10);
    border-radius: 50%;
    transition:
        transform var(--link-dur-fast) var(--link-ease),
        opacity var(--link-dur-fast) var(--link-ease),
        border-color var(--link-dur-fast) var(--link-ease),
        background-color var(--link-dur-fast) var(--link-ease),
        box-shadow var(--link-dur-fast) var(--link-ease);
}
.nav__button:hover:not([aria-expanded="true"]) .nav__button-icon {
    opacity: 1;
    border-color: var(--c-25);
    background: var(--c-05);
}
.nav__button:focus-visible .nav__button-icon,
.nav__button[aria-expanded="true"] .nav__button-icon {
    opacity: 1;
    border-color: color-mix(in srgb, var(--c-pri) 42%, var(--c-10));
    background: color-mix(in srgb, var(--c-pri) 8%, transparent);
    box-shadow: 0 0 0 .3rem color-mix(in srgb, var(--c-pri) 12%, transparent);
}
.nav__button[aria-expanded="true"] .nav__button-icon {
    transform: rotate(180deg);
}

.nav__sub-link {
    font-family: var(--link-ff-body);
    font-weight: 600;
    letter-spacing: 0.01em;
    line-height: 1.3;
    color: var(--c-fg);
    border-radius: var(--link-r-sm);
    transition:
        color var(--link-dur-fast) var(--link-ease),
        background-color var(--link-dur-fast) var(--link-ease);
}
.nav__sub-link:hover,
.nav__sub-link:focus-visible,
.nav__sub-link--active,
.nav__sub-link[aria-current="page"] {
    color: var(--c-pri);
    background: color-mix(in srgb, var(--c-pri) 6%, transparent);
}
.nav__sub-link--active,
.nav__sub-link[aria-current="page"] {
    background: color-mix(in srgb, var(--c-pri) 10%, transparent);
}

@media only screen and (min-width: 769px) {
    .nav__list { gap: 0.4rem; }
    .nav__link,
    .nav__button {
        color: var(--c-fg);
        font-family: var(--link-ff-display);
        font-weight: 500;
        font-size: 2rem;
        letter-spacing: -0.012em;
        line-height: 1.05;
        padding: 0 1.2rem;
        height: 10.4rem;
        text-transform: none;
        font-variation-settings: "opsz" 72, "SOFT" 50, "WONK" 0;
        transition: color var(--link-dur-fast) var(--link-ease);
    }
    .nav__button-icon {
        width: 2.4rem;
        height: 2.4rem;
        padding: .55rem;
    }
    .nav__item::after { background: var(--c-25); }
    .nav__item--active::after { background: var(--c-pri); }

    .nav__sub {
        border: .1rem solid var(--c-10);
        border-radius: var(--link-r-md);
        box-shadow: 0 .8rem 2.4rem color-mix(in srgb, var(--c-d) 8%, transparent);
    }
    .nav__sub::before { display: none; }
    .nav__sub-inner {
        min-width: 22rem;
        padding: .8rem;
    }
    .nav__sub-list {
        display: grid;
        gap: .2rem;
        margin: 0;
        padding: 0;
    }
    .nav__sub-link {
        font-size: 1.4rem;
        padding: 1rem 1.2rem;
    }
}

@media only screen and (max-width: 768px) {
    .hdr__inner { gap: 2.4rem; }
    .nav {
        display: flex;
        flex-direction: column;
        min-height: 100dvh;
        background-color: var(--c-bg);
        -webkit-backdrop-filter: none;
        backdrop-filter: none;
        overflow: hidden;
        isolation: isolate;
    }
    .nav::before {
        content: "";
        position: absolute;
        inset: 0;
        z-index: 0;
        pointer-events: none;
        background:
            radial-gradient(55% 45% at 88% 12%, color-mix(in srgb, var(--c-pri) 14%, transparent) 0%, transparent 62%),
            radial-gradient(50% 42% at 12% 78%, color-mix(in srgb, var(--c-sec) 12%, transparent) 0%, transparent 62%),
            radial-gradient(42% 38% at 50% 42%, color-mix(in srgb, var(--c-ter) 9%, transparent) 0%, transparent 68%);
    }
    .nav__drawer-head,
    .nav__list,
    .nav__drawer-foot {
        position: relative;
        z-index: 1;
    }
    .nav__drawer-head {
        flex-shrink: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        height: 10.4rem;
        padding: 0 6.4rem 0 2.4rem;
    }
    .nav__drawer-eyebrow {
        margin: 0;
        font-family: var(--link-ff-mono);
        font-size: 1.1rem;
        letter-spacing: 0.14em;
        text-transform: uppercase;
        text-align: center;
        color: color-mix(in srgb, var(--c-fg) 58%, var(--c-bg));
    }
    .nav__list {
        flex: 1;
        display: flex;
        flex-direction: column;
        justify-content: center;
        width: 100%;
        padding: 3.2rem 2.4rem;
        gap: 0;
    }
    .nav__item { border-bottom: .2rem solid var(--c-10); }
    .nav__item--active > .nav__button,
    .nav__item--active > .nav__link {
        color: var(--c-pri);
    }
    .nav__link,
    .nav__button {
        color: var(--c-fg);
        height: auto;
        min-height: 5.6rem;
        padding: 1.6rem 0;
        font-family: var(--link-ff-display);
        font-size: clamp(2.4rem, 7vw, 3.2rem);
        font-weight: 500;
        letter-spacing: -0.02em;
        line-height: 1.05;
        text-transform: none;
        font-variation-settings: "opsz" 72, "SOFT" 50, "WONK" 0;
    }
    .nav__button-icon {
        width: 3.2rem;
        height: 3.2rem;
        padding: .9rem;
    }
    .nav__sub-inner { padding: 0 0 1.6rem; }
    .nav__sub-list {
        display: grid;
        gap: .4rem;
        margin: .8rem 0 0 1.2rem;
        padding: 1.2rem 0 0 1.6rem;
        border-left: .2rem solid var(--c-10);
    }
    .nav__sub-link {
        font-size: 1.5rem;
        padding: 1rem 1.2rem;
    }
    .nav__drawer-foot {
        flex-shrink: 0;
        padding: 2.4rem 2.4rem 4rem;
        border-top: .2rem solid var(--c-10);
        background: transparent;
    }
    .nav__drawer-actions {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
        gap: 1.2rem;
        align-items: stretch;
    }
    .nav__drawer-cta {
        -webkit-appearance: none;
        appearance: none;
        box-sizing: border-box;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        margin: 0;
        min-height: 5.6rem;
        padding: 1.4rem 2.4rem;
        border-radius: 999rem;
        border: .2rem solid transparent;
        font-family: var(--link-ff-body);
        font-weight: 600;
        font-size: 1.2rem;
        letter-spacing: 0.06em;
        line-height: 1.2;
        text-transform: uppercase;
        text-decoration: none;
        text-align: center;
        cursor: pointer;
        transition:
            background-color var(--link-dur-fast) var(--link-ease),
            border-color var(--link-dur-fast) var(--link-ease),
            color var(--link-dur-fast) var(--link-ease);
    }
    .nav__drawer-cta--map {
        background: var(--c-pri);
        border-color: var(--c-pri);
        color: var(--c-l);
    }
    .nav__drawer-cta--map:hover,
    .nav__drawer-cta--map.is-active {
        background: var(--c-fg);
        border-color: var(--c-fg);
        color: var(--c-l);
    }
    .nav__drawer-cta--search {
        width: 5.6rem;
        min-width: 5.6rem;
        padding: 0;
        background: transparent;
        border-color: var(--c-10);
        color: var(--c-fg);
    }
    .nav__drawer-cta--search:hover {
        background: var(--c-05);
        border-color: var(--c-10);
    }
    .nav__drawer-cta--search i { font-size: 1.6rem; line-height: 1; }
    .nav__drawer-cta--donate {
        background: transparent;
        border-color: var(--c-pri);
        color: var(--c-pri);
    }
    .nav__drawer-cta--donate:hover {
        background: color-mix(in srgb, var(--c-pri) 8%, transparent);
    }
    .nav__drawer-social {
        list-style: none;
        margin: 2.4rem 0 0;
        padding: 0;
        display: flex;
        justify-content: center;
        gap: 1.2rem;
    }
    .nav__drawer-social a {
        width: 4.8rem;
        height: 4.8rem;
        border-radius: 50%;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        background: transparent;
        border: .2rem solid var(--c-10);
        color: var(--c-fg);
        transition:
            background-color var(--link-dur-fast) var(--link-ease),
            border-color var(--link-dur-fast) var(--link-ease),
            color var(--link-dur-fast) var(--link-ease);
    }
    .nav__drawer-social a:hover {
        background: var(--c-05);
        border-color: var(--c-10);
        color: var(--c-fg);
    }
    .nav__drawer-social a:focus-visible {
        background: var(--c-05);
        border-color: var(--c-10);
        color: var(--c-fg);
    }
    .nav__drawer-social i { font-size: 1.6rem; line-height: 1; }
}

@media only screen and (min-width: 769px) {
    .nav__drawer-head,
    .nav__drawer-foot { display: none; }
}


/* $PAGE-WRAP
--------------------------------------------------------*/
.link {
    position: relative;
    display: block;
    background: var(--c-bg);
    color: var(--c-fg);
    overflow: clip;
}
.link section { position: relative; }
.link .w-md { width: var(--w-md); margin-inline: auto; }
.link .w-lg { width: var(--w-lg); margin-inline: auto; }


/* $SECTION-MODES
--------------------------------------------------------*/
.link__section--dark {
    color-scheme: dark;
    background: var(--c-d);
}
.link__section--dark .link__btn--accent {
    background: var(--c-pri);
    color: var(--c-l);
    border-color: var(--c-pri);
}
.link__section--dark .link__btn--accent:hover {
    background: color-mix(in srgb, var(--c-pri) 85%, var(--c-d));
    border-color: color-mix(in srgb, var(--c-pri) 85%, var(--c-d));
    color: var(--c-l);
}


/* $HERO
--------------------------------------------------------*/
.link__hero {
    position: relative;
    min-height: clamp(72rem, 100vh, 96rem);
    color: var(--c-l);
    color-scheme: dark;
    overflow: hidden;
    isolation: isolate;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 2.4rem;
    padding: 4rem 0;
}
    .link__hero-media {
        position: absolute;
        inset: 0;
        z-index: 0;
    }
        .link__hero-img {
            position: absolute;
            inset: 0;
            display: block;
        }
            .link__hero-img img {
                width: 100%;
                height: 100%;
                object-fit: cover;
                transform: scale(1.06);
                animation: link-hero-pan 18s ease-in-out infinite alternate;
            }
        .link__hero:has(.link__hero-img) .link__hero-veil {
            background:
                linear-gradient(
                    to right,
                    color-mix(in srgb, var(--link-veil) 78%, transparent) 0%,
                    color-mix(in srgb, var(--link-veil) 42%, transparent) 38%,
                    color-mix(in srgb, var(--link-veil) 12%, transparent) 68%
                ),
                linear-gradient(
                    to bottom,
                    color-mix(in srgb, var(--link-veil) 12%, transparent) 0%,
                    color-mix(in srgb, var(--link-veil) 12%, transparent) 72%,
                    color-mix(in srgb, var(--link-veil) 28%, transparent) 100%
                );
        }
        .link__hero-img { z-index: 0; }

/* Hero veil + grid — home + single trail (shared .link__hero-media) */
.link__hero-media .link__hero-veil {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
}
.link__hero-media .link__hero-grid {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    background-image:
        linear-gradient(to right, color-mix(in srgb, var(--c-l) 16%, transparent) .1rem, transparent .1rem),
        linear-gradient(to bottom, color-mix(in srgb, var(--c-l) 16%, transparent) .1rem, transparent .1rem);
    background-size: clamp(6rem, 6vw, 10rem) clamp(6rem, 6vw, 10rem);
    mask-image: radial-gradient(88% 72% at 50% 52%, black 18%, transparent 78%);
}

@keyframes link-hero-pan {
    0%   { transform: scale(1.06) translate3d(-1%, -.5%, 0); }
    100% { transform: scale(1.10) translate3d(1.5%, 1%, 0); }
}

    .link__hero-meta {
        position: relative;
        z-index: 3;
        width: var(--w-lg);
        margin: 0;
        padding: 0;
    }
    .link__hero-meta .link__hero-foot {
        width: 100%;
        opacity: 0;
        animation: link-fade .9s var(--link-ease) forwards .5s;
    }

    .link__hero-inner {
        position: relative;
        z-index: 3;
        width: var(--w-lg);
        margin: 0;
        padding: 0;
        display: grid;
        grid-template-columns: 1fr;
        gap: 4rem;
    }
        .link__hero-title {
            font-family: var(--link-ff-display);
            font-size: var(--link-fs-display-xl);
            font-weight: 400;
            line-height: 0.88;
            letter-spacing: -0.04em;
            color: var(--c-l);
            font-variation-settings: "opsz" 144, "SOFT" 70, "WONK" 1;
            margin: 0;
        }
            .link__hero-line {
                display: block;
                overflow: hidden;
            }
                .link__hero-line > * {
                    display: inline-block;
                    transform: translateY(110%);
                    animation: link-line-rise 1.2s var(--link-ease) forwards;
                }
                .link__hero-line:nth-child(1) > * { animation-delay: .1s; }
                .link__hero-line:nth-child(2) > * { animation-delay: .3s; }
            .link__hero-line em {
                font-family: var(--link-ff-display);
                font-style: italic;
                font-weight: 300;
                color: var(--c-pri);
                font-variation-settings: "opsz" 144, "SOFT" 100, "WONK" 1;
            }
@keyframes link-line-rise {
    0%   { transform: translateY(110%); }
    100% { transform: translateY(0%); }
}

        .link__hero-side {
            display: grid;
            gap: 2.4rem;
            max-width: 56rem;
        }
            .link__hero-lead {
                font-size: clamp(1.6rem, 1.4vw, 2rem);
                line-height: 1.5;
                color: color-mix(in srgb, var(--c-l) 84%, transparent);
                margin: 0;
                opacity: 0;
                animation: link-fade .9s var(--link-ease) forwards .8s;
            }
            .link__hero-ctas {
                display: flex;
                flex-wrap: wrap;
                gap: 1.6rem;
                opacity: 0;
                animation: link-fade .9s var(--link-ease) forwards 1s;
            }
            .link__hero-ctas .link__btn--ghost {
                color: var(--c-l);
                border-color: color-mix(in srgb, var(--c-l) 40%, transparent);
            }
            .link__hero-ctas .link__btn--ghost:hover { background: var(--c-l); color: var(--c-d); border-color: var(--c-l); }

@keyframes link-fade {
    0%   { opacity: 0; transform: translateY(1.2rem); }
    100% { opacity: 1; transform: translateY(0); }
}

    .link__hero-foot {
        position: relative;
        z-index: 3;
        width: var(--w-md);
        margin: 0;
        padding: 0;
        display: grid;
        grid-template-columns: auto auto auto;
        align-items: center;
        justify-content: start;
        gap: 1.6rem;
        font-family: var(--link-ff-mono);
        font-size: 1.2rem;
        letter-spacing: 0.16em;
        text-transform: uppercase;
        color: color-mix(in srgb, var(--c-l) 78%, transparent);
    }
        .link__hero-foot .link__eyebrow-mark-svg { width: 3.6rem; }
        .link__hero-foot-num {
            font-family: var(--link-ff-display);
            font-size: 4rem;
            line-height: 1;
            color: var(--c-l);
            letter-spacing: -0.02em;
            font-feature-settings: "tnum" 1;
        }
        .link__hero-foot-num::after { content: "+"; color: var(--c-pri); }


/* $MARQUEE
--------------------------------------------------------*/
.link__marquee {
    position: relative;
    background: var(--c-d);
    color-scheme: dark;
    color: var(--c-l);
    border-block: .1rem solid color-mix(in srgb, var(--c-l) 12%, transparent);
    padding: 3.2rem 0;
    overflow: hidden;
}
    .link__marquee-track {
        position: relative;
        z-index: 1;
        display: flex;
        gap: 0;
        animation: link-marquee 40s linear infinite;
        will-change: transform;
        pointer-events: none;
    }
        .link__marquee-row {
            display: flex;
            align-items: center;
            gap: 4rem;
            padding-right: 4rem;
            font-family: var(--link-ff-display);
            font-size: clamp(4.8rem, 8vw, 9.6rem);
            font-weight: 400;
            line-height: 1;
            letter-spacing: -0.04em;
            white-space: nowrap;
            font-variation-settings: "opsz" 144, "SOFT" 30, "WONK" 0;
        }
        .link__marquee-row > span:nth-child(odd) { color: var(--c-l); }
        .link__marquee-row > span:nth-child(4n+3) { color: var(--c-pri); }
        .link__marquee-bullet {
            font-size: 0.36em;
            color: var(--c-pri);
            display: inline-flex;
            align-items: center;
        }
        .link__marquee-bullet i { font-size: inherit; line-height: 1; }
@keyframes link-marquee {
    0%   { transform: translate3d(0, 0, 0); }
    100% { transform: translate3d(-50%, 0, 0); }
}


/* $STATS
--------------------------------------------------------*/
.link__stats {
    padding-block: 12rem;
    /* background: var(--c-05); */
    border-bottom: .1rem solid var(--c-10);
}
    .link__stats-inner {
        width: var(--w-md);
        margin: 0 auto;
        display: grid;
        gap: 6.4rem;
    }
        .link__stats-head { display: grid; gap: 2.4rem; max-width: 80rem; }
        .link__stats-eyebrow { color: var(--c-d); }
        .link__stats-title {
            font-family: var(--link-ff-display);
            font-size: var(--link-fs-display-md);
            line-height: 1;
            margin: 0;
            font-variation-settings: "opsz" 144, "SOFT" 60, "WONK" 0;
        }
        .link__stats-grid {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 2.4rem;
            border-top: .1rem solid var(--c-10);
            padding-top: 4rem;
        }
            .link__stat {
                display: grid;
                gap: 1.2rem;
                position: relative;
                padding-right: 2.4rem;
            }
            .link__stat:not(:last-child)::after {
                content: "";
                position: absolute;
                top: 0;
                right: 0;
                width: .1rem;
                height: 100%;
                background: var(--c-10);
            }
                .link__stat-num {
                    display: block;
                    font-family: var(--link-ff-display);
                    font-size: clamp(5.6rem, 7vw, 9.6rem);
                    line-height: 0.92;
                    letter-spacing: -0.04em;
                    color: var(--c-d);
                    font-feature-settings: "tnum" 1;
                    font-variation-settings: "opsz" 144, "SOFT" 80, "WONK" 1;
                }
                .link__stat-label {
                    font-family: var(--link-ff-mono);
                    font-size: 1.2rem;
                    letter-spacing: 0.12em;
                    text-transform: uppercase;
                    color: color-mix(in srgb, var(--c-fg) 70%, var(--c-bg));
                }


/* $FEATURED TRAILS
--------------------------------------------------------*/
.link__feat {
    padding-block: 12rem;
    background: url(assets/img/bg-topography-d-10.svg) center / 51.2rem 51.2rem repeat scroll transparent;
    background-color: var(--c-05);
}
    .link__feat-head {
        width: var(--w-lg);
        margin: 0 auto 6.4rem;
        display: flex;
        align-items: end;
        justify-content: space-between;
        gap: 2.4rem;
    }
        .link__feat-head > div:not(.link__feat-actions) { display: grid; gap: 2.4rem; }
    .link__feat-actions {
        display: flex;
        align-items: center;
        flex-wrap: nowrap;
        gap: 1.6rem;
        flex-shrink: 0;
    }
    .link__feat-nav {
        display: flex;
        align-items: center;
        gap: 0.8rem;
        flex-shrink: 0;
    }
        .link__feat-nav .link__feat-arr {
            position: relative;
            top: auto;
            left: auto;
            right: auto;
            transform: none;
            width: 4rem;
            height: 4rem;
            margin: 0;
            padding: 0;
            border: .1rem solid var(--c-25);
            border-radius: 50%;
            background: var(--c-bg);
            color: var(--c-fg);
            cursor: pointer;
            transition:
                background-color var(--link-dur-fast) var(--link-ease),
                border-color var(--link-dur-fast) var(--link-ease),
                color var(--link-dur-fast) var(--link-ease),
                opacity var(--link-dur-fast) var(--link-ease);
        }
        .link__feat-nav .link__feat-arr i {
            font-size: 1.4rem;
            line-height: 1;
            transition: transform var(--link-dur-fast) var(--link-ease);
        }
        .link__feat-nav .link__feat-arr:hover:not(.swiper-button-disabled) {
            background: var(--c-pri);
            border-color: var(--c-pri);
            color: var(--c-l);
        }
        .link__feat-nav .link__feat-arr--next:hover:not(.swiper-button-disabled) i {
            transform: translateX(0.2rem);
        }
        .link__feat-nav .link__feat-arr--prev:hover:not(.swiper-button-disabled) i {
            transform: translateX(-0.2rem);
        }
        .link__feat-nav .link__feat-arr.swiper-button-disabled {
            opacity: 0.32;
            pointer-events: none;
            cursor: default;
        }
        .link__feat-nav .swiper-arr--next { left: auto; right: auto; }

    .link__feat-rail {
        padding-inline: calc((100% - min(100%, var(--w-lg))) / 2);
        overflow: hidden;
    }
    .link-feat-swiper { overflow: visible; }
        .link-feat-swiper .swiper-slide {
            width: clamp(32rem, 28vw, 44rem);
            height: auto;
        }

    .link__card {
        position: relative;
        height: 100%;
    }
        .link__card-link {
            display: grid;
            gap: 1.6rem;
            text-decoration: none;
            color: inherit;
            position: relative;
            min-width: 0;
        }
        .link__card-media {
            position: relative;
            aspect-ratio: 4 / 5;
            overflow: hidden;
            border-radius: var(--link-r-md);
            background: var(--c-05);
        }
            .link__card-media img {
                width: 100%;
                height: 100%;
                object-fit: cover;
                transition: transform 1.2s var(--link-ease);
            }
            .link__card-link:hover .link__card-media img { transform: scale(1.06); }
        .link__card-tag {
            position: absolute;
            top: 1.6rem;
            left: 1.6rem;
            background: color-mix(in srgb, var(--c-l) 92%, transparent);
            color: var(--c-d);
            font-family: var(--link-ff-mono);
            font-size: 1.1rem;
            letter-spacing: 0.16em;
            text-transform: uppercase;
            padding: .8rem 1.2rem;
            border-radius: 999rem;
            -webkit-backdrop-filter: blur(.8rem);
            backdrop-filter: blur(.8rem);
        }
        .link__card-body {
            display: grid;
            gap: 0.8rem;
            padding-right: 1.6rem;
            min-width: 0;
        }
            .link__card-title {
                font-family: var(--link-ff-display);
                font-size: 2.4rem;
                line-height: 1.05;
                margin: 0;
                font-variation-settings: "opsz" 144, "SOFT" 50, "WONK" 0;
            }
            .link__card-meta {
                font-family: var(--link-ff-mono);
                font-size: 1.2rem;
                letter-spacing: 0.12em;
                text-transform: uppercase;
                color: var(--c-d);
                overflow: hidden;
                text-overflow: ellipsis;
                white-space: nowrap;
            }
            .link__card-desc {
                font-size: 1.5rem;
                line-height: 1.5;
                margin: 0.4rem 0 0;
                display: -webkit-box;
                -webkit-box-orient: vertical;
                -webkit-line-clamp: 2;
                overflow: hidden;
                display: none;
            }
            .link__card-arrow {
                margin-top: 0.8rem;
                width: 4rem;
                height: 4rem;
                border-radius: 50%;
                border: .1rem solid var(--c-25);
                display: inline-flex;
                align-items: center;
                justify-content: center;
                transition: background-color var(--link-dur-fast) var(--link-ease), border-color var(--link-dur-fast) var(--link-ease), color var(--link-dur-fast) var(--link-ease);
            }
                .link__card-arrow i,
                .link__card-arrow svg { font-size: 1.4rem; width: 1.4rem; height: 1.4rem; fill: var(--c-fg); color: var(--c-fg); transition: transform var(--link-dur-fast) var(--link-ease); }
            .link__card-link:hover .link__card-arrow {
                background: var(--c-pri);
                border-color: var(--c-pri);
                color: var(--c-l);
            }
                .link__card-link:hover .link__card-arrow i,
                .link__card-link:hover .link__card-arrow svg { fill: var(--c-l); color: var(--c-l); transform: translateX(.3rem); }

/* Static grid (trails archive — same cards as homepage swiper) */
.link__cards-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(3.2rem, 4vw, 5.6rem) 2.4rem;
    align-items: start;
}


/* $TRAILS-ARCHIVE (page-trails.php)
--------------------------------------------------------*/
.link-trails-archive__intro {
    padding: calc(9.6rem + 4.8rem) 0 4.8rem;
    background: url(assets/img/bg-topography-d-10.svg) center / 51.2rem 51.2rem repeat scroll transparent;
    background-color: var(--c-05);
    border-bottom: .1rem solid var(--c-10);
}
    .link-trails-archive__intro-inner { display: grid; gap: 2.4rem; }
.link-trails-archive__filters {
    display: grid;
    gap: 2.4rem;
    margin: 0 auto 2.4rem;
    padding-bottom: 2.4rem;
    border-bottom: .1rem solid var(--c-10);
}
.link-trails-archive__filter-bar {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.2rem;
}
.link-trails-archive__filter-dd {
    position: relative;
    min-width: 0;
}
.link-trails-archive__filter-trigger {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.2rem;
    width: 100%;
    min-height: 5.6rem;
    padding: 1.4rem 1.6rem;
    border: .1rem solid var(--c-10);
    border-radius: var(--link-r-md);
    background: var(--c-bg);
    color: var(--c-fg);
    cursor: pointer;
    text-align: left;
    transition:
        border-color var(--link-dur-fast) var(--link-ease),
        background-color var(--link-dur-fast) var(--link-ease),
        box-shadow var(--link-dur-fast) var(--link-ease),
        transform var(--link-dur-fast) var(--link-ease);
}
.link-trails-archive__filter-trigger:hover {
    border-color: var(--c-25);
    background: var(--c-05);
}
.link-trails-archive__filter-dd.is-open .link-trails-archive__filter-trigger,
.link-trails-archive__filter-trigger:focus-visible {
    border-color: color-mix(in srgb, var(--c-pri) 42%, var(--c-10));
    box-shadow: 0 0 0 .3rem color-mix(in srgb, var(--c-pri) 12%, transparent);
    outline: none;
}
.link-trails-archive__filter-dd.has-value .link-trails-archive__filter-trigger {
    border-color: color-mix(in srgb, var(--c-pri) 28%, var(--c-10));
    background: color-mix(in srgb, var(--c-pri) 4%, var(--c-bg));
}
.link-trails-archive__filter-trigger-text {
    display: grid;
    gap: 0.2rem;
    min-width: 0;
}
.link-trails-archive__filter-trigger-label {
    font-family: var(--link-ff-mono);
    font-size: 1.1rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: color-mix(in srgb, var(--c-fg) 58%, var(--c-bg));
}
.link-trails-archive__filter-trigger-value {
    display: block;
    font-family: var(--link-ff-display);
    font-size: 1.8rem;
    font-weight: 500;
    line-height: 1.25;
    letter-spacing: -0.012em;
    color: var(--c-fg);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-variation-settings: "opsz" 72, "SOFT" 50, "WONK" 0;
}
.link-trails-archive__filter-dd.has-value .link-trails-archive__filter-trigger-value {
    color: var(--c-pri);
}
.link-trails-archive__filter-trigger-icon {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.8rem;
    height: 2.8rem;
    margin-top: 0.2rem;
    border: .1rem solid var(--c-10);
    border-radius: 50%;
    color: color-mix(in srgb, var(--c-fg) 72%, var(--c-bg));
    transition:
        transform var(--link-dur-fast) var(--link-ease),
        border-color var(--link-dur-fast) var(--link-ease),
        background-color var(--link-dur-fast) var(--link-ease),
        color var(--link-dur-fast) var(--link-ease);
}
.link-trails-archive__filter-trigger-icon i {
    font-size: 1.1rem;
    line-height: 1;
}
.link-trails-archive__filter-dd.is-open .link-trails-archive__filter-trigger-icon {
    transform: rotate(180deg);
    border-color: color-mix(in srgb, var(--c-pri) 36%, transparent);
    background: color-mix(in srgb, var(--c-pri) 8%, transparent);
    color: var(--c-pri);
}
.link-trails-archive__filter-menu {
    position: absolute;
    z-index: 20;
    top: calc(100% + 0.8rem);
    left: 0;
    right: 0;
    max-height: 32rem;
    overflow: hidden;
    border: .1rem solid var(--c-10);
    border-radius: var(--link-r-md);
    background: color-mix(in srgb, var(--c-l) 92%, transparent);
    box-shadow: 0 1.2rem 3.2rem color-mix(in srgb, var(--c-d) 10%, transparent);
    -webkit-backdrop-filter: blur(1.2rem);
    backdrop-filter: blur(1.2rem);
}
.link-trails-archive__filter-menu[hidden] {
    display: none;
}
.link-trails-archive__filter-menu:not([hidden]) {
    display: flex;
    flex-direction: column;
}
.link-trails-archive__filter-options {
    list-style: none;
    margin: 0;
    padding: 0.8rem;
    overflow: auto;
}
.link-trails-archive__filter-option-item {
    margin: 0;
}
.link-trails-archive__filter-option {
    display: flex;
    align-items: center;
    gap: 1.2rem;
    width: 100%;
    padding: 1.2rem 1.4rem;
    border: 0;
    border-radius: var(--link-r-sm);
    background: transparent;
    font-family: var(--link-ff-body);
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.3;
    color: var(--c-fg);
    cursor: pointer;
    text-align: left;
    transition:
        color var(--link-dur-fast) var(--link-ease),
        background-color var(--link-dur-fast) var(--link-ease);
}
.link-trails-archive__filter-option:hover,
.link-trails-archive__filter-option:focus-visible {
    color: var(--c-pri);
    background: color-mix(in srgb, var(--c-pri) 6%, transparent);
    outline: none;
}
.link-trails-archive__filter-option.is-selected {
    color: var(--c-pri);
    background: color-mix(in srgb, var(--c-pri) 10%, transparent);
}
.link-trails-archive__filter-check {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border: .1rem solid var(--c-25);
    border-radius: 0.4rem;
    background: var(--c-bg);
    color: transparent;
    transition:
        border-color var(--link-dur-fast) var(--link-ease),
        background-color var(--link-dur-fast) var(--link-ease),
        color var(--link-dur-fast) var(--link-ease);
}
.link-trails-archive__filter-check i {
    font-size: 1rem;
    line-height: 1;
}
.link-trails-archive__filter-option.is-selected .link-trails-archive__filter-check {
    border-color: var(--c-pri);
    background: var(--c-pri);
    color: var(--c-l);
}
.link-trails-archive__filter-option-label {
    min-width: 0;
}
.link-trails-archive__filter-menu-foot {
    padding: 0.8rem 1.2rem 1.2rem;
    border-top: .1rem solid var(--c-10);
}
.link-trails-archive__filter-menu-clear {
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
    font-family: var(--link-ff-mono);
    font-size: 1.1rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--c-pri);
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 0.24em;
    transition: color var(--link-dur-fast) var(--link-ease);
}
.link-trails-archive__filter-menu-clear:hover {
    color: color-mix(in srgb, var(--c-pri) 78%, var(--c-d));
}
.link-trails-archive__active-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1.2rem;
}
.link-trails-archive__active-filters-inner {
    display: flex;
    flex-wrap: wrap;
    gap: 0.8rem;
}
.link-trails-archive__pill {
    display: inline-flex;
    align-items: center;
    gap: 0.8rem;
    min-height: 3.6rem;
    padding: 0.4rem 0.4rem 0.4rem 1.2rem;
    border: .1rem solid color-mix(in srgb, var(--c-pri) 24%, var(--c-10));
    border-radius: 999rem;
    background: color-mix(in srgb, var(--c-pri) 8%, var(--c-bg));
    color: var(--c-fg);
    cursor: pointer;
    transition:
        background-color var(--link-dur-fast) var(--link-ease),
        border-color var(--link-dur-fast) var(--link-ease),
        transform var(--link-dur-fast) var(--link-ease);
}
.link-trails-archive__pill:hover {
    border-color: color-mix(in srgb, var(--c-pri) 42%, var(--c-10));
    background: color-mix(in srgb, var(--c-pri) 14%, var(--c-bg));
    transform: translateY(-.1rem);
}
.link-trails-archive__pill-group {
    font-family: var(--link-ff-mono);
    font-size: 1rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: color-mix(in srgb, var(--c-fg) 58%, var(--c-bg));
}
.link-trails-archive__pill-value {
    font-family: var(--link-ff-body);
    font-size: 1.3rem;
    font-weight: 600;
    line-height: 1.2;
    color: var(--c-d);
}
.link-trails-archive__pill-remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.4rem;
    height: 2.4rem;
    border-radius: 50%;
    color: color-mix(in srgb, var(--c-fg) 70%, var(--c-bg));
    transition:
        background-color var(--link-dur-fast) var(--link-ease),
        color var(--link-dur-fast) var(--link-ease);
}
.link-trails-archive__pill-remove i {
    font-size: 1.1rem;
    line-height: 1;
}
.link-trails-archive__pill:hover .link-trails-archive__pill-remove {
    background: color-mix(in srgb, var(--c-d) 8%, transparent);
    color: var(--c-d);
}
.link-trails-archive__clear {
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
    font-family: var(--link-ff-mono);
    font-size: 1.1rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--c-pri);
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 0.24em;
    transition: color var(--link-dur-fast) var(--link-ease);
}
.link-trails-archive__clear:hover {
    color: color-mix(in srgb, var(--c-pri) 78%, var(--c-d));
}
.link-trails-archive__filter-status {
    margin: 0;
    font-family: var(--link-ff-mono);
    font-size: 1.2rem;
    letter-spacing: 0.08em;
    color: color-mix(in srgb, var(--c-fg) 70%, var(--c-bg));
}
.link-trails-archive__grid-section {
    padding-block: 4rem 8rem;
}
.link-trails-archive__empty {
    margin: 0 auto;
    text-align: center;
    color: color-mix(in srgb, var(--c-fg) 70%, var(--c-bg));
}
.link-trails-archive__map-cta {
    padding-bottom: 12rem;
    display: flex;
    justify-content: center;
}

/* $INTERACTIVE-MAP-EMBED (ArcGIS iframe shortcode)
--------------------------------------------------------*/
.link-interactive-map {
    position: relative;
    width: 100%;
    --link-interactive-map-h: min(72rem, 85vh);
    border-radius: var(--link-r-lg);
    overflow: hidden;
    background: color-mix(in srgb, var(--c-fg) 6%, var(--c-bg));
    box-shadow:
        0 2.4rem 4.8rem -2.4rem color-mix(in srgb, var(--c-fg) 18%, transparent),
        inset 0 0 0 .1rem color-mix(in srgb, var(--c-fg) 10%, transparent);
}
    .link-interactive-map__controls {
        top: 1.2rem;
        right: 1.2rem;
    }
    .link-interactive-map__fs-icon--exit { display: none; }
    .link-interactive-map__fs-btn[aria-pressed="true"] .link-interactive-map__fs-icon--enter { display: none; }
    .link-interactive-map__fs-btn[aria-pressed="true"] .link-interactive-map__fs-icon--exit { display: block; }
    .link-interactive-map__frame {
        display: block;
        width: 100%;
        height: var(--link-interactive-map-h);
        border: 0;
        vertical-align: middle;
    }

.link-interactive-map.is-fullscreen {
    position: fixed;
    inset: 0;
    z-index: 950;
    width: 100vw;
    width: 100dvw;
    height: 100dvh;
    max-width: none;
    --link-interactive-map-h: 100%;
    border-radius: 0;
    box-shadow: none;
}
    .link-interactive-map.is-fullscreen .link-interactive-map__controls {
        top: max(1.2rem, env(safe-area-inset-top, 0px));
        right: max(1.2rem, env(safe-area-inset-right, 0px));
    }
    .link-interactive-map.is-fullscreen .link-interactive-map__frame {
        height: 100%;
    }

html.link-interactive-map-fs,
html.link-interactive-map-fs body {
    overflow: hidden;
}

@media only screen and (max-width: 768px) {
    .link-interactive-map:not(.is-fullscreen) { --link-interactive-map-h: min(56rem, 75vh); }
}

@media only screen and (max-width: 1024px) {
    .link__cards-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media only screen and (max-width: 768px) {
    .link-trails-archive__intro { padding-top: calc(8rem + 4rem); }
    .link-trails-archive__filters { gap: 2rem; margin-bottom: 3.2rem; }
    .link-trails-archive__filter-bar { grid-template-columns: 1fr; }
    .link__cards-grid { grid-template-columns: 1fr; }
}


/* $MAP-PREVIEW
--------------------------------------------------------*/
.link__map {
    padding-block: 12rem;
    color-scheme: dark;
    color: var(--c-l);
    background: var(--c-d);
    overflow: hidden;
    position: relative;
}
.link__map::before,
.link-trail__map::before,
.link-ftr::before,
.link__marquee::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background:
        radial-gradient(60% 60% at 80% 20%, color-mix(in srgb, var(--c-pri) 22%, transparent) 0%, transparent 60%),
        radial-gradient(50% 50% at 10% 90%, color-mix(in srgb, var(--c-sec) 14%, transparent) 0%, transparent 60%);
    pointer-events: none;
}
    .link__map-inner {
        position: relative;
        width: var(--w-lg);
        margin: 0 auto;
        display: grid;
        grid-template-columns: minmax(32rem, 1fr) minmax(48rem, 1.4fr);
        gap: clamp(4rem, 6vw, 9.6rem);
        align-items: center;
    }
        .link__map-copy { display: grid; gap: 2.4rem; }
        .link__map-copy .link__section-title { color: var(--c-l); }
        .link__map-actions { display: flex; flex-wrap: wrap; gap: 1.6rem; }
        .link__map-legend {
            list-style: none;
            margin: 0;
            padding: 0;
            display: flex;
            flex-wrap: wrap;
            gap: 2.4rem;
            font-family: var(--link-ff-mono);
            font-size: 1.2rem;
            letter-spacing: 0.12em;
            text-transform: uppercase;
            color: color-mix(in srgb, var(--c-l) 76%, transparent);
        }
            .link__map-legend li { display: inline-flex; align-items: center; gap: .8rem; }
            .link__map-dot {
                width: 1rem;
                height: 1rem;
                border-radius: 50%;
                box-shadow: 0 0 0 .4rem color-mix(in srgb, currentColor 16%, transparent);
            }
            .link__map-dot--open { background: var(--c-pri); }
            .link__map-dot--planned { background: var(--c-sec); }
            .link__map-dot--gap { background: color-mix(in srgb, var(--c-l) 50%, var(--c-d)); }

        .link__map-canvas {
            position: relative;
            aspect-ratio: 5 / 4;
            border-radius: var(--link-r-lg);
            overflow: hidden;
            background: linear-gradient(140deg, color-mix(in srgb, var(--c-l) 6%, var(--c-d)) 0%, color-mix(in srgb, var(--c-pri) 14%, var(--c-d)) 100%);
            box-shadow:
                0 4rem 8rem -2rem color-mix(in srgb, var(--c-d) 70%, transparent),
                inset 0 0 0 .1rem color-mix(in srgb, var(--c-l) 12%, transparent);
        }
            .link__map-stage {
                position: absolute;
                inset: 0;
                z-index: 1;
                min-height: 32rem;
            }
            .link__map-stage .mapboxgl-map,
            .link__map-stage .mapboxgl-canvas {
                position: absolute !important;
                inset: 0;
                width: 100% !important;
                height: 100% !important;
                border-radius: var(--link-r-lg);
            }
            .link__map-frame { position: absolute; inset: 1.6rem; pointer-events: none; z-index: 2; }
                .link__map-frame-corner {
                    position: absolute;
                    width: 2.4rem;
                    height: 2.4rem;
                    border: .2rem solid var(--c-l);
                }
                .link__map-frame-corner--tl { top: 0; left: 0; border-right: 0; border-bottom: 0; }
                .link__map-frame-corner--tr { top: 0; right: 0; border-left: 0; border-bottom: 0; }
                .link__map-frame-corner--bl { bottom: 0; left: 0; border-right: 0; border-top: 0; }
                .link__map-frame-corner--br { bottom: 0; right: 0; border-left: 0; border-top: 0; }
            .link__map-readout {
                position: absolute;
                left: 2.4rem;
                bottom: 2.4rem;
                z-index: 3;
                background: color-mix(in srgb, var(--c-d) 72%, transparent);
                border: .1rem solid color-mix(in srgb, var(--c-l) 14%, transparent);
                -webkit-backdrop-filter: blur(1.2rem);
                backdrop-filter: blur(1.2rem);
                color: var(--c-l);
                padding: 1.2rem 1.6rem;
                border-radius: var(--link-r-sm);
                display: grid;
                gap: .4rem;
                font-family: var(--link-ff-mono);
                font-size: 1.1rem;
                letter-spacing: 0.12em;
                text-transform: uppercase;
            }
                .link__map-readout-label { color: color-mix(in srgb, var(--c-l) 60%, transparent); }
                .link__map-readout-value { color: var(--c-l); font-weight: 500; }


/* $ACTIVITIES
--------------------------------------------------------*/
.link__activities { padding-block: 12rem; }
    .link__activities-head {
        margin-bottom: 6.4rem;
        display: grid;
        gap: 2.4rem;
    }


/* $ACTIVITY CHIPS (trail spec + homepage)
--------------------------------------------------------*/
.link-trail__activities {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 1.2rem;
}
.link-trail__activities--lg { gap: 2rem; }
.link__activities-chips .link-trail__activities--lg {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 2rem;
}
.link__activities-chips .link-trail__activities--lg > li {
    display: flex;
    justify-content: center;
}
.link-trail__activity {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 5.6rem;
    height: 5.6rem;
    border: .1rem solid var(--c-10);
    border-radius: 999rem;
    background: var(--c-bg);
    color: var(--c-pri);
    text-decoration: none;
    transition: background var(--link-dur-fast) var(--link-ease), border-color var(--link-dur-fast) var(--link-ease), color var(--link-dur-fast) var(--link-ease), transform var(--link-dur-fast) var(--link-ease);
}
.link-trail__activities--lg .link-trail__activity,
.link-trail__activity--lg {
    width: 11.2rem;
    height: 11.2rem;
    background: var(--c-05);
}
.link-trail__activity[data-tip]::before {
    content: attr(data-tip);
    position: absolute;
    bottom: calc(100% + .8rem);
    left: 50%;
    z-index: 2;
    padding: .6rem 1rem;
    border-radius: var(--link-r-sm);
    background: var(--c-d);
    color: var(--c-l);
    font-family: var(--link-ff-mono);
    font-size: 1.1rem;
    font-weight: 500;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    line-height: 1.2;
    white-space: nowrap;
    pointer-events: none;
    opacity: 0;
    transform: translateX(-50%) translateY(.4rem);
    transition: opacity var(--link-dur-fast) var(--link-ease), transform var(--link-dur-fast) var(--link-ease);
}
.link-trail__activity:hover,
.link-trail__activity:focus-visible {
    background: var(--c-d);
    border-color: var(--c-d);
    color: var(--c-l);
    transform: translateY(-.2rem);
}
.link-trail__activity:hover::before,
.link-trail__activity:focus-visible::before {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}
.link-trail__activity-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 2.4rem;
    line-height: 1;
}
.link-trail__activities--lg .link-trail__activity-icon,
.link-trail__activity--lg .link-trail__activity-icon {
    font-size: 4.8rem;
}
.link-trail__activity-icon i,
.link-trail__activity-icon .pix-icon {
    display: block;
    font-size: inherit;
    line-height: 1;
}
.link-trail__activity-icon svg {
    width: 2.4rem;
    height: 2.4rem;
    fill: currentColor;
}
.link-trail__activities--lg .link-trail__activity-icon svg,
.link-trail__activity--lg .link-trail__activity-icon svg {
    width: 4.8rem;
    height: 4.8rem;
}
.link-trail__activity-fallback {
    font-family: var(--link-ff-mono);
    font-size: 1rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    text-align: center;
    padding: 0 .4rem;
}
.link-trail__activities--lg .link-trail__activity-fallback,
.link-trail__activity--lg .link-trail__activity-fallback {
    font-size: 1.4rem;
}


/* $ACTIVITY GRID (Activities page shortcode)
--------------------------------------------------------*/
.link__activity-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 4.8rem 6.4rem;
}
.link__activity-card {
    display: grid;
    grid-template-columns: 11.2rem 1fr;
    gap: 2.4rem;
    align-items: start;
}
.link__activity-card .link-trail__activity--lg {
    flex-shrink: 0;
}
.link__activity-card__body {
    display: grid;
    gap: 1.2rem;
    min-width: 0;
    padding-top: .4rem;
}
.link__activity-card__title {
    margin: 0;
    font-family: var(--link-ff-display);
    line-height: 1.05;
    font-weight: 500;
}
.link__activity-card__title a {
    color: var(--c-d);
    text-decoration: none;
    transition: color var(--link-dur-fast) var(--link-ease);
}
.link__activity-card__title a:hover,
.link__activity-card__title a:focus-visible {
    color: var(--c-pri);
}
.link__activity-card__desc {
    font-size: 1.6rem;
    line-height: 1.6;
}
.link__activity-card__desc > *:first-child { margin-top: 0; }
.link__activity-card__desc > *:last-child { margin-bottom: 0; }

@media only screen and (max-width: 768px) {
    .link__activity-grid {
        grid-template-columns: 1fr;
        gap: 4rem;
    }
    .link__activity-card {
        grid-template-columns: 8rem 1fr;
        gap: 2rem;
    }
    .link__activity-card .link-trail__activity--lg {
        width: 8rem;
        height: 8rem;
    }
    .link__activity-card .link-trail__activity--lg .link-trail__activity-icon {
        font-size: 3.2rem;
    }
    .link__activity-card .link-trail__activity--lg .link-trail__activity-icon svg {
        width: 3.2rem;
        height: 3.2rem;
    }
}


/* $BENTO (benefits)
--------------------------------------------------------*/
.link__bento {
    padding-block: 12rem;
    background: var(--c-05);
    border-block: .1rem solid var(--c-10);
}
    .link__bento-head {
        margin-bottom: 6.4rem;
        display: grid;
        gap: 2.4rem;
    }
    .link__bento-grid {
        display: grid;
        grid-template-columns: repeat(6, 1fr);
        grid-auto-rows: minmax(28rem, auto);
        gap: 1.6rem;
    }
        .link__bento-cell {
            position: relative;
            display: grid;
            gap: 1.6rem;
            align-content: end;
            padding: 3.2rem;
            border-radius: var(--link-r-md);
            min-height: 28rem;
            color-scheme: dark;
            color: var(--c-fg);
            border: .1rem solid var(--c-10);
        }
        .link__bento-cell--lead { grid-column: span 3; background: var(--c-ter); }
        .link__bento-cell--alt  { grid-column: span 3; background: var(--c-sec); }
        .link__bento-cell--accent { grid-column: span 2; background: var(--c-pri); }
        .link__bento-cell--wide { grid-column: span 2; background: var(--c-d); }
        .link__bento-cell--dark { grid-column: span 2; background: var(--c-d); }

            .link__bento-icon {
                font-size: 3.2rem;
                line-height: 1;
                margin-bottom: 1.6rem;
            }
            .link__bento-num {
                font-family: var(--link-ff-mono);
                font-size: 1.2rem;
                letter-spacing: 0.16em;
                line-height: 1;
            }
            .link__bento-title {
                font-family: var(--link-ff-display);
                font-size: clamp(2.4rem, 2vw, 3.6rem);
                line-height: 1.05;
                margin: 0;
                font-variation-settings: "opsz" 144, "SOFT" 50, "WONK" 0;
            }
            .link__bento-cell p {
                margin: 0;
                font-size: 1.5rem;
                line-height: 1.5;
            }
            .link__bento-stat {
                display: grid;
                gap: .4rem;
                padding-top: 1.6rem;
                border-top: .1rem solid color-mix(in srgb, currentColor 22%, transparent);
            }
                .link__bento-stat-num {
                    font-family: var(--link-ff-display);
                    font-size: clamp(4rem, 5vw, 6.4rem);
                    line-height: 0.92;
                    letter-spacing: -0.04em;
                    font-feature-settings: "tnum" 1;
                    font-variation-settings: "opsz" 144, "SOFT" 80, "WONK" 1;
                }
                .link__bento-stat-label {
                    font-size: 1.3rem;
                    line-height: 1.4;
                }
            .link__bento-foot {
                font-family: var(--link-ff-mono);
                font-size: 1.1rem !important;
                line-height: 1.4 !important;
                letter-spacing: 0.04em;
                margin: 0 !important;
            }


/* $COALITION
--------------------------------------------------------*/
.link__coalition { padding-block: 12rem; }
    .link__coalition-inner {
        width: var(--w-lg);
        margin: 0 auto;
        display: grid;
        grid-template-columns: minmax(32rem, 1fr) 2fr;
        gap: clamp(4rem, 6vw, 9.6rem);
        align-items: start;
    }
        .link__coalition-head { display: grid; gap: 2.4rem; align-content: start; position: sticky; top: 12rem; }
        .link__coalition-head .link__btn--ghost { justify-self: start; }
        .link__coalition-grid {
            list-style: none;
            margin: 0;
            padding: 0;
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: .1rem;
            background: var(--c-10);
            border: .1rem solid var(--c-10);
            border-radius: var(--link-r-md);
            overflow: hidden;
        }
            .link__coalition-cell {
                position: relative;
                background: var(--c-bg);
                aspect-ratio: 4 / 3;
                display: block;
                width: 100%;
                padding: 0;
                text-decoration: none;
                transition: background-color var(--link-dur) var(--link-ease);
            }
            .link__coalition-cell:hover,
            .link__coalition-cell:focus-visible {
                background: var(--c-d);
            }
            .link__coalition-cell:focus-visible {
                outline: .2rem solid var(--c-pri);
                outline-offset: -.2rem;
            }
            .link__coalition-logo {
                position: absolute;
                inset: 0;
                width: 100%;
                height: 100%;
                object-fit: contain;
                transition: filter var(--link-dur) var(--link-ease);
            }
            .link__coalition-cell:hover .link__coalition-logo,
            .link__coalition-cell:focus-visible .link__coalition-logo {
                filter: brightness(0) invert(1);
            }
            .link__coalition-cell--cta {
                display: flex;
                align-items: center;
                justify-content: center;
                padding: 2.4rem;
            }
            .link__coalition-cta {
                display: grid;
                gap: 1.6rem;
                justify-items: center;
                text-align: center;
                font-family: var(--link-ff-display);
                font-size: clamp(1.8rem, 2.2vw, 2.4rem);
                font-weight: 500;
                line-height: 1.15;
                color: var(--c-d);
                transition: color var(--link-dur) var(--link-ease);
                font-variation-settings: "opsz" 144, "SOFT" 30, "WONK" 0;
            }
            .link__coalition-cell--cta:hover .link__coalition-cta,
            .link__coalition-cell--cta:focus-visible .link__coalition-cta {
                color: var(--c-l);
            }
            .link__coalition-cta .fa-arrow-right {
                font-size: 1.6rem;
                transition: transform var(--link-dur) var(--link-ease);
            }
            .link__coalition-cell--cta:hover .fa-arrow-right,
            .link__coalition-cell--cta:focus-visible .fa-arrow-right {
                transform: translateX(.4rem);
            }


/* $STAY (newsletter CTA)
--------------------------------------------------------*/
.link__stay {
    padding-block: 12rem;
    color-scheme: dark;
    color: var(--c-l);
    background: var(--c-d);
    position: relative;
    overflow: hidden;
}
.link__stay::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(50% 60% at 20% 30%, color-mix(in srgb, var(--c-pri) 24%, transparent) 0%, transparent 70%),
        radial-gradient(40% 50% at 80% 80%, color-mix(in srgb, var(--c-sec) 22%, transparent) 0%, transparent 70%);
    pointer-events: none;
}
    .link__stay-inner {
        position: relative;
        width: var(--w-md);
        margin: 0 auto;
        text-align: center;
        display: grid;
        gap: 3.2rem;
        justify-items: center;
    }
        .link__stay-title {
            font-family: var(--link-ff-display);
            font-size: var(--link-fs-display-md);
            line-height: 1;
            color: var(--c-l);
            margin: 0;
            font-variation-settings: "opsz" 144, "SOFT" 70, "WONK" 1;
            text-wrap: balance;
        }
        .link__stay-form {
            width: 100%;
            max-width: 64rem;
        }

        .link__stay-note {
            font-family: var(--link-ff-mono);
            font-size: 1.1rem;
            letter-spacing: 0.12em;
            text-transform: uppercase;
            color: color-mix(in srgb, var(--c-l) 60%, transparent);
            margin: 0;
        }


/* $FIELD-NOTES
--------------------------------------------------------*/
.link__notes {
    padding-block: 12rem;
    background: var(--c-05);
}
    .link__notes-head {
        width: var(--w-lg);
        margin: 0 auto 6.4rem;
        display: grid;
        grid-template-columns: 1fr auto;
        gap: 2.4rem;
        align-items: end;
    }
    .link__notes-head .link__eyebrow,
    .link__notes-head .link__section-title { grid-column: 1; }

    .link__notes-grid {
        width: var(--w-lg);
        margin: 0 auto;
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 0;
        border: .1rem solid var(--c-10);
        border-radius: var(--link-r-md);
        overflow: hidden;
    }
        .link__note {
            position: relative;
            display: grid;
            gap: 1.6rem;
            padding: 4rem;
            text-decoration: none;
            color: inherit;
            background: var(--c-l);
            border-right: .1rem solid var(--c-10);
            border-bottom: .1rem solid var(--c-10);
            overflow: hidden;
            isolation: isolate;
            transition: background-color var(--link-dur) var(--link-ease);
            min-height: 32rem;
            grid-template-rows: auto auto 1fr auto;
        }
        .link__note::before {
            content: "";
            position: absolute;
            inset: 0;
            z-index: 0;
            pointer-events: none;
            opacity: 0;
            transition: opacity var(--link-dur) var(--link-ease);
            background:
                radial-gradient(55% 45% at 88% 12%, color-mix(in srgb, var(--c-pri) 14%, transparent) 0%, transparent 62%),
                radial-gradient(50% 42% at 12% 78%, color-mix(in srgb, var(--c-sec) 12%, transparent) 0%, transparent 62%),
                radial-gradient(42% 38% at 50% 42%, color-mix(in srgb, var(--c-ter) 9%, transparent) 0%, transparent 68%);
        }
        .link__note:hover::before,
        .link__note:focus-visible::before { opacity: 1; }
        .link__note > * { position: relative; z-index: 1; }
        .link__note:nth-child(3n) { border-right: none; }
        .link__note:nth-last-child(-n+3) { border-bottom: none; }
            .link__note-date {
                font-family: var(--link-ff-mono);
                font-size: 1.2rem;
                letter-spacing: 0.16em;
                text-transform: uppercase;
                color: var(--c-d);
            }
            .link__note-kind {
                font-family: var(--link-ff-mono);
                font-size: 1.1rem;
                letter-spacing: 0.16em;
                text-transform: uppercase;
                color: var(--c-pri);
            }
            .link__note-title {
                font-family: var(--link-ff-display);
                font-size: clamp(2rem, 1.8vw, 2.8rem);
                line-height: 1.1;
                font-variation-settings: "opsz" 144, "SOFT" 50, "WONK" 0;
                margin: 0;
            }
            .link__note-arrow {
                width: 4rem;
                height: 4rem;
                border-radius: 50%;
                border: .1rem solid var(--c-25);
                display: inline-flex;
                align-items: center;
                justify-content: center;
                justify-self: start;
                transition: background-color var(--link-dur-fast) var(--link-ease), border-color var(--link-dur-fast) var(--link-ease);
            }
            .link__note-arrow i,
            .link__note-arrow svg { font-size: 1.4rem; width: 1.4rem; height: 1.4rem; color: var(--c-fg); fill: var(--c-fg); transition: transform var(--link-dur-fast) var(--link-ease); }
            .link__note:hover .link__note-arrow { background: var(--c-pri); border-color: var(--c-pri); }
            .link__note:hover .link__note-arrow i,
            .link__note:hover .link__note-arrow svg { color: var(--c-l); fill: var(--c-l); transform: translateX(.3rem); }


/* $REVEAL (intersection observer hooks)
--------------------------------------------------------*/
[data-link-reveal] { opacity: 0; transform: translateY(2.4rem); transition: opacity 1.2s var(--link-ease), transform 1.2s var(--link-ease); }
[data-link-reveal].is-revealed { opacity: 1; transform: translateY(0); }
@media (prefers-reduced-motion: reduce) {
    [data-link-reveal] { opacity: 1; transform: none; transition: none; }
    .link__hero-line > * { transform: none; animation: none; }
    .link__hero-lead, .link__hero-ctas, .link__hero-foot { opacity: 1; animation: none; }
    .link__marquee-track { animation: none; }
    .link__hero-img img { animation: none; }
}


/* $FOOTER
--------------------------------------------------------*/
.link-ftr {
    position: relative;
    color-scheme: dark;
    color: var(--c-l);
    background: var(--c-d);
    padding-top: 8rem;
    overflow: hidden;
}
    .link-ftr__crest,
    .link-ftr__inner,
    .link-ftr__base {
        position: relative;
        z-index: 1;
    }
    .link-ftr__crest {
        width: var(--w-lg);
        margin: 0 auto 6.4rem;
        display: grid;
        grid-template-columns: 1fr auto 1fr;
        align-items: center;
        gap: 2.4rem;
    }
        .link-ftr__crest-rule { height: .1rem; background: color-mix(in srgb, var(--c-l) 16%, transparent); }
        .link-ftr__crest-coords {
            font-family: var(--link-ff-mono);
            font-size: 1.1rem;
            letter-spacing: 0.2em;
            text-transform: uppercase;
            color: color-mix(in srgb, var(--c-l) 60%, transparent);
        }

    .link-ftr__inner {
        width: var(--w-lg);
        margin: 0 auto;
        padding-bottom: 6.4rem;
        display: grid;
        grid-template-columns: minmax(28rem, 1fr) 3fr;
        gap: 6.4rem;
    }

        .link-ftr__brand { display: grid; gap: 2.4rem; align-content: start; }
        .link-ftr__insta { display: grid; gap: 1.6rem; max-width: 36rem; }
        .link-ftr__insta-profile {
            display: inline-flex;
            align-items: center;
            gap: 1rem;
            color: var(--c-l);
            text-decoration: none;
            font-family: var(--link-ff-mono);
            font-size: 1.2rem;
            letter-spacing: 0.12em;
            text-transform: uppercase;
            transition: color var(--link-dur-fast) var(--link-ease);
        }
        .link-ftr__insta-profile i { font-size: 1.8rem; line-height: 1; }
        .link-ftr__insta-profile:hover { color: var(--c-pri); }
        .link-ftr__insta-grid {
            list-style: none;
            margin: 0;
            padding: 0;
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: .4rem;
        }
        .link-ftr__insta-item {
            display: block;
            aspect-ratio: 1 / 1;
            overflow: hidden;
            border-radius: .4rem;
            background: color-mix(in srgb, var(--c-l) 8%, transparent);
        }
        .link-ftr__insta-item img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            transition: transform var(--link-dur) var(--link-ease), opacity var(--link-dur-fast) var(--link-ease);
        }
        .link-ftr__insta-item:hover img,
        .link-ftr__insta-item:focus-visible img {
            transform: scale(1.06);
            opacity: 0.92;
        }
        .link-ftr__social { list-style: none; margin: 0; padding: 0; display: flex; gap: 0.8rem; }
            .link-ftr__social a {
                width: 4rem;
                height: 4rem;
                border-radius: 50%;
                display: inline-flex;
                align-items: center;
                justify-content: center;
                background: color-mix(in srgb, var(--c-l) 8%, transparent);
                border: .1rem solid color-mix(in srgb, var(--c-l) 14%, transparent);
                color: var(--c-l);
                transition: background-color var(--link-dur-fast) var(--link-ease), color var(--link-dur-fast) var(--link-ease);
            }
            .link-ftr__social a:hover { background: var(--c-pri); border-color: var(--c-pri); }
            .link-ftr__social i { font-size: 1.4rem; line-height: 1; }
            .link-ftr__social svg { width: 1.4rem; height: 1.4rem; fill: currentColor; }

        .link-ftr__nav {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 2.4rem;
        }
            .link-ftr__col { display: grid; gap: 1.6rem; align-content: start; }
            .link-ftr__col-title {
                font-family: var(--link-ff-mono);
                font-size: 1.1rem;
                letter-spacing: 0.16em;
                text-transform: uppercase;
                color: color-mix(in srgb, var(--c-l) 60%, transparent);
                margin: 0;
                padding-bottom: 1.2rem;
                border-bottom: .1rem solid color-mix(in srgb, var(--c-l) 12%, transparent);
            }
            .link-ftr__col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.8rem; }
            .link-ftr__col a {
                color: color-mix(in srgb, var(--c-l) 88%, transparent);
                text-decoration: none;
                font-size: 1.4rem;
                line-height: 1.4;
                transition: color var(--link-dur-fast) var(--link-ease);
            }
            .link-ftr__col a:hover { color: var(--c-pri); }

    .link-ftr__base {
        border-top: .1rem solid color-mix(in srgb, var(--c-l) 12%, transparent);
        padding: 2.4rem 0;
    }
        .link-ftr__base-inner {
            width: var(--w-lg);
            margin: 0 auto;
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 2.4rem;
            flex-wrap: wrap;
            font-family: var(--link-ff-mono);
            font-size: 1.1rem;
            letter-spacing: 0.12em;
            text-transform: uppercase;
            color: color-mix(in srgb, var(--c-l) 60%, transparent);
        }
            .link-ftr__base-meta {
                display: flex;
                align-items: center;
                flex-wrap: wrap;
                row-gap: .8rem;
            }
            .link-ftr__cr::after {
                content: "|";
                margin: 0 1.2rem;
                color: color-mix(in srgb, var(--c-l) 28%, transparent);
            }
            .link-ftr__base-links {
                list-style: none;
                margin: 0;
                padding: 0;
                display: flex;
                align-items: center;
                flex-wrap: wrap;
                row-gap: .8rem;
            }
            .link-ftr__base-links li {
                display: flex;
                align-items: center;
            }
            .link-ftr__base-links li + li::before {
                content: "|";
                margin: 0 1.2rem;
                color: color-mix(in srgb, var(--c-l) 28%, transparent);
            }
            .link-ftr__base-links a {
                color: color-mix(in srgb, var(--c-l) 76%, transparent);
                text-decoration: none;
            }
            .link-ftr__base-links a:hover { color: var(--c-l); }
            .link-ftr__base-by {
                display: flex;
                align-items: center;
                gap: .8rem;
                margin-left: auto;
            }
            .link-ftr__base-by-label {
                line-height: 1;
                position: relative;
                top: .1rem;
            }
            .link-ftr__base-by a {
                display: flex;
                align-items: center;
                color: inherit;
                text-decoration: none;
            }
            .link-ftr__base-by a:hover .link-ftr__base-logo { opacity: 1; }
            .link-ftr__base-logo {
                display: block;
                height: 4rem;
                width: auto;
                opacity: .88;
                transition: opacity var(--link-dur-fast) var(--link-ease);
            }


/* $RESPONSIVE
--------------------------------------------------------*/
@media only screen and (max-width: 1024px) {
    .link__map-inner { grid-template-columns: 1fr; }
    .link__coalition-inner { grid-template-columns: 1fr; }
    .link__coalition-head { position: static; }
    .link-ftr__inner { grid-template-columns: 1fr; }
    .link-ftr__nav { grid-template-columns: repeat(2, 1fr); }
    .link__bento-cell--lead,
    .link__bento-cell--alt { grid-column: span 6; }
    .link__bento-cell--accent,
    .link__bento-cell--wide,
    .link__bento-cell--dark { grid-column: span 3; }
    .link__notes-grid { grid-template-columns: 1fr; }
    .link__note { border-right: none; border-bottom: .1rem solid var(--c-10); }
    .link__note:nth-child(3n) { border-right: none; }
    .link__note:nth-last-child(-n+3) { border-bottom: .1rem solid var(--c-10); }
    .link__note:last-child { border-bottom: none; }
    .link-galleries__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media only screen and (max-width: 768px) {
    .link__hero { min-height: 80vh; padding: 2.4rem 0; }
    .link__hero-foot { grid-template-columns: 1fr; gap: .8rem; text-align: left; }
    .link__feat-head { flex-direction: column; align-items: start; }
    .link__feat-actions {
        width: 100%;
        flex-wrap: nowrap;
        justify-content: space-between;
    }
    .link-feat-swiper .swiper-slide { width: 80%; }
    .link__stats-grid { grid-template-columns: repeat(2, 1fr); gap: 4rem 2.4rem; }
    .link__stat:not(:last-child)::after { display: none; }
    .link__bento-grid { grid-template-columns: 1fr; }
    .link__bento-cell { grid-column: span 1 !important; min-height: 24rem; padding: 2.4rem; }
    .link__coalition-grid { grid-template-columns: repeat(2, 1fr); }
    .link__notes-head { grid-template-columns: 1fr; }
    .link-ftr__nav { grid-template-columns: 1fr; }
    .link-ftr__base-inner { flex-direction: column; align-items: flex-start; }
    .link-ftr__base-by { margin-left: 0; }
    .link__hero-title { font-size: clamp(5.6rem, 14vw, 9.6rem); }
    .link-galleries__grid { grid-template-columns: 1fr; }
}

@media only screen and (max-width: 1024px) {
    .link__activities-chips .link-trail__activities--lg {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }
}

@media only screen and (max-width: 768px) {
    .link__activities-chips .link-trail__activities--lg {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media only screen and (max-width: 512px) {
    .link-trail__activities--lg { gap: 1.6rem; }
    .link__activities-chips .link-trail__activities--lg {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 1.6rem;
    }
    .link__coalition-grid { grid-template-columns: 1fr; }
}


/* $TRAIL-SINGLE
--------------------------------------------------------*/
.link-trail {
    background: var(--c-bg);
    color: var(--c-fg);
}
.link-trail .w-md { width: var(--w-md); margin-inline: auto; }
.link-trail .w-lg { width: var(--w-lg); margin-inline: auto; }

.link-trail__hero {
    position: relative;
    min-height: clamp(48rem, 72vh, 72rem);
    color: var(--c-l);
    color-scheme: dark;
    background: var(--c-d);
    display: grid;
    align-items: end;
    padding: 4rem 0 6.4rem;
    overflow: hidden;
    isolation: isolate;
}
    .link-trail__hero .link__hero-media {
        position: absolute;
        inset: 0;
        z-index: 0;
    }
    .link-trail__hero .link__hero-img {
        position: absolute;
        inset: 0;
        z-index: 0;
        display: block;
    }
    .link-trail__hero .link__hero-img img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        transform: scale(1.06);
        animation: link-hero-pan 18s ease-in-out infinite alternate;
    }
    .link-trail__hero:has(.link__hero-img) .link__hero-veil {
        background:
            linear-gradient(
                to top,
                color-mix(in srgb, var(--link-veil) 82%, transparent) 0%,
                color-mix(in srgb, var(--link-veil) 48%, transparent) 22%,
                color-mix(in srgb, var(--link-veil) 18%, transparent) 48%,
                color-mix(in srgb, var(--link-veil) 12%, transparent) 68%
            );
    }
    .link-trail__hero:not(:has(.link__hero-img)) .link__hero-veil {
        background: none;
    }
    .link-trail__hero-inner {
        position: relative;
        z-index: 3;
        display: grid;
        gap: 2.4rem;
        padding-inline: 0;
    }
        .link-trail__crumbs {
            flex-wrap: wrap;
            color: color-mix(in srgb, var(--c-l) 80%, transparent);
        }
        .link-trail__crumbs a {
            color: color-mix(in srgb, var(--c-l) 88%, transparent);
            text-decoration: none;
        }
        .link-trail__crumbs a:hover { color: var(--c-l); }
        .link-trail__crumbs-sep { opacity: 0.5; }
        .link-trail__crumbs-current { color: var(--c-l); }
        .link-trail__title {
            font-family: var(--link-ff-display);
            font-size: var(--link-fs-display-lg);
            line-height: 0.92;
            letter-spacing: -0.03em;
            margin: 0;
            color: var(--c-l);
            font-variation-settings: "opsz" 144, "SOFT" 60, "WONK" 0;
        }
        .link-trail__quick-specs {
            list-style: none;
            margin: 0;
            padding: 0;
            display: flex;
            flex-wrap: wrap;
            gap: 1.2rem;
        }
            .link-trail__quick-specs li {
                display: grid;
                gap: .4rem;
                max-width: 22rem;
                min-width: 0;
                padding: 1.2rem 1.6rem;
                border-radius: var(--link-r-sm);
                background: color-mix(in srgb, var(--c-l) 10%, transparent);
                border: .1rem solid color-mix(in srgb, var(--c-l) 18%, transparent);
            }
            .link-trail__quick-label {
                font-family: var(--link-ff-mono);
                font-size: 1rem;
                letter-spacing: 0.14em;
                text-transform: uppercase;
                color: color-mix(in srgb, var(--c-l) 70%, transparent);
            }
            .link-trail__quick-value {
                display: block;
                font-family: var(--link-ff-display);
                font-size: 2rem;
                line-height: 1;
                color: var(--c-l);
                overflow: hidden;
                text-overflow: ellipsis;
                white-space: nowrap;
            }

.link-trail__summary {
    padding-block: 8rem;
}
.link-trail__readmore {
    display: grid;
    gap: 2.4rem;
}
.link-trail__readmore-body {
    position: relative;
    transition: max-height var(--link-dur) var(--link-ease);
}
.link-trail__readmore.is-collapsible:not(.is-expanded) .link-trail__readmore-body {
    overflow: hidden;
    max-height: var(--link-readmore-h, 20rem);
}
.link-trail__readmore.is-collapsible:not(.is-expanded) .link-trail__readmore-body::after {
    content: '';
    position: absolute;
    inset: auto 0 0;
    height: 8rem;
    background: linear-gradient(to bottom, transparent, var(--c-bg));
    pointer-events: none;
}
.link-trail__readmore-foot[hidden] {
    display: none;
}
.link-trail__readmore.is-collapsible .link-trail__readmore-foot {
    display: block;
}
.link-trail__readmore-toggle .link-trail__readmore-icon {
    font-size: 1.2rem;
    transition: transform var(--link-dur-fast) var(--link-ease);
}
.link-trail__readmore.is-expanded .link-trail__readmore-icon {
    transform: rotate(180deg);
}

@media (prefers-reduced-motion: reduce) {
    .link-trail__readmore-body { transition: none; }
    .link-trail__readmore.is-collapsible:not(.is-expanded) .link-trail__readmore-body {
        max-height: none;
        overflow: visible;
    }
    .link-trail__readmore.is-collapsible:not(.is-expanded) .link-trail__readmore-body::after {
        display: none;
    }
    .link-trail__readmore.is-collapsible .link-trail__readmore-foot {
        display: none;
    }
}
.link-trail__block-head {
    display: grid;
    gap: 2.4rem;
}
.link-trail__specs {
    padding-block: 12rem;
    background: var(--c-05);
    border-block: .1rem solid var(--c-10);
}
    .link-trail__specs-inner { display: grid; gap: 4rem; }
    .link-trail__spec-grid {
        margin: 0;
        display: grid;
        grid-template-columns: repeat(3, 1fr);
    }
        .link-trail__spec {
            padding: 1.6rem;
            border-bottom: .1rem solid var(--c-10);
        }
        .link-trail__spec:nth-child(3n+1):nth-last-child(-n+3),
        .link-trail__spec:nth-child(3n+2):nth-last-child(-n+2),
        .link-trail__spec:nth-child(3n):nth-last-child(-n+1) {
            border-bottom: 0;
        }
        .link-trail__spec:not(:nth-child(3n)) {
            border-right: .1rem solid var(--c-10);
        }
        .link-trail__spec dt {
            font-family: var(--link-ff-mono);
            font-size: 1.1rem;
            letter-spacing: 0.14em;
            text-transform: uppercase;
            color: color-mix(in srgb, var(--c-fg) 65%, var(--c-bg));
            margin: 0 0 .8rem;
        }
        .link-trail__spec dd {
            margin: 0;
            font-family: var(--link-ff-display);
            font-size: clamp(2rem, 2vw, 2.8rem);
            line-height: 1.25;
            color: var(--c-d);
        }

.link-trail__spec-link {
    color: inherit;
    text-decoration: underline;
    text-decoration-skip-ink: auto;
    text-underline-offset: 0.15em;
    text-decoration-thickness: .07em;
    text-decoration-color: var(--c-pri);
    white-space: nowrap;
    transition: color var(--link-dur-fast) var(--link-ease), text-decoration-color var(--link-dur-fast) var(--link-ease);
}
.link-trail__spec-link:hover,
.link-trail__spec-link:focus-visible {
    color: var(--c-pri);
    text-decoration-color: var(--c-pri);
}

.link-trail__prose {
    font-size: 1.6rem;
    line-height: 1.6;
    color: color-mix(in srgb, var(--c-fg) 82%, var(--c-bg));
}
.link-trail__prose > *:first-child { margin-top: 0; }
.link-trail__prose > *:last-child { margin-bottom: 0; }
.link-trail__prose ul,
.link-trail__prose ol { padding-left: 1.6em; }

/* $MAP-UI (controls + point popups on Mapbox maps)
--------------------------------------------------------*/
.link-map-controls,
.mapboxgl-popup.link-map-popup {
    --link-map-panel-bg: color-mix(in srgb, var(--c-d) 82%, transparent);
    --link-map-panel-border: color-mix(in srgb, var(--c-l) 16%, transparent);
    --link-map-panel-surface: color-mix(in srgb, var(--c-l) 8%, var(--c-d));
    --link-map-panel-fg: var(--c-l);
    --link-map-panel-muted: color-mix(in srgb, var(--c-l) 78%, transparent);
    --link-map-panel-tip: color-mix(in srgb, var(--c-d) 94%, transparent);
}

.link-map-controls {
    position: absolute;
    top: 1.2rem;
    right: 1.2rem;
    z-index: 4;
    display: flex;
    flex-direction: column;
    gap: .3rem;
    padding: .3rem;
    border-radius: var(--link-r-sm);
    background: var(--link-map-panel-bg);
    border: .1rem solid var(--link-map-panel-border);
    box-shadow:
        0 1rem 2.4rem -1rem color-mix(in srgb, var(--c-d) 55%, transparent),
        inset 0 .1rem 0 color-mix(in srgb, var(--c-l) 10%, transparent);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    pointer-events: none;
}
.link-map-controls__btn {
    pointer-events: auto;
    display: grid;
    place-items: center;
    width: 3.2rem;
    height: 3.2rem;
    margin: 0;
    padding: 0;
    border: .1rem solid color-mix(in srgb, var(--c-l) 14%, transparent);
    border-radius: .6rem;
    background: var(--link-map-panel-surface);
    color: var(--link-map-panel-fg);
    cursor: pointer;
    transition:
        background var(--link-dur-fast) var(--link-ease),
        border-color var(--link-dur-fast) var(--link-ease),
        color var(--link-dur-fast) var(--link-ease),
        transform var(--link-dur-fast) var(--link-ease);
}
.link-map-controls__btn:hover {
    background: var(--c-l);
    border-color: var(--c-l);
    color: var(--c-d);
    transform: translateY(-.1rem);
}
.link-map-controls__btn:active { transform: translateY(0); }
.link-map-controls__btn:focus,
.link-map-controls__btn:focus-visible {
    outline: none;
}
.link-map-controls__btn i {
    font-size: 1.15rem;
    line-height: 1;
}

.link-trail__map {
    position: relative;
    padding-block: 12rem;
    overflow: hidden;
}
    .link-trail__map-inner {
        position: relative;
        z-index: 1;
        display: grid;
        grid-template-columns: minmax(28rem, 1fr) minmax(40rem, 1.25fr);
        gap: clamp(3.2rem, 5vw, 8rem);
        align-items: center;
    }
    .link-trail__map-copy {
        display: grid;
        gap: 2.4rem;
    }
    .link-trail__map-copy .link__section-title { color: var(--c-l); }
    .link-trail__map-copy .link__btn { justify-self: start; }
    .link-trail__map-canvas {
        position: relative;
        aspect-ratio: 5 / 4;
        border-radius: var(--link-r-lg);
        overflow: hidden;
        background: linear-gradient(140deg, color-mix(in srgb, var(--c-l) 6%, var(--c-d)) 0%, color-mix(in srgb, var(--c-pri) 14%, var(--c-d)) 100%);
        box-shadow: 0 4rem 8rem -2rem color-mix(in srgb, var(--c-d) 70%, transparent);
    }
    .link-trail__map-canvas .link-map-controls { top: 1.2rem; right: 1.2rem; }
    .link-trail-map__fs-icon--exit { display: none; }
    .link-trail-map__fs-btn[aria-pressed="true"] .link-trail-map__fs-icon--enter { display: none; }
    .link-trail-map__fs-btn[aria-pressed="true"] .link-trail-map__fs-icon--exit { display: block; }
    .link-trail__map.is-fullscreen {
        min-height: min(72rem, 80vh);
    }
    .link-trail__map.is-fullscreen .link-trail__map-inner {
        position: static;
        min-height: inherit;
        height: 100%;
    }
    .link-trail__map.is-fullscreen .link-trail__map-copy {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }
    .link-trail__map.is-fullscreen .link-trail__map-canvas {
        position: absolute;
        inset: 0;
        z-index: 2;
        aspect-ratio: unset;
        width: auto;
        height: auto;
        max-width: none;
        border-radius: 0;
    }
    .link-trail__map-stage,
    .link-trail__map-stage .mapboxgl-map,
    .link-trail__map-stage .mapboxgl-canvas {
        position: absolute !important;
        inset: 0;
        width: 100% !important;
        height: 100% !important;
    }
    .link-trail__map-canvas--empty .link-trail__map-stage { opacity: 0.35; }
    .link-trail__map-empty {
        position: absolute;
        inset: 0;
        z-index: 2;
        display: flex;
        align-items: center;
        justify-content: center;
        margin: 0;
        padding: 2.4rem;
        text-align: center;
        font-family: var(--link-ff-mono);
        font-size: 1.2rem;
        letter-spacing: 0.12em;
        text-transform: uppercase;
        color: color-mix(in srgb, var(--c-l) 70%, transparent);
        pointer-events: none;
    }

/* $GALLERIES-PAGE (trail gallery grid shortcode)
--------------------------------------------------------*/
.link-galleries__grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2.4rem;
}
    .link-galleries__item {
        margin: 0;
        min-width: 0;
    }
    .link-galleries__trigger {
        display: grid;
        gap: 1.2rem;
        width: 100%;
        margin: 0;
        padding: 0;
        border: 0;
        background: none;
        text-align: left;
        font: inherit;
        color: inherit;
        cursor: zoom-in;
    }
    .link-galleries__trigger:focus-visible {
        outline: .2rem solid var(--c-pri);
        outline-offset: .4rem;
        border-radius: var(--link-r-sm);
    }
    .link-galleries__media {
        position: relative;
        display: block;
        aspect-ratio: 4 / 3;
        overflow: hidden;
        border-radius: var(--link-r-md);
        background: var(--c-05);
    }
        .link-galleries__media img {
            display: block;
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: center;
            transition: transform 1.2s var(--link-ease);
        }
        .link-galleries__trigger:hover .link-galleries__media img,
        .link-galleries__trigger:focus-visible .link-galleries__media img {
            transform: scale(1.04);
        }
        .link-galleries__count {
            position: absolute;
            right: 1.2rem;
            bottom: 1.2rem;
            padding: .6rem 1rem;
            border-radius: 999rem;
            background: color-mix(in srgb, var(--c-d) 78%, transparent);
            color: var(--c-l);
            font-family: var(--link-ff-mono);
            font-size: 1.1rem;
            letter-spacing: 0.1em;
            text-transform: uppercase;
            -webkit-backdrop-filter: blur(.8rem);
            backdrop-filter: blur(.8rem);
            pointer-events: none;
        }
    .link-galleries__title {
        display: block;
        font-family: var(--link-ff-display);
        font-size: 2rem;
        line-height: 1.1;
        font-weight: 500;
        letter-spacing: -0.02em;
        font-variation-settings: "opsz" 120, "SOFT" 50, "WONK" 0;
    }

.fancybox__caption .link-galleries__caption-trail {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: .2em;
}
    .fancybox__caption .link-galleries__caption-trail:hover,
    .fancybox__caption .link-galleries__caption-trail:focus-visible {
        color: var(--c-pri);
    }

.link-trail__gallery {
    padding-block: 12rem;
    display: grid;
    gap: 4rem;
}
    .link-trail__gallery-head {
        display: flex;
        align-items: end;
        justify-content: space-between;
        gap: 2.4rem;
    }
    .link-trail__gallery-all {
        flex-shrink: 0;
        align-self: end;
    }
    .link-trail__gallery-grid {
        list-style: none;
        margin: 0;
        padding: 0;
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: .1rem;
        background: var(--c-10);
        border: .1rem solid var(--c-10);
        border-radius: var(--link-r-md);
        overflow: hidden;
    }
        .link-trail__gallery-item {
            position: relative;
            display: block;
            aspect-ratio: 4 / 3;
            overflow: hidden;
            margin: 0;
            background: var(--c-bg);
            cursor: zoom-in;
        }
        .link-trail__gallery-item img {
            display: block;
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: center;
            transition: transform 1.2s var(--link-ease);
        }
        .link-trail__gallery-item:hover img { transform: scale(1.04); }
        .link-trail__gallery-item--hidden {
            display: none;
        }

.link-trail__access {
    padding-block: 12rem;
    background: var(--c-05);
}
    .link-trail__access-head { display: grid; gap: 2.4rem; margin-bottom: 4rem; }
    .link-trail__access-list {
        list-style: none;
        margin: 0;
        padding: 0;
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 2.4rem;
    }
        .link-trail__access-card {
            padding: 3.2rem;
            border-radius: var(--link-r-md);
            background: var(--c-bg);
            border: .1rem solid var(--c-10);
            display: grid;
            gap: 1.2rem;
        }
        .link-trail__access-name {
            font-family: var(--link-ff-display);
            font-size: clamp(2rem, 2vw, 2.8rem);
            line-height: 1.1;
            margin: 0;
        }
        .link-trail__access-meta,
        .link-trail__access-notes {
            margin: 0;
            font-size: 1.5rem;
            line-height: 1.5;
        }
        .link-trail__access-badge {
            margin: 0;
            font-family: var(--link-ff-mono);
            font-size: 1.1rem;
            letter-spacing: 0.12em;
            text-transform: uppercase;
            color: var(--c-pri);
        }

/* $TRAIL-ACCORDION
--------------------------------------------------------*/
.link-trail__spec-activities {
    margin-top: 4rem;
    display: flex;
    justify-content: center;
}
.link-trail__spec-activities .link-trail__activities {
    justify-content: center;
}
.link-trail__accordion {
    margin-block: 4rem;
    display: grid;
    gap: 0;
    border: .1rem solid var(--c-10);
    border-radius: var(--link-r-md);
    overflow: hidden;
    background: var(--c-bg);
}
.link-trail__accordion-item {
    border-bottom: .1rem solid var(--c-10);
}
.link-trail__accordion-item:last-child {
    border-bottom: 0;
}
.link-trail__accordion-trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2.4rem;
    min-height: 6.4rem;
    padding: 2.4rem 3.2rem;
    list-style: none;
    cursor: pointer;
    font-family: var(--link-ff-display);
    font-size: clamp(2rem, 2.2vw, 2.6rem);
    line-height: 1.2;
    color: var(--c-d);
    transition: background var(--link-dur-fast) var(--link-ease);
}
.link-trail__accordion-trigger::-webkit-details-marker { display: none; }
.link-trail__accordion-item:not([open]) > .link-trail__accordion-trigger:hover {
    background: color-mix(in srgb, var(--c-05) 50%, var(--c-bg));
}
.link-trail__accordion-icon {
    flex-shrink: 0;
    display: grid;
    place-items: center;
    width: 3.2rem;
    height: 3.2rem;
    font-size: 1.4rem;
    color: var(--c-pri);
    transition: transform var(--link-dur-fast) var(--link-ease);
}
.link-trail__accordion-item[open] .link-trail__accordion-icon {
    transform: rotate(45deg);
}
.link-trail__accordion-panel {
    padding: 0 3.2rem 3.2rem;
}
.link-trail__accordion-panel.link-trail__prose > * + * {
    margin-top: 1.2em;
}

/* Map markers (trail points + network preview) — LINK logo node detail */
.link-map-marker-anchor {
    --link-map-marker-size: 4.5rem;
    --link-map-marker-halo: 1.05rem;
    --link-map-marker-disc: 61%;
    display: block;
    width: var(--link-map-marker-size);
    height: var(--link-map-marker-size);
}
.link-map-marker {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
    padding: 0;
    background: transparent;
    flex-shrink: 0;
}
.link-map-marker::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: var(--link-map-marker-disc);
    height: var(--link-map-marker-disc);
    transform: translate(-50%, -50%);
    border-radius: 50%;
    box-shadow: 0 0 0 var(--link-map-marker-halo) color-mix(in srgb, var(--c-pri) 32%, transparent);
    pointer-events: none;
}
.link-map-marker__svg {
    position: relative;
    z-index: 1;
    display: block;
    width: 100%;
    height: 100%;
    overflow: visible;
    shape-rendering: geometricPrecision;
}
.link-map-marker__core { fill: var(--c-pri); }
.link-map-marker__ring { stroke: var(--c-pri); }
.link-map-point-marker {
    display: block;
    appearance: none;
    cursor: pointer;
    line-height: 0;
}
.link-map-point-marker:hover::before {
    box-shadow: 0 0 0 var(--link-map-marker-halo) color-mix(in srgb, var(--c-pri) 40%, transparent);
}
.link-map-point-marker:focus,
.link-map-point-marker:focus-visible {
    outline: none;
}

/* Map point popups */
.mapboxgl-popup.link-map-popup {
    color: var(--link-map-panel-fg);
    z-index: 6;
}
.mapboxgl-popup.link-map-popup:focus,
.mapboxgl-popup.link-map-popup .mapboxgl-popup-content:focus {
    outline: none;
}
.mapboxgl-popup.link-map-popup .mapboxgl-popup-content {
    padding: 1.6rem 4rem 1.6rem 1.6rem;
    border-radius: var(--link-r-sm);
    background: var(--link-map-panel-bg) !important;
    color: var(--link-map-panel-fg) !important;
    border: .1rem solid var(--link-map-panel-border);
    box-shadow:
        0 1rem 2.4rem -1rem color-mix(in srgb, var(--c-d) 55%, transparent),
        inset 0 .1rem 0 color-mix(in srgb, var(--c-l) 10%, transparent);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    font-size: 1.35rem;
    line-height: 1.55;
}
.mapboxgl-popup.link-map-popup .mapboxgl-popup-close-button {
    top: .5rem;
    right: .5rem;
    width: 2.8rem;
    height: 2.8rem;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    border: .1rem solid transparent;
    border-radius: .6rem;
    background: transparent;
    font-size: 0;
    line-height: 0;
    color: transparent;
    opacity: 1;
    transition:
        background var(--link-dur-fast) var(--link-ease),
        border-color var(--link-dur-fast) var(--link-ease);
}
.mapboxgl-popup.link-map-popup .mapboxgl-popup-close-button::after {
    content: "×";
    font-family: var(--link-ff-body);
    font-size: 2.2rem;
    font-weight: 300;
    line-height: 1;
    color: var(--link-map-panel-muted);
    transform: translateY(-.06rem);
    transition: color var(--link-dur-fast) var(--link-ease);
}
.mapboxgl-popup.link-map-popup .mapboxgl-popup-close-button:hover {
    background: var(--link-map-panel-surface);
    border-color: color-mix(in srgb, var(--c-l) 14%, transparent);
}
.mapboxgl-popup.link-map-popup .mapboxgl-popup-close-button:hover::after {
    color: var(--link-map-panel-fg);
}
.mapboxgl-popup.link-map-popup .mapboxgl-popup-close-button:focus,
.mapboxgl-popup.link-map-popup .mapboxgl-popup-close-button:focus-visible {
    outline: none;
}
.mapboxgl-popup.link-map-popup.mapboxgl-popup-anchor-top .mapboxgl-popup-tip {
    border-bottom-color: var(--link-map-panel-tip);
}
.mapboxgl-popup.link-map-popup.mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip {
    border-top-color: var(--link-map-panel-tip);
}
.mapboxgl-popup.link-map-popup.mapboxgl-popup-anchor-left .mapboxgl-popup-tip {
    border-right-color: var(--link-map-panel-tip);
}
.mapboxgl-popup.link-map-popup.mapboxgl-popup-anchor-right .mapboxgl-popup-tip {
    border-left-color: var(--link-map-panel-tip);
}
.link-map-popup__title {
    display: block;
    font-family: var(--link-ff-display);
    font-size: 1.7rem;
    font-weight: 500;
    line-height: 1.15;
    margin: 0 0 .6rem;
    color: var(--link-map-panel-fg);
}
.link-map-popup__body {
    color: var(--link-map-panel-muted);
}
.link-map-popup__body :where(p, li, span, div, blockquote, td, th, h1, h2, h3, h4, h5, h6, strong, em) {
    color: inherit !important;
}
.link-map-popup__body :where(a) {
    color: var(--c-pri) !important;
}
.link-map-popup__body :where(a:hover) {
    color: color-mix(in srgb, var(--c-pri) 72%, var(--c-l)) !important;
}
.link-map-popup__body > *:first-child { margin-top: 0; }
.link-map-popup__body > *:last-child { margin-bottom: 0; }
.link-map-popup__empty {
    margin: 0;
    color: var(--link-map-panel-muted);
}
.link-map-popup__directions {
    margin: .8rem 0 0;
}
.link-map-popup__directions a {
    font-family: var(--link-ff-mono);
    font-size: 1.1rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--c-pri) !important;
}
.link-map-popup__directions a:hover {
    color: color-mix(in srgb, var(--c-pri) 72%, var(--c-l)) !important;
}
.link-map-popup__directions a:focus,
.link-map-popup__directions a:focus-visible {
    outline: none;
    box-shadow: none;
}

.link-trail__cta {
    padding-block: 12rem;
    background: url(assets/img/bg-topography-d-10.svg) center / 51.2rem 51.2rem repeat scroll transparent;
    background-color: var(--c-05);
    border-top: .1rem solid var(--c-10);
}
    .link-trail__cta-inner {
        width: var(--w-md);
        margin-inline: auto;
        display: grid;
        gap: 4rem;
        text-align: center;
        justify-items: center;
    }
    .link-trail__cta-lead { margin: 0; max-width: none; }
    .link-trail__cta-actions {
        display: flex;
        flex-wrap: wrap;
        gap: 1.6rem;
        justify-content: center;
    }

.link-trail__adjacent {
    width: min(100%, var(--w-lg));
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2.4rem;
    text-align: left;
}
.link-trail__adjacent-item {
    display: grid;
    gap: 1.6rem;
    align-items: center;
    min-width: 0;
    padding: 1.6rem;
    border: .1rem solid var(--c-10);
    border-radius: var(--link-r-md);
    background: var(--c-bg);
    color: inherit;
    text-decoration: none;
    transition: border-color var(--link-dur-fast) var(--link-ease), transform var(--link-dur-fast) var(--link-ease), box-shadow var(--link-dur-fast) var(--link-ease);
}
.link-trail__adjacent-item--prev {
    grid-template-columns: auto 8rem 1fr;
}
.link-trail__adjacent-item--next {
    grid-template-columns: 1fr 8rem auto;
}
.link-trail__adjacent-item--next .link-trail__adjacent-copy {
    text-align: right;
}
.link-trail__adjacent-item:hover,
.link-trail__adjacent-item:focus-visible {
    border-color: var(--c-25);
    transform: translateY(-.2rem);
    box-shadow: 0 1.6rem 3.2rem -2.4rem color-mix(in srgb, var(--c-d) 18%, transparent);
}
.link-trail__adjacent-item--prev:only-child {
    grid-column: 1;
    max-width: calc(50% - 1.2rem);
    justify-self: start;
}
.link-trail__adjacent-item--next:only-child {
    grid-column: 2;
    max-width: calc(50% - 1.2rem);
    justify-self: end;
}
.link-trail__adjacent-media {
    display: block;
    aspect-ratio: 4 / 5;
    border-radius: var(--link-r-sm);
    overflow: hidden;
    background: var(--c-05);
}
.link-trail__adjacent-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1.2s var(--link-ease);
}
.link-trail__adjacent-item:hover .link-trail__adjacent-media img,
.link-trail__adjacent-item:focus-visible .link-trail__adjacent-media img {
    transform: scale(1.06);
}
.link-trail__adjacent-copy {
    display: grid;
    gap: .4rem;
    min-width: 0;
}
.link-trail__adjacent-label {
    font-family: var(--link-ff-mono);
    font-size: 1.1rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: color-mix(in srgb, var(--c-fg) 65%, var(--c-bg));
}
.link-trail__adjacent-title {
    font-family: var(--link-ff-display);
    font-size: clamp(2rem, 2vw, 2.4rem);
    line-height: 1.05;
    color: var(--c-d);
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}
.link-trail__adjacent-meta {
    font-family: var(--link-ff-mono);
    font-size: 1.1rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: color-mix(in srgb, var(--c-fg) 65%, var(--c-bg));
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.link-trail__adjacent-arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 4rem;
    height: 4rem;
    border-radius: 999rem;
    border: .1rem solid var(--c-25);
    color: var(--c-fg);
    flex-shrink: 0;
    transition: background var(--link-dur-fast) var(--link-ease), border-color var(--link-dur-fast) var(--link-ease), color var(--link-dur-fast) var(--link-ease);
}
.link-trail__adjacent-item:hover .link-trail__adjacent-arrow,
.link-trail__adjacent-item:focus-visible .link-trail__adjacent-arrow {
    background: var(--c-pri);
    border-color: var(--c-pri);
    color: var(--c-l);
}

@media only screen and (max-width: 768px) {
    .link-trail__adjacent {
        grid-template-columns: 1fr;
    }
    .link-trail__adjacent-item--prev:only-child,
    .link-trail__adjacent-item--next:only-child {
        grid-column: 1;
        max-width: none;
        justify-self: stretch;
    }
}

@media only screen and (max-width: 1024px) {
    .link-trail__spec-grid { grid-template-columns: repeat(2, 1fr); }
    .link-trail__spec:not(:nth-child(3n)) {
        border-right: 0;
    }
    .link-trail__spec:not(:nth-child(2n)) {
        border-right: .1rem solid var(--c-10);
    }
    .link-trail__spec:nth-child(3n+1):nth-last-child(-n+3),
    .link-trail__spec:nth-child(3n+2):nth-last-child(-n+2),
    .link-trail__spec:nth-child(3n):nth-last-child(-n+1) {
        border-bottom: .1rem solid var(--c-10);
    }
    .link-trail__spec:nth-child(2n+1):nth-last-child(-n+2),
    .link-trail__spec:nth-child(2n):nth-last-child(-n+1) {
        border-bottom: 0;
    }
    .link-trail__map-inner { grid-template-columns: 1fr; }
    .link-trail__gallery-grid { grid-template-columns: repeat(2, 1fr); }
    .link-trail__gallery-head { flex-direction: column; align-items: start; }
}

@media only screen and (max-width: 768px) {
    .link-trail__quick-specs { display: grid; grid-template-columns: 1fr 1fr; }
    .link-trail__spec-grid,
    .link-trail__access-list,
    .link-trail__gallery-grid { grid-template-columns: 1fr; }
    .link-trail__spec:not(:nth-child(2n)) {
        border-right: 0;
    }
    .link-trail__spec:nth-child(3n+1):nth-last-child(-n+3),
    .link-trail__spec:nth-child(3n+2):nth-last-child(-n+2),
    .link-trail__spec:nth-child(3n):nth-last-child(-n+1) {
        border-bottom: .1rem solid var(--c-10);
    }
    .link-trail__spec:nth-child(2n+1):nth-last-child(-n+2),
    .link-trail__spec:nth-child(2n):nth-last-child(-n+1) {
        border-bottom: .1rem solid var(--c-10);
    }
    .link-trail__spec:last-child {
        border-bottom: 0;
    }
}
