:root {
    --kf-blue: #6fa0b4;
    --kf-blue-strong: #4f879e;
    --kf-ink: #071313;
    --kf-ink-2: #0b1d1f;
    --kf-deep: #071313;
    --kf-paper: #f6f8f6;
    --kf-soft: #e5f0f3;
    --kf-accent: #d79623;
    --kf-line: rgba(255, 255, 255, .14);
    --kf-text: #0d191b;
    --kf-muted: #627276;
    --kf-radius: 8px;
    --kf-home-section-space: clamp(64px, 7vw, 100px);
}

/* Visual QA pass: mobile rhythm, readable kickers, cards and empty states */
.eyebrow,
.section-heading > span,
.shop-section-heading .eyebrow,
.lakes-map-shell__intro .eyebrow,
.news-archive__hero .eyebrow,
.gallery-hero .eyebrow,
.beginner-hub__hero .eyebrow,
.stores-hero .eyebrow,
.links-hero .eyebrow,
.polls-hero .eyebrow,
.competitions-hero .eyebrow,
.gear-section__header > span,
.buddy-section .eyebrow,
.store-submission .eyebrow {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    max-width: 100%;
    min-height: 36px;
    padding: 8px 14px;
    border-radius: 999px;
    border: 1px solid rgba(111, 160, 180, .34);
    background: #e5f0f3;
    color: #0b2d3a !important;
    font-family: Outfit, Inter, system-ui, sans-serif;
    font-size: 13px;
    font-weight: 900;
    line-height: 1.1;
    text-transform: uppercase;
    letter-spacing: 0;
}

.kf-section--dark .eyebrow,
section[class*="--dark"] .eyebrow,
.hero .eyebrow,
.about-hero .eyebrow,
.lakes-hero .eyebrow,
.news-archive__hero .eyebrow,
.competition-detail__hero .eyebrow,
.shop-hero .eyebrow,
.gear-section--dark .gear-section__header > span,
.buddy-form-section .eyebrow {
    background: rgba(229, 240, 243, .14);
    border-color: rgba(229, 240, 243, .28);
    color: #e7f8ff !important;
}

.front-news-card,
.featured-guide-card,
.beginner-guide-card,
.shop-card,
.partner-card,
.competition-card,
.events-archive-card,
.poll-card,
.store-card,
.link-card,
.longtail-lake-card {
    min-height: 100%;
}

.front-news-card__image,
.featured-guide-card__image,
.beginner-guide-card__media,
.shop-card__media,
.partner-card__media,
.home-partner-card__media,
.competition-card__media,
.events-archive-card__media,
.poll-card__media,
.gallery-card__media,
.store-card__media {
    overflow: hidden;
    background: #0b1d1f;
}

.front-news-card__image img,
.featured-guide-card__image img,
.beginner-guide-card img,
.shop-card__media img,
.partner-card__media > img,
.home-partner-card__media > img,
.competition-card__media img,
.events-archive-card__media img,
.poll-card__media img,
.gallery-card img,
.store-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
}

.front-news-card__body,
.featured-guide-card__body,
.shop-card__body,
.beginner-guide-card,
.competition-card__body,
.events-archive-card__body,
.poll-card__body,
.store-card__body,
.link-card {
    min-width: 0;
}

.lakes-empty,
.gallery-empty,
.partners-empty,
.links-empty,
.links-empty--page,
.poll-empty,
.stores-empty,
.competitions-empty,
.shop-empty,
.search-empty,
.buddy-empty,
.gear-section__empty {
    border: 1px dashed rgba(111, 160, 180, .34);
    border-radius: 10px;
    background: linear-gradient(145deg, rgba(229, 240, 243, .72), rgba(255, 255, 255, .9));
    color: #071313;
    padding: clamp(28px, 5vw, 56px);
    text-align: center;
}

.lakes-empty h2,
.gallery-empty h2,
.partners-empty h2,
.links-empty h2,
.links-empty--page h2,
.poll-empty h2,
.stores-empty h2,
.competitions-empty h2,
.shop-empty h2,
.search-empty h2,
.buddy-empty h2,
.gear-section__empty h2 {
    color: #071313;
    margin-top: 0;
}

.lakes-empty p,
.gallery-empty p,
.partners-empty p,
.links-empty p,
.links-empty--page p,
.poll-empty p,
.stores-empty p,
.competitions-empty p,
.shop-empty p,
.search-empty p,
.buddy-empty p,
.gear-section__empty p {
    color: #506266;
    margin-inline: auto;
    max-width: 680px;
}

.lakes-list,
.stores-list,
.news-archive__grid,
.shop-grid,
.gallery-grid,
.links-grid,
.poll-grid,
.competitions-grid,
.beginner-guide-grid {
    align-items: stretch;
}

.lake-card,
.store-card,
.front-news-card,
.shop-card,
.beginner-guide-card {
    display: flex;
    flex-direction: column;
}

.lake-card .btn,
.store-card .btn,
.shop-card__actions,
.front-news-card__footer,
.beginner-guide-card__link {
    margin-top: auto;
}

@media (max-width: 900px) {
    :root {
        --kf-home-section-space: clamp(42px, 9vw, 64px);
        --kf-section-space: clamp(42px, 9vw, 64px);
    }

    .container {
        width: min(100%, 720px);
        padding-inline: 18px;
    }

    .section-heading,
    .section-heading--split,
    .shop-section-heading {
        gap: 14px;
        margin-bottom: 22px;
    }

    .section-heading h2,
    .section-heading h3,
    .shop-section-heading h2,
    .lakes-map-shell__intro h2,
    .news-archive__hero h1,
    .gallery-hero h1,
    .beginner-hub__hero h1,
    .stores-hero h1,
    .links-hero h1,
    .polls-hero h1,
    .competitions-hero h1,
    .shop-hero h1 {
        font-size: clamp(34px, 9vw, 48px);
        line-height: 1.02;
    }

    .front-news-card__image,
    .featured-guide-card__image,
    .beginner-guide-card__media,
    .shop-card__media,
    .competition-card__media,
    .events-archive-card__media,
    .poll-card__media {
        aspect-ratio: 1.35 / .82;
    }
}

@media (max-width: 620px) {
    .eyebrow,
    .section-heading > span,
    .shop-section-heading .eyebrow {
        min-height: 32px;
        padding: 7px 11px;
        font-size: 12px;
    }

    .lakes-empty,
    .gallery-empty,
    .partners-empty,
    .links-empty,
    .poll-empty,
    .stores-empty,
    .competitions-empty,
    .shop-empty,
    .search-empty,
    .buddy-empty {
        padding: 24px 18px;
    }

    .shop-card__actions,
    .front-news-card__footer {
        align-items: stretch;
        flex-direction: column;
    }
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color: var(--kf-text);
    background: var(--kf-paper);
}

h1,
h2,
h3,
h4,
.brand-copy strong,
.topnav__link,
.btn {
    font-family: Outfit, Inter, system-ui, sans-serif;
    letter-spacing: 0;
}
.topnav__link_hookup { Color: #6EA0B4; }
h2,
h3 {
    color: #071313;
    line-height: 1.05;
}

p {
    line-height: 1.7;
}

.container {
    width: min(1180px, 100%);
    padding-inline: clamp(16px, 4vw, 28px);
}

.site-header {
    position: sticky;
    top: 0;
    z-index: 1200;
    background: var(--kf-ink);
    border-bottom: 1px solid transparent;
    box-shadow: none;
    transition: background-color .24s ease, border-color .24s ease, box-shadow .24s ease;
}

.nav {
    min-height: 76px;
    padding: 10px 0;
    border-bottom: 1px solid rgba(255, 255, 255, .18);
    transition: border-color .24s ease;
}

.site-header.is-scrolled {
    background: rgba(7, 19, 19, .98);
    border-bottom-color: rgba(255, 255, 255, .18);
    box-shadow: 0 14px 32px rgba(0, 0, 0, .2);
}

.site-header.is-scrolled .nav {
    border-bottom-color: transparent;
}

.brand-link {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: #fff;
    text-decoration: none;
}

.brand img {
    height: 46px;
    width: auto;
    filter: drop-shadow(0 8px 18px rgba(0, 0, 0, .35));
}

.brand h1 {
    display: none;
}

.brand-copy {
    display: grid;
    gap: 2px;
}

.brand-copy strong {
    color: #fff;
    font-size: clamp(20px, 2vw, 26px);
    font-weight: 800;
    line-height: 1;
}

.brand-copy small {
    color: rgba(255, 255, 255, .64);
    font-size: 12px;
    font-weight: 700;
}

.topnav__list {
    align-items: center;
    gap: 4px;
}

.topnav {
    position: static;
    top: auto;
    flex: 1;
    justify-content: flex-end;
    background: transparent;
    border: 0;
    padding: 0;
}

.topnav__link {
    color: rgba(255, 255, 255, .86);
    border-radius: 999px;
    padding: 11px 14px;
    font-family: Outfit, Inter, system-ui, sans-serif;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
}

.topnav button.topnav__link {
    appearance: none;
    margin: 0;
    border: 0;
    background: transparent;
    color: rgba(255, 255, 255, .86);
    font-family: Outfit, Inter, system-ui, sans-serif;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.2;
    cursor: pointer;
}

.topnav__link:hover,
.topnav__item:focus-within > .topnav__link,
.topnav button.topnav__link:hover {
    color: #fff;
    background: rgba(255, 255, 255, .08);
    transform: none;
}

.topnav__link::after {
    display: none;
}

.topnav__submenu {
    background: #fff;
    border: 1px solid rgba(7, 19, 19, .08);
    border-radius: var(--kf-radius);
    box-shadow: 0 22px 60px rgba(0, 0, 0, .22);
    padding: 8px;
}

.topnav__submenu a {
    border-radius: 6px;
    color: #102326;
}

.topnav__submenu a:hover {
    background: var(--kf-soft);
    color: #071313;
}

.topnav__shop {
    color: #d8eef5;
}

.topnav__cta {
    background: var(--kf-blue);
    color: #fff;
    border: 1px solid rgba(255, 255, 255, .18);
    box-shadow: inset 0 -2px 0 rgba(0, 0, 0, .1);
}

.topnav__cta:hover {
    background: var(--kf-blue-strong);
}

.hero {
    min-height: 650px;
    display: grid;
    align-items: center;
    background:
        radial-gradient(circle at 9% 18%, rgba(111, 160, 180, .25), transparent 28%),
        linear-gradient(90deg, rgba(7, 19, 19, .94), rgba(7, 19, 19, .78)),
        var(--kf-hero-image, url('../images/hero-bg2-optimized.jpg')) center center / cover no-repeat;
    color: #fff;
    overflow: hidden;
}

.hero::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        repeating-radial-gradient(circle at 0 25%, transparent 0 23px, rgba(255, 255, 255, .055) 24px, transparent 25px),
        repeating-radial-gradient(circle at 100% 85%, transparent 0 28px, rgba(111, 160, 180, .16) 29px, transparent 30px);
    opacity: .55;
}

.hero::after {
    background: linear-gradient(180deg, transparent, rgba(7, 19, 19, .08));
}

.hero .hero-inner {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(300px, .56fr);
    gap: clamp(28px, 6vw, 72px);
    align-items: center;
}

.hero-copy {
    max-width: 760px;
}

.eyebrow,
.pill {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    min-height: 28px;
    background: rgba(229, 240, 243, .92);
    color: #153134;
    border: 1px solid rgba(111, 160, 180, .22);
    border-radius: 999px;
    padding: 5px 12px;
    font-size: 13px;
    font-weight: 800;
}

.hero h2 {
    max-width: 850px;
    margin: 18px 0 18px;
    color: #fff;
    font-size: clamp(42px, 6.8vw, 86px);
    font-weight: 800;
    line-height: .98;
}

.hero p {
    max-width: 650px;
    color: rgba(255, 255, 255, .78);
    font-size: clamp(17px, 1.6vw, 21px);
}

.hero-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: center;
    gap: 12px;
    width: min(100%, 480px);
    margin-top: 28px;
}

.hero-actions > .btn,
.hero-actions .subs-btn {
    width: 100%;
    min-width: 0;
    height: 54px;
    min-height: 54px;
    padding: 0 18px;
    font-family: Outfit, Inter, system-ui, sans-serif;
    font-size: 15px;
    font-weight: 800;
    line-height: 1;
    white-space: nowrap;
}

.yt-header-buttons {
    display: contents;
}

.btn,
.hero .btn,
.hero .btn.alt,
.news-actions .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 46px;
    border: 0;
    border-radius: 999px;
    background: var(--kf-blue);
    color: #fff;
    padding: 12px 20px;
    font-weight: 800;
    box-shadow: none;
}

.btn::after,
.hero .btn::after,
.news-actions .btn::after {
    content: "↗";
    display: inline-grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .9);
    color: var(--kf-blue-strong);
    font-family: Inter, sans-serif;
}

.btn:hover {
    background: var(--kf-blue-strong);
    opacity: 1;
}

.btn.ghost,
.hero .btn.ghost {
    background: transparent;
    border: 2px solid rgba(255, 255, 255, .72);
    color: #fff;
}

.subs-btn {
    border-radius: 999px;
    background: rgba(255, 255, 255, .12);
    border: 2px solid rgba(255, 255, 255, .72);
    color: #fff;
    opacity: 1;
}

.hero-tip-card {
    position: relative;
    overflow: hidden;
    min-height: 340px;
    display: grid;
    align-content: space-between;
    gap: 32px;
    padding: clamp(24px, 3vw, 36px);
    background: rgba(9, 27, 29, .88);
    border: 1px solid rgba(181, 222, 232, .22);
    border-radius: var(--kf-radius);
    box-shadow: 0 30px 90px rgba(0, 0, 0, .36);
    backdrop-filter: blur(14px);
}

.hero-tip-card::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    background: var(--kf-blue);
}

.hero-tip-card::after {
    content: "";
    position: absolute;
    width: 180px;
    height: 180px;
    right: -90px;
    top: -95px;
    border: 1px solid rgba(181, 222, 232, .13);
    border-radius: 50%;
    box-shadow: 0 0 0 24px rgba(181, 222, 232, .035);
}

.hero-tip-card__top,
.hero-tip-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.hero-tip-card__top {
    justify-content: flex-start;
}

.hero-tip-card__day {
    display: grid;
    place-items: center;
    width: 58px;
    height: 58px;
    flex: 0 0 58px;
    border-radius: 50%;
    background: var(--kf-blue);
    color: #fff;
    font-family: Outfit, Inter, system-ui, sans-serif;
    font-size: 22px;
    font-weight: 800;
}

.hero-tip-card__top > div {
    display: grid;
    gap: 2px;
}

.hero-tip-card__label {
    color: #fff;
    font-family: Outfit, Inter, system-ui, sans-serif;
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
}

.hero-tip-card time {
    color: rgba(255, 255, 255, .52);
    font-size: 12px;
    font-weight: 700;
}

.hero-tip-card h4 {
    margin: 0 0 14px;
    color: #fff;
    font-size: clamp(27px, 3vw, 38px);
    line-height: 1.05;
}

.hero-tip-card p,
.hero-tip-card__text {
    margin: 0;
    color: rgba(255, 255, 255, .72);
    font-size: 16px;
    line-height: 1.65;
}

.richtext-content > :first-child { margin-top: 0; }
.richtext-content > :last-child { margin-bottom: 0; }
.richtext-content p { margin: 0 0 1em; }
.richtext-content h2, .richtext-content h3 { margin: 1.25em 0 .55em; }
.richtext-content ul, .richtext-content ol { margin: .8em 0 1em; padding-left: 1.5em; }
.richtext-content blockquote {
    margin: 1em 0; padding: .8em 1em; border-left: 3px solid var(--kf-blue);
    background: rgba(111, 160, 180, .09);
}
.richtext-content a { color: var(--kf-blue-strong); text-decoration: underline; }
.richtext-content img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
}
.richtext-content .rt-image--left {
    float: left;
    width: min(330px, 48%);
    margin: .35em 1.25em 1em 0;
}
.richtext-content .rt-image--right {
    float: right;
    width: min(330px, 48%);
    margin: .35em 0 1em 1.25em;
}
.richtext-content .rt-image--center {
    display: block;
    width: min(720px, 100%);
    margin: 1.35em auto;
}
.richtext-content .rt-image--full {
    display: block;
    width: 100%;
    margin: 1.35em 0;
}
.richtext-content::after {
    content: "";
    display: table;
    clear: both;
}

.site-breadcrumbs {
    padding: 16px 0;
    border-bottom: 1px solid rgba(7, 19, 19, .08);
    background: #eaf2f1;
}

.site-breadcrumbs ol {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin: 0;
    padding: 0;
    list-style: none;
}

.site-breadcrumbs .container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.site-breadcrumbs li {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #48605c;
    font-size: 13px;
    font-weight: 850;
}

.site-breadcrumbs li + li::before {
    color: rgba(7, 19, 19, .28);
    content: "/";
}

.site-breadcrumbs a {
    color: #102321;
    text-decoration: none;
}

.site-breadcrumbs span {
    color: #6fa0b4;
}

@media (max-width: 640px) {
    .site-breadcrumbs .container { align-items: flex-start; }
    .site-breadcrumbs ol { min-width: 0; }
}

.longtail-hero {
    padding: 92px 0 74px;
    background: #071313;
    color: #fff;
}

.longtail-hero__layout {
    display: grid;
    grid-template-columns: minmax(0, .95fr) minmax(320px, .75fr);
    gap: clamp(28px, 6vw, 84px);
    align-items: end;
}

.longtail-hero h1 {
    margin: 10px 0 0;
    color: #fff;
    font-size: clamp(48px, 7vw, 92px);
    line-height: .92;
}

.longtail-hero p {
    margin: 0;
    color: rgba(236,246,244,.76);
    font-size: 18px;
}

.longtail-content {
    background: #eaf2f1;
}

.longtail-layout {
    display: grid;
    grid-template-columns: minmax(280px, .72fr) minmax(0, 1fr);
    gap: clamp(24px, 5vw, 62px);
    align-items: start;
}

.longtail-copy {
    position: sticky;
    top: 110px;
}

.longtail-copy h2 {
    margin: 0 0 14px;
    color: #102321;
    font-size: clamp(34px, 4vw, 58px);
    line-height: 1;
}

.longtail-copy p {
    color: #48605c;
    font-weight: 750;
}

.longtail-card-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.longtail-lake-card {
    display: grid;
    gap: 8px;
    min-height: 190px;
    padding: 22px;
    border: 1px solid rgba(7,19,19,.1);
    border-radius: 8px;
    background: #fff;
    color: #102321;
    box-shadow: 0 18px 42px rgba(7,19,19,.07);
}

.longtail-lake-card span {
    width: fit-content;
    padding: 5px 8px;
    border-radius: 999px;
    background: #d9ebe6;
    color: #24433e;
    font-size: 11px;
    font-weight: 950;
    text-transform: uppercase;
}

.longtail-lake-card strong {
    font-family: var(--kf-display);
    font-size: 28px;
    line-height: 1;
}

.longtail-lake-card small {
    color: #48605c;
    font-weight: 800;
}

.longtail-lake-card b {
    align-self: end;
    color: #c88b23;
    font: 950 24px/1 Outfit, Inter, sans-serif;
}
.hero-tip-card .richtext-content a { color: #bfe2ee; }

.hero-tip-card__footer {
    padding-top: 18px;
    border-top: 1px solid rgba(255, 255, 255, .11);
    color: rgba(255, 255, 255, .52);
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
}

section {
    background: var(--kf-paper);
    padding: clamp(58px, 7vw, 100px) 0;
}

section:nth-of-type(even) {
    background: #fff;
}

#video h3,
section h3,
#nearby-lakes h2 {
    font-size: clamp(32px, 4vw, 54px);
    margin-bottom: 26px;
}

.section-heading {
    max-width: 760px;
    margin: 0 auto 32px;
    text-align: center;
}

.section-heading h3,
.section-heading h2 {
    margin: 12px 0 0;
}

.section-heading p {
    color: var(--kf-muted);
    margin: 12px 0 0;
}

.section-heading--split {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(280px, .7fr);
    align-items: end;
    gap: 28px;
    max-width: none;
    text-align: left;
}

body section.video-feature {
    padding-block: var(--kf-home-section-space);
    background: var(--kf-paper);
}

.video-feature__heading {
    margin-bottom: 38px;
}

.video-feature__heading h2 {
    margin: 14px 0 0;
    font-size: clamp(32px, 4vw, 54px);
    line-height: .98;
}

.video-feature__heading p {
    margin: 0;
    color: var(--kf-muted);
    font-size: 18px;
}

.video-frame {
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: var(--kf-radius);
    background: var(--kf-ink);
    border: 1px solid rgba(7, 19, 19, .1);
    box-shadow: 0 26px 72px rgba(7, 19, 19, .18);
}

.video-frame iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

body section.fish-counter {
    padding-block: clamp(54px, 7vw, 92px);
    background: var(--kf-ink);
    color: #fff;
}

body section.home-test-hero {
    padding-block: clamp(92px, 11vw, 150px);
    background:
        linear-gradient(90deg, rgba(7, 19, 19, .97), rgba(7, 19, 19, .86)),
        var(--kf-home-hero-image, url("../img/generated/kristianfisker-hero-put-and-take-2400x900-2026-06-22.jpg")) center/cover no-repeat;
    color: #fff;
}

.home-test-hero__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 420px);
    gap: clamp(30px, 6vw, 82px);
    align-items: center;
}

.home-test-hero__copy {
    max-width: 850px;
}

.home-test-hero h1 {
    max-width: 940px;
    margin: 14px 0 22px;
    color: #fff;
    font: 950 clamp(48px, 7vw, 96px)/.88 Outfit, Inter, sans-serif;
}

.home-test-hero p {
    max-width: 650px;
    margin: 0;
    color: rgba(236, 246, 244, .78);
    font-size: clamp(18px, 2vw, 22px);
    line-height: 1.65;
}

.home-test-hero__actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    width: min(100%, 560px);
    margin-top: 34px;
}

.home-test-hero__actions .btn,
.home-test-subs {
    width: 100%;
    min-height: 54px;
}

.home-test-subs {
    border: 1px solid rgba(255, 255, 255, .28);
    background: rgba(255, 255, 255, .08);
    color: #fff;
    font-family: Outfit, Inter, system-ui, sans-serif;
    font-size: 15px;
    font-weight: 900;
}

.btn--ghost-light {
    border: 1px solid rgba(255, 255, 255, .28);
    background: rgba(255, 255, 255, .06);
    color: #fff !important;
}

.home-test-hero__panel {
    display: grid;
    gap: 12px;
    padding: clamp(18px, 3vw, 28px);
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 8px;
    background: rgba(7, 19, 19, .72);
    box-shadow: 0 28px 80px rgba(0, 0, 0, .28);
    backdrop-filter: blur(14px);
}

.home-test-hero__panel div {
    display: grid;
    gap: 8px;
    padding: 18px;
    border-radius: 8px;
    background: rgba(255, 255, 255, .07);
}

.home-test-hero__panel span,
.home-test-choice span,
.home-test-activity-card span,
.home-test-proof__stats span {
    color: var(--kf-accent);
    font-size: 12px;
    font-weight: 950;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.home-test-hero__panel strong {
    color: #fff;
    font-size: clamp(22px, 3vw, 34px);
    line-height: 1.05;
}

body section.home-test-start,
body section.home-test-activity {
    padding-block: var(--kf-home-section-space);
    background: var(--kf-paper);
}

body section.home-test-activity--dark {
    background: var(--kf-ink);
    color: #fff;
}

.home-test-activity--dark .section-heading h2 {
    color: #fff;
}

.home-test-activity--dark .section-heading p {
    color: rgba(236, 246, 244, .74);
}

.home-test-activity--dark .home-test-activity-card {
    border-color: rgba(255, 255, 255, .14);
    background: linear-gradient(180deg, rgba(255, 255, 255, .09), rgba(255, 255, 255, .045));
    box-shadow: 0 24px 70px rgba(0, 0, 0, .22);
}

.home-test-activity--dark .home-test-activity-card strong {
    color: #fff;
}

.home-test-activity--dark .home-test-activity-card p {
    color: rgba(236, 246, 244, .72);
}

.home-test-activity--dark .home-test-activity-card:hover {
    border-color: rgba(139, 201, 176, .45);
    box-shadow: 0 28px 76px rgba(0, 0, 0, .3);
}

.home-test-choice-grid,
.home-test-activity-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.home-test-choice-grid--four {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.home-test-choice,
.home-test-activity-card {
    display: grid;
    gap: 14px;
    min-height: 100%;
    padding: clamp(22px, 3vw, 34px);
    border: 1px solid rgba(7, 19, 19, .1);
    border-radius: 8px;
    background: #fff;
    color: var(--kf-ink);
    text-decoration: none;
    box-shadow: 0 20px 54px rgba(7, 19, 19, .08);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.home-test-choice:hover,
.home-test-activity-card:hover {
    transform: translateY(-4px);
    border-color: rgba(111, 160, 180, .42);
    box-shadow: 0 28px 68px rgba(7, 19, 19, .12);
}

.home-test-choice strong,
.home-test-activity-card strong {
    color: var(--kf-ink);
    font: 950 clamp(24px, 3vw, 38px)/1 Outfit, Inter, sans-serif;
}

.home-test-choice p,
.home-test-activity-card p {
    margin: 0;
    color: var(--kf-muted);
    line-height: 1.65;
}

body section.home-test-personal,
body section.home-test-proof {
    padding-block: var(--kf-home-section-space);
    background: var(--kf-ink);
    color: #fff;
}

.home-test-personal__layout,
.home-test-proof__layout {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(320px, .8fr);
    gap: clamp(30px, 6vw, 86px);
    align-items: center;
}

.home-test-personal h2,
.home-test-proof h2 {
    max-width: 740px;
    margin: 12px 0 18px;
    color: #fff;
    font-size: clamp(42px, 6vw, 76px);
    line-height: .96;
}

.home-test-personal p,
.home-test-proof p {
    max-width: 620px;
    margin: 0 0 28px;
    color: rgba(236, 246, 244, .76);
    font-size: 18px;
    line-height: 1.75;
}

.home-test-personal__image {
    overflow: hidden;
    border-radius: 8px;
    border: 1px solid rgba(255, 255, 255, .14);
    background: rgba(255, 255, 255, .06);
    box-shadow: 0 28px 70px rgba(0, 0, 0, .24);
}

.home-test-personal__image img {
    width: 100%;
    min-height: 420px;
    object-fit: cover;
}

.home-test-activity-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    align-items: stretch;
}

.home-test-activity-grid--compact {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.home-test-activity-card {
    min-width: 0;
    overflow: hidden;
    padding: clamp(22px, 2.2vw, 30px);
}

.home-test-activity-card strong {
    display: -webkit-box;
    overflow: hidden;
    overflow-wrap: anywhere;
    word-break: normal;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    font-size: clamp(28px, 2.55vw, 44px);
    line-height: 1.02;
}

.home-test-activity-card p {
    display: -webkit-box;
    overflow: hidden;
    overflow-wrap: anywhere;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
}

.home-test-activity-card--dark {
    background: var(--kf-ink);
    color: #fff;
}

.home-test-activity-card--dark strong {
    color: #fff;
}

.home-test-activity-card--dark p {
    color: rgba(236, 246, 244, .74);
}

.home-test-proof__stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.home-test-proof__stats article {
    position: relative;
    overflow: hidden;
    display: grid;
    place-items: center;
    gap: 14px;
    min-height: 170px;
    padding: 20px;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 8px;
    background: linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.035));
    text-align: center;
}

.home-test-proof__stats article::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: .92;
    pointer-events: none;
}

.home-test-proof__stat > * {
    position: relative;
    z-index: 1;
}

.home-test-proof__stat--caught::before {
    background:
        radial-gradient(circle at 25% 20%, rgba(139, 201, 176, .38), transparent 48%),
        linear-gradient(135deg, rgba(47, 155, 88, .28), rgba(255, 255, 255, .035));
}

.home-test-proof__stat--lost::before {
    background:
        radial-gradient(circle at 25% 20%, rgba(240, 201, 79, .38), transparent 48%),
        linear-gradient(135deg, rgba(240, 201, 79, .26), rgba(255, 255, 255, .035));
}

.home-test-proof__stat--blank::before {
    background:
        radial-gradient(circle at 25% 20%, rgba(239, 111, 103, .35), transparent 48%),
        linear-gradient(135deg, rgba(239, 111, 103, .24), rgba(255, 255, 255, .035));
}

.home-test-proof__stats strong {
    color: #fff;
    font: 950 clamp(44px, 6vw, 76px)/1 Outfit, Inter, sans-serif;
}

.fish-counter__layout {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(360px, 1fr);
    gap: clamp(28px, 5vw, 72px);
    align-items: center;
}

.fish-counter__intro h2 {
    margin: 12px 0 18px;
    max-width: 760px;
    color: #fff;
    font-size: clamp(42px, 6vw, 72px);
    line-height: .96;
}

.fish-counter__intro p {
    max-width: 620px;
    margin: 0;
    color: rgba(236, 246, 244, .74);
    font-size: 18px;
}

.fish-counter__stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.fish-counter__stats article {
    min-height: 168px;
    display: grid;
    align-content: center;
    justify-items: center;
    gap: 18px;
    text-align: center;
    padding: 20px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 8px;
    background: linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.035));
}

.fish-counter__stats article.fish-counter__blank {
    border-color: rgba(214, 103, 92, .26);
    background:
        linear-gradient(180deg, rgba(214, 103, 92, .16), rgba(214, 103, 92, .055)),
        linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.025));
}

.fish-counter__blank strong {
    color: #ffd8d2;
}

.fish-counter__stats span {
    color: rgba(236, 246, 244, .72);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.fish-counter__stats strong {
    color: #fff;
    font-family: Outfit, Inter, sans-serif;
    font-size: clamp(42px, 6vw, 72px);
    line-height: 1;
}

body section.video-picks {
    padding-block: var(--kf-home-section-space);
    background: var(--kf-ink);
    color: #fff;
}

.video-picks .section-heading h3 {
    color: #fff;
}

.video-picks .section-heading p {
    color: rgba(255, 255, 255, .68);
}

.card,
.news-item,
.related-card,
.tip-card,
.tilmelding-card {
    border: 1px solid rgba(7, 19, 19, .08);
    border-radius: var(--kf-radius);
    background: #fff;
    box-shadow: 0 16px 44px rgba(7, 19, 19, .08);
    overflow: hidden;
}

.card .pad,
.pad {
    padding: clamp(18px, 3vw, 32px);
}

.related-grid {
    gap: 28px;
}

.related-card,
.video-card {
    display: grid;
    grid-template-rows: auto 1fr;
    height: 100%;
    transition: transform .18s ease, box-shadow .18s ease;
}

.related-card:hover,
.video-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 24px 54px rgba(7, 19, 19, .14);
}

.related-thumb {
    background: var(--kf-soft);
}

.related-stats {
    color: #102326;
    padding: 18px 22px 24px;
    margin: 0;
    font-family: Outfit, Inter, sans-serif;
}

.video-card {
    background: #eef6f8;
}

.video-card .related-thumb::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 48%, rgba(7, 19, 19, .66));
}

.video-play {
    position: absolute;
    right: 16px;
    bottom: 16px;
    z-index: 1;
    display: grid;
    place-items: center;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: #fff;
    color: var(--kf-blue-strong);
    font-size: 18px;
    box-shadow: 0 16px 34px rgba(0, 0, 0, .24);
}

.video-card__body {
    display: grid;
    grid-template-rows: auto 1fr auto;
    gap: 10px;
    text-align: left;
}

.video-card__body h4 {
    margin: 0;
    font-size: clamp(18px, 2vw, 24px);
}

.video-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    min-height: 34px;
    padding-top: 14px;
    border-top: 1px solid rgba(7, 19, 19, .1);
    color: #627276;
    font-size: 13px;
    font-weight: 700;
}

.video-card__link {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--kf-blue-strong);
    font-weight: 800;
    white-space: nowrap;
}

.video-card__link b {
    display: grid;
    place-items: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: rgba(111, 160, 180, .18);
}

body section.front-news {
    padding-block: var(--kf-home-section-space);
    background: var(--kf-paper);
}

body section.featured-guides {
    padding-block: var(--kf-home-section-space);
    background: var(--kf-paper);
    color: var(--kf-ink);
}

.featured-guides__heading {
    margin-bottom: clamp(28px, 4vw, 46px);
}

.featured-guides__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(18px, 2vw, 28px);
}

.featured-guide-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow: hidden;
    border: 1px solid rgba(8, 25, 27, .12);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 20px 54px rgba(5, 18, 19, .08);
}

.featured-guide-card__image {
    position: relative;
    display: block;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    color: #fff;
}

.featured-guide-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .35s ease;
}

.featured-guide-card:hover .featured-guide-card__image img {
    transform: scale(1.045);
}

.featured-guide-card__image span {
    position: absolute;
    right: 18px;
    bottom: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 0 18px;
    border-radius: 999px;
    background: rgba(7, 19, 19, .88);
    color: #fff;
    font-size: .78rem;
    font-weight: 900;
    text-transform: uppercase;
}

.featured-guide-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 12px;
    padding: clamp(22px, 3vw, 30px);
}

.featured-guide-card__body > span {
    color: var(--kf-primary-strong);
    font-size: .78rem;
    font-weight: 900;
    text-transform: uppercase;
}

.featured-guide-card h3 {
    margin: 0;
    font-size: clamp(1.35rem, 2.2vw, 2rem);
    line-height: 1.06;
}

.featured-guide-card h3 a {
    color: inherit;
    text-decoration: none;
}

.featured-guide-card p {
    margin: 0;
    color: var(--kf-muted);
    font-size: 1rem;
    line-height: 1.65;
}

.front-news__intro {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(300px, .75fr);
    gap: clamp(28px, 6vw, 80px);
    align-items: end;
    margin-bottom: 48px;
}

.front-news__intro h3 {
    max-width: 650px;
    margin: 14px 0 0;
    font-size: clamp(38px, 5vw, 56px);
}

.front-news__intro > div:last-child {
    display: grid;
    justify-items: start;
    gap: 18px;
}

.front-news__intro p {
    color: var(--kf-muted);
    font-size: 18px;
    margin: 0;
}

.front-news__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px;
}

.front-news-card {
    min-width: 0;
}

.front-news-card__image {
    display: block;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    border-radius: var(--kf-radius) var(--kf-radius) 0 0;
    background: var(--kf-ink-2);
}

.front-news-card__image picture {
    display: block;
    width: 100%;
    height: 100%;
}

.front-news-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .35s ease;
}

.front-news-card:hover .front-news-card__image img {
    transform: scale(1.025);
}

.front-news-card__placeholder {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    color: rgba(255, 255, 255, .68);
    font: 800 24px Outfit, sans-serif;
}

.front-news-card__body {
    min-height: 260px;
    display: flex;
    flex-direction: column;
    padding: 22px;
    border-radius: 0 0 var(--kf-radius) var(--kf-radius);
    background: var(--kf-soft);
}

.front-news-card__meta {
    display: flex;
    gap: 18px;
    padding-bottom: 14px;
    border-bottom: 1px solid rgba(7, 19, 19, .1);
    color: #506267;
    font-size: 14px;
    font-weight: 700;
}

.front-news-card h4,
.front-news-card h3 {
    margin: 16px 0 10px;
    font-size: clamp(20px, 2.2vw, 27px);
    line-height: 1.15;
    text-align: left;
}

.front-news-card h4 a,
.front-news-card h3 a {
    color: var(--kf-text);
}

.front-news-card p {
    color: #53666a;
    margin: 0 0 18px;
}

.front-news-card__link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: auto;
    color: var(--kf-text);
    font-weight: 800;
}

.front-news-card__link span {
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: rgba(111, 160, 180, .18);
    color: var(--kf-blue-strong);
}

.front-news-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-top: auto;
}

.front-news-card__footer .front-news-card__link {
    margin-top: 0;
}

.news-view-count {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
    color: #53666a;
    font-size: 14px;
    font-weight: 900;
    line-height: 1;
    white-space: nowrap;
}

.news-view-count__icon {
    position: relative;
    display: inline-grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border-radius: 999px;
    background: rgba(111, 160, 180, .18);
    color: var(--kf-blue-strong);
}

.news-view-count__icon::before,
.news-view-count__icon::after {
    content: "";
    position: absolute;
    background: currentColor;
}

.news-view-count__icon::before {
    top: 7px;
    width: 7px;
    height: 7px;
    border-radius: 999px;
}

.news-view-count__icon::after {
    bottom: 7px;
    width: 14px;
    height: 7px;
    border-radius: 10px 10px 5px 5px;
}

.news-archive {
    background: var(--kf-paper);
    color: var(--kf-ink);
}

body section.news-archive__hero {
    padding-block: clamp(72px, 9vw, 130px);
    background: var(--kf-ink);
    color: #fff;
}

.news-archive__hero-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, .72fr);
    gap: clamp(50px, 9vw, 140px);
    align-items: end;
}

.news-archive__hero h1 {
    margin: 14px 0 0;
    color: #fff;
    font-size: clamp(54px, 7vw, 92px);
    line-height: .95;
}

.news-archive__hero-intro {
    display: grid;
    gap: 24px;
}

.news-archive__hero-intro p {
    margin: 0;
    color: rgba(255, 255, 255, .7);
    font-size: 18px;
}

.news-archive__hero-intro strong {
    padding-top: 20px;
    border-top: 1px solid rgba(255, 255, 255, .16);
}

body section.news-archive__list {
    padding-block: var(--kf-home-section-space);
    background: var(--kf-paper);
}

.news-archive .front-news-card h2 {
    margin: 16px 0 10px;
    font-size: clamp(20px, 2.2vw, 27px);
    line-height: 1.15;
}

.news-archive .front-news-card h2 a {
    color: var(--kf-text);
}

.news-detail__header {
    position: static;
    padding: clamp(34px, 4.5vw, 58px) 0;
    background: var(--kf-ink);
    color: #fff;
    border-bottom: 0;
}

.admin-preview-banner {
    padding: 12px 0;
    background: #d79623;
    color: #071214;
    font-weight: 800;
}

.admin-preview-banner .container {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
    align-items: center;
}

.admin-preview-banner strong {
    color: inherit;
    text-transform: uppercase;
}

.news-detail__header h1 {
    max-width: 920px;
    margin: 14px 0 18px;
    color: #fff;
    font-size: clamp(38px, 5.5vw, 66px);
    line-height: 1.02;
}

.news-detail__back {
    display: inline-flex;
    color: var(--kf-blue);
    font-size: 14px;
    font-weight: 800;
    text-decoration: none;
}

.news-detail__back::before {
    content: "←";
    margin-right: 8px;
}

.news-detail__meta {
    display: flex;
    gap: 22px;
    align-items: center;
    color: rgba(255, 255, 255, .66);
    font-size: 14px;
}

.news-detail__content {
    max-width: 1180px;
    padding-top: 58px;
    padding-bottom: 80px;
}

.news-detail__image {
    width: 100%;
    max-height: 560px;
    object-fit: cover;
    border-radius: var(--kf-radius);
    margin-bottom: 38px;
}

.news-detail__content > picture {
    display: block;
    width: 100%;
}

.news-detail__body {
    color: #314448;
    font-size: 18px;
    line-height: 1.85;
}

.news-detail__share {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin: 0 0 34px;
    padding: 14px;
    border: 1px solid rgba(7, 19, 19, .12);
    border-radius: 12px;
    background: rgba(216, 238, 245, .42);
}

.news-detail__share--bottom {
    margin: 34px 0 0;
}

.news-detail__share strong {
    color: var(--kf-ink);
    font-size: 16px;
}

.news-detail__share-links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.news-detail__share-links a,
.news-detail__share-links button {
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 42px;
    padding: 0 14px;
    border: 1px solid rgba(7, 19, 19, .16);
    border-radius: 999px;
    background: #fff;
    color: var(--kf-ink);
    font: 900 13px/1 Outfit, Inter, system-ui, sans-serif;
    text-decoration: none;
    cursor: pointer;
}

.news-detail__share-links svg {
    width: 17px;
    height: 17px;
    fill: currentColor;
}

.news-detail__share-links a:hover,
.news-detail__share-links button:hover {
    border-color: rgba(111, 160, 180, .65);
    background: rgba(111, 160, 180, .16);
}

.news-detail__body p {
    margin: 0 0 1.45em;
}

.news-detail__lead {
    padding-bottom: 28px;
    border-bottom: 1px solid rgba(7, 19, 19, .14);
    color: var(--kf-ink);
    font-family: Outfit, Inter, system-ui, sans-serif;
    font-size: clamp(22px, 2.5vw, 30px);
    font-weight: 600;
    line-height: 1.4;
}

.news-detail__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-top: 46px;
    padding-top: 30px;
    border-top: 1px solid rgba(7, 19, 19, .14);
}

.news-view-count--detail {
    padding: 10px 14px;
    border: 1px solid rgba(7, 19, 19, .12);
    border-radius: 999px;
    background: var(--kf-soft);
}

.events-archive {
    background: var(--kf-paper);
}

.events-archive__hero {
    padding: clamp(44px, 6vw, 78px) 0;
    background: var(--kf-ink);
    color: #fff;
}

.events-archive__hero-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 520px);
    gap: clamp(26px, 5vw, 70px);
    align-items: end;
}

.events-archive__hero h1 {
    margin: 12px 0 0;
    color: #fff;
    font-size: clamp(42px, 6vw, 76px);
    line-height: .98;
}

.events-archive__hero p {
    margin: 0;
    color: rgba(255, 255, 255, .72);
    font-size: 18px;
    line-height: 1.65;
}

.events-archive__body {
    padding: clamp(44px, 6vw, 82px) 0;
}

.events-archive__stack,
.events-archive__cards {
    display: grid;
    gap: 26px;
}

.events-archive__group {
    display: grid;
    gap: 18px;
}

.events-archive__group-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.events-archive__group-head strong {
    display: inline-grid;
    place-items: center;
    min-width: 42px;
    height: 42px;
    padding: 0 12px;
    border-radius: 999px;
    background: var(--kf-soft);
    color: var(--kf-ink);
    font-weight: 900;
}

.events-archive-card {
    display: grid;
    grid-template-columns: minmax(260px, 360px) minmax(0, 1fr);
    gap: clamp(22px, 4vw, 42px);
    align-items: stretch;
    width: 100%;
    padding: clamp(18px, 3vw, 28px);
    border: 1px solid rgba(7, 19, 19, .12);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 24px 70px rgba(7, 19, 19, .08);
}

.events-archive-card--external {
    border-color: rgba(183, 132, 42, .34);
    background: linear-gradient(135deg, #fffaf0, #fff);
}

.events-archive-card--own {
    border-color: rgba(111, 160, 180, .24);
}

.events-archive-card--empty,
.events-archive-card:not(:has(.events-archive-card__image)) {
    grid-template-columns: 1fr;
}

.events-archive-card__image {
    display: block;
    min-height: 250px;
    overflow: hidden;
    border-radius: 8px;
    background: var(--kf-ink);
}

.events-archive-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .35s ease;
}

.events-archive-card:hover .events-archive-card__image img {
    transform: scale(1.025);
}

.events-archive-card__content {
    display: flex;
    min-width: 0;
    flex-direction: column;
    justify-content: center;
}

.events-archive-card__top,
.events-archive-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}

.events-archive-card__top {
    justify-content: space-between;
    margin-bottom: 16px;
    color: #68797d;
    font-weight: 800;
}

.events-status {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 0 13px;
    border-radius: 999px;
    background: rgba(111, 160, 180, .16);
    color: var(--kf-blue-strong);
    font-size: 13px;
    font-weight: 900;
    text-transform: uppercase;
}

.events-status--open {
    background: rgba(139, 201, 176, .2);
    color: #1d5d49;
}

.events-status--closed {
    background: rgba(7, 19, 19, .08);
    color: #5d6b6f;
}

.events-source-badge {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 0 13px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .02em;
}

.events-source-badge--own {
    background: rgba(7, 19, 19, .09);
    color: var(--kf-ink);
    border: 1px solid rgba(7, 19, 19, .12);
}

.events-source-badge--external {
    background: rgba(183, 132, 42, .14);
    color: #7a4d09;
    border: 1px solid rgba(183, 132, 42, .28);
}

.events-archive-card h2 {
    margin: 0 0 12px;
    font-size: clamp(30px, 4vw, 54px);
    line-height: 1;
}

.events-archive-card h2 a {
    color: var(--kf-ink);
}

.events-archive-card p {
    max-width: 780px;
    margin: 0 0 20px;
    color: #56696d;
    font-size: 18px;
    line-height: 1.6;
}

.events-archive-card__meta {
    margin-bottom: 22px;
}

.events-archive-card__meta span {
    border: 1px solid rgba(7, 19, 19, .1);
    border-radius: 999px;
    padding: 8px 12px;
    background: var(--kf-soft);
    color: var(--kf-ink);
    font-size: 13px;
    font-weight: 900;
}

.events-archive-card__button {
    align-self: flex-start;
}

.event-submission {
    margin-top: clamp(28px, 5vw, 56px);
}

.news {
    background: var(--kf-soft);
}

.news-wrap {
    display: grid;
    gap: 24px;
}

.news-item {
    background: #fff;
}

.news-item h4 {
    color: #071313;
}

.news-item p {
    color: #506267;
}

body section.fish-weather {
    padding-block: var(--kf-home-section-space);
    background: var(--kf-ink);
    color: #fff;
}

body section.home-gallery {
    padding-block: var(--kf-home-section-space);
    background: var(--kf-paper);
}

body section.home-buddy {
    padding-block: var(--kf-home-section-space);
    background: var(--kf-paper);
    color: #102321;
}

.home-lake-spotlight {
    padding-block: var(--kf-home-section-space);
    background:
        radial-gradient(circle at 85% 20%, rgba(111,160,180,.16), transparent 30%),
        #f4f8f7;
    color: #071313;
}

.home-lake-spotlight__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(220px, 320px);
    gap: clamp(24px, 5vw, 72px);
    align-items: center;
}

.home-lake-spotlight h2 {
    max-width: 780px;
    margin: 8px 0 14px;
    color: #071313;
    font: 900 clamp(42px, 6vw, 76px)/.95 Outfit, Inter, sans-serif;
}

.home-lake-spotlight p {
    max-width: 760px;
    margin: 0;
    color: #4f6463;
    font-size: 18px;
    line-height: 1.7;
}

.home-lake-spotlight__facts {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin: 22px 0;
}

.home-lake-spotlight__facts span {
    padding: 8px 11px;
    border-radius: 999px;
    background: #e1eeee;
    color: #234240;
    font-weight: 900;
    font-size: 12px;
}

.home-lake-spotlight__score {
    display: grid;
    gap: 8px;
    padding: 28px;
    border: 1px solid rgba(7,19,19,.12);
    border-radius: 8px;
    background: #071313;
    color: #fff;
    box-shadow: 0 28px 70px rgba(7,19,19,.16);
}

.home-lake-spotlight__score span {
    color: #8bc9b0;
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.home-lake-spotlight__score strong {
    color: #fff;
    font: 900 clamp(54px, 7vw, 84px)/.9 Outfit, Inter, sans-serif;
}

.home-lake-spotlight__score small {
    color: #9fb4b2;
    font-size: .34em;
}

.home-lake-spotlight__score p {
    color: #c8d7da;
    font-size: 14px;
}

.home-buddy__header {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(280px, .7fr);
    align-items: end;
    gap: 28px;
    margin-bottom: 30px;
}

.home-buddy__header h2 {
    margin: 14px 0 0;
    color: #102321;
    font-size: clamp(38px, 5vw, 56px);
    line-height: .98;
}

.home-buddy__aside {
    display: grid;
    justify-items: start;
    gap: 20px;
}

.home-buddy__aside p {
    max-width: 520px;
    margin: 0;
    color: #506267;
    line-height: 1.7;
}

.home-buddy__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.home-buddy-card {
    display: grid;
    gap: 18px;
    min-height: 100%;
    padding: clamp(22px, 3vw, 32px);
    border: 1px solid rgba(7,19,19,.1);
    border-radius: 8px;
    background: #fff;
    color: #102321;
    box-shadow: 0 22px 56px rgba(7,19,19,.08);
}

.home-buddy-card > div:first-child span {
    color: var(--kf-accent);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.home-buddy-card h3 {
    margin: 7px 0 0;
    color: #102321;
    font-size: clamp(26px, 3vw, 42px);
    line-height: 1.02;
}

.home-buddy-card p {
    margin: 0;
    color: #48605c;
    line-height: 1.65;
}

.home-buddy-card dl {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 0;
}

.home-buddy-card dl div {
    padding: 12px;
    border: 1px solid rgba(7,19,19,.08);
    border-radius: 6px;
    background: #eaf2f1;
}

.home-buddy-card dt {
    color: #66807b;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}

.home-buddy-card dd {
    margin: 3px 0 0;
    color: #102321;
    font-weight: 900;
}

.home-buddy-card__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.home-buddy-card__tags span {
    padding: 6px 9px;
    border-radius: 999px;
    background: #d9ebe6;
    color: #204a3f;
    font-size: 12px;
    font-weight: 900;
}

.home-buddy-card > a {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 42px;
    margin-top: auto;
    padding: 9px 13px;
    border-radius: 999px;
    background: #071313;
    color: #fff !important;
    font-weight: 950;
    text-decoration: none;
}

.home-gallery__header {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(280px, .7fr);
    align-items: end;
    gap: 28px;
    margin-bottom: 38px;
}

.home-gallery__header h2 {
    margin: 14px 0 0;
    font-size: clamp(38px, 5vw, 56px);
}

.home-gallery__aside {
    display: grid;
    justify-items: start;
    gap: 20px;
}

.home-gallery__aside p {
    max-width: 570px;
    margin: 0;
    color: var(--kf-muted);
    font-size: 18px;
}

.home-gallery__actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
}

.home-gallery__controls {
    display: flex;
    gap: 8px;
}

.home-gallery__controls button {
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    padding: 0;
    border: 1px solid rgba(7, 19, 19, .18);
    border-radius: 50%;
    background: transparent;
    color: var(--kf-ink);
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
    transition: background .2s ease, color .2s ease, border-color .2s ease;
}

.home-gallery__controls button:hover,
.home-gallery__controls button:focus-visible {
    border-color: var(--kf-ink);
    background: var(--kf-ink);
    color: #fff;
}

.home-gallery__mosaic {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    grid-template-rows: repeat(2, minmax(0, 1fr));
    gap: 12px;
    height: clamp(430px, 47vw, 570px);
}

.home-gallery__item {
    grid-column: span 3;
    min-width: 0;
    overflow: hidden;
    border-radius: var(--kf-radius);
    background: #dce6e7;
}

.home-gallery__item--1 {
    grid-column: span 6;
    grid-row: span 2;
}

.home-gallery__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: opacity .32s ease, transform .45s ease;
}

.home-gallery__item:hover img {
    transform: scale(1.025);
}

.home-gallery__item img.is-changing {
    opacity: .18;
}

.fish-weather .section-heading h2,
.fish-weather .section-heading p {
    color: #fff;
}

.fish-weather .section-heading h2 {
    margin: 14px 0 0;
    font-size: clamp(32px, 4vw, 54px);
    line-height: .98;
}

.fish-weather .section-heading p {
    color: rgba(255, 255, 255, .68);
}

.fish-weather__today {
    display: grid;
    grid-template-columns: minmax(320px, .85fr) minmax(0, 1.15fr);
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: var(--kf-radius);
    background: #0d2224;
    overflow: hidden;
}

.fish-weather__controls {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    margin: -14px 0 16px;
    color: rgba(255, 255, 255, .66);
    font-size: 13px;
    font-weight: 800;
}

.fish-weather__controls label {
    color: #fff;
    text-shadow: 0 1px 10px rgba(0, 0, 0, .28);
}

.fish-weather__controls select {
    width: auto;
    min-width: 180px;
    border: 1px solid rgba(255, 255, 255, .15);
    border-radius: 999px;
    padding: 10px 38px 10px 16px;
    background: rgba(255, 255, 255, .07);
    color: #fff;
    font: inherit;
}

.fish-weather__controls select option {
    color: #071313;
}

.fish-weather__verdict {
    display: grid;
    grid-template-columns: minmax(150px, auto) 1fr;
    grid-template-areas:
        "kicker kicker"
        "score content";
    align-items: center;
    gap: 12px 24px;
    padding: clamp(24px, 4vw, 42px);
    border-right: 1px solid rgba(255, 255, 255, .11);
}

.fish-weather__kicker {
    grid-area: kicker;
    color: var(--kf-blue);
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
}

#fishwx-score {
    grid-area: score;
    min-width: 150px;
    color: #fff;
}

.fish-weather-score {
    display: inline-grid;
    justify-items: center;
    align-items: center;
    gap: 5px;
    line-height: 1;
    text-align: center;
}

#fishwx-score-current {
    display: block;
    font: 950 clamp(76px, 8vw, 118px)/.78 Outfit, sans-serif;
    letter-spacing: 0;
}

.fish-weather-score__line {
    display: block;
    width: min(128px, 100%);
    height: 5px;
    border-radius: 999px;
    background: currentColor;
    opacity: .9;
}

.fish-weather-score__max {
    display: block;
    font: 900 clamp(30px, 3.2vw, 44px)/.9 Outfit, sans-serif;
    letter-spacing: 0;
    opacity: .94;
}

.fish-weather__verdict > div {
    grid-area: content;
}

.fish-weather__verdict h3 {
    margin: 0 0 8px;
    color: #fff;
    font-size: clamp(24px, 3vw, 34px);
}

.fish-weather__verdict p {
    margin: 0;
    color: rgba(255, 255, 255, .7);
    line-height: 1.5;
}

.fish-weather__verdict small {
    display: block;
    margin-top: 12px;
    color: rgba(255, 255, 255, .46);
}

.fish-weather__today.is-excellent #fishwx-score {
    color: #2f9b58;
}

.fish-weather__today.is-good #fishwx-score {
    color: #9fdfa9;
}

.fish-weather__today.is-medium #fishwx-score {
    color: #f0c94f;
}

.fish-weather__today.is-bad #fishwx-score {
    color: #ef6f67;
}

.fish-weather__metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    align-content: center;
    padding: clamp(18px, 2.6vw, 28px);
}

.fish-weather__metrics > div {
    display: grid;
    align-content: start;
    gap: 8px;
    min-width: 0;
    min-height: 122px;
    padding: 17px;
    border: 1px solid rgba(255, 255, 255, .11);
    border-radius: 8px;
    background: linear-gradient(180deg, rgba(255, 255, 255, .075), rgba(255, 255, 255, .035));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .04);
}

.fish-weather__metrics span {
    color: rgba(255, 255, 255, .5);
    font-size: 12px;
    font-weight: 700;
}

.fish-weather__metrics strong {
    color: #fff;
    font: 800 clamp(18px, 2vw, 24px)/1.1 Outfit, sans-serif;
    white-space: nowrap;
}

.fish-weather-metric__icon {
    display: inline-grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border-radius: 999px;
    background: rgba(139, 201, 176, .13);
    color: var(--kf-accent);
    font-size: 17px;
    font-weight: 950;
}

.fish-weather-metric__icon--arrow {
    transform: rotate(var(--fishwx-rotate, 0deg));
    transition: transform .24s ease;
}

.fish-weather__forecast {
    margin-top: 22px;
    padding: clamp(22px, 3vw, 30px);
    border: 1px solid rgba(255, 255, 255, .11);
    border-radius: var(--kf-radius);
    background: rgba(255, 255, 255, .045);
}

.fish-weather__forecast-heading {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 20px;
}

.fish-weather__forecast-heading h3 {
    margin: 0;
    color: #fff;
    font-size: 24px;
}

.fish-weather__forecast-heading span,
.fish-weather__note,
.fish-weather__loading {
    color: rgba(255, 255, 255, .55);
    font-size: 13px;
}

.fish-week {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 9px;
    overflow: visible;
    padding-bottom: 0;
}

.fish-day {
    width: auto;
    min-height: 156px;
    padding: 14px;
    border: 1px solid rgba(255, 255, 255, .09);
    border-radius: 6px;
    background: rgba(255, 255, 255, .045);
    color: #fff;
    text-align: left;
    box-shadow: none;
    transition: none;
}

.fish-day.excellent,
.fish-day.good,
.fish-day.medium,
.fish-day.bad {
    background: rgba(255, 255, 255, .045);
    color: #fff;
}

.fish-day__top,
.fish-day__metrics {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.fish-day-name {
    color: #fff;
    font-weight: 800;
    text-transform: none;
}

.fish-percent {
    color: rgba(255, 255, 255, .82);
    font-size: 28px;
    font-weight: 900;
}

.fish-percent::after {
    content: "%";
    font-size: 14px;
    margin-left: 1px;
}

.fish-day__bar {
    height: 4px;
    margin: 14px 0;
    border-radius: 999px;
    background: rgba(255, 255, 255, .11);
    overflow: hidden;
}

.fish-day__bar span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--kf-blue);
}

.fish-day.excellent .fish-day__bar span {
    background: #2f9b58;
}

.fish-day.good .fish-day__bar span {
    background: #9fdfa9;
}

.fish-day.medium .fish-day__bar span {
    background: #f0c94f;
}

.fish-day.bad .fish-day__bar span {
    background: #ef6f67;
}

.fish-status {
    display: block;
    color: rgba(255, 255, 255, .65);
    font-size: 13px;
}

.fish-day__summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 38px;
}

.fish-day__icon {
    display: grid;
    place-items: center;
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    font-size: 24px;
    line-height: 1;
    filter: saturate(.88);
}

.fish-day__metrics {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
    margin-top: 12px;
    color: rgba(255, 255, 255, .82);
    font-size: clamp(10px, .66vw, 12px);
    font-weight: 500;
}

.fish-day__metrics span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 3px;
    min-width: 0;
    border-radius: 999px;
    padding: 6px 4px;
    background: rgba(255, 255, 255, .055);
    text-align: center;
    white-space: nowrap;
}

.fish-day__wind-arrow {
    display: inline-block;
    font-size: .9em;
    line-height: 1;
    transform: rotate(var(--fishwx-rotate, 0deg));
}

/* Pilen viser den retning vinden bevæger sig mod. Klasser bruges, så CSP kan forblive streng. */
.fish-wind-to--0 { transform: rotate(90deg) !important; }
.fish-wind-to--1 { transform: rotate(135deg) !important; }
.fish-wind-to--2 { transform: rotate(180deg) !important; }
.fish-wind-to--3 { transform: rotate(225deg) !important; }
.fish-wind-to--4 { transform: rotate(270deg) !important; }
.fish-wind-to--5 { transform: rotate(315deg) !important; }
.fish-wind-to--6 { transform: rotate(0deg) !important; }
.fish-wind-to--7 { transform: rotate(45deg) !important; }

.fish-weather__note {
    margin: 16px 0 0;
    text-align: right;
}

footer {
    background: #071313;
    color: rgba(255, 255, 255, .78);
    border-top: 1px solid rgba(255, 255, 255, .12);
}

footer a {
    color: #d8eef5;
}

.footer-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
    padding-top: 22px;
    padding-bottom: 22px;
    font-size: 14px;
}

.footer-legal {
    display: flex;
    align-items: center;
    gap: 22px;
}

.footer-legal a {
    color: rgba(255, 255, 255, .72);
}

.footer-legal a:hover {
    color: #fff;
}

.legal-page {
    background: #fff;
}

.legal-hero {
    padding: clamp(72px, 9vw, 120px) 0;
    background: var(--kf-ink);
    color: #fff;
}

.legal-hero__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, .65fr);
    align-items: end;
    gap: clamp(36px, 8vw, 110px);
}

.legal-hero h1 {
    max-width: 780px;
    margin: 16px 0 0;
    color: #fff;
    font-size: clamp(46px, 7vw, 78px);
    line-height: 1;
}

.legal-hero p {
    margin: 0;
    color: rgba(255, 255, 255, .68);
    font-size: 18px;
}

.legal-layout {
    display: grid;
    grid-template-columns: 230px minmax(0, 820px);
    justify-content: space-between;
    gap: clamp(44px, 8vw, 110px);
    padding-top: clamp(56px, 7vw, 90px);
    padding-bottom: clamp(72px, 9vw, 120px);
}

.legal-nav {
    position: sticky;
    top: 110px;
    align-self: start;
    display: grid;
    gap: 3px;
    padding-top: 8px;
}

.legal-nav strong {
    margin-bottom: 12px;
    color: var(--kf-text);
}

.legal-nav a {
    padding: 9px 0;
    border-bottom: 1px solid rgba(7, 19, 19, .09);
    color: #617175;
    font-size: 14px;
    font-weight: 700;
}

.legal-nav a:hover {
    color: var(--kf-blue-strong);
}

.legal-content {
    min-width: 0;
}

.legal-updated {
    display: inline-flex;
    margin: 0 0 34px;
    border-radius: 999px;
    background: var(--kf-soft);
    padding: 7px 12px;
    color: #516469;
    font-size: 13px;
    font-weight: 800;
}

.legal-content section {
    padding: 0 0 42px;
    background: transparent;
}

.legal-content section + section {
    padding-top: 42px;
    border-top: 1px solid rgba(7, 19, 19, .1);
}

.legal-content h2 {
    margin: 0 0 18px;
    font-size: clamp(27px, 3vw, 38px);
    line-height: 1.12;
}

.legal-content h3 {
    margin: 28px 0 10px;
    font-size: 20px;
}

.legal-content p,
.legal-content li {
    color: #475b60;
    font-size: 17px;
    line-height: 1.75;
}

.legal-content ul {
    padding-left: 22px;
}

.legal-content a {
    color: var(--kf-blue-strong);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

.legal-table-wrap {
    overflow-x: auto;
    margin: 24px 0;
    border: 1px solid rgba(7, 19, 19, .1);
    border-radius: var(--kf-radius);
}

.legal-table {
    width: 100%;
    min-width: 620px;
    border-collapse: collapse;
}

.legal-table th,
.legal-table td {
    padding: 16px 18px;
    border-bottom: 1px solid rgba(7, 19, 19, .08);
    text-align: left;
    vertical-align: top;
}

.legal-table th {
    background: var(--kf-soft);
    color: var(--kf-text);
    font-size: 14px;
}

.legal-table td {
    color: #4d6065;
}

.legal-table tr:last-child td {
    border-bottom: 0;
}

.legal-consent-button {
    min-height: 46px;
    border: 0;
    border-radius: 999px;
    background: var(--kf-blue);
    color: #fff;
    padding: 12px 20px;
    font: 800 15px Outfit, Inter, sans-serif;
    cursor: pointer;
}

body section.contact-modern {
    padding-block: var(--kf-home-section-space);
    background: var(--kf-ink);
    color: #fff;
}

.contact-modern__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(420px, .9fr);
    align-items: center;
    gap: clamp(44px, 8vw, 110px);
}

.contact-modern__copy h2 {
    max-width: 680px;
    margin: 16px 0 20px;
    color: #fff;
    font-size: clamp(38px, 5vw, 56px);
    line-height: 1.05;
}

.contact-modern__copy p {
    max-width: 630px;
    margin: 0;
    color: rgba(255, 255, 255, .68);
    font-size: 18px;
}

.contact-modern__status {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 26px;
    color: rgba(255, 255, 255, .82);
    font-size: 14px;
    font-weight: 700;
}

.contact-modern__status span {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #75c49d;
    box-shadow: 0 0 0 5px rgba(117, 196, 157, .12);
}

.contact-modern__actions {
    display: grid;
    border-top: 1px solid rgba(255, 255, 255, .14);
}

.contact-route {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 25px 0;
    border-bottom: 1px solid rgba(255, 255, 255, .14);
    color: #fff;
}

.contact-route small,
.contact-route strong {
    display: block;
}

.contact-route small {
    margin-bottom: 6px;
    color: rgba(255, 255, 255, .55);
    font-size: 13px;
    font-weight: 700;
}

.contact-route strong {
    color: #fff;
    font: 800 clamp(20px, 2.1vw, 27px) Outfit, Inter, sans-serif;
}

.contact-route b {
    display: grid;
    place-items: center;
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--kf-blue);
    color: #fff;
    transition: transform .2s ease, background .2s ease;
}

.contact-route:hover {
    opacity: 1;
}

.contact-route:hover b {
    transform: translate(3px, -2px);
    background: var(--kf-blue-strong);
}

.contact-modern__channels {
    display: flex;
    align-items: center;
    gap: 22px;
    margin-top: clamp(50px, 7vw, 90px);
    padding-top: 24px;
    padding-bottom: 0;
    border-top: 1px solid rgba(255, 255, 255, .12);
    color: rgba(255, 255, 255, .46);
    font-size: 14px;
    font-weight: 700;
}

.contact-modern__channels a {
    color: rgba(255, 255, 255, .82);
}

.contact-modern__channels a:hover {
    color: #fff;
}

.contact-modern__channels--center {
    justify-content: center;
    text-align: center;
}

.contact-modern__search {
    display: flex;
    justify-content: center;
    padding-top: 22px;
    padding-bottom: 0;
}

.site-search-form {
    display: flex;
    align-items: center;
    gap: 8px;
    width: min(520px, 100%);
    padding: 6px;
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: 999px;
    background: rgba(255, 255, 255, .06);
}

.site-search-form input {
    flex: 1;
    min-width: 0;
    height: 42px;
    padding: 0 16px;
    border: 0;
    background: transparent;
    color: #fff;
    font: 800 15px/1 Outfit, Inter, sans-serif;
    outline: 0;
}

.site-search-form input::placeholder {
    color: rgba(255, 255, 255, .58);
}

.site-search-form button {
    min-height: 42px;
    padding: 0 18px;
    border: 0;
    border-radius: 999px;
    background: var(--kf-blue);
    color: #fff;
    font: 900 13px/1 Outfit, Inter, sans-serif;
    cursor: pointer;
}

.site-search-form button:hover {
    background: var(--kf-blue-strong);
}

#quick-nav {
    background: var(--kf-blue);
    border: 1px solid rgba(255, 255, 255, .4);
    box-shadow: 0 16px 42px rgba(7, 19, 19, .22);
}

#quick-panel {
    border-radius: var(--kf-radius) 0 0 var(--kf-radius);
}

/* Den skjulte off-canvas-menu må ikke udvide dokumentets mobilbredde. */
html {
    overflow-x: clip;
}

body {
    overflow-x: clip;
}

body section.collab-teaser {
    padding-block: var(--kf-home-section-space);
    background: var(--kf-soft);
    color: var(--kf-ink);
}

.collab-teaser__layout {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    gap: clamp(56px, 8vw, 120px);
    align-items: center;
}

.collab-teaser__intro {
    max-width: 610px;
}

.collab-teaser__intro h2 {
    max-width: 680px;
    margin: 14px 0 20px;
    font-size: clamp(42px, 5vw, 68px);
    line-height: 1;
}

.collab-teaser__intro p {
    max-width: 580px;
    margin: 0 0 30px;
    color: var(--kf-muted);
    font-size: 18px;
}

.collab-teaser__principles {
    border-top: 1px solid rgba(7, 19, 19, .17);
}

.collab-teaser__principles > div {
    display: grid;
    grid-template-columns: 48px minmax(150px, .7fr) minmax(0, 1fr);
    gap: 18px;
    align-items: baseline;
    padding: 26px 0;
    border-bottom: 1px solid rgba(7, 19, 19, .17);
}

.collab-teaser__principles span {
    color: var(--kf-blue-strong);
    font-size: 13px;
    font-weight: 800;
}

.collab-teaser__principles strong {
    font-size: 20px;
}

.collab-teaser__principles p {
    margin: 0;
    color: var(--kf-muted);
}

.home-partner-showcase {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(300px, .92fr);
    gap: clamp(44px, 7vw, 104px);
    align-items: center;
    margin-top: clamp(14px, 2vw, 24px);
    padding-top: clamp(30px, 4vw, 48px);
    border-top: 1px solid rgba(7, 19, 19, .17);
}

.home-partner-card {
    overflow: hidden;
    border: 1px solid rgba(7, 19, 19, .16);
    border-radius: var(--kf-radius);
    background: #fff;
    box-shadow: 0 24px 60px rgba(7, 19, 19, .1);
}

.home-partner-card__media {
    position: relative;
    min-height: 360px;
    background: #dce9ed;
}

.home-partner-card__media > img {
    width: 100%;
    height: 100%;
    min-height: 360px;
    object-fit: cover;
}

.home-partner-card__media--placeholder {
    display: grid;
    place-items: center;
    color: rgba(7, 19, 19, .2);
    font: 800 clamp(90px, 12vw, 170px)/1 "Outfit", sans-serif;
}

.home-partner-card__label {
    position: absolute;
    top: 18px;
    left: 18px;
    padding: 8px 11px;
    border-radius: 4px;
    background: rgba(7, 19, 19, .88);
    color: #fff;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
}

.home-partner-card__body {
    display: grid;
    gap: 18px;
    padding: clamp(24px, 4vw, 38px);
}

.home-partner-card__identity {
    display: flex;
    align-items: center;
    gap: 18px;
}

.home-partner-card__identity img {
    width: 82px;
    height: 58px;
    object-fit: contain;
}

.home-partner-card__identity h3 {
    margin: 0;
    font-size: clamp(28px, 3vw, 40px);
}

.home-partner-card__body > p {
    margin: 0;
    color: var(--kf-muted);
    font-size: 16px;
}

.home-partner-showcase__intro {
    max-width: 560px;
}

.home-partner-showcase__intro h2 {
    margin: 14px 0 20px;
    font-size: clamp(40px, 5vw, 66px);
    line-height: 1;
}

.home-partner-showcase__intro p {
    margin: 0 0 30px;
    color: var(--kf-muted);
    font-size: 18px;
}

.partner-card__link {
    color: var(--kf-ink);
    font-weight: 800;
}

.partner-card__link:hover {
    color: var(--kf-blue-strong);
}

.partner-disclosure {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    min-height: 30px;
    padding: 6px 10px;
    border-radius: 4px;
    background: rgba(7, 19, 19, .08);
    color: var(--kf-ink);
    font-size: 12px;
    font-weight: 800;
}

.partner-disclosure--direct {
    background: #fff0d8;
    color: #744300;
}

.partner-disclosure--indirect {
    background: #e5f0f4;
    color: #244f5f;
}

.partners-page {
    background: var(--kf-paper);
    color: var(--kf-ink);
}

body section.partners-hero {
    padding-block: clamp(72px, 9vw, 130px);
    background: var(--kf-ink);
    color: #fff;
}

.partners-hero__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, .72fr);
    gap: clamp(50px, 9vw, 140px);
    align-items: end;
}

.partners-hero h1 {
    max-width: 880px;
    margin: 14px 0 0;
    font-size: clamp(52px, 8vw, 102px);
    line-height: .94;
}

.partners-hero__layout > div:last-child {
    display: grid;
    gap: 24px;
}

.partners-hero__layout p {
    margin: 0;
    color: rgba(255, 255, 255, .7);
    font-size: 18px;
}

.partners-hero__layout strong {
    padding-top: 20px;
    border-top: 1px solid rgba(255, 255, 255, .16);
}

body section.partners-list {
    padding-block: var(--kf-section-space);
    background: var(--kf-paper);
}

.partners-grid {
    display: grid;
    gap: clamp(32px, 5vw, 70px);
}

.partner-card {
    display: grid;
    grid-template-columns: minmax(320px, .82fr) minmax(0, 1.18fr);
    overflow: hidden;
    border: 1px solid rgba(7, 19, 19, .14);
    border-radius: var(--kf-radius);
    background: #fff;
}

.partner-card:nth-child(even) .partner-card__media {
    order: 2;
}

.partner-card__media {
    position: relative;
    min-height: 540px;
    background: #dce9ed;
}

.partner-card__media > img {
    width: 100%;
    height: 100%;
    min-height: 540px;
    object-fit: cover;
}

.partner-card__media--placeholder {
    display: grid;
    place-items: center;
    color: rgba(7, 19, 19, .18);
    font: 800 clamp(120px, 18vw, 240px)/1 "Outfit", sans-serif;
}

.partner-card__logo {
    position: absolute;
    right: 24px;
    bottom: 24px;
    display: grid;
    place-items: center;
    min-width: 150px;
    max-width: calc(100% - 48px);
    min-height: 82px;
    padding: 14px 18px;
    border-radius: 6px;
    background: #fff;
    box-shadow: 0 16px 34px rgba(7, 19, 19, .18);
}

.partner-card__logo img {
    max-width: 190px;
    max-height: 62px;
    object-fit: contain;
}

.partner-card__logo strong {
    font-size: 18px;
}

.partner-card__body {
    display: grid;
    align-content: center;
    gap: 22px;
    padding: clamp(36px, 6vw, 82px);
}

.partner-card__body h2 {
    margin: 0;
    font-size: clamp(38px, 5vw, 66px);
    line-height: 1;
}

.partner-card__lead {
    margin: 0;
    color: var(--kf-muted);
    font-size: 19px;
}

.partner-card__work {
    color: var(--kf-muted);
}

.partner-card__benefit {
    padding: 20px;
    border-left: 4px solid var(--kf-blue);
    background: var(--kf-soft);
}

.partner-card__benefit strong {
    display: block;
    margin-bottom: 7px;
}

.partner-card__benefit p {
    margin: 0;
    color: var(--kf-muted);
}

.partners-empty {
    padding: clamp(42px, 7vw, 90px);
    border: 1px solid rgba(7, 19, 19, .14);
    text-align: center;
}

.partners-empty h2 {
    margin: 14px 0;
}

.about-page {
    background: var(--kf-paper);
}

body section.about-hero {
    overflow: hidden;
    padding: 0;
    background: var(--kf-ink);
    color: #fff;
}

.about-hero__layout {
    display: grid;
    grid-template-columns: minmax(0, .92fr) minmax(360px, .72fr);
    gap: clamp(50px, 8vw, 130px);
    align-items: stretch;
    min-height: 700px;
}

.about-hero__copy {
    align-self: center;
    padding: 100px 0;
}

.about-hero__copy h1 {
    max-width: 760px;
    margin: 16px 0 24px;
    color: #fff;
    font-size: clamp(52px, 6vw, 82px);
    line-height: .98;
}

.about-hero__copy > p {
    max-width: 680px;
    margin: 0;
    color: rgba(255, 255, 255, .72);
    font-size: 19px;
}

.about-hero__facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 52px;
    border-top: 1px solid rgba(255, 255, 255, .16);
}

.about-hero__facts > div {
    padding: 22px 20px 0 0;
}

.about-hero__facts strong,
.about-hero__facts span {
    display: block;
}

.about-hero__facts strong {
    margin-bottom: 4px;
    color: #fff;
    font-size: 19px;
}

.about-hero__facts span {
    color: rgba(255, 255, 255, .6);
    font-size: 14px;
}

.about-hero__portrait {
    min-height: 700px;
    margin: 0;
}

.about-hero__portrait img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 25%;
}

.about-story__layout {
    display: grid;
    grid-template-columns: minmax(280px, .82fr) minmax(0, 1fr);
    gap: clamp(50px, 9vw, 150px);
}

.about-story h2 {
    max-width: 590px;
    margin-top: 14px;
    font-size: clamp(42px, 5vw, 68px);
    line-height: 1.02;
}

.about-story__text {
    color: var(--kf-muted);
    font-size: 18px;
}

.about-story__text p:first-child {
    margin-top: 0;
}

.about-story__text blockquote {
    margin: 36px 0 0;
    padding: 24px 0 0 28px;
    border-top: 1px solid rgba(7, 19, 19, .18);
    border-left: 4px solid var(--kf-blue-strong);
    color: var(--kf-ink);
    font-size: clamp(24px, 2.5vw, 34px);
    font-weight: 800;
    line-height: 1.2;
}

body section.about-method {
    background: var(--kf-soft);
}

.about-method__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 54px;
    border-top: 1px solid rgba(7, 19, 19, .17);
    border-bottom: 1px solid rgba(7, 19, 19, .17);
}

.about-method__grid article {
    min-height: 240px;
    padding: 36px clamp(24px, 3vw, 46px);
    border-right: 1px solid rgba(7, 19, 19, .17);
}

.about-method__grid article:last-child {
    border-right: 0;
}

.about-method__grid span {
    color: var(--kf-blue-strong);
    font-size: 13px;
    font-weight: 800;
}

.about-method__grid h3 {
    margin: 42px 0 12px;
    font-size: 26px;
}

.about-method__grid p {
    margin: 0;
    color: var(--kf-muted);
}

body section.collab-page {
    padding-bottom: 0;
    background: var(--kf-ink);
    color: #fff;
}

.collab-page__header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, .7fr);
    gap: clamp(50px, 9vw, 150px);
    align-items: end;
}

.collab-page__header h2 {
    max-width: 780px;
    margin: 14px 0 0;
    color: #fff;
    font-size: clamp(46px, 5vw, 72px);
    line-height: 1;
}

.collab-page__header > p {
    margin: 0 0 6px;
    color: rgba(255, 255, 255, .67);
    font-size: 18px;
}

.collab-page__formats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 68px;
    border-top: 1px solid rgba(255, 255, 255, .15);
    border-bottom: 1px solid rgba(255, 255, 255, .15);
}

.collab-page__formats article {
    min-height: 260px;
    padding: 34px clamp(24px, 3vw, 44px);
    border-right: 1px solid rgba(255, 255, 255, .15);
}

.collab-page__formats article:last-child {
    border-right: 0;
}

.collab-page__formats span {
    color: var(--kf-blue);
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
}

.collab-page__formats h3 {
    margin: 46px 0 14px;
    color: #fff;
    font-size: 27px;
}

.collab-page__formats p {
    margin: 0;
    color: rgba(255, 255, 255, .64);
}

.collab-page__terms,
.collab-page__cta {
    display: grid;
    grid-template-columns: minmax(280px, .72fr) minmax(0, 1fr);
    gap: clamp(50px, 9vw, 150px);
}

.collab-page__terms {
    padding-top: 80px;
    padding-bottom: 80px;
}

.collab-page__terms h3,
.collab-page__cta h3 {
    margin: 14px 0 0;
    color: #fff;
    font-size: clamp(30px, 3vw, 44px);
    line-height: 1.08;
}

.collab-page__terms ul {
    margin: 0;
    padding: 0;
    list-style: none;
    border-top: 1px solid rgba(255, 255, 255, .15);
}

.collab-page__terms li {
    padding: 18px 0;
    border-bottom: 1px solid rgba(255, 255, 255, .15);
    color: rgba(255, 255, 255, .72);
}

.collab-page__terms li::before {
    content: "✓";
    display: inline-block;
    width: 32px;
    color: var(--kf-blue);
    font-weight: 900;
}

.collab-page__contact {
    display: grid;
    grid-template-columns: minmax(280px, .72fr) minmax(0, 1fr);
    gap: clamp(42px, 8vw, 120px);
    align-items: start;
    padding-top: 8px;
    padding-bottom: 80px;
}

.collab-page__contact-copy h3 {
    margin: 14px 0 16px;
    color: #fff;
    font-size: clamp(30px, 3vw, 44px);
    line-height: 1.08;
}

.collab-page__contact-copy p {
    margin: 0;
    color: rgba(255, 255, 255, .68);
    font-size: 18px;
}

.collab-page__form {
    display: grid;
    gap: 16px;
    padding: clamp(22px, 3vw, 34px);
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 8px;
    background: rgba(255, 255, 255, .055);
    box-shadow: 0 24px 70px rgba(0, 0, 0, .18);
}

.collab-page__form-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.collab-page__form label {
    display: grid;
    gap: 8px;
    color: rgba(255, 255, 255, .8);
    font-weight: 800;
}

.collab-page__form input,
.collab-page__form textarea {
    width: 100%;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 8px;
    background: rgba(4, 15, 15, .72);
    color: #fff;
    font: inherit;
    outline: none;
}

.collab-page__form input {
    min-height: 52px;
    padding: 0 16px;
}

.collab-page__form textarea {
    min-height: 158px;
    padding: 14px 16px;
    resize: vertical;
}

.collab-page__form input:focus,
.collab-page__form textarea:focus {
    border-color: var(--kf-blue);
    box-shadow: 0 0 0 3px rgba(111, 160, 180, .18);
}

.collab-page__form ::placeholder {
    color: rgba(255, 255, 255, .42);
}

.collab-page__form .btn {
    justify-self: start;
}

.collab-page__cta {
    align-items: center;
    padding-top: 54px;
    padding-bottom: 54px;
}

.collab-page__cta-band {
    margin-top: 20px;
    background: var(--kf-blue);
    color: var(--kf-ink);
}

.collab-page__cta h3 {
    color: var(--kf-ink);
}

.collab-page__cta .eyebrow {
    border-color: rgba(7, 19, 19, .18);
    background: rgba(255, 255, 255, .45);
    color: var(--kf-ink);
}

.collab-page__cta-actions {
    display: flex;
    gap: 24px;
    align-items: center;
    justify-content: flex-end;
}

.collab-page__linkedin {
    color: var(--kf-ink);
    font-weight: 800;
    text-decoration: none;
}

.collab-page__linkedin:hover {
    color: #fff;
}

body section.gallery-hero {
    padding: clamp(58px, 6vw, 86px) 0;
    background: var(--kf-ink);
    color: #fff;
}

.beginner-hub,
.beginner-detail {
    background: var(--kf-paper);
}

body section.beginner-hub__hero,
.beginner-detail__header {
    padding: clamp(70px, 8vw, 118px) 0;
    background:
        radial-gradient(circle at 86% 18%, rgba(111, 160, 180, .22), transparent 30%),
        var(--kf-ink);
    color: #fff;
}

.beginner-hub__hero-layout,
.beginner-detail__header-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(300px, .7fr);
    gap: clamp(36px, 8vw, 110px);
    align-items: end;
}

.beginner-hub__hero h1,
.beginner-detail__header h1 {
    max-width: 850px;
    margin: 16px 0 0;
    color: #fff;
    font-size: clamp(48px, 7vw, 92px);
    line-height: .96;
}

.beginner-hub__hero-layout > div:last-child,
.beginner-detail__summary {
    display: grid;
    gap: 18px;
}

.beginner-hub__hero-layout p,
.beginner-detail__summary p {
    margin: 0;
    color: rgba(255, 255, 255, .72);
    font-size: 18px;
    line-height: 1.65;
}

.beginner-hub__hero-layout strong,
.beginner-detail__summary small {
    color: rgba(255, 255, 255, .52);
}

body section.beginner-hub__intro {
    padding: clamp(58px, 7vw, 90px) 0;
}

.beginner-hub__intro-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, .72fr);
    gap: clamp(30px, 8vw, 100px);
    align-items: end;
}

.beginner-hub__intro h2 {
    max-width: 700px;
    margin: 14px 0 0;
    font-size: clamp(36px, 5vw, 62px);
    line-height: 1;
}

.beginner-hub__intro p {
    margin: 0;
    color: var(--kf-muted);
    font-size: 18px;
    line-height: 1.7;
}

body section.beginner-hub__guides {
    padding: 0 0 var(--kf-home-section-space);
}

.beginner-guide-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-top: 1px solid rgba(7, 19, 19, .16);
    border-left: 1px solid rgba(7, 19, 19, .16);
}

.beginner-guide-card {
    display: grid;
    grid-template-rows: auto 1fr auto;
    gap: 24px;
    min-height: 390px;
    padding: clamp(26px, 4vw, 42px);
    border-right: 1px solid rgba(7, 19, 19, .16);
    border-bottom: 1px solid rgba(7, 19, 19, .16);
    background: #fff;
    transition: background .18s ease, transform .18s ease;
}

.beginner-guide-card:hover {
    z-index: 1;
    background: var(--kf-soft);
    transform: translateY(-3px);
}

.beginner-guide-card__number {
    color: var(--kf-blue-strong);
    font: 800 42px/1 Outfit, Inter, sans-serif;
}

.beginner-guide-card__meta {
    color: var(--kf-muted);
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.beginner-guide-card h2 {
    margin: 12px 0;
    font-size: clamp(24px, 2.5vw, 34px);
    line-height: 1.05;
}

.beginner-guide-card h2 a {
    color: var(--kf-ink);
    text-decoration: none;
}

.beginner-guide-card p {
    margin: 0;
    color: var(--kf-muted);
    line-height: 1.65;
}

.beginner-guide-card__link {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 18px;
    border-top: 1px solid rgba(7, 19, 19, .1);
    color: var(--kf-blue-strong);
    font-weight: 800;
    text-decoration: none;
}

body section.beginner-hub__next {
    padding: clamp(58px, 7vw, 90px) 0;
    background: var(--kf-blue);
}

.beginner-hub__next-layout {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 28px;
}

.beginner-hub__next h2 {
    max-width: 760px;
    margin: 14px 0 0;
    font-size: clamp(34px, 5vw, 58px);
    line-height: 1;
}

.beginner-detail__header {
    padding-bottom: clamp(62px, 8vw, 105px);
}

.beginner-detail__header .news-detail__back {
    display: block;
    margin-bottom: 34px;
}

.beginner-detail__summary > span {
    color: var(--kf-blue);
    font: 800 clamp(64px, 9vw, 120px)/.8 Outfit, Inter, sans-serif;
}

.beginner-detail__layout {
    display: grid;
    grid-template-columns: 230px minmax(0, 760px);
    gap: clamp(42px, 8vw, 110px);
    justify-content: center;
    padding-block: clamp(58px, 8vw, 105px);
}

.beginner-detail__aside {
    position: sticky;
    top: 120px;
    align-self: start;
    display: grid;
    gap: 12px;
    padding: 22px;
    border-top: 3px solid var(--kf-blue);
    background: #fff;
}

.beginner-detail__aside p {
    margin: 0 0 8px;
    color: var(--kf-muted);
    font-size: 14px;
}

.beginner-detail__aside a {
    color: var(--kf-blue-strong);
    font-weight: 800;
    text-decoration: none;
}

.beginner-detail__body {
    min-width: 0;
    font-size: 18px;
    line-height: 1.78;
}

.beginner-detail__body h2 {
    margin: 2.1em 0 .6em;
    font-size: clamp(28px, 4vw, 42px);
    line-height: 1.08;
}

.beginner-detail__body h3 {
    margin: 1.8em 0 .5em;
    font-size: 23px;
}

.beginner-detail__body li {
    margin-bottom: 8px;
}

.beginner-detail__body blockquote {
    margin: 32px 0;
    padding: 22px 26px;
    border-left: 4px solid var(--kf-blue);
    background: #fff;
    color: var(--kf-ink);
    font: 700 21px/1.55 Outfit, Inter, sans-serif;
}

.beginner-detail__footer {
    padding: 0 0 var(--kf-home-section-space);
}

@media (max-width: 980px) {
    .beginner-guide-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .beginner-detail__layout {
        grid-template-columns: 1fr;
    }

    .beginner-detail__aside {
        position: static;
    }
}

@media (max-width: 680px) {
    .beginner-hub__hero-layout,
    .beginner-detail__header-layout,
    .beginner-hub__intro-layout {
        grid-template-columns: 1fr;
    }

    .beginner-guide-grid {
        grid-template-columns: 1fr;
    }

    .beginner-guide-card {
        min-height: 0;
    }

    .beginner-hub__next-layout {
        align-items: flex-start;
        flex-direction: column;
    }
}

.pwa-install {
    position: fixed;
    right: 18px;
    bottom: 18px;
    z-index: 1200;
    display: flex;
    align-items: center;
    gap: 20px;
    max-width: min(620px, calc(100vw - 36px));
    padding: 18px;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 14px;
    background: #081719;
    color: #fff;
    box-shadow: 0 22px 70px rgba(0, 0, 0, .34);
}

.pwa-install[hidden] {
    display: none;
}

.pwa-install > div:first-child {
    display: grid;
    gap: 4px;
}

.pwa-install span {
    color: rgba(255, 255, 255, .68);
    font-size: 14px;
}

.pwa-install__actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 0 0 auto;
}

.pwa-install__dismiss {
    border: 0;
    background: transparent;
    color: rgba(255, 255, 255, .72);
    cursor: pointer;
}

@media (max-width: 680px) {
    .pwa-install {
        left: 12px;
        right: 12px;
        bottom: 12px;
        align-items: stretch;
        flex-direction: column;
    }

    .pwa-install__actions {
        justify-content: space-between;
    }
}

.lakes-page {
    background: var(--kf-paper);
}

body section.lakes-hero {
    padding: clamp(58px, 6vw, 86px) 0;
    background: var(--kf-ink);
    color: #fff;
}

.lakes-hero__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, .72fr);
    gap: clamp(44px, 8vw, 120px);
    align-items: end;
}

.lakes-hero h1 {
    margin: 14px 0 0;
    color: #fff;
    font-size: clamp(54px, 7vw, 92px);
    line-height: .95;
}

.lakes-hero__intro > p {
    margin: 0;
    color: rgba(255, 255, 255, .68);
    font-size: 18px;
}

.lakes-hero__facts {
    display: flex;
    gap: 30px;
    margin-top: 25px;
}

.lakes-hero__facts span {
    display: grid;
    gap: 2px;
    color: rgba(255, 255, 255, .55);
    font-size: 13px;
}

.lakes-hero__facts strong {
    color: #fff;
    font: 800 24px Outfit, Inter, sans-serif;
}

body section.lakes-explorer {
    padding-block: var(--kf-home-section-space);
    background: var(--kf-paper);
}

.lakes-toolbar {
    display: grid;
    grid-template-columns: minmax(210px, 1.2fr) repeat(3, minmax(150px, .7fr)) auto;
    gap: 14px;
    align-items: end;
    padding-bottom: 28px;
    border-bottom: 1px solid rgba(7, 19, 19, .16);
}

.lakes-toplists {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin: 34px 0;
}

.lakes-toplists section {
    display: grid;
    gap: 8px;
    padding: 22px;
    border-radius: var(--kf-radius);
    background: #fff;
    border: 1px solid rgba(7, 19, 19, .1);
}

.lakes-toplists a {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    color: var(--kf-ink);
    text-decoration: none;
}

.lakes-toplists a span,
.lakes-toplists p {
    color: var(--kf-muted);
}

.lakes-toolbar label {
    display: grid;
    gap: 7px;
}

.lakes-toolbar label > span {
    color: var(--kf-muted);
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.lakes-toolbar input,
.lakes-toolbar select {
    width: 100%;
    min-height: 48px;
    border: 1px solid rgba(7, 19, 19, .17);
    border-radius: 6px;
    background: #fff;
    color: var(--kf-ink);
    padding: 10px 12px;
    font: inherit;
}

.lakes-toolbar__count {
    display: grid;
    min-width: 96px;
    padding-bottom: 3px;
}

.lakes-toolbar__count strong {
    font: 800 27px Outfit, Inter, sans-serif;
}

.lakes-toolbar__count span {
    color: var(--kf-muted);
    font-size: 12px;
}

.lakes-map-shell {
    margin: 34px 0 60px;
}

#lake-map {
    width: 100%;
    height: clamp(360px, 44vw, 520px);
    overflow: hidden;
    border: 1px solid rgba(7, 19, 19, .14);
    border-radius: var(--kf-radius);
    background: var(--kf-soft);
}

.lakes-map-shell > p {
    margin: 11px 0 0;
    color: var(--kf-muted);
    font-size: 13px;
}

.lakes-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-top: 1px solid rgba(7, 19, 19, .17);
}

.lake-review {
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: clamp(28px, 4vw, 46px);
    border-right: 1px solid rgba(7, 19, 19, .17);
    border-bottom: 1px solid rgba(7, 19, 19, .17);
}

.lake-review:nth-child(even) {
    border-right: 0;
}

.lake-review[hidden] {
    display: none;
}

.lake-review.is-featured {
    background: var(--kf-soft);
}

.lake-review__top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
}

.lake-review__recommended {
    display: inline-block;
    margin-bottom: 10px;
    color: var(--kf-blue-strong);
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}

.lake-review h2 {
    margin: 0;
    font-size: clamp(25px, 3vw, 34px);
}

.lake-review__region {
    display: inline-block;
    margin-top: 7px;
    color: var(--kf-muted);
}

.lake-review__address {
    display: block;
    margin-top: 4px;
    color: var(--kf-muted);
    font-size: 13px;
}

.lake-review__description {
    margin: 22px 0 0;
    color: var(--kf-ink);
    font-weight: 700;
}

.lake-review__quote {
    margin: 18px 0 0;
    padding-left: 16px;
    border-left: 3px solid var(--kf-blue);
    color: var(--kf-muted);
}

.lake-review__audience {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 16px;
}

.lake-review__audience span {
    padding: 6px 10px;
    border-radius: 999px;
    background: var(--kf-soft);
    color: var(--kf-ink);
    font-size: 12px;
    font-weight: 800;
}

.lake-review__tackle {
    color: var(--kf-muted);
    font-size: 14px;
}

.lake-rating {
    display: grid;
    flex: 0 0 auto;
    justify-items: end;
}

.lake-rating strong {
    font: 800 28px Outfit, Inter, sans-serif;
}

.lake-rating__stars {
    display: flex;
    gap: 1px;
    font-size: 14px;
    letter-spacing: 0;
}

.lake-rating__stars i {
    position: relative;
    overflow: hidden;
    width: 1em;
    color: #c8d0d1;
    font-style: normal;
}

.lake-rating__stars i.is-full {
    color: #c88b23;
}

.lake-rating__stars i.is-half::after {
    position: absolute;
    top: 0;
    left: 0;
    width: 50%;
    overflow: hidden;
    color: #c88b23;
    content: "★";
}

.lake-review__text {
    flex: 1;
    margin: 30px 0;
    color: var(--kf-muted);
}

.lake-review__footer {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 22px;
    padding-top: 20px;
    border-top: 1px solid rgba(7, 19, 19, .13);
}

.lake-review__details {
    display: flex;
    gap: 24px;
}

.lake-review__details span {
    display: grid;
    gap: 3px;
}

.lake-review__details small {
    color: var(--kf-muted);
}

.lake-review__actions {
    display: flex;
    align-items: center;
    gap: 14px;
}

.lake-review__actions button {
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--kf-blue-strong);
    font-weight: 800;
    cursor: pointer;
}

.lake-review__actions a {
    color: var(--kf-ink);
    font-weight: 800;
    text-decoration: none;
}

.lakes-empty {
    padding: 50px 0;
    color: var(--kf-muted);
    text-align: center;
}

.lake-popup {
    display: grid;
    min-width: 210px;
    gap: 7px;
}

.lake-popup strong {
    font-size: 16px;
}

.lake-popup span {
    color: #a86d0b;
    font-weight: 800;
}

.lake-popup p {
    margin: 0;
    color: #4b5e62;
    line-height: 1.45;
}

.lake-popup__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    margin-top: 4px;
    padding: 8px 12px;
    border-radius: 999px;
    background: var(--kf-blue);
    color: #fff;
    font-weight: 900;
    text-decoration: none;
}

.lake-popup__link:hover {
    background: var(--kf-blue-strong);
    color: #fff;
}

.lake-user-reviews {
    display: grid;
    gap: 16px;
    margin-top: 28px;
    padding: 20px;
    border: 1px solid rgba(7, 19, 19, .11);
    border-radius: 10px;
    background: rgba(111, 160, 180, .07);
}

.lake-user-reviews__heading {
    display: flex;
    align-items: center;
    gap: 14px;
}

.lake-user-reviews__score {
    display: grid;
    flex: 0 0 54px;
    width: 54px;
    height: 54px;
    place-items: center;
    border: 1px solid rgba(200, 139, 35, .25);
    border-radius: 50%;
    background: #fff;
    color: #a86d0b;
    font: 800 20px Outfit, Inter, sans-serif;
}

.lake-user-reviews__copy {
    display: grid;
    min-width: 0;
    gap: 2px;
}

.lake-user-reviews__heading small,
.lake-user-reviews__heading span,
.lake-user-review small {
    color: var(--kf-muted);
}

.lake-user-reviews__heading strong {
    font: 800 19px Outfit, Inter, sans-serif;
}

.lake-user-review {
    padding: 14px;
    border-radius: 8px;
    background: rgba(111, 160, 180, .09);
}

.lake-user-review header {
    display: flex;
    justify-content: space-between;
    gap: 12px;
}

.lake-user-review p {
    margin: 8px 0;
}

.lake-review-form {
    border-top: 1px solid rgba(7, 19, 19, .1);
    padding-top: 14px;
}

.lake-review-form summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    list-style: none;
    cursor: pointer;
    color: var(--kf-blue-strong);
    font-weight: 800;
}

.lake-review-form summary::-webkit-details-marker {
    display: none;
}

.lake-review-form summary::after {
    flex: 0 0 auto;
    content: "+";
    font-size: 22px;
    line-height: 1;
}

.lake-review-form[open] summary::after {
    content: "−";
}

.lake-review-form summary small {
    margin-left: auto;
    color: var(--kf-muted);
    font-size: 12px;
    font-weight: 600;
}

.lake-review-form form {
    display: grid;
    gap: 12px;
    margin-top: 18px;
    padding-top: 18px;
    border-top: 1px solid rgba(7, 19, 19, .1);
}

.lake-review-form label {
    display: grid;
    gap: 6px;
    color: var(--kf-muted);
    font-size: 13px;
    font-weight: 700;
}

.lake-review-form input,
.lake-review-form select,
.lake-review-form textarea {
    width: 100%;
    border: 1px solid rgba(7, 19, 19, .16);
    border-radius: 6px;
    background: #fff;
    padding: 10px 12px;
    font: inherit;
}

.lake-review-form__row {
    display: grid;
    grid-template-columns: 1fr 140px;
    gap: 12px;
}

.lake-review-form__ratings {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
}

.lake-review-form .lake-review-form__check {
    display: flex;
    align-items: center;
}

.lake-review-form__check input {
    width: auto;
}

.lake-review-form__honeypot {
    position: absolute;
    left: -10000px;
}

.lake-review-message {
    padding: 12px;
    border-radius: 6px;
}

.lake-review-message.is-success {
    background: #e1f3e7;
    color: #175c31;
}

.lake-review-message.is-error {
    background: #f9e2e0;
    color: #8b2822;
}

/* Put & Take-søer: fuldbredde kort og redaktionelle vurderinger */
.lakes-explorer__heading,
.lakes-results__heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, .72fr);
    gap: clamp(32px, 7vw, 100px);
    align-items: end;
    margin-bottom: 34px;
}

.lakes-explorer__heading h2,
.lakes-results__heading h2 {
    margin: 8px 0 0;
    color: var(--kf-ink);
    font-size: 42px;
}

.lakes-explorer__heading > p,
.lakes-results__heading > p {
    margin: 0;
    color: var(--kf-muted);
    font-size: 17px;
}

.lakes-toolbar {
    padding: 20px;
    border: 1px solid rgba(7, 19, 19, .12);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 18px 50px rgba(7, 19, 19, .06);
}

.lakes-toolbar input:focus,
.lakes-toolbar select:focus {
    border-color: var(--kf-blue-strong);
    outline: 3px solid rgba(111, 160, 180, .18);
}

.lakes-toplists {
    margin-bottom: 0;
}

.lakes-toplists section {
    gap: 0;
    padding: 0;
    overflow: hidden;
    border-radius: 8px;
}

.lakes-toplists__heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 18px;
    padding: 20px 22px 15px;
}

.lakes-toplists__heading small {
    color: var(--kf-muted);
}

.lakes-toplists a {
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr) auto;
    align-items: center;
    padding: 13px 22px;
    border-top: 1px solid rgba(7, 19, 19, .08);
}

.lakes-toplists a:hover {
    background: var(--kf-soft);
}

.lakes-toplists__rank {
    color: var(--kf-blue-strong) !important;
    font: 800 13px Outfit, Inter, sans-serif;
}

.lakes-toplists__score {
    min-width: 42px;
    color: var(--kf-ink) !important;
    font: 800 17px Outfit, Inter, sans-serif;
    text-align: right;
}

.lake-finder {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, .62fr);
    gap: 22px;
    align-items: start;
    margin: 24px 0 0;
    padding: 24px;
    border: 1px solid rgba(7, 19, 19, .1);
    border-radius: 8px;
    background: #eaf2f1;
}

.lake-finder__intro h2 {
    margin: 7px 0 8px;
    font-size: clamp(30px, 4vw, 46px);
    line-height: 1;
}

.lake-finder__intro p,
.lake-finder__status {
    margin: 0;
    color: #48605c;
}

.lake-finder__controls {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: end;
}

.lake-finder__controls label {
    display: grid;
    gap: 7px;
    color: #37514d;
    font-size: 13px;
    font-weight: 900;
}

.lake-finder__controls select,
.lake-finder__controls button {
    min-height: 48px;
    border-radius: 999px;
}

.lake-finder__controls select {
    border: 1px solid rgba(7,19,19,.14);
    background: #fff;
    color: #102321;
    padding: 10px 14px;
}

.lake-finder__controls button {
    border: 1px solid rgba(7,19,19,.18);
    background: var(--kf-ink);
    color: #fff;
    padding: 10px 16px;
    font-weight: 900;
    white-space: nowrap;
    box-shadow: 0 14px 28px rgba(7,19,19,.16);
}

.lake-finder__status,
.lake-finder__results {
    grid-column: 1 / -1;
}

.lake-finder__results {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.lake-finder-card {
    display: grid;
    gap: 7px;
    padding: 16px;
    border: 1px solid rgba(7,19,19,.1);
    border-radius: 7px;
    background: #fff;
    color: #102321;
}

.lake-finder-card span {
    color: var(--kf-accent);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.lake-finder-card small {
    color: #48605c;
}

.lakes-map-shell {
    position: relative;
    width: 100%;
    height: min(72vh, 680px);
    min-height: 520px;
    margin: var(--kf-home-section-space) 0 0;
    overflow: hidden;
    background: var(--kf-ink);
}

#lake-map {
    width: 100%;
    height: 100%;
    border: 0;
    border-radius: 0;
    filter: saturate(.82) contrast(1.02);
}

.lakes-map-shell__intro {
    position: absolute;
    z-index: 500;
    top: 36px;
    left: max(24px, calc((100vw - 1180px) / 2));
    width: min(390px, calc(100% - 48px));
    padding: 24px 26px;
    border: 1px solid rgba(191, 226, 238, .26);
    border-radius: 8px;
    background: rgba(7, 19, 19, .96);
    color: #fff;
    box-shadow: 0 20px 60px rgba(7, 19, 19, .34);
    backdrop-filter: blur(8px);
    pointer-events: none;
}

.lakes-map-shell__intro .eyebrow {
    background: #d8eef5;
    color: #071313;
    border-color: rgba(7, 19, 19, .12);
}

.lakes-map-shell__intro h2 {
    margin: 7px 0 8px;
    color: #fff;
    font-size: 30px;
}

.lakes-map-shell__intro p {
    margin: 0;
    color: rgba(255, 255, 255, .78);
    font-size: 14px;
}

.lake-map-marker-shell {
    border: 0;
    background: transparent;
}

.lake-map-marker {
    position: relative;
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border: 3px solid #fff;
    border-radius: 50% 50% 50% 4px;
    background: var(--kf-ink);
    box-shadow: 0 6px 18px rgba(7, 19, 19, .32);
    transform: rotate(-45deg);
}

.lake-map-marker i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #fff;
}

.lake-map-marker.is-featured {
    width: 34px;
    height: 34px;
    background: var(--kf-blue-strong);
    box-shadow: 0 0 0 6px rgba(111, 160, 180, .2), 0 8px 22px rgba(7, 19, 19, .4);
}

.lakes-results {
    padding-top: var(--kf-home-section-space);
}

.lakes-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 22px;
    border: 0;
}

.lake-review,
.lake-review:nth-child(even) {
    display: block;
    padding: 0;
    overflow: hidden;
    border: 1px solid rgba(7, 19, 19, .12);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 18px 54px rgba(7, 19, 19, .055);
}

.lake-review[hidden] {
    display: none;
}

.lake-review.is-featured {
    position: relative;
    border-color: rgba(111, 160, 180, .55);
    background: var(--kf-ink);
    color: #fff;
    box-shadow: 0 24px 70px rgba(7, 19, 19, .2);
}

.lake-review.is-featured::before {
    position: absolute;
    z-index: 2;
    top: 0;
    right: 0;
    width: 120px;
    height: 5px;
    background: var(--kf-blue);
    content: "";
}

.lake-review__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 30px;
    padding: 30px clamp(28px, 4vw, 52px);
    border-bottom: 1px solid rgba(7, 19, 19, .1);
}

.lake-review.is-featured .lake-review__header {
    border-bottom-color: rgba(255, 255, 255, .13);
}

.lake-review__labels {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}

.lake-review__recommended,
.lake-review__region {
    margin: 0;
    padding: 6px 9px;
    border-radius: 4px;
    font-size: 10px;
    font-weight: 900;
    line-height: 1;
    text-transform: uppercase;
}

.lake-review__recommended {
    background: var(--kf-blue);
    color: var(--kf-ink);
}

.lake-review__region {
    background: var(--kf-soft);
    color: var(--kf-muted);
}

.lake-review.is-featured .lake-review__region {
    background: rgba(255, 255, 255, .1);
    color: rgba(255, 255, 255, .72);
}

.lake-review h2 {
    font-size: 38px;
}

.lake-review.is-featured h2 {
    color: #fff;
}

.lake-review__address {
    margin-top: 7px;
}

.lake-review.is-featured .lake-review__address {
    color: rgba(255, 255, 255, .58);
}

.lake-review__updated {
    display: inline-flex;
    width: fit-content;
    margin-top: 8px;
    padding: 6px 9px;
    border: 1px solid rgba(7, 19, 19, .1);
    border-radius: 999px;
    background: rgba(111, 160, 180, .1);
    color: #48605c;
    font-size: 12px;
    font-weight: 900;
}

.lake-review.is-featured .lake-review__updated {
    border-color: rgba(255, 255, 255, .14);
    background: rgba(255, 255, 255, .07);
    color: rgba(236,246,244,.72);
}

.lake-rating {
    justify-items: end;
}

.lake-rating > span:first-child {
    color: var(--kf-muted);
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
}

.lake-rating > div {
    display: flex;
    align-items: baseline;
}

.lake-rating strong {
    font-size: 42px;
    line-height: 1;
}

.lake-rating small {
    color: var(--kf-muted);
    font-weight: 800;
}

.lake-review.is-featured .lake-rating > span:first-child,
.lake-review.is-featured .lake-rating small {
    color: rgba(255, 255, 255, .58);
}

.lake-review.is-featured .lake-rating strong {
    color: #fff;
}

.lake-score-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 7px;
}

.lake-score-grid span {
    display: grid;
    justify-items: center;
    align-content: center;
    gap: 6px;
    min-width: 0;
    min-height: 58px;
    padding: 8px 9px;
    border: 1px solid rgba(7, 19, 19, .1);
    border-radius: 6px;
    background: rgba(111, 160, 180, .07);
    text-align: center;
}

.lake-score-grid small {
    color: var(--kf-muted);
    font-size: 9px;
    font-weight: 900;
    line-height: 1.15;
    text-transform: uppercase;
}

.lake-score-grid strong {
    color: var(--kf-ink);
    font: 900 22px/1 Outfit, Inter, sans-serif;
}

.lake-score-stars {
    display: inline-flex;
    justify-content: center;
    gap: 1px;
    font-size: 12px;
    letter-spacing: 0;
}

.lake-score-stars i {
    position: relative;
    overflow: hidden;
    width: 1em;
    color: #c8d0d1;
    font-style: normal;
}

.lake-score-stars i.is-full {
    color: #c88b23;
}

.lake-score-stars i.is-half::after {
    position: absolute;
    top: 0;
    left: 0;
    width: 50%;
    overflow: hidden;
    color: #c88b23;
    content: "★";
}

.lake-score-grid--editorial {
    padding: 12px clamp(28px, 4vw, 52px);
    border-bottom: 1px solid rgba(7, 19, 19, .1);
}

.lake-review.is-featured .lake-score-grid--editorial {
    border-bottom-color: rgba(255, 255, 255, .12);
}

.lake-review.is-featured .lake-score-grid span {
    border-color: rgba(255, 255, 255, .11);
    background: rgba(255, 255, 255, .055);
}

.lake-review.is-featured .lake-score-grid small {
    color: rgba(255, 255, 255, .54);
}

.lake-review.is-featured .lake-score-grid strong {
    color: #fff;
}

.lake-score-grid--users,
.lake-score-grid--compact {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.lake-score-grid--compact {
    gap: 6px;
    margin-top: 10px;
}

.lake-score-grid--compact span {
    min-height: 54px;
    padding: 7px;
    background: rgba(255, 255, 255, .66);
}

.lake-score-grid--compact .lake-score-stars {
    font-size: 11px;
}

.lake-review__body {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(250px, .65fr);
}

.lake-review__editorial {
    padding: 34px clamp(28px, 4vw, 52px) 40px;
}

.lake-review__description {
    margin: 0 0 22px;
    font: 700 19px/1.5 Outfit, Inter, sans-serif;
}

.lake-review__text {
    margin: 0;
    font-size: 16px;
}

.lake-review__text > :first-child {
    margin-top: 0;
}

.lake-review__text > :last-child {
    margin-bottom: 0;
}

.lake-review.is-featured .lake-review__description {
    color: #fff;
}

.lake-review.is-featured .lake-review__text {
    color: rgba(255, 255, 255, .7);
}

.lake-review__quote {
    display: grid;
    gap: 6px;
    margin: 26px 0 0;
    padding: 18px 20px;
    border: 0;
    border-left: 3px solid var(--kf-blue);
    background: rgba(111, 160, 180, .08);
    color: var(--kf-ink);
    font-size: 16px;
}

.lake-review__quote span,
.lake-review__tackle > span {
    color: var(--kf-blue-strong);
    font-size: 10px;
    font-style: normal;
    font-weight: 900;
    text-transform: uppercase;
}

.lake-review.is-featured .lake-review__quote {
    background: rgba(255, 255, 255, .07);
    color: #fff;
}

.lake-review__tackle {
    display: grid;
    gap: 7px;
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid rgba(7, 19, 19, .1);
}

.lake-review__tackle p {
    margin: 0;
}

.lake-review.is-featured .lake-review__tackle {
    border-top-color: rgba(255, 255, 255, .12);
    color: rgba(255, 255, 255, .68);
}

.lake-review__facts {
    padding: 34px 30px;
    border-left: 1px solid rgba(7, 19, 19, .1);
    background: rgba(111, 160, 180, .055);
}

.lake-review.is-featured .lake-review__facts {
    border-left-color: rgba(255, 255, 255, .12);
    background: rgba(255, 255, 255, .045);
}

.lake-review__audience {
    margin: 0 0 24px;
}

.lake-review.is-featured .lake-review__audience span {
    background: rgba(255, 255, 255, .1);
    color: #fff;
}

.lake-review__facts dl {
    display: grid;
    margin: 0;
}

.lake-review__facts dl > div {
    display: grid;
    gap: 3px;
    padding: 14px 0;
    border-top: 1px solid rgba(7, 19, 19, .1);
}

.lake-review__facts dt {
    color: var(--kf-muted);
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
}

.lake-review__facts dd {
    margin: 0;
    color: var(--kf-ink);
    font: 800 17px Outfit, Inter, sans-serif;
}

.lake-review.is-featured .lake-review__facts dl > div {
    border-top-color: rgba(255, 255, 255, .11);
}

.lake-review.is-featured .lake-review__facts dt {
    color: rgba(255, 255, 255, .52);
}

.lake-review.is-featured .lake-review__facts dd {
    color: #fff;
}

.lake-review__actions {
    display: grid;
    gap: 8px;
    margin-top: 20px;
}

.lake-review__actions a,
.lake-review__actions button {
    display: flex;
    min-height: 42px;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 10px 12px;
    border: 1px solid rgba(7, 19, 19, .13);
    border-radius: 5px;
    background: #fff;
    color: var(--kf-ink);
    font: 800 13px Inter, sans-serif;
}

.lake-review__actions button {
    width: 100%;
}

.lake-review__actions a:hover,
.lake-review__actions button:hover {
    border-color: var(--kf-blue-strong);
}

.lake-review.is-featured .lake-review__actions a,
.lake-review.is-featured .lake-review__actions button {
    border-color: rgba(255, 255, 255, .15);
    background: rgba(255, 255, 255, .07);
    color: #fff;
}

.lake-user-reviews {
    grid-template-columns: 1fr;
    gap: 20px;
    margin: 0;
    padding: 26px clamp(28px, 4vw, 52px);
    border: 0;
    border-top: 1px solid rgba(7, 19, 19, .1);
    border-radius: 0;
    background: var(--kf-soft);
}

.lake-review.is-featured .lake-user-reviews {
    border-top-color: rgba(255, 255, 255, .12);
    background: rgba(111, 160, 180, .12);
}

.lake-user-reviews__list {
    display: grid;
    gap: 12px;
    width: 100%;
    padding-top: 18px;
    border-top: 1px solid rgba(7, 19, 19, .1);
}

.lake-user-review {
    border: 1px solid rgba(7, 19, 19, .08);
    background: #fff;
    color: var(--kf-ink);
    width: 100%;
}

.lake-user-review p {
    color: var(--kf-muted);
}

.lake-user-review__stars {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    white-space: nowrap;
    font-size: 15px;
    line-height: 1;
}

.lake-user-review__stars i {
    font-style: normal;
}

.lake-user-review__stars .is-full {
    color: #c88b23;
}

.lake-user-review__stars .is-empty {
    color: rgba(7, 19, 19, .22);
}

.lake-review.is-featured .lake-user-reviews__heading small,
.lake-review.is-featured .lake-user-reviews__heading span,
.lake-review.is-featured .lake-user-reviews__list small {
    color: var(--kf-muted);
}

.lake-review.is-featured .lake-user-reviews__heading small,
.lake-review.is-featured .lake-user-reviews__heading span {
    color: rgba(255, 255, 255, .58);
}

.lake-review.is-featured .lake-user-reviews__heading strong {
    color: #fff;
}

.lake-review-form {
    align-self: start;
    padding-top: 16px;
}

.lake-review.is-featured .lake-review-form {
    border-top-color: rgba(255, 255, 255, .15);
}

.lake-review.is-featured .lake-review-form summary {
    color: #bfe2ee;
}

.lake-review.is-featured .lake-review-form summary small,
.lake-review.is-featured .lake-review-form label {
    color: rgba(255, 255, 255, .62);
}

.lake-review.is-featured .lake-user-reviews__list {
    border-top-color: rgba(255, 255, 255, .12);
}

.lake-user-reviews__archive {
    display: grid;
    gap: 12px;
}

.lake-user-reviews__archive summary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    justify-self: start;
    gap: 9px;
    min-height: 42px;
    padding: 0 16px;
    border: 1px solid rgba(7, 19, 19, .14);
    border-radius: 999px;
    background: #fff;
    color: var(--kf-ink);
    font: 900 13px/1 Outfit, Inter, sans-serif;
    list-style: none;
    cursor: pointer;
}

.lake-user-reviews__archive summary::-webkit-details-marker {
    display: none;
}

.lake-user-reviews__archive summary span {
    display: inline-grid;
    min-width: 24px;
    height: 24px;
    place-items: center;
    border-radius: 999px;
    background: var(--kf-soft);
    color: var(--kf-blue-strong);
}

.lake-user-reviews__archive > div {
    display: grid;
    gap: 12px;
    margin-top: 12px;
}

.lake-review.is-featured .lake-user-reviews__archive summary {
    border-color: rgba(255, 255, 255, .16);
    background: rgba(255, 255, 255, .08);
    color: #fff;
}

.lake-review-message {
    grid-column: 1 / -1;
}

@media (max-width: 900px) {
    .lakes-explorer__heading,
    .lakes-results__heading {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .lakes-map-shell {
        height: 600px;
        min-height: 0;
    }

    .lake-review__body,
    .lake-user-reviews {
        grid-template-columns: 1fr;
    }

    .lake-score-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .lake-review__facts {
        border-top: 1px solid rgba(7, 19, 19, .1);
        border-left: 0;
    }

    .lake-review.is-featured .lake-review__facts {
        border-top-color: rgba(255, 255, 255, .12);
        border-left: 0;
    }

}

@media (max-width: 620px) {
    .lakes-explorer__heading h2,
    .lakes-results__heading h2 {
        font-size: 34px;
    }

    .lakes-toolbar {
        padding: 16px;
    }

    .lakes-toplists__heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 4px;
    }

    .lakes-map-shell {
        height: 560px;
    }

    .lakes-map-shell__intro {
        top: 88px;
        left: 16px;
        width: calc(100% - 32px);
        padding: 18px;
    }

    .lakes-map-shell__intro h2 {
        font-size: 25px;
    }

    .lake-review__header {
        align-items: flex-start;
        flex-direction: column;
        padding: 24px 20px;
    }

    .lake-review h2 {
        font-size: 30px;
    }

    .lake-rating {
        grid-template-columns: auto auto;
        justify-items: start;
        column-gap: 10px;
    }

    .lake-rating > span:first-child {
        grid-column: 1 / -1;
    }

    .lake-review__editorial,
    .lake-review__facts,
    .lake-user-reviews {
        padding: 24px 20px;
    }

    .lake-user-reviews__heading {
        align-items: flex-start;
    }
}

.gallery-hero__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, .7fr);
    gap: clamp(44px, 8vw, 120px);
    align-items: end;
}

.gallery-hero h1 {
    margin: 14px 0 0;
    color: #fff;
    font-size: clamp(54px, 7vw, 92px);
    line-height: .95;
}

.gallery-hero p {
    margin: 0 0 6px;
    color: rgba(255, 255, 255, .68);
    font-size: 18px;
}

body section.gallery-section {
    padding-block: var(--kf-home-section-space);
    background: var(--kf-paper);
}

.gallery-months {
    display: grid;
    gap: clamp(44px, 7vw, 82px);
}

.gallery-month {
    display: grid;
    gap: 24px;
}

.gallery-month + .gallery-month {
    padding-top: clamp(42px, 6vw, 74px);
    border-top: 1px solid rgba(7, 19, 19, .11);
}

.gallery-month__heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 24px;
}

.gallery-month__heading h2 {
    margin: 10px 0 0;
    color: var(--kf-text);
    font-size: clamp(34px, 4.7vw, 58px);
    line-height: 1;
}

.gallery-month__heading p {
    margin: 0 0 5px;
    color: var(--kf-muted);
    font-weight: 800;
}

.gallery-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 22px;
}

.gallery-item {
    grid-column: span 4;
    margin: 0;
}

.gallery-item--1,
.gallery-item--6 {
    grid-column: span 8;
}

.gallery-item__open {
    position: relative;
    display: block;
    width: 100%;
    padding: 0;
    overflow: hidden;
    border: 0;
    border-radius: var(--kf-radius);
    background: var(--kf-ink);
    cursor: zoom-in;
}

.gallery-item__open img {
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    transition: transform .3s ease;
}

.gallery-item--1 .gallery-item__open img,
.gallery-item--6 .gallery-item__open img {
    aspect-ratio: 16 / 9;
}

.gallery-item__open > span {
    position: absolute;
    right: 14px;
    bottom: 14px;
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .92);
    color: var(--kf-blue-strong);
    font-weight: 900;
}

.gallery-item__open:hover img {
    transform: scale(1.025);
}

.gallery-item figcaption {
    padding: 16px 2px 8px;
}

.gallery-item figcaption strong {
    display: block;
    color: var(--kf-text);
    font: 800 20px/1.2 Outfit, Inter, sans-serif;
}

.gallery-item figcaption p {
    margin: 7px 0 0;
    color: var(--kf-muted);
    line-height: 1.55;
}

.gallery-item figcaption time {
    display: block;
    margin-top: 9px;
    color: #78878a;
    font-size: 13px;
    font-weight: 700;
}

.gallery-empty {
    max-width: 720px;
    padding: 40px 0;
}

.gallery-empty h2 {
    margin: 14px 0;
    font-size: clamp(38px, 5vw, 60px);
}

.gallery-empty p {
    color: var(--kf-muted);
    font-size: 18px;
}

.gallery-lightbox {
    width: min(1180px, calc(100% - 32px));
    max-width: none;
    max-height: calc(100vh - 32px);
    padding: 0;
    overflow: visible;
    border: 0;
    border-radius: var(--kf-radius);
    background: #061011;
    color: #fff;
}

.gallery-lightbox::backdrop {
    background: rgba(0, 0, 0, .86);
}

.gallery-lightbox figure {
    margin: 0;
}

.gallery-lightbox img {
    width: 100%;
    max-height: calc(100vh - 150px);
    object-fit: contain;
}

.gallery-lightbox figcaption {
    padding: 18px 22px 22px;
}

.gallery-lightbox figcaption strong {
    font: 800 22px Outfit, Inter, sans-serif;
}

.gallery-lightbox figcaption p {
    margin: 6px 0 0;
    color: rgba(255, 255, 255, .68);
}

.gallery-lightbox__close {
    position: absolute;
    z-index: 2;
    top: 12px;
    right: 12px;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #fff;
    color: var(--kf-ink);
    font-size: 28px;
    cursor: pointer;
}

/* Fiskegrejsbutikker */
body section.stores-hero {
    padding: clamp(72px, 9vw, 122px) 0;
    background: var(--kf-ink);
    color: #fff;
}

/* Links */
.links-page {
    background: var(--kf-bg);
}

body section.links-hero,
body section.links-submit-section {
    padding: 92px 0 76px;
    background: #071313;
    color: #fff;
}

.links-hero__layout,
.links-submit__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(360px, .86fr);
    gap: clamp(30px, 6vw, 92px);
    align-items: start;
}

.links-hero h1,
.links-submit__layout h2 {
    margin: 12px 0 0;
    max-width: 760px;
    color: #fff;
    font-size: clamp(46px, 6vw, 82px);
    line-height: .95;
}

.links-hero p,
.links-submit__layout > div p {
    margin: 0;
    color: rgba(236,246,244,.78);
    font-size: 18px;
}

body section.links-section {
    padding: 86px 0;
    background: #f4f7f6;
}

.links-groups {
    display: grid;
    gap: 34px;
}

.links-group {
    display: grid;
    gap: 22px;
    padding: clamp(22px, 4vw, 38px);
    border: 1px solid rgba(7,19,19,.11);
    border-radius: 8px;
    background: #eaf2f1;
    color: #102321;
    box-shadow: 0 22px 60px rgba(7,19,19,.08);
}

.links-group__heading {
    display: grid;
    gap: 8px;
}

.links-group__heading h2 {
    margin: 0;
    color: #102321;
    font-size: clamp(32px, 4vw, 54px);
    line-height: .98;
}

.links-group__heading p {
    max-width: 760px;
    margin: 0;
    color: #48605c;
}

.links-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.link-card {
    display: grid;
    gap: 18px;
    align-content: space-between;
    min-height: 220px;
    padding: 22px;
    border: 1px solid rgba(7,19,19,.1);
    border-radius: 7px;
    background: rgba(255,255,255,.68);
    color: #102321;
}

.link-card h3 {
    margin: 0 0 8px;
    color: #102321;
    font-size: clamp(24px, 2.2vw, 34px);
    line-height: 1;
}

.link-card p {
    margin: 0;
    color: #48605c;
}

.link-card a,
.links-submit-form button {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 44px;
    padding: 10px 15px;
    border: 0;
    border-radius: 999px;
    background: #071313;
    color: #fff !important;
    font-weight: 950;
    text-decoration: none;
    cursor: pointer;
}

.link-card a span {
    display: inline-grid;
    place-items: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: rgba(255,255,255,.14);
}

.links-empty {
    margin: 0;
    color: #48605c;
    font-weight: 800;
}

.links-empty--page {
    padding: 34px;
    border: 1px solid rgba(7,19,19,.1);
    border-radius: 8px;
    background: #eaf2f1;
}

.links-empty--page h2,
.links-empty--page p {
    margin: 0;
}

.links-empty--page h2 {
    color: #102321;
}

.links-submit-form {
    display: grid;
    gap: 14px;
    padding: 22px;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 8px;
    background: rgba(255,255,255,.055);
}

.links-form-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.links-submit-form label {
    display: grid;
    gap: 7px;
    color: rgba(236,246,244,.9);
    font-size: 13px;
    font-weight: 900;
}

.links-submit-form input,
.links-submit-form textarea {
    width: 100%;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 5px;
    background: #fff;
    color: #102321;
    padding: 12px 13px;
}

.links-form-note {
    margin: 0;
    color: rgba(236,246,244,.72);
    font-size: 14px;
    font-weight: 800;
}

.links-notice {
    padding: 14px 16px;
    border-radius: 6px;
    font-weight: 900;
}

.links-notice--success {
    background: rgba(144,210,176,.16);
    color: #d9f4e8;
}

.links-notice--error {
    background: rgba(255,120,92,.16);
    color: #ffd7ce;
}

.stores-hero__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, .72fr);
    gap: clamp(44px, 8vw, 120px);
    align-items: end;
}

.stores-hero h1 {
    margin: 14px 0 0;
    color: #fff;
    font-size: clamp(48px, 7vw, 86px);
    line-height: .96;
    overflow-wrap: anywhere;
}

.stores-hero p {
    margin: 0 0 6px;
    color: rgba(255, 255, 255, .68);
    font-size: 18px;
}

body section.stores-map-section {
    padding: 0;
    background: var(--kf-ink);
}

.stores-map-shell {
    position: relative;
    overflow: hidden;
    min-height: clamp(420px, 62vh, 680px);
    border-block: 1px solid rgba(255,255,255,.11);
    background: var(--kf-ink);
}

#store-map {
    position: absolute;
    width: 100%;
    inset: 0;
    z-index: 0;
    min-height: inherit;
    overflow: hidden;
}

.stores-map-shell__intro {
    position: relative;
    z-index: 2;
    width: min(430px, calc(100% - 32px));
    margin-left: max(16px, calc((100vw - 1180px) / 2));
    top: 34px;
    padding: 22px;
    border: 1px solid rgba(191,226,238,.26);
    border-radius: 8px;
    background: rgba(7,19,19,.96);
    color: #fff;
    box-shadow: 0 22px 50px rgba(0,0,0,.32);
    backdrop-filter: blur(8px);
}

.stores-map-shell__intro h2 {
    margin: 8px 0 10px;
    color: #fff;
    font-size: clamp(30px, 4vw, 44px);
    line-height: 1;
}

.stores-map-shell__intro p {
    margin: 0;
    color: rgba(255,255,255,.72);
}

body section.stores-list-section {
    padding-block: var(--kf-home-section-space);
    background: var(--kf-paper);
}

.stores-toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(210px, .55fr) auto;
    gap: 14px;
    align-items: end;
    margin-bottom: 28px;
    padding: 18px;
    border: 1px solid rgba(7,19,19,.1);
    border-radius: 8px;
    background: #fff;
}

.stores-toolbar label {
    display: grid;
    gap: 7px;
    color: var(--kf-text);
    font-weight: 800;
}

.stores-toolbar input,
.stores-toolbar select {
    width: 100%;
    min-height: 44px;
    border: 1px solid rgba(7,19,19,.13);
    border-radius: 6px;
    padding: 10px 12px;
    background: #f8fbfb;
    color: var(--kf-text);
}

.stores-toolbar__count {
    min-height: 44px;
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: baseline;
    gap: 8px;
    padding: 8px 12px;
    border-radius: 6px;
    background: var(--kf-ink);
    color: #fff;
}

.stores-toolbar__count strong {
    font-size: 24px;
}

.stores-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.store-card {
    display: grid;
    gap: 24px;
    align-content: space-between;
    min-height: 100%;
    padding: 24px;
    border: 1px solid rgba(7,19,19,.1);
    border-radius: 8px;
    background: #fff;
}

.store-card h2 {
    margin: 8px 0 12px;
    color: var(--kf-text);
    font-size: clamp(26px, 3vw, 38px);
    line-height: 1;
}

.store-card p {
    margin: 0 0 10px;
    color: var(--kf-muted);
}

.store-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding-top: 18px;
    border-top: 1px solid rgba(7,19,19,.1);
}

.store-card__actions a,
.store-card__actions button,
.store-card__actions span {
    min-height: 38px;
    display: inline-flex;
    align-items: center;
    border: 0;
    border-radius: 5px;
    padding: 8px 11px;
    background: var(--kf-soft);
    color: var(--kf-text);
    font-weight: 800;
}

.store-card__actions button {
    cursor: pointer;
}

.store-card__actions a:first-of-type,
.store-card__actions button {
    background: var(--kf-blue);
    color: #071313;
}

.store-map-marker {
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    border: 3px solid #fff;
    border-radius: 50% 50% 50% 0;
    background: var(--kf-blue);
    box-shadow: 0 10px 24px rgba(0,0,0,.28);
    transform: rotate(-45deg);
}

.store-map-marker i {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #071313;
}

.store-popup {
    display: grid;
    gap: 5px;
    max-width: 240px;
}

.store-popup strong {
    color: var(--kf-text);
}

.store-popup span,
.store-popup p {
    margin: 0;
    color: var(--kf-muted);
}

.store-popup__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    margin-top: 4px;
    padding: 8px 12px;
    border-radius: 999px;
    background: var(--kf-blue);
    color: #fff;
    font-weight: 900;
    text-decoration: none;
}

.store-popup__link:hover {
    background: var(--kf-blue-strong);
    color: #fff;
}

.store-card.is-highlighted {
    outline: 3px solid rgba(111, 160, 180, .55);
    outline-offset: 5px;
}

.stores-empty {
    padding: 40px 0;
    color: var(--kf-muted);
}

@media (max-width: 900px) {
    .nav {
        align-items: flex-start;
    }

    .brand-copy small {
        display: none;
    }

    .topnav {
        width: 100%;
        overflow-x: auto;
        padding-bottom: 4px;
    }

    .topnav__list {
        flex-wrap: nowrap;
        justify-content: flex-start;
        min-width: max-content;
    }

    .topnav__link {
        white-space: nowrap;
    }

    .topnav__submenu {
        display: none;
    }

    .hero {
        min-height: auto;
        padding: 74px 0;
    }

    .hero .hero-inner {
        grid-template-columns: 1fr;
    }

    .section-heading--split {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .front-news__intro,
    .front-news__grid,
    .featured-guides__grid,
    .news-archive__hero-layout {
        grid-template-columns: 1fr;
    }

    .front-news__intro {
        text-align: center;
    }

    .front-news__intro > div:last-child {
        justify-items: center;
    }

    .contact-modern__layout {
        grid-template-columns: 1fr;
    }

    .legal-hero__inner,
    .legal-layout {
        grid-template-columns: 1fr;
    }

    .legal-nav {
        position: static;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        padding: 18px;
        border-radius: var(--kf-radius);
        background: var(--kf-soft);
    }

    .legal-nav strong {
        grid-column: 1 / -1;
    }

    .fish-weather__today {
        grid-template-columns: 1fr;
    }

    .home-gallery__header {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .home-buddy__header,
    .home-buddy__grid {
        grid-template-columns: 1fr;
    }

    .home-buddy__header {
        text-align: center;
    }

    .home-buddy__aside,
    .home-gallery__aside {
        justify-items: center;
    }

    .home-gallery__mosaic {
        height: 520px;
    }

    .fish-weather__verdict {
        border-right: 0;
        border-bottom: 1px solid rgba(255, 255, 255, .11);
    }

    .fish-weather__metrics {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .fish-weather__controls {
        justify-content: flex-start;
        margin-top: 0;
    }

    .fish-week {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
        overflow: visible;
    }

	    .collab-teaser__layout,
	    .partners-hero__layout,
	    .links-hero__layout,
	    .links-submit__layout,
	    .polls-hero__layout,
	    .poll-card,
	    .poll-comment-form__row,
	    .partner-card,
    .about-hero__layout,
    .about-story__layout,
    .collab-page__header,
    .collab-page__terms,
    .collab-page__contact,
    .collab-page__cta {
        grid-template-columns: 1fr;
    }

    .home-partner-showcase {
        grid-template-columns: 1fr;
    }

    .partner-card:nth-child(even) .partner-card__media {
        order: 0;
    }

    .about-hero__layout {
        gap: 0;
    }

    .about-hero__copy {
        padding: 82px 0 64px;
    }

    .about-hero__portrait {
        min-height: 580px;
        max-height: 720px;
    }

    .about-method__grid,
    .collab-page__formats {
        grid-template-columns: 1fr;
    }

    .about-method__grid article,
    .collab-page__formats article {
        min-height: 0;
        border-right: 0;
        border-bottom: 1px solid rgba(7, 19, 19, .17);
    }

    .collab-page__formats article {
        border-bottom-color: rgba(255, 255, 255, .15);
    }

    .about-method__grid article:last-child,
    .collab-page__formats article:last-child {
        border-bottom: 0;
    }

    .collab-page__cta-actions {
        justify-content: flex-start;
    }

    .collab-page__form-row {
        grid-template-columns: 1fr;
    }

    .gallery-hero__layout {
        grid-template-columns: 1fr;
    }

    .gallery-month__heading {
        align-items: flex-start;
        flex-direction: column;
    }

	    .stores-hero__layout,
	    .links-grid,
	    .links-form-row,
	    .stores-toolbar,
    .stores-grid {
        grid-template-columns: 1fr;
    }

    .stores-map-shell__intro {
        top: 18px;
    }

    .lakes-hero__layout,
    .lakes-toolbar {
        grid-template-columns: 1fr;
    }

    .lakes-toplists {
        grid-template-columns: 1fr;
    }

    .lakes-toolbar__count {
        grid-template-columns: auto 1fr;
        align-items: baseline;
        gap: 7px;
    }

    .lakes-list {
        grid-template-columns: 1fr;
    }

    .lake-review,
    .lake-review:nth-child(even) {
        border-right: 0;
    }

    .gallery-item,
    .gallery-item--1,
    .gallery-item--6 {
        grid-column: span 6;
    }

    .lakes-hero__facts,
    .lake-review__footer {
        align-items: flex-start;
        flex-direction: column;
    }

    .lake-review__top {
        flex-direction: column;
    }

    .lake-rating {
        justify-items: start;
    }

    .lake-review__actions {
        flex-wrap: wrap;
    }

    .lake-review-form__row,
    .lake-review-form__ratings,
    .lake-score-grid,
    .lake-score-grid--users,
    .lake-score-grid--compact {
        grid-template-columns: 1fr;
    }

    .lake-review-form summary {
        align-items: flex-start;
        flex-direction: column;
        gap: 2px;
        padding-right: 28px;
        position: relative;
    }

    .lake-review-form summary::after {
        position: absolute;
        top: 0;
        right: 0;
    }

    .lake-review-form summary small {
        margin-left: 0;
    }

    .gallery-item--1 .gallery-item__open img,
    .gallery-item--6 .gallery-item__open img {
        aspect-ratio: 4 / 3;
    }
}

@media (max-width: 620px) {
    .brand img {
        height: 38px;
    }

    .brand-copy strong {
        font-size: 19px;
    }

    .hero h2 {
        font-size: clamp(36px, 13vw, 56px);
    }

    .hero-actions {
        grid-template-columns: 1fr;
        width: 100%;
    }

    .contact-modern__channels {
        align-items: flex-start;
        flex-wrap: wrap;
        gap: 14px 20px;
    }

    .contact-modern__channels > span {
        width: 100%;
    }

    .footer-bottom,
    .footer-legal {
        align-items: flex-start;
        flex-direction: column;
    }

    .footer-legal {
        gap: 10px;
    }

    .legal-nav {
        grid-template-columns: 1fr;
    }

    .hero-actions .btn,
    .hero-actions .subs-btn,
    .yt-header-buttons {
        width: 100%;
    }

    .fish-weather__verdict {
        grid-template-columns: 1fr;
        grid-template-areas:
            "kicker"
            "score"
            "content";
    }

    .home-gallery__actions {
        justify-content: center;
    }

    .home-buddy-card dl {
        grid-template-columns: 1fr;
    }

    .home-gallery__mosaic {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-rows: 1.35fr repeat(2, 1fr);
        height: 680px;
    }

    .home-gallery__item,
    .home-gallery__item--1 {
        grid-column: span 1;
        grid-row: span 1;
    }

    .home-gallery__item--1 {
        grid-column: 1 / -1;
    }

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

    .fish-weather__controls {
        align-items: stretch;
        flex-direction: column;
    }

    .fish-weather__controls select {
        width: 100%;
    }

    .fish-weather__metrics > div,
    .fish-weather__metrics > div:nth-child(3) {
        border: 1px solid rgba(255, 255, 255, .11);
    }

    .fish-weather__forecast-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 6px;
    }

    .fish-weather__note {
        text-align: left;
    }

    .news-detail__header {
        padding: 32px 0;
    }

    .news-detail__meta {
        align-items: flex-start;
        flex-direction: column;
        gap: 5px;
    }

    .collab-teaser__principles > div {
        grid-template-columns: 40px 1fr;
    }

    .collab-teaser__principles p {
        grid-column: 2;
    }

    .home-partner-card__media,
    .home-partner-card__media > img {
        min-height: 300px;
    }

    .partners-hero h1 {
        font-size: clamp(48px, 12vw, 76px);
    }

    .partner-card__media,
    .partner-card__media > img {
        min-height: 380px;
    }

    .partner-card__body {
        padding: 30px 24px 38px;
    }

    .about-hero__copy h1 {
        font-size: clamp(45px, 14vw, 64px);
    }

    .about-hero__facts {
        grid-template-columns: 1fr;
    }

    .about-hero__facts > div {
        padding: 16px 0;
        border-bottom: 1px solid rgba(255, 255, 255, .12);
    }

    .about-hero__portrait {
        min-height: 470px;
    }

    .collab-page__cta-actions {
        align-items: flex-start;
        flex-direction: column;
    }

    .gallery-item,
    .gallery-item--1,
    .gallery-item--6 {
        grid-column: 1 / -1;
    }
}

/* Mit grej */
body section.gear-hero {
    padding: clamp(72px, 8vw, 112px) 0;
    background: var(--kf-ink);
    color: #fff;
}

.gear-hero__layout {
    display: grid;
    grid-template-columns: minmax(0, .85fr) minmax(320px, .75fr);
    align-items: end;
    gap: clamp(34px, 7vw, 100px);
}

.gear-hero h1 {
    max-width: 720px;
    margin: 16px 0 0;
    color: #fff;
    font-size: clamp(46px, 7vw, 82px);
    line-height: .98;
}

.gear-hero__intro {
    display: grid;
    gap: 28px;
}

.gear-hero__intro > p {
    max-width: 650px;
    margin: 0;
    color: rgba(255, 255, 255, .7);
    font-size: 18px;
    line-height: 1.65;
}

.gear-jump {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.gear-jump a {
    padding: 8px 12px;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 999px;
    color: rgba(255, 255, 255, .8);
    font-size: 13px;
    font-weight: 700;
}

.gear-jump a:hover,
.gear-jump a:focus-visible {
    border-color: var(--kf-blue);
    color: #fff;
}

body section.gear-section {
    padding: clamp(70px, 8vw, 108px) 0;
    scroll-margin-top: 82px;
}

body section.gear-section--light {
    background: var(--kf-paper);
    color: var(--kf-ink);
}

body section.gear-section--dark {
    background: #0d2224;
    color: #fff;
}

.gear-section__layout {
    display: grid;
    grid-template-columns: minmax(250px, .62fr) minmax(0, 1.38fr);
    gap: clamp(34px, 7vw, 92px);
}

.gear-section__header {
    display: grid;
    align-content: start;
    grid-template-columns: 42px 1fr;
    gap: 18px;
}

.gear-section__header > span {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border: 1px solid rgba(7, 19, 19, .2);
    border-radius: 50%;
    font: 800 13px/1 Outfit, sans-serif;
}

.gear-section--dark .gear-section__header > span {
    border-color: rgba(255, 255, 255, .2);
    color: var(--kf-blue);
}

.gear-section__header h2 {
    margin: 0;
    color: inherit;
    font-size: clamp(34px, 4.5vw, 54px);
    line-height: 1.02;
}

.gear-section__header p {
    margin: 18px 0 0;
    color: var(--kf-muted);
    font-size: 17px;
    line-height: 1.6;
}

.gear-section--dark .gear-section__header p {
    color: rgba(255, 255, 255, .62);
}

.gear-items {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-top: 1px solid rgba(7, 19, 19, .16);
}

.gear-section--dark .gear-items {
    border-top-color: rgba(255, 255, 255, .13);
}

.gear-product {
    display: grid;
    align-content: space-between;
    gap: 28px;
    min-height: 220px;
    padding: clamp(22px, 3vw, 34px);
    border-right: 1px solid rgba(7, 19, 19, .16);
    border-bottom: 1px solid rgba(7, 19, 19, .16);
}

.gear-product:nth-child(even) {
    border-right: 0;
}

.gear-section--dark .gear-product {
    border-color: rgba(255, 255, 255, .13);
}

.gear-product h3 {
    margin: 0;
    color: inherit;
    font-size: clamp(22px, 2.5vw, 29px);
    line-height: 1.15;
}

.gear-product p {
    margin: 12px 0 0;
    color: var(--kf-muted);
    line-height: 1.55;
}

.gear-section--dark .gear-product p {
    color: rgba(255, 255, 255, .6);
}

.gear-product .gear-product__spec {
    color: var(--kf-blue);
    font-size: 14px;
    font-weight: 800;
}

.gear-product > a {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    width: fit-content;
    padding-bottom: 5px;
    border-bottom: 1px solid currentColor;
    color: inherit;
    font-weight: 800;
}

.gear-product > a span {
    color: var(--kf-blue);
}

.gear-section__empty {
    grid-column: 2;
    align-self: start;
    margin: 0;
    padding: 28px;
    border: 1px dashed rgba(7, 19, 19, .2);
    color: var(--kf-muted);
}

.gear-section--dark .gear-section__empty {
    border-color: rgba(255, 255, 255, .18);
    color: rgba(255, 255, 255, .6);
}

body section.gear-note {
    padding: 30px 0;
    background: var(--kf-blue);
    color: #071313;
}

.gear-note .container {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: baseline;
    gap: 28px;
}

.gear-note span {
    font-weight: 800;
    text-transform: uppercase;
}

.gear-note p {
    max-width: 900px;
    margin: 0;
    color: #071313;
    font-weight: 600;
}

@media (max-width: 900px) {
    .gear-hero__layout,
    .gear-section__layout {
        grid-template-columns: 1fr;
    }

    .gear-items {
        grid-template-columns: 1fr;
    }

    .gear-product,
    .gear-product:nth-child(even) {
        min-height: 0;
        border-right: 0;
    }

    .gear-section__empty {
        grid-column: 1;
    }
}

@media (max-width: 620px) {
    .gear-section__header {
        grid-template-columns: 1fr;
    }

    .gear-note .container {
        grid-template-columns: 1fr;
        gap: 8px;
    }
}

/* Konkurrencer */
body section.competitions-hero,
body section.competition-detail__hero {
    padding: clamp(66px, 7vw, 104px) 0;
    background: var(--kf-ink);
    color: #fff;
}

.competitions-hero__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, .72fr);
    align-items: end;
    gap: clamp(44px, 8vw, 120px);
}

.competitions-hero h1 {
    margin: 16px 0 0;
    color: #fff;
    font-size: clamp(54px, 8vw, 96px);
    line-height: .95;
}

.competitions-hero__intro {
    display: grid;
    gap: 26px;
}

.competitions-hero__intro p {
    margin: 0;
    color: rgba(255, 255, 255, .68);
    font-size: 18px;
    line-height: 1.65;
}

.competitions-hero__intro > span {
    display: flex;
    align-items: baseline;
    gap: 8px;
    color: rgba(255, 255, 255, .65);
}

.competitions-hero__intro strong {
    color: #fff;
    font: 800 34px/1 Outfit, sans-serif;
}

body section.competitions-list {
    padding: clamp(70px, 8vw, 108px) 0;
    background: var(--kf-paper);
}

.competition-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.competition-card {
    overflow: hidden;
    border: 1px solid rgba(7, 19, 19, .16);
    border-radius: var(--kf-radius);
    background: #fff;
}

.competition-card:only-child {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(340px, .85fr);
}

.competition-card:only-child .competition-card__image img {
    height: 100%;
    aspect-ratio: auto;
}

.competition-card__image {
    position: relative;
    display: block;
    overflow: hidden;
}

.competition-card__image img {
    width: 100%;
    aspect-ratio: 16/10;
    object-fit: cover;
    transition: transform .35s ease;
}

.competition-card:hover .competition-card__image img {
    transform: scale(1.025);
}

.competition-card__image span,
.competition-status {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    padding: 8px 12px;
    border-radius: 999px;
    background: var(--kf-blue);
    color: #fff;
    font-size: 12px;
    font-weight: 800;
}

.competition-card__image span {
    position: absolute;
    left: 18px;
    bottom: 18px;
}

.competition-card--closed .competition-card__image span,
.competition-status--closed {
    background: #506267;
}

.competition-card--upcoming .competition-card__image span,
.competition-status--upcoming {
    background: #d4b45e;
    color: #071313;
}

.competition-card__body {
    padding: clamp(22px, 3vw, 34px);
}

.competition-card__source {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-bottom: 18px;
}

.competition-card__source span {
    padding: 6px 9px;
    border-radius: 4px;
    background: var(--kf-soft);
    color: var(--kf-blue-strong);
    font-size: 11px;
    font-weight: 800;
}

.competition-card__dates,
.competition-detail__dates {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
}

.competition-card__dates span,
.competition-detail__dates span {
    display: grid;
    gap: 3px;
    font-weight: 800;
}

.competition-card__dates small,
.competition-detail__dates small {
    color: var(--kf-muted);
    font-size: 11px;
    text-transform: uppercase;
}

.competition-card h2 {
    margin: 24px 0 12px;
    font-size: clamp(27px, 3vw, 38px);
    line-height: 1.08;
}

.competition-card h2 a {
    color: var(--kf-ink);
}

.competition-card p {
    margin: 0;
    color: var(--kf-muted);
}

.competition-card__link {
    display: flex;
    justify-content: space-between;
    margin-top: 30px;
    padding-top: 18px;
    border-top: 1px solid rgba(7, 19, 19, .15);
    color: var(--kf-ink);
    font-weight: 800;
}

.competition-card__link span {
    color: var(--kf-blue-strong);
}

.competitions-empty,
.competition-missing .container {
    max-width: 760px;
    padding: 70px 0;
}

.competitions-empty h2,
.competition-missing h1 {
    margin: 16px 0;
    font-size: clamp(38px, 5vw, 62px);
}

.competitions-empty p {
    color: var(--kf-muted);
    font-size: 18px;
}

.competition-submission {
    display: grid;
    grid-template-columns: minmax(0, .82fr) minmax(380px, 1fr);
    gap: clamp(24px, 5vw, 70px);
    align-items: start;
    margin-top: 44px;
    padding: clamp(24px, 4vw, 38px);
    border: 1px solid rgba(7, 19, 19, .12);
    border-radius: 8px;
    background: #eaf2f1;
}

.competition-submission__intro h2 {
    margin: 10px 0 14px;
    font-size: clamp(34px, 5vw, 58px);
    line-height: .98;
}

.competition-submission__intro p {
    margin: 0;
    color: #48605c;
}

.competition-submission__form {
    display: grid;
    gap: 14px;
}

.competition-submission__form label {
    display: grid;
    gap: 7px;
    color: #37514d;
    font-size: 13px;
    font-weight: 900;
}

.competition-submission__form input,
.competition-submission__form textarea {
    width: 100%;
    border: 1px solid rgba(7,19,19,.14);
    border-radius: 5px;
    background: #fff;
    color: #102321;
    padding: 12px 13px;
}

.competition-submission__row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.competition-detail__hero-layout {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(380px, .8fr);
    align-items: stretch;
    gap: clamp(42px, 7vw, 100px);
}

.competition-detail__copy {
    align-self: center;
}

.competition-detail__back {
    display: block;
    margin-bottom: 38px;
    color: rgba(255, 255, 255, .62);
    font-weight: 700;
}

.competition-detail__copy h1 {
    margin: 22px 0;
    color: #fff;
    font-size: clamp(44px, 6vw, 76px);
    line-height: .98;
}

.competition-detail__copy > p {
    max-width: 680px;
    color: rgba(255, 255, 255, .7);
    font-size: 18px;
}

.competition-detail__dates {
    margin-top: 38px;
    padding-top: 22px;
    border-top: 1px solid rgba(255, 255, 255, .14);
}

.competition-detail__dates small {
    color: rgba(255, 255, 255, .48);
}

.competition-detail__cover {
    min-height: 560px;
    margin: 0;
}

.competition-detail__cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

body section.competition-detail__content {
    padding: clamp(70px, 8vw, 110px) 0;
    background: var(--kf-paper);
}

.competition-detail__content-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(340px, .65fr);
    align-items: start;
    gap: clamp(44px, 8vw, 120px);
}

.competition-detail__article h2 {
    margin: 58px 0 18px;
    font-size: clamp(32px, 4vw, 48px);
}

.competition-richtext {
    color: var(--kf-muted);
    font-size: 18px;
    line-height: 1.75;
}

.competition-connections {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 42px 0 10px;
}

.competition-connections > div {
    padding: 24px;
    border: 1px solid rgba(7, 19, 19, .15);
    border-radius: var(--kf-radius);
    background: #fff;
}

.competition-connections > div:only-child {
    grid-column: 1 / -1;
}

.competition-connections span {
    color: var(--kf-blue-strong);
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
}

.competition-connections h2,
.competition-detail__article .competition-connections h2 {
    margin: 9px 0 10px;
    font-size: clamp(22px, 2.5vw, 30px);
}

.competition-connections p {
    margin: 0;
    color: var(--kf-muted);
}

.competition-connections a {
    display: inline-flex;
    margin-top: 18px;
    color: var(--kf-blue-strong);
    font-weight: 800;
}

.competition-participation {
    position: sticky;
    top: 94px;
    padding: clamp(24px, 3vw, 36px);
    border: 1px solid rgba(7, 19, 19, .17);
    border-radius: var(--kf-radius);
    background: var(--kf-soft);
}

.competition-participation h2 {
    margin: 16px 0 12px;
    font-size: 31px;
}

.competition-participation > p {
    color: var(--kf-muted);
}

.competition-video-link {
    display: block;
    margin: 22px 0;
    color: var(--kf-blue-strong);
    font-weight: 800;
}

.competition-entry-form {
    display: grid;
    gap: 16px;
    margin-top: 26px;
}

.competition-entry-form label {
    display: grid;
    gap: 7px;
    color: var(--kf-ink);
    font-weight: 800;
}

.competition-entry-form input {
    border-radius: 6px;
    border-color: rgba(7, 19, 19, .2);
    background: #fff;
}

.competition-entry-form__consent {
    display: grid !important;
    grid-template-columns: auto 1fr;
    align-items: start;
    gap: 10px !important;
    color: var(--kf-muted) !important;
    font-size: 13px;
    font-weight: 600 !important;
}

.competition-entry-form__consent input {
    width: auto;
    margin-top: 3px;
}

.competition-entry-form__honeypot {
    position: absolute;
    left: -10000px;
}

.competition-entry-form button {
    min-height: 50px;
    border: 0;
    border-radius: 999px;
    background: var(--kf-blue);
    color: #fff;
    font-weight: 800;
}

.competition-message {
    margin: 20px 0;
    padding: 13px 15px;
    border-radius: 6px;
    font-weight: 700;
}

.competition-message.success {
    background: #d9f2e2;
    color: #164234;
}

.competition-message.error {
    background: #f5dddd;
    color: #642626;
}

.competition-social-links {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 28px;
    padding-top: 20px;
    border-top: 1px solid rgba(7, 19, 19, .14);
}

.competition-social-links a {
    color: var(--kf-ink);
    font-weight: 800;
}

.competition-winner-note {
    margin-top: 48px;
    padding: 26px;
    border-left: 5px solid var(--kf-blue);
    background: var(--kf-soft);
}

.competition-winner-note span {
    color: var(--kf-blue-strong);
    font-weight: 800;
    text-transform: uppercase;
}

.competition-winner-note p {
    margin-bottom: 0;
    color: var(--kf-ink);
    font-size: 18px;
}

body section.competition-gallery {
    padding: clamp(70px, 8vw, 108px) 0;
    background: #0d2224;
    color: #fff;
}

.competition-gallery .section-heading h2,
.competition-gallery .section-heading p {
    color: #fff;
}

.competition-gallery .section-heading p {
    color: rgba(255, 255, 255, .62);
}

.competition-gallery__grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 12px;
    margin-top: 44px;
}

.competition-gallery__grid img {
    grid-column: span 6;
    width: 100%;
    aspect-ratio: 16/10;
    object-fit: cover;
    border-radius: var(--kf-radius);
}

@media (max-width: 900px) {
    .competitions-hero__layout,
    .competition-detail__hero-layout,
    .competition-detail__content-layout {
        grid-template-columns: 1fr;
    }

    .competition-detail__cover {
        min-height: 500px;
    }

    .competition-participation {
        position: static;
    }

    .competition-card:only-child {
        grid-template-columns: 1fr;
    }

    .competition-card:only-child .competition-card__image img {
        height: auto;
        aspect-ratio: 16/10;
    }
}

@media (max-width: 620px) {
    .competition-grid {
        grid-template-columns: 1fr;
    }

    .competition-connections {
        grid-template-columns: 1fr;
    }

    .competition-detail__cover {
        min-height: 380px;
    }

    .competition-gallery__grid img {
        grid-column: 1 / -1;
    }
}

/* Navigation controls */
.has-sub > button.topnav__link {
    border: 0;
    background: transparent;
    cursor: pointer;
}

.topnav__submenu {
    display: block;
    margin-top: 10px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px);
    pointer-events: none;
    transition: opacity .16s ease, transform .16s ease, visibility .16s ease;
}

.topnav__submenu::before {
    content: "";
    position: absolute;
    right: 0;
    bottom: 100%;
    left: 0;
    height: 14px;
}

.has-sub:hover > .topnav__submenu,
.has-sub:focus-within > .topnav__submenu,
.has-sub.is-open > .topnav__submenu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
}

#quick-backdrop {
    position: fixed;
    inset: 0;
    z-index: 1290;
    background: rgba(2, 12, 13, .68);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    backdrop-filter: blur(5px);
    transition: opacity .24s ease, visibility .24s ease;
}

#quick-backdrop.open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

#quick-nav {
    display: none;
    align-items: center;
    gap: 10px;
    min-width: 112px;
    min-height: 52px;
    padding: 0 18px;
    border-radius: 8px;
    background: var(--kf-blue);
    color: #fff;
    font-family: "Outfit", sans-serif;
    font-size: 15px;
    font-weight: 800;
    letter-spacing: 0;
    box-shadow: 0 16px 42px rgba(0, 0, 0, .3);
}

.quick-nav__icon {
    display: grid;
    gap: 4px;
    width: 19px;
}

.quick-nav__icon i {
    display: block;
    width: 100%;
    height: 2px;
    border-radius: 2px;
    background: currentColor;
}

#quick-panel {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(420px, 92vw);
    max-height: none;
    padding: 0;
    border: 0;
    border-left: 1px solid rgba(255, 255, 255, .1);
    border-radius: 0;
    background: #0d2224;
    color: #fff;
    opacity: 1;
    visibility: hidden;
    transform: translateX(100%);
    z-index: 1300;
    transition: transform .28s cubic-bezier(.22, 1, .36, 1), visibility .28s ease;
    overscroll-behavior: contain;
}

#quick-panel.open {
    visibility: visible;
    transform: translateX(0);
}

.qp-head {
    min-height: 92px;
    padding: max(20px, env(safe-area-inset-top)) 24px 18px;
    border-bottom: 1px solid rgba(255, 255, 255, .1);
}

.qp-head > div {
    display: grid;
    gap: 3px;
}

.qp-head small {
    color: rgba(255, 255, 255, .48);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.qp-head strong {
    color: #fff;
    font-family: "Outfit", sans-serif;
    font-size: 25px;
}

#quick-close {
    position: relative;
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 50%;
    background: rgba(255, 255, 255, .06);
    color: #fff;
}

#quick-close span,
#quick-close span::after {
    width: 18px;
    height: 2px;
    border-radius: 2px;
    background: currentColor;
    transform: rotate(45deg);
}

#quick-close span::after {
    content: "";
    display: block;
    transform: rotate(90deg);
}

.qp-links {
    gap: 0;
    padding: 14px 18px calc(28px + env(safe-area-inset-bottom));
}

.qp-links a,
.qp-links a.topnav__link {
    display: flex;
    align-items: center;
    min-height: 54px;
    padding: 12px 8px;
    border-bottom: 1px solid rgba(255, 255, 255, .09);
    border-radius: 0;
    background: transparent;
    color: rgba(255, 255, 255, .86);
    font-family: "Outfit", sans-serif;
    font-size: 17px;
    font-weight: 700;
}

.qp-links a::after {
    content: "›";
    margin-left: auto;
    color: var(--kf-blue);
    font-size: 25px;
    line-height: 1;
}

.qp-links a:hover,
.qp-links a:focus-visible,
.qp-links a.active {
    background: transparent;
    color: #fff;
}

body.menu-open {
    overflow: hidden;
}

body.menu-open #cookie-banner,
body.menu-open .cookie-banner,
body.menu-open #cookie-fab,
body.menu-open .cookie-fab {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

#to-top {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 50%;
    background: #0d2224;
    color: #fff;
    box-shadow: 0 14px 34px rgba(0, 0, 0, .26);
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: opacity .2s ease, transform .2s ease, visibility .2s ease, background .2s ease;
}

#to-top span {
    width: 11px;
    height: 11px;
    margin-top: 5px;
    border-top: 2px solid currentColor;
    border-left: 2px solid currentColor;
    transform: rotate(45deg);
}

#to-top span::after {
    content: "";
    display: block;
    width: 2px;
    height: 16px;
    margin: -2px 0 0 3px;
    background: currentColor;
    transform: rotate(-45deg);
    transform-origin: top;
}

#to-top.show {
    display: grid;
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

#to-top:hover {
    background: var(--kf-blue);
}

@media (max-width: 899px) {
    #quick-nav {
        display: inline-flex;
        top: max(12px, env(safe-area-inset-top));
        right: max(16px, env(safe-area-inset-right));
        bottom: auto;
        z-index: 1200;
    }

    #to-top {
        right: max(18px, env(safe-area-inset-right));
        bottom: max(18px, calc(env(safe-area-inset-bottom) + 18px));
    }
}

@media (max-width: 360px) {
    #quick-nav {
        min-width: 52px;
        width: 52px;
        padding: 0 16px;
    }

    #quick-nav > span:last-child {
        display: none;
    }
}

@media (min-width: 900px) {
    #to-top {
        right: max(24px, env(safe-area-inset-right));
        bottom: max(84px, calc(env(safe-area-inset-bottom) + 84px));
    }
}

@media (prefers-reduced-motion: reduce) {
    #quick-panel,
    #quick-backdrop,
    #to-top,
    .topnav__submenu {
        transition: none;
    }
}

/* Cookie consent center */
.cookie-backdrop {
    position: fixed;
    inset: 0;
    z-index: 2147483645;
    background: rgba(2, 12, 13, .74);
    backdrop-filter: blur(7px);
}

.cookie-backdrop[hidden],
.cookie-banner[hidden] {
    display: none !important;
}

body.cookie-open {
    overflow: hidden;
}

.cookie-banner {
    position: fixed;
    z-index: 2147483647;
    right: 50%;
    bottom: max(20px, env(safe-area-inset-bottom));
    width: min(1040px, calc(100vw - 40px));
    max-height: calc(100dvh - 40px);
    overflow: auto;
    padding: 0;
    transform: translateX(50%);
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 8px;
    background: #0d2224;
    color: #fff;
    box-shadow: 0 30px 90px rgba(0, 0, 0, .48);
}

.cb-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 28px;
    padding: 30px 32px 26px;
    border-bottom: 1px solid rgba(8, 28, 30, .12);
    background: #f5fafb;
    color: #081c1e;
}

.cb-header > div {
    max-width: 760px;
}

.cb-kicker {
    display: block;
    margin-bottom: 8px;
    color: var(--kf-blue);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.cookie-banner .cb-header h2 {
    margin: 0;
    color: #081c1e;
    font-size: clamp(28px, 4vw, 44px);
    line-height: 1.05;
}

.cookie-banner .cb-header p {
    max-width: 700px;
    margin: 13px 0 0;
    color: rgba(8, 28, 30, .72);
    font-size: 15px;
    line-height: 1.6;
}

.cb-close {
    position: relative;
    flex: 0 0 46px;
    width: 46px;
    height: 46px;
    padding: 0;
    border: 1px solid rgba(8, 28, 30, .16);
    border-radius: 50%;
    background: rgba(8, 28, 30, .06);
    color: #081c1e;
    cursor: pointer;
}

.cb-close span,
.cb-close span::after {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 18px;
    height: 2px;
    border-radius: 2px;
    background: currentColor;
    content: "";
    transform: translate(-50%, -50%) rotate(45deg);
}

.cb-close span::after {
    transform: translate(-50%, -50%) rotate(90deg);
}

.cookie-banner .cb-options {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin: 0;
    padding: 22px 32px;
}

.cookie-banner .cb-category {
    display: flex;
    min-width: 0;
    min-height: 160px;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    padding: 21px;
    border: 1px solid rgba(8, 28, 30, .12);
    border-radius: 6px;
    /* Cookie readability fix 2026-06-24: options sit on a light panel, so text must be dark here. */
    background: rgba(8, 28, 30, .035);
    color: #081c1e;
    cursor: pointer;
}

.cookie-banner .cb-category--required {
    color: #081c1e;
    cursor: default;
}

.cookie-banner .cb-category .cb-category__copy > span {
    color: #5d8fa3;
}

.cookie-banner .cb-category .cb-category__copy strong {
    color: #081c1e;
}

.cookie-banner .cb-category .cb-category__copy p {
    color: rgba(8, 28, 30, .72);
}

.cookie-banner .cb-category--required .cb-status {
    border-color: rgba(8, 28, 30, .18);
    color: #081c1e;
}

.cb-category__copy {
    display: grid;
    gap: 5px;
}

.cb-category__copy > span {
    color: var(--kf-blue);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.cb-category__copy strong {
    color: #fff;
    font-family: "Outfit", sans-serif;
    font-size: 19px;
}

.cookie-banner .cb-category__copy p {
    margin: 4px 0 0;
    color: rgba(255, 255, 255, .58);
    font-size: 13px;
    line-height: 1.55;
}

.cb-status {
    flex: 0 0 auto;
    padding: 7px 9px;
    border: 1px solid rgba(111, 160, 180, .42);
    border-radius: 4px;
    color: #d8eef5;
    font-size: 11px;
    font-weight: 800;
    white-space: nowrap;
}

.cb-switch {
    position: relative;
    flex: 0 0 48px;
    width: 48px;
    height: 28px;
}

.cb-switch input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.cb-switch > span {
    position: absolute;
    inset: 0;
    border: 1px solid rgba(8, 28, 30, .18);
    border-radius: 999px;
    background: rgba(8, 28, 30, .1);
    transition: background .18s ease, border-color .18s ease;
}

.cb-switch > span::after {
    content: "";
    position: absolute;
    top: 4px;
    left: 4px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #fff;
    transition: transform .18s ease;
}

.cb-switch input:checked + span {
    border-color: var(--kf-blue);
    background: var(--kf-blue);
}

.cb-switch input:checked + span::after {
    transform: translateX(20px);
}

.cb-switch input:focus-visible + span {
    outline: 3px solid rgba(111, 160, 180, .35);
    outline-offset: 3px;
}

.cb-details {
    margin: 0 32px;
    border-top: 1px solid rgba(8, 28, 30, .12);
    border-bottom: 1px solid rgba(8, 28, 30, .12);
}

.cb-details summary {
    padding: 16px 0;
    color: #081c1e;
    font-weight: 800;
    cursor: pointer;
}

.cb-details > div {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
    padding: 0 0 18px;
}

.cookie-banner .cb-details p {
    margin: 0;
    color: rgba(8, 28, 30, .72);
    font-size: 12px;
    line-height: 1.55;
}

.cookie-banner .cb-details strong {
    color: #081c1e;
}

.cb-footer {
    padding: 22px 32px 28px;
}

.cookie-banner .cb-actions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.cb-button {
    min-height: 50px;
    padding: 11px 16px;
    border: 1px solid transparent;
    border-radius: 6px;
    font-family: "Outfit", sans-serif;
    font-size: 15px;
    font-weight: 800;
    cursor: pointer;
}

.cb-button--primary,
.cb-button--outline {
    border-color: var(--kf-blue);
}

.cb-button--primary {
    background: var(--kf-blue);
    color: #071313;
}

.cb-button--outline {
    background: transparent;
    color: #fff;
}

.cb-button--secondary {
    border-color: rgba(255, 255, 255, .14);
    background: rgba(255, 255, 255, .08);
    color: #fff;
}

.cb-button:hover,
.cb-button:focus-visible {
    filter: brightness(1.12);
}

.cookie-banner .cb-footer > p {
    margin: 14px 0 0;
    color: rgba(255, 255, 255, .52);
    font-size: 12px;
    text-align: center;
}

.cookie-banner .cb-footer a {
    color: #d8eef5;
}

.cookie-manage {
    position: fixed;
    right: max(16px, env(safe-area-inset-right));
    bottom: max(16px, env(safe-area-inset-bottom));
    z-index: 2147483644;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 42px;
    padding: 0 13px;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 6px;
    background: #0d2224;
    color: #fff;
    font-family: "Outfit", sans-serif;
    font-size: 13px;
    font-weight: 800;
    box-shadow: 0 12px 28px rgba(0, 0, 0, .24);
}

.cookie-manage > span {
    position: relative;
    width: 15px;
    height: 15px;
    border: 2px solid var(--kf-blue);
    border-radius: 50%;
}

.cookie-manage > span::after {
    content: "";
    position: absolute;
    right: -2px;
    bottom: -2px;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #0d2224;
}

body.cookie-open .cookie-manage {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.consent-embed {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: grid;
    place-content: center;
    justify-items: center;
    padding: 28px;
    background:
        linear-gradient(rgba(7, 19, 19, .88), rgba(7, 19, 19, .92)),
        url('../images/hero-bg2-optimized.jpg') center / cover;
    color: #fff;
    text-align: center;
}

.consent-embed[hidden] {
    display: none;
}

.video-frame iframe[hidden] {
    display: none;
}

.consent-embed__label {
    margin-bottom: 9px;
    color: var(--kf-blue);
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.consent-embed strong {
    font-family: "Outfit", sans-serif;
    font-size: clamp(22px, 4vw, 34px);
}

.consent-embed p {
    margin: 9px 0 18px;
    color: rgba(255, 255, 255, .68);
}

.consent-embed button {
    min-height: 46px;
    padding: 10px 16px;
    border: 0;
    border-radius: 6px;
    background: var(--kf-blue);
    color: #071313;
    font-weight: 800;
    cursor: pointer;
}

@media (max-width: 760px) {
    .home-partner-showcase {
        margin-top: 12px;
        padding-top: 30px;
    }

    .cookie-banner {
        left: 0;
        right: 0;
        bottom: 0;
        width: 100%;
        max-height: 94dvh;
        transform: none;
        border-right: 0;
        border-bottom: 0;
        border-left: 0;
        border-radius: 8px 8px 0 0;
    }

    .cb-header {
        padding: 22px 20px 18px;
    }

    .cookie-banner .cb-header h2 {
        padding-right: 4px;
        font-size: 28px;
    }

    .cookie-banner .cb-options {
        grid-template-columns: 1fr;
        padding: 16px 20px;
    }

    .cookie-banner .cb-category {
        min-height: 0;
        padding: 17px;
    }

    .cb-details {
        margin-inline: 20px;
    }

    .cb-details > div {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .cb-footer {
        padding: 18px 20px calc(20px + env(safe-area-inset-bottom));
    }

    .cookie-banner .cb-actions {
        grid-template-columns: 1fr 1fr;
    }

    .cb-button--secondary {
        grid-column: 1 / -1;
        grid-row: 2;
    }
}

@media (max-width: 420px) {
    .cb-header {
        gap: 12px;
    }

    .cb-close {
        flex-basis: 42px;
        width: 42px;
        height: 42px;
    }

    .cookie-banner .cb-category__copy p {
        font-size: 12px;
    }
}

/* Webshop */
.shop-page,
.product-page {
    background: var(--kf-soft);
    color: var(--kf-ink);
}

.shop-hero {
    padding: clamp(72px, 9vw, 128px) 0;
    background: #09191b;
    color: #fff;
}

.shop-hero__layout {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(320px, .92fr);
    gap: clamp(48px, 8vw, 120px);
    align-items: end;
}

.shop-hero h1 {
    max-width: 760px;
    margin: 16px 0 0;
    font-size: clamp(54px, 7vw, 94px);
    line-height: .96;
}

.shop-hero__intro {
    display: grid;
    justify-items: start;
    gap: 24px;
}

.shop-hero__intro p {
    max-width: 590px;
    margin: 0;
    color: rgba(255, 255, 255, .68);
    font-size: 18px;
}

.shop-cart-open [data-cart-count] {
    display: inline-grid;
    place-items: center;
    min-width: 25px;
    height: 25px;
    margin-left: 8px;
    border-radius: 50%;
    background: rgba(7, 19, 19, .2);
}

.shop-catalog {
    padding: var(--kf-home-section-space) 0;
}

.shop-section-heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, .72fr);
    gap: 40px;
    align-items: end;
    margin-bottom: clamp(38px, 6vw, 72px);
}

.shop-section-heading h2 {
    margin: 12px 0 0;
    font-size: clamp(42px, 5vw, 68px);
}

.shop-section-heading > p {
    margin: 0;
    color: var(--kf-muted);
}

.shop-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}

.shop-card {
    overflow: hidden;
    border: 1px solid rgba(7, 19, 19, .14);
    border-radius: var(--kf-radius);
    background: #fff;
}

.shop-card__media {
    position: relative;
    display: block;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: #dce9ed;
}

.shop-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .35s ease;
}

.shop-card:hover .shop-card__media img {
    transform: scale(1.025);
}

.shop-card__media--empty {
    display: grid;
    place-items: center;
    color: rgba(7, 19, 19, .2);
    font: 800 90px/1 "Outfit", sans-serif;
}

.shop-card__stock {
    position: absolute;
    top: 15px;
    left: 15px;
    padding: 7px 10px;
    border-radius: 4px;
    background: rgba(7, 19, 19, .88);
    color: #fff;
    font-size: 12px;
    font-weight: 800;
}

.shop-card__stock.is-sold-out,
.product-detail__stock.is-sold-out {
    background: #6f2727;
}

.shop-card__body {
    display: grid;
    gap: 16px;
    padding: 26px;
}

.shop-card__topline,
.shop-card__actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.shop-card__topline span {
    color: var(--kf-muted);
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.shop-card__topline strong {
    font-size: 18px;
}

.shop-card h2 {
    margin: 0;
    font-size: 28px;
}

.shop-card h2 a,
.shop-card__actions a {
    color: var(--kf-ink);
}

.shop-card__summary {
    min-height: 52px;
    margin: 0;
    color: var(--kf-muted);
}

.shop-card__summary p {
    margin: 0;
}

.shop-card__actions {
    padding-top: 18px;
    border-top: 1px solid rgba(7, 19, 19, .11);
}

.shop-card__actions a {
    font-weight: 800;
}

.shop-add {
    min-height: 43px;
    padding: 9px 14px;
    border: 0;
    border-radius: 5px;
    background: var(--kf-blue);
    color: #071313;
    font-weight: 800;
    cursor: pointer;
}

.shop-add:disabled {
    cursor: not-allowed;
    opacity: .5;
}

.shop-empty {
    padding: clamp(70px, 10vw, 140px) 0;
    text-align: center;
}

.shop-empty h2 {
    margin: 14px 0;
    font-size: clamp(36px, 5vw, 60px);
}

.shop-cart-backdrop {
    position: fixed;
    inset: 0;
    z-index: 2147483645;
    background: rgba(2, 10, 11, .7);
    backdrop-filter: blur(4px);
}

.shop-cart {
    position: fixed;
    top: 0;
    right: 0;
    z-index: 2147483646;
    display: block;
    width: min(520px, 100%);
    height: 100dvh;
    padding: 26px;
    overflow-y: auto;
    transform: translateX(105%);
    background: #0b1b1d;
    color: #fff;
    box-shadow: -30px 0 80px rgba(0, 0, 0, .34);
    transition: transform .25s ease;
}

.shop-cart.is-open {
    transform: translateX(0);
}

.shop-cart > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 20px;
    border-bottom: 1px solid rgba(255, 255, 255, .12);
}

.shop-cart > header span {
    color: var(--kf-blue);
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.shop-cart > header h2 {
    margin: 3px 0 0;
    color: #fff;
    font-size: 36px;
}

.shop-cart > header button {
    width: 44px;
    height: 44px;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 5px;
    background: transparent;
    color: #fff;
    font-size: 28px;
}

.shop-cart__items {
    padding: 20px 0;
}

.shop-cart__empty {
    display: grid;
    gap: 6px;
    padding: 42px 0;
    color: rgba(255, 255, 255, .6);
    text-align: center;
}

.shop-cart-item {
    display: grid;
    grid-template-columns: 84px minmax(0, 1fr);
    gap: 16px;
    padding: 16px 0;
    border-bottom: 1px solid rgba(255, 255, 255, .1);
}

.shop-cart-item > img,
.shop-cart-item__placeholder {
    width: 84px;
    height: 84px;
    border-radius: 4px;
    background: #183033;
    object-fit: cover;
}

.shop-cart-item > div {
    display: grid;
    gap: 5px;
}

.shop-cart-item > div > span {
    color: rgba(255, 255, 255, .62);
}

.shop-cart-item__quantity {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-top: 7px;
}

.shop-cart-item__quantity button {
    min-width: 30px;
    height: 30px;
    border: 1px solid rgba(255, 255, 255, .15);
    border-radius: 4px;
    background: rgba(255, 255, 255, .07);
    color: #fff;
}

.shop-cart-item__quantity button:disabled {
    cursor: not-allowed;
    opacity: .35;
}

.shop-cart-item__quantity button:last-child {
    width: auto;
    margin-left: auto;
    padding-inline: 9px;
    color: #efb1b1;
}

.shop-cart__summary {
    display: grid;
    gap: 8px;
    padding: 18px 0;
    border-top: 1px solid rgba(255, 255, 255, .12);
    border-bottom: 1px solid rgba(255, 255, 255, .12);
}

.shop-cart__summary > div {
    display: flex;
    justify-content: space-between;
}

.shop-cart__summary .shop-cart__total {
    margin-top: 5px;
    padding-top: 10px;
    border-top: 1px solid rgba(255, 255, 255, .1);
    font-size: 18px;
}

.shop-cart__delivery {
    margin: 12px 0 0;
    color: rgba(255, 255, 255, .62);
    font-size: 13px;
}

.shop-checkout {
    display: grid;
    gap: 12px;
    padding-top: 22px;
}

.shop-checkout h3 {
    margin: 0 0 5px;
    color: #fff;
}

.shop-checkout label {
    display: grid;
    gap: 5px;
    color: rgba(255, 255, 255, .72);
    font-size: 13px;
    font-weight: 700;
}

.shop-checkout input,
.shop-checkout textarea {
    width: 100%;
    padding: 12px;
    border: 1px solid rgba(255, 255, 255, .15);
    border-radius: 4px;
    background: rgba(255, 255, 255, .07);
    color: #fff;
    font: inherit;
}

.shop-checkout__message {
    padding: 12px;
    border-left: 3px solid #75c9a3;
    background: rgba(117, 201, 163, .12);
}

.shop-checkout__message.is-error {
    border-color: #e98080;
    background: rgba(233, 128, 128, .12);
}

.shop-paypal {
    display: grid;
    gap: 10px;
    padding-top: 14px;
    text-align: center;
}

.shop-paypal > span {
    color: rgba(255, 255, 255, .54);
    font-size: 12px;
}

.shop-paypal-load {
    min-height: 46px;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 5px;
    background: rgba(255, 255, 255, .08);
    color: #fff;
    font: 800 14px/1 Inter, sans-serif;
    cursor: pointer;
}

.shop-closed {
    padding: 25px 0;
    color: rgba(255, 255, 255, .65);
}

.product-detail {
    padding: clamp(70px, 9vw, 126px) 0;
}

.product-detail__layout {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(340px, .95fr);
    gap: clamp(48px, 8vw, 112px);
    align-items: start;
}

.product-detail__main {
    display: grid;
    place-items: center;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    border-radius: var(--kf-radius);
    background: #dce9ed;
}

.product-detail__main img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.product-detail__main-open {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    padding: 0;
    overflow: hidden;
    border: 0;
    background: transparent;
    color: #fff;
    cursor: zoom-in;
}

.product-detail__main-open > span {
    position: absolute;
    right: 18px;
    bottom: 18px;
    padding: 9px 12px;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 999px;
    background: rgba(7, 19, 19, .74);
    font-size: 12px;
    font-weight: 800;
    opacity: 0;
    transform: translateY(6px);
    transition: opacity .2s ease, transform .2s ease;
}

.product-detail__main-open:hover > span,
.product-detail__main-open:focus-visible > span {
    opacity: 1;
    transform: translateY(0);
}

.product-detail__main--empty {
    color: rgba(7, 19, 19, .2);
    font: 800 150px/1 "Outfit", sans-serif;
}

.product-detail__thumbs {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
    margin-top: 10px;
}

.product-detail__thumbs button {
    aspect-ratio: 1;
    padding: 0;
    overflow: hidden;
    border: 1px solid rgba(7, 19, 19, .14);
    border-radius: 4px;
    background: #fff;
    cursor: pointer;
    transition: border-color .2s ease, transform .2s ease;
}

.product-detail__thumbs button:hover,
.product-detail__thumbs button:focus-visible,
.product-detail__thumbs button.is-active {
    border-color: var(--kf-blue);
    transform: translateY(-1px);
}

.product-detail__thumbs img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.product-detail__content {
    position: sticky;
    top: 120px;
}

.product-detail__back {
    display: inline-block;
    margin-bottom: 34px;
    color: var(--kf-muted);
    font-weight: 800;
}

.product-detail__content h1 {
    margin: 13px 0 20px;
    font-size: clamp(48px, 6vw, 78px);
    line-height: .98;
}

.product-detail__lead {
    color: var(--kf-muted);
    font-size: 19px;
}

.product-detail__lead p {
    margin: 0;
}

.product-detail__price {
    margin: 28px 0 12px;
    font: 800 32px/1 "Outfit", sans-serif;
}

.shop-price { display: inline-flex; align-items: baseline; gap: .45rem; flex-wrap: wrap; }
.shop-price del,
.product-detail__price del { color: #7d898d; font-size: .72em; font-weight: 600; text-decoration-thickness: 2px; }
.shop-price.is-sale span,
.product-detail__price.is-sale span { color: #b54b48; font-weight: 900; }
.product-detail__price.is-sale { display: flex; align-items: baseline; gap: .75rem; flex-wrap: wrap; }

.product-detail__stock {
    display: inline-flex;
    padding: 7px 10px;
    border-radius: 4px;
    background: #dceee6;
    color: #155839;
    font-size: 12px;
    font-weight: 800;
}

.product-detail__delivery {
    margin: 12px 0 0;
    color: var(--kf-muted);
    font-size: 14px;
    font-weight: 700;
}

.product-detail__description {
    margin: 30px 0;
    padding-top: 27px;
    border-top: 1px solid rgba(7, 19, 19, .14);
}

.product-lightbox {
    width: min(1120px, calc(100vw - 32px));
    max-height: calc(100dvh - 32px);
    padding: 0;
    overflow: visible;
    border: 0;
    background: transparent;
}

.product-lightbox::backdrop {
    background: rgba(2, 10, 11, .82);
    backdrop-filter: blur(8px);
}

.product-lightbox[open] {
    display: grid;
    place-items: center;
}

.product-lightbox.is-open {
    position: fixed;
    inset: 16px;
    z-index: 2147483647;
    display: grid;
    place-items: center;
}

body.product-lightbox-opened {
    overflow: hidden;
}

.product-lightbox img {
    display: block;
    max-width: 100%;
    max-height: calc(100dvh - 74px);
    border-radius: var(--kf-radius);
    object-fit: contain;
    box-shadow: 0 34px 110px rgba(0, 0, 0, .45);
}

.product-lightbox__close {
    position: absolute;
    top: -18px;
    right: -18px;
    z-index: 2;
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    border: 1px solid rgba(255, 255, 255, .25);
    border-radius: 50%;
    background: #fff;
    color: #071313;
    font-size: 30px;
    line-height: 1;
    cursor: pointer;
}

@media (max-width: 980px) {
    .shop-hero__layout,
    .shop-section-heading,
    .product-detail__layout {
        grid-template-columns: 1fr;
    }

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

    .product-detail__content {
        position: static;
    }
}

@media (max-width: 640px) {
    .shop-hero {
        padding: 62px 0;
    }

    .shop-hero h1 {
        font-size: 52px;
    }

    .shop-grid {
        grid-template-columns: 1fr;
    }

    .shop-card__summary {
        min-height: 0;
    }

    .shop-cart {
        padding: 20px;
    }

    .product-detail {
        padding-top: 48px;
    }
}

/* Fiskemakker */
.buddy-page {
    background: var(--kf-bg);
}

.lakes-store-callout {
    width: min(1120px, calc(100% - 40px));
    margin: 26px auto 0;
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(280px, 1fr) auto;
    gap: 20px;
    align-items: center;
    padding: 22px;
    border: 1px solid rgba(7,19,19,.12);
    border-radius: 8px;
    background: #eaf2f1;
}

.lakes-store-callout h2,
.lakes-store-callout p {
    margin: 0;
}

.lakes-store-callout h2 {
    font-size: clamp(26px, 3vw, 40px);
    line-height: 1.02;
}

.lakes-store-callout p {
    color: #48605c;
}

.lakes-store-callout a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 44px;
    padding: 10px 14px;
    border-radius: 999px;
    border: 1px solid rgba(7,19,19,.16);
    background: var(--kf-ink);
    color: #fff !important;
    font-weight: 900;
    white-space: nowrap;
    box-shadow: 0 14px 30px rgba(7,19,19,.16);
}

.site-banner {
    padding: 34px 0;
    background: var(--kf-bg);
}

.site-banner--after-header {
    padding-top: 26px;
}

.site-banner--lakes {
    padding: 26px 0 8px;
}

.site-banner__link {
    position: relative;
    display: block;
    overflow: hidden;
    min-height: 170px;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 8px;
    background: #071313;
    box-shadow: 0 22px 60px rgba(0, 0, 0, .24);
    color: #fff;
    isolation: isolate;
}

.site-banner--slim .site-banner__link {
    min-height: 118px;
}

.site-banner--square .site-banner__link {
    max-width: 720px;
    min-height: 260px;
}

.site-banner__link img {
    position: absolute;
    inset: 0;
    z-index: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.site-banner__link::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(90deg, rgba(7, 19, 19, .82), rgba(7, 19, 19, .24) 58%, rgba(7, 19, 19, .1));
}

.site-banner__link span {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: 8px;
    width: min(620px, 100%);
    min-height: inherit;
    padding: clamp(22px, 4vw, 42px);
    color: rgba(255, 255, 255, .76);
    font-size: .82rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.site-banner__link b {
    color: #fff;
    font-family: var(--kf-display);
    font-size: clamp(1.35rem, 3vw, 2.35rem);
    line-height: 1.05;
    letter-spacing: 0;
    text-transform: none;
}

.visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.buddy-hero {
    padding: 92px 0 72px;
    border-bottom: 1px solid rgba(255,255,255,.1);
    background: #071313;
}

.buddy-hero__grid,
.buddy-form-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(360px, .82fr);
    gap: clamp(34px, 6vw, 92px);
    align-items: start;
}

.buddy-hero h1,
.buddy-form-layout h2 {
    margin: 12px 0 0;
    max-width: 760px;
    color: #fff;
    font-size: clamp(46px, 6vw, 86px);
    line-height: .95;
}

.buddy-hero__copy,
.buddy-form-layout > div p {
    color: rgba(236,246,244,.78);
    font-size: 18px;
}

.buddy-age-note {
    display: inline-flex;
    margin-top: 14px;
    padding: 8px 11px;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 4px;
    color: #fff;
    font-weight: 900;
}

.buddy-hero-cta {
    display: grid;
    gap: 10px;
    margin-top: 18px;
    padding: 18px;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 8px;
    background: rgba(255,255,255,.055);
    box-shadow: 0 18px 40px rgba(0,0,0,.18);
}

.buddy-hero-cta strong {
    color: #fff;
    font-size: 18px;
    line-height: 1.15;
}

.buddy-hero-cta span {
    color: rgba(236,246,244,.74);
}

.buddy-hero-cta a {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-height: 44px;
    margin-top: 4px;
    padding: 10px 15px;
    border-radius: 999px;
    background: #fff;
    color: #071313 !important;
    font-weight: 950;
    text-decoration: none;
    box-shadow: 0 16px 34px rgba(0,0,0,.18);
}

.buddy-hero-cta a span {
    display: inline-grid;
    place-items: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: #d9ebe6;
    color: #071313;
}

.buddy-trust-strip {
    padding: 22px 0;
    border-top: 1px solid rgba(255,255,255,.08);
    border-bottom: 1px solid rgba(255,255,255,.08);
    background: linear-gradient(180deg, #071313, #0b1d1f);
}

.buddy-trust-strip__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.buddy-trust-strip article {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 6px 12px;
    align-items: start;
    padding: 16px;
    border: 1px solid rgba(191, 227, 236, .18);
    border-radius: 8px;
    background: #102321;
}

.buddy-trust-strip span {
    grid-row: 1 / 3;
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    border-radius: 50%;
    background: rgba(111,160,180,.24);
    color: #d8f3f7;
    font-size: 12px;
    font-weight: 950;
}

.buddy-trust-strip strong {
    color: #f8fffd;
    font-size: 15px;
    line-height: 1.2;
}

.buddy-trust-strip p {
    margin: 0;
    color: #c8d8d5;
    font-size: 13px;
    line-height: 1.45;
}

.buddy-map-section {
    overflow: hidden;
    background: #eaf2f1;
}

.buddy-section {
    padding: 86px 0;
}

.buddy-section .section-split-heading h2 {
    color: #102321;
}

.buddy-section .section-split-heading p,
.buddy-section .buddy-count {
    color: #48605c;
}

.buddy-section .eyebrow {
    color: #527f74;
}

.buddy-toolbar {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
    gap: 12px;
    margin: 28px 0 16px;
    align-items: end;
}

.buddy-quick-filter {
    min-height: 45px;
    border: 1px solid rgba(7,19,19,.12);
    border-radius: 999px;
    background: #fff;
    color: #102321;
    padding: 10px 13px;
    font-weight: 950;
    cursor: pointer;
    white-space: nowrap;
}

.buddy-quick-filter.is-active {
    border-color: #071313;
    background: #071313;
    color: #fff;
}

.buddy-map-layout {
    position: relative;
    display: block;
    margin: 0 calc(50% - 50vw);
}

#buddy-map {
    min-height: clamp(420px, 48vw, 620px);
    overflow: hidden;
    border-block: 1px solid rgba(7,19,19,.12);
    border-radius: 0;
    background: #dcebea;
    box-shadow: 0 22px 56px rgba(7,19,19,.12);
}

.buddy-match-panel {
    position: absolute;
    left: max(24px, calc((100vw - var(--kf-container, 1180px)) / 2));
    top: 50%;
    z-index: 500;
    display: grid;
    align-content: end;
    gap: 12px;
    width: min(430px, calc(100vw - 48px));
    padding: 24px;
    border: 1px solid rgba(7,19,19,.12);
    border-radius: 8px;
    background: rgba(7,19,19,.92);
    color: #fff;
    box-shadow: 0 22px 56px rgba(7,19,19,.22);
    transform: translateY(-50%);
    backdrop-filter: blur(14px);
}

.buddy-match-panel h3,
.buddy-match-panel p {
    margin: 0;
}

.buddy-match-panel h3 {
    max-width: 360px;
    color: #fff;
    font-size: clamp(30px, 3.3vw, 48px);
    line-height: .98;
}

.buddy-match-panel p {
    color: rgba(236,246,244,.72);
}

.buddy-map-marker-shell {
    border: 0;
    background: transparent;
}

.buddy-map-marker {
    position: relative;
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border: 3px solid rgba(255,255,255,.9);
    border-radius: 50% 50% 50% 0;
    background: #071313;
    color: #fff;
    box-shadow: 0 12px 28px rgba(7,19,19,.28);
    transform: rotate(-45deg);
}

.buddy-map-marker i {
    display: block;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--kf-accent);
}

.buddy-map-marker.is-featured {
    background: #c98b1d;
}

.buddy-map-marker.is-featured i {
    background: #071313;
}

.leaflet-popup-content button {
    min-height: 34px;
    padding: 7px 11px;
    border: 0;
    border-radius: 999px;
    background: #071313;
    color: #fff;
    font-weight: 900;
    cursor: pointer;
}

.buddy-toolbar label,
.buddy-form label {
    display: grid;
    gap: 7px;
    color: #37514d;
    font-size: 13px;
    font-weight: 900;
}

.buddy-toolbar input,
.buddy-toolbar select,
.buddy-near-button,
.buddy-form input,
.buddy-form select,
.buddy-form textarea {
    width: 100%;
    border: 1px solid rgba(7,19,19,.14);
    border-radius: 5px;
    background: #fff;
    color: #102321;
    padding: 12px 13px;
}

.buddy-near-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 46px;
    border: 0;
    border-radius: 999px;
    background: var(--kf-blue);
    color: #fff;
    padding: 12px 20px;
    font-weight: 950;
    cursor: pointer;
    white-space: nowrap;
}

.buddy-near-button:disabled {
    cursor: wait;
    opacity: .68;
}

.buddy-near-status {
    margin: -2px 0 20px;
    color: #48605c;
    font-size: 14px;
    font-weight: 850;
}

.buddy-near-status.is-error {
    color: #8a3a2e;
}

.buddy-count {
    margin: 0 0 22px;
    font-weight: 900;
}

.buddy-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    align-items: start;
}

.buddy-card {
    display: grid;
    gap: 18px;
    padding: 24px;
    border: 1px solid rgba(7,19,19,.12);
    border-radius: 7px;
    background: #eaf2f1;
    color: #102321;
    align-self: start;
}

.buddy-card.is-highlighted {
    outline: 4px solid rgba(201, 139, 29, .55);
    outline-offset: 3px;
}

.buddy-card.is-featured-buddy {
    border-color: rgba(201,139,29,.52);
    background:
        linear-gradient(180deg, rgba(201,139,29,.18), rgba(201,139,29,.045)),
        #eaf2f1;
    box-shadow: 0 20px 52px rgba(201,139,29,.14);
}

.buddy-card.is-favorite {
    box-shadow: 0 0 0 2px rgba(201,139,29,.35), 0 22px 60px rgba(7,19,19,.12);
}

.buddy-card header {
    position: relative;
    padding-right: 116px;
}

.buddy-card header span {
    color: var(--kf-accent);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.buddy-match-score {
    position: absolute;
    top: 0;
    right: 0;
    display: inline-flex;
    min-height: 34px;
    align-items: center;
    justify-content: center;
    padding: 7px 10px;
    border-radius: 999px;
    background: #071313;
    color: #fff;
    font-size: 12px;
    font-weight: 950;
}

.buddy-card h3 {
    margin: 7px 0 0;
    font-size: clamp(26px, 3vw, 38px);
    line-height: 1.04;
}

.buddy-status-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: -6px;
}

.buddy-status-badge {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 6px 9px;
    border: 1px solid rgba(7,19,19,.12);
    border-radius: 999px;
    background: rgba(255,255,255,.64);
    color: #24433e;
    font-size: 11px;
    font-weight: 950;
    line-height: 1.1;
}

.buddy-status-badge--verified {
    background: #071313;
    color: #fff;
}

.buddy-status-badge--active,
.buddy-status-badge--new {
    background: #d9ebe6;
    color: #174f38;
}

.buddy-status-badge--featured {
    background: #c98b1d;
    color: #071313;
}

.buddy-status-badge--soon {
    background: rgba(201,139,29,.18);
    color: #7a4d08;
}

.buddy-card p {
    margin: 0;
    color: #48605c;
}

.buddy-card dl {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 0;
}

.buddy-card dl div {
    padding: 11px 12px;
    border: 1px solid rgba(7,19,19,.08);
    border-radius: 5px;
    background: rgba(255,255,255,.58);
}

.buddy-card dt {
    color: #66807b;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}

.buddy-card dd {
    margin: 2px 0 0;
    font-weight: 900;
}

.buddy-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    align-items: flex-start;
    align-content: flex-start;
}

.buddy-tags span {
    padding: 6px 9px;
    border-radius: 999px;
    background: #d9ebe6;
    color: #204a3f;
    font-size: 12px;
    font-weight: 900;
    line-height: 1.2;
}

.buddy-social-link {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 9px 13px;
    border-radius: 999px;
    background: #071313;
    color: #fff !important;
    font-weight: 950;
    text-decoration: none;
}

.buddy-favorite-button {
    justify-self: start;
    min-height: 38px;
    padding: 8px 12px;
    border: 1px solid rgba(201,139,29,.35);
    border-radius: 999px;
    background: rgba(201,139,29,.12);
    color: #6b4307;
    font-weight: 950;
    cursor: pointer;
}

.buddy-favorite-button[aria-pressed="true"] {
    background: #c98b1d;
    color: #071313;
}

.buddy-safety-box {
    display: grid;
    grid-template-columns: minmax(0, .65fr) minmax(0, 1fr);
    gap: 22px;
    align-items: start;
    margin-top: 26px;
    padding: 24px;
    border: 1px solid rgba(7,19,19,.12);
    border-radius: 8px;
    background: #071313;
    color: #fff;
}

.buddy-safety-box h3 {
    margin: 6px 0 0;
    color: #fff;
    font-size: clamp(26px, 3vw, 42px);
    line-height: 1;
}

.buddy-safety-box ul {
    display: grid;
    gap: 10px;
    margin: 0;
    padding-left: 18px;
    color: rgba(236,246,244,.78);
    font-weight: 800;
}

.buddy-contact-missing {
    padding: 11px 13px;
    border: 1px solid rgba(122,42,42,.14);
    border-radius: 6px;
    background: #f4dddd;
    color: #7a2a2a !important;
    font-weight: 900;
}

.buddy-form {
    display: grid;
    gap: 14px;
}

.buddy-empty,
.buddy-notice {
    padding: 15px 17px;
    border-radius: 6px;
    font-weight: 800;
}

.buddy-empty {
    background: #eaf2f1;
    color: #48605c;
}

.buddy-notice--success {
    background: #d9f0e5;
    color: #174f38;
}

.buddy-notice--error {
    background: #f4dddd;
    color: #7a2a2a;
}

.buddy-form-section {
    padding: 90px 0;
    background: #071313 !important;
    color: #fff;
}

.buddy-form-section .eyebrow {
    background: rgba(174, 219, 209, .14);
    color: #bfe5dc;
}

.buddy-form-section .buddy-form-layout h2 {
    color: #fff;
    text-shadow: 0 14px 36px rgba(0,0,0,.32);
}

.buddy-form-section .buddy-form-layout > div p {
    max-width: 560px;
    color: rgba(236,246,244,.84);
}

.buddy-form-section .buddy-form label,
.buddy-form-section .buddy-form-section-label strong {
    color: rgba(236,246,244,.92);
}

.buddy-form-section .buddy-form-section-label span,
.buddy-form-section .buddy-form__fineprint {
    color: rgba(236,246,244,.72);
}

.buddy-form-section .buddy-form__fineprint a {
    color: #bfe5dc;
    font-weight: 900;
}

.buddy-form-section .buddy-form {
    background: #d9dddd;
    color: #102321;
}

.buddy-form-section .buddy-form label,
.buddy-form-section .buddy-form-section-label strong {
    color: #102321;
}

.buddy-form-section .buddy-form-section-label span,
.buddy-form-section .buddy-form__fineprint {
    color: #425a56;
}

.buddy-form-section .buddy-form__fineprint a {
    color: #0d5550;
}

.buddy-form-section .buddy-checks label {
    color: #405854;
}

body section.store-submission {
    padding: 88px 0;
    background: #071313 !important;
    color: #fff;
}

.store-submission__layout,
.contact-page__hero-grid,
.contact-page__grid {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(360px, 1fr);
    gap: clamp(30px, 6vw, 82px);
    align-items: start;
}

.store-submission h2,
.contact-page h1 {
    margin: 12px 0 0;
    color: #fff;
    font-size: clamp(42px, 6vw, 82px);
    line-height: .95;
}

.store-submission p,
.contact-page__hero p {
    color: rgba(236,246,244,.78);
    font-size: 18px;
}

.store-submission__form,
.contact-page__form {
    display: grid;
    gap: 14px;
    padding: 28px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 8px;
    background: rgba(255,255,255,.06);
}

body section.store-submission .eyebrow,
body section.store-submission h2,
body section.store-submission p,
body section.store-submission label {
    color: #fff;
}

body section.store-submission .store-submission__fineprint {
    color: rgba(236,246,244,.68);
}

body section.store-submission .store-submission__form input,
body section.store-submission .store-submission__form select,
body section.store-submission .store-submission__form textarea {
    border-color: rgba(255,255,255,.16);
    background: #071313;
    color: #fff;
}

.store-submission__form label,
.contact-page__form label {
    display: grid;
    gap: 7px;
    color: rgba(236,246,244,.86);
    font-size: 13px;
    font-weight: 900;
}

.store-submission__form input,
.store-submission__form select,
.store-submission__form textarea,
.contact-page__form input,
.contact-page__form select,
.contact-page__form textarea {
    width: 100%;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 5px;
    background: #071313;
    color: #fff;
    padding: 12px 13px;
}

.store-submission__row,
.contact-page__row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.store-submission__fineprint {
    margin: 0;
    color: rgba(236,246,244,.64);
    font-size: 13px;
}

.contact-page__hero {
    padding: 90px 0 72px;
    background: #071313;
}

.contact-map-card {
    position: relative;
    display: grid;
    align-content: end;
    overflow: hidden;
    min-height: 320px;
    padding: 28px;
    border: 1px solid rgba(255,255,255,.13);
    border-radius: 8px;
    background: #163333;
    color: #fff;
    isolation: isolate;
}

.contact-map-card iframe {
    position: absolute;
    inset: 0;
    z-index: -2;
    width: 100%;
    height: 100%;
    border: 0;
    filter: saturate(.8) contrast(.95);
}

.contact-map-card::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(180deg, rgba(7,19,19,.08), rgba(7,19,19,.8));
}

.contact-map-card a {
    position: relative;
    z-index: 1;
    display: grid;
    color: #fff;
}

.contact-map-card span {
    color: rgba(255,255,255,.72);
    font-weight: 900;
}

.contact-map-card strong {
    margin-top: 7px;
    font-family: var(--kf-display);
    font-size: clamp(32px, 4vw, 54px);
    line-height: .98;
}

.contact-map-card small {
    margin-top: 14px;
    color: rgba(255,255,255,.7);
    font-weight: 800;
}

.contact-page__body {
    padding: 88px 0;
    background: #eaf2f1;
}

.contact-page__primary {
    display: grid;
    gap: 18px;
}

.contact-page__faq-callout {
    display: grid;
    gap: 10px;
    padding: 24px;
    border: 1px solid rgba(7,19,19,.12);
    border-left: 5px solid #6fa0b4;
    border-radius: 8px;
    background: #fff;
    color: #102321;
    box-shadow: 0 18px 42px rgba(7,19,19,.08);
}

.contact-page__faq-callout h2,
.contact-page__faq-callout p {
    margin: 0;
}

.contact-page__faq-callout h2 {
    color: #102321;
    font-size: clamp(25px, 3vw, 38px);
}

.contact-page__faq-callout p {
    color: #48605c;
}

.contact-page__faq-callout a {
    justify-self: start;
    display: inline-flex;
    gap: 10px;
    align-items: center;
    margin-top: 4px;
    padding: 10px 15px;
    border-radius: 999px;
    background: #071313;
    color: #fff;
    font-weight: 900;
}

/* FAQ */
.faq-page__hero {
    padding: 92px 0 76px;
    background: #071313;
    color: #fff;
}

.faq-page__hero h1 {
    margin: 10px 0 14px;
    color: #fff;
    font-size: clamp(44px, 7vw, 82px);
    line-height: .96;
}

.faq-page__hero p {
    max-width: 760px;
    color: rgba(236,246,244,.78);
    font-size: 18px;
}

.faq-page__body {
    padding: 82px 0;
    background: #eaf2f1;
    color: #102321;
}

.faq-page__layout {
    display: grid;
    grid-template-columns: minmax(220px,.34fr) minmax(0,1fr);
    gap: clamp(28px,5vw,72px);
    align-items: start;
}

.faq-page__categories {
    position: sticky;
    top: 110px;
    display: grid;
    gap: 8px;
    padding: 20px;
    border: 1px solid rgba(7,19,19,.12);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 18px 42px rgba(7,19,19,.07);
}

.faq-page__categories > strong {
    margin-bottom: 6px;
    color: #102321;
    font-family: var(--kf-display);
    font-size: 22px;
}

.faq-page__categories a {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 11px 12px;
    border-radius: 6px;
    color: #24403c;
    font-weight: 850;
}

.faq-page__categories a:hover {
    background: #dce9e8;
    color: #071313;
}

.faq-page__categories span {
    opacity: .65;
}

.faq-page__content,
.faq-page__category,
.faq-page__list {
    display: grid;
    gap: 18px;
}

.faq-page__category {
    scroll-margin-top: 110px;
    gap: 20px;
}

.faq-page__category + .faq-page__category {
    margin-top: 34px;
    padding-top: 38px;
    border-top: 1px solid rgba(7,19,19,.13);
}

.faq-page__category h2 {
    margin: 7px 0 5px;
    color: #102321;
    font-size: clamp(32px,4vw,50px);
}

.faq-page__category header p {
    margin: 0;
    color: #48605c;
}

.faq-page__list details {
    overflow: hidden;
    border: 1px solid rgba(7,19,19,.13);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 12px 34px rgba(7,19,19,.06);
}

.faq-page__list summary {
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    gap: 18px;
    padding: 19px 21px;
    color: #102321;
    font-weight: 900;
    list-style: none;
}

.faq-page__list summary::-webkit-details-marker { display: none; }
.faq-page__list summary::after { content: "+"; color: #4f8296; font-size: 24px; line-height: 1; }
.faq-page__list details[open] summary::after { content: "–"; }

.faq-page__answer {
    padding: 0 21px 21px;
    color: #48605c;
    line-height: 1.7;
}

.faq-page__search {
    display: grid;
    gap: 8px;
    padding: 18px 20px;
    border: 1px solid rgba(7,19,19,.13);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 12px 34px rgba(7,19,19,.06);
}

.faq-page__search label {
    color: #102321;
    font-weight: 900;
}

.faq-page__search-field {
    position: relative;
}

.faq-page__search-field input {
    width: 100%;
    min-height: 44px;
    padding: 10px 46px 10px 13px;
    border: 1px solid rgba(7,19,19,.18);
    border-radius: 6px;
    background: #f5f9f8;
    color: #102321;
}

.faq-page__search-field span {
    position: absolute;
    top: 50%;
    right: 15px;
    color: #4f8296;
    font-size: 25px;
    line-height: 1;
    transform: translateY(-50%);
    pointer-events: none;
}

.faq-page__search p {
    margin: 0;
    color: #48605c;
    font-size: 13px;
}

.faq-page__no-results {
    padding: 28px;
    border: 1px dashed rgba(7,19,19,.2);
    border-radius: 8px;
    background: rgba(255,255,255,.55);
}

.faq-page__no-results p { margin: 5px 0 0; }
.faq-page .is-filtered-out { display: none !important; }

.faq-page__empty {
    grid-column: 1/-1;
    padding: 32px;
    border-radius: 8px;
    background: #fff;
}

html[data-theme="dark"] .faq-page__body {
    background: #071313;
    color: #ecf6f4;
}

html[data-theme="dark"] .faq-page__categories,
html[data-theme="dark"] .faq-page__list details,
html[data-theme="dark"] .faq-page__empty,
html[data-theme="dark"] .contact-page__faq-callout {
    border-color: rgba(255,255,255,.14);
    background: #102827;
    color: #ecf6f4;
    box-shadow: none;
}

html[data-theme="dark"] .faq-page__categories > strong,
html[data-theme="dark"] .faq-page__categories a,
html[data-theme="dark"] .faq-page__category h2,
html[data-theme="dark"] .faq-page__list summary,
html[data-theme="dark"] .contact-page__faq-callout h2 {
    color: #fff;
}

html[data-theme="dark"] .faq-page__category header p,
html[data-theme="dark"] .faq-page__answer,
html[data-theme="dark"] .contact-page__faq-callout p {
    color: rgba(236,246,244,.74);
}

html[data-theme="dark"] .faq-page__categories a:hover { background: rgba(255,255,255,.09); }
html[data-theme="dark"] .faq-page__category + .faq-page__category { border-color: rgba(255,255,255,.14); }
html[data-theme="dark"] .contact-page__faq-callout a { background: #fff; color: #071313; }

@media (max-width: 820px) {
    .faq-page__layout { grid-template-columns: 1fr; }
    .faq-page__categories { position: static; }
}

.contact-page__aside {
    display: grid;
    gap: 24px;
    color: #102321;
}

.contact-page__aside h2 {
    margin: 10px 0;
    color: #102321;
    font-size: clamp(34px, 4vw, 58px);
    line-height: 1;
}

.contact-page__aside p {
    color: #48605c;
}

.contact-page__links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 24px;
}

.contact-page__links a {
    display: inline-flex;
    padding: 10px 13px;
    border: 1px solid rgba(7,19,19,.13);
    border-radius: 999px;
    background: #fff;
    color: #102321;
    font-weight: 900;
}

.contact-page__quick {
    display: grid;
    gap: 16px;
}

.contact-page__quick h2 {
    margin: 8px 0 0;
}

.contact-page__quick-grid {
    display: grid;
    gap: 12px;
}

.contact-page__quick-grid article {
    display: grid;
    gap: 9px;
    padding: 18px;
    border: 1px solid rgba(7,19,19,.12);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 18px 42px rgba(7,19,19,.08);
}

.contact-page__quick-grid strong {
    color: #102321;
    font-family: var(--kf-display);
    font-size: 22px;
    line-height: 1.05;
}

.contact-page__quick-grid p {
    margin: 0;
    color: #48605c;
    font-weight: 700;
}

.contact-page__quick-grid a {
    justify-self: start;
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 9px 14px;
    border-radius: 999px;
    background: #6fa0b4;
    color: #071313;
    font-weight: 950;
}

.news-reactions {
    display: grid;
    grid-template-columns: minmax(0, .7fr) minmax(320px, 1fr);
    gap: 22px;
    align-items: center;
    margin: 42px 0 0;
    padding: 24px;
    border: 1px solid rgba(7,19,19,.12);
    border-radius: 8px;
    background: #eaf2f1;
}

.news-reactions h2 {
    margin: 6px 0 0;
    color: #102321;
    font-size: clamp(28px, 4vw, 46px);
    line-height: 1;
}

.news-reactions__buttons {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.news-reactions__buttons button {
    display: grid;
    gap: 5px;
    justify-items: center;
    min-height: 86px;
    padding: 12px;
    border: 1px solid rgba(7,19,19,.14);
    border-radius: 8px;
    background: #fff;
    color: #102321;
    font-weight: 900;
    cursor: pointer;
}

.news-reactions__buttons button.is-active {
    border-color: rgba(7,19,19,.34);
    background: #071313;
    color: #fff;
}

.news-reactions__buttons span {
    font-size: 22px;
}

.news-reactions__buttons b {
    font-size: 13px;
}

.news-reactions small {
    grid-column: 1 / -1;
    color: #48605c;
    font-weight: 800;
}

.contact-page__form {
    border-color: rgba(7,19,19,.12);
    background: #fff;
    box-shadow: 0 24px 55px rgba(7,19,19,.1);
}

.contact-page__form-intro {
    display: grid;
    gap: 8px;
    padding-bottom: 4px;
}

.contact-page__form-intro h2 {
    margin: 0;
    color: #102321;
    font-size: clamp(24px, 2vw, 32px);
}

.contact-page__form-intro p {
    margin: 0;
    color: #48605c;
    font-weight: 700;
}

.contact-page__form label {
    color: #102321;
}

.contact-page__form input,
.contact-page__form select,
.contact-page__form textarea {
    border-color: rgba(7,19,19,.16);
    background: #fff;
    color: #102321;
}

.site-maintenance-note {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px 18px;
    align-items: center;
    margin: 22px 0 28px;
    padding: 18px 20px;
    border: 1px solid rgba(7,19,19,.13);
    border-left: 5px solid var(--kf-blue);
    border-radius: 8px;
    background: #fff;
    color: #102321;
    box-shadow: 0 18px 42px rgba(7,19,19,.08);
}

.site-maintenance-note strong,
.site-maintenance-note span {
    min-width: 0;
}

.site-maintenance-note strong {
    color: #102321;
    font-family: var(--kf-display);
    font-size: clamp(20px, 2.2vw, 28px);
    line-height: 1;
}

.site-maintenance-note span {
    grid-column: 1;
    color: #48605c;
    font-weight: 750;
}

.site-maintenance-note a {
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: center;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 10px 15px;
    border-radius: 999px;
    background: #071313;
    color: #fff;
    font-weight: 900;
    white-space: nowrap;
}

.site-maintenance-note a:hover {
    background: var(--kf-blue);
    color: #071313;
}

.store-submission__fineprint a,
.buddy-form__fineprint a,
.lake-review-form__help a {
    color: inherit;
    font-weight: 950;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.lake-review-form__help {
    margin: 0;
    color: rgba(236,246,244,.68);
    font-size: 13px;
    font-weight: 750;
}

.buddy-form {
    padding: 28px;
    border: 1px solid rgba(7,19,19,.12);
    border-radius: 8px;
    background: rgba(255,255,255,.82);
    box-shadow: 0 24px 60px rgba(7,19,19,.12);
}

.buddy-expiry-note {
    display: grid;
    gap: 3px;
    padding: 14px 16px;
    border: 1px solid rgba(82,127,116,.25);
    border-radius: 7px;
    background: #eaf2f1;
    color: #102321;
}

.buddy-expiry-note strong {
    font-family: var(--kf-display);
    font-size: 18px;
}

.buddy-expiry-note span {
    color: #48605c;
    font-size: 13px;
}

.buddy-expiry-note--privacy {
    border-color: rgba(201,139,29,.28);
    background: #fff6e6;
}

.buddy-form-section-label {
    display: grid;
    gap: 3px;
    margin-top: 4px;
    padding-top: 12px;
    border-top: 1px solid rgba(7,19,19,.1);
    color: #102321;
}

.buddy-form-section-label strong {
    font-family: var(--kf-display);
    font-size: 18px;
    line-height: 1.1;
}

.buddy-form-section-label span {
    color: #48605c;
    font-size: 13px;
    font-weight: 750;
}

.buddy-form label {
    color: #102321;
}

.buddy-form input,
.buddy-form select,
.buddy-form textarea {
    border-color: rgba(7,19,19,.16);
    background: #fff;
    color: #102321;
}

.buddy-form input::placeholder,
.buddy-form textarea::placeholder {
    color: rgba(16,35,33,.52);
}

.buddy-form__row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.buddy-checks {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.buddy-checks label {
    display: inline-flex;
    grid-template-columns: none;
    align-items: center;
    gap: 8px;
    padding: 9px 11px;
    border: 1px solid rgba(7,19,19,.12);
    border-radius: 999px;
    background: #fff;
}

.buddy-checks input {
    width: auto;
}

.buddy-form__fineprint {
    margin: 0;
    color: #48605c;
    font-size: 13px;
}

.internal-links {
    display: grid;
    grid-template-columns: minmax(220px, .45fr) minmax(0, 1fr);
    gap: clamp(18px, 4vw, 42px);
    align-items: start;
    margin-top: clamp(42px, 6vw, 78px);
    padding: clamp(22px, 4vw, 34px);
    border: 1px solid rgba(7, 19, 19, .12);
    border-radius: var(--kf-radius);
    background: #fff;
    box-shadow: 0 18px 50px rgba(7, 19, 19, .07);
}

.internal-links--compact {
    margin-top: 28px;
    grid-template-columns: 1fr;
}

.internal-links h2 {
    margin: 8px 0 0;
    color: var(--kf-ink);
    font-size: clamp(26px, 3vw, 38px);
}

.internal-links__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.internal-links--compact .internal-links__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.internal-links__grid a {
    display: grid;
    gap: 5px;
    min-height: 118px;
    padding: 18px;
    border: 1px solid rgba(7, 19, 19, .12);
    border-radius: calc(var(--kf-radius) - 6px);
    background: #eef6f8;
    color: var(--kf-ink);
}

.internal-links__grid a:hover {
    transform: translateY(-2px);
    border-color: rgba(111, 160, 180, .45);
    box-shadow: 0 16px 34px rgba(7, 19, 19, .08);
}

.internal-links__grid strong {
    color: var(--kf-ink);
    font-size: 17px;
}

.internal-links__grid span {
    color: var(--kf-muted);
    line-height: 1.45;
}

.competition-related {
    padding: 0 0 var(--kf-home-section-space);
    background: var(--kf-paper);
}

.search-hero {
    padding: clamp(90px, 12vw, 145px) 0 clamp(54px, 8vw, 90px);
    background: var(--kf-deep);
    color: #fff;
}

.search-hero__layout {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(320px, .7fr);
    gap: clamp(28px, 6vw, 76px);
    align-items: end;
}

.search-hero h1 {
    max-width: 720px;
    margin: 10px 0 16px;
    color: #fff;
    font-size: clamp(48px, 7vw, 88px);
}

.search-hero p {
    max-width: 680px;
    margin: 0;
    color: rgba(255, 255, 255, .76);
    font-size: 18px;
    line-height: 1.55;
}

.search-hero__form {
    display: flex;
    gap: 10px;
    padding: 10px;
    border: 1px solid rgba(142, 190, 207, .25);
    border-radius: var(--kf-radius);
    background: rgba(255, 255, 255, .07);
    box-shadow: 0 24px 65px rgba(0, 0, 0, .22);
}

.search-hero__form input {
    min-width: 0;
    flex: 1;
    height: 52px;
    padding: 0 16px;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 8px;
    background: rgba(255, 255, 255, .95);
    color: var(--kf-ink);
    font: 800 16px/1 Outfit, Inter, sans-serif;
}

.search-hero__form button {
    min-height: 52px;
    padding: 0 22px;
    border: 0;
    border-radius: 8px;
    background: var(--kf-blue);
    color: #fff;
    font-weight: 900;
    cursor: pointer;
}

.search-results-section {
    padding: var(--kf-home-section-space) 0;
    background: var(--kf-paper);
}

.search-results__top {
    display: grid;
    gap: 6px;
    margin-bottom: 24px;
}

.search-results__top span {
    color: var(--kf-blue);
    font-weight: 900;
    text-transform: uppercase;
}

.search-results__top h2,
.search-empty h2 {
    margin: 0;
    color: var(--kf-ink);
    font-size: clamp(34px, 4vw, 54px);
}

.search-results {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.search-result-card,
.related-card {
    display: grid;
    gap: 10px;
    min-height: 190px;
    padding: 22px;
    border: 1px solid rgba(7, 19, 19, .12);
    border-radius: var(--kf-radius);
    background: #fff;
    color: var(--kf-ink);
    box-shadow: 0 18px 50px rgba(7, 19, 19, .07);
}

.search-result-card:hover,
.related-card:hover {
    transform: translateY(-2px);
    border-color: rgba(111, 160, 180, .48);
    box-shadow: 0 22px 58px rgba(7, 19, 19, .1);
}

.search-result-card > span,
.related-card > span {
    width: fit-content;
    padding: 6px 10px;
    border-radius: 999px;
    background: #e7f1f4;
    color: #416c79;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}

.search-result-card h3 {
    margin: 0;
    font-size: 24px;
    line-height: 1.15;
}

.search-result-card h3 a,
.search-result-card > a,
.related-card {
    text-decoration: none;
}

.search-result-card p,
.related-card small,
.search-empty p {
    margin: 0;
    color: var(--kf-muted);
    line-height: 1.5;
}

.search-result-card > a {
    align-self: end;
    color: var(--kf-ink);
    font-weight: 900;
}

.search-empty {
    max-width: 720px;
    padding: clamp(28px, 5vw, 46px);
    border: 1px solid rgba(7, 19, 19, .1);
    border-radius: var(--kf-radius);
    background: #fff;
    box-shadow: 0 18px 50px rgba(7, 19, 19, .07);
}

.related-content {
    display: grid;
    grid-template-columns: minmax(220px, .42fr) minmax(0, 1fr);
    gap: clamp(18px, 4vw, 42px);
    align-items: start;
    margin-top: clamp(42px, 6vw, 78px);
    padding: clamp(22px, 4vw, 34px);
    border: 1px solid rgba(7, 19, 19, .12);
    border-radius: var(--kf-radius);
    background: #fff;
    box-shadow: 0 18px 50px rgba(7, 19, 19, .07);
}

.related-content__heading h2 {
    margin: 8px 0 0;
    color: var(--kf-ink);
    font-size: clamp(26px, 3vw, 38px);
}

.related-content__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.related-card {
    min-height: 150px;
    padding: 18px;
    box-shadow: none;
    background: #eef6f8;
}

.related-card strong {
    color: var(--kf-ink);
    font-size: 18px;
    line-height: 1.2;
}

.product-detail__content .related-content {
    grid-template-columns: 1fr;
}

.product-detail__content .related-content__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.admin-edit-floating {
    position: fixed;
    left: max(18px, env(safe-area-inset-left));
    bottom: max(18px, env(safe-area-inset-bottom));
    z-index: 9998;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 0 16px;
    border: 1px solid rgba(142, 190, 207, .4);
    border-radius: 999px;
    background: rgba(7, 18, 20, .92);
    color: #f2f8f9;
    box-shadow: 0 16px 38px rgba(0, 0, 0, .28);
    font-weight: 900;
    font-size: 13px;
    text-decoration: none;
    backdrop-filter: blur(12px);
}

.admin-edit-floating:hover {
    background: #10282d;
    border-color: rgba(142, 190, 207, .72);
    color: #fff;
    transform: translateY(-1px);
}

.share-widget {
    position: fixed;
    left: max(18px, env(safe-area-inset-left));
    bottom: max(18px, env(safe-area-inset-bottom));
    z-index: 60;
    display: flex;
    align-items: center;
    gap: 16px;
    box-sizing: border-box;
    width: auto;
    max-width: calc(100vw - 36px);
    padding: 12px 14px 12px 18px;
    border: 1px solid rgba(142, 190, 207, .28);
    border-radius: 18px;
    background: rgba(7, 24, 29, .94);
    box-shadow: 0 18px 50px rgba(0, 0, 0, .28);
    color: #edf6f8;
    backdrop-filter: blur(18px);
}

.share-widget *,
.share-widget *:before,
.share-widget *:after {
    box-sizing: border-box;
}

.share-widget__heading {
    display: grid;
    gap: 2px;
    min-width: max-content;
}

.share-widget__heading > span {
    color: #f4f9fa;
    font-size: 15px;
    font-weight: 900;
    line-height: 1.2;
}

.share-widget__actions {
    display: flex;
    align-items: center;
    gap: 8px;
}

.share-widget .share-widget__action {
    appearance: none;
    display: grid;
    place-items: center;
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    min-width: 42px;
    min-height: 42px;
    padding: 0;
    border: 1px solid rgba(142, 190, 207, .22);
    border-radius: 50%;
    background: rgba(255, 255, 255, .08);
    color: #fff;
    text-decoration: none;
    cursor: pointer;
    transition: transform .18s ease, border-color .18s ease, background .18s ease, box-shadow .18s ease;
}

.share-widget .share-widget__action svg {
    width: 19px;
    height: 19px;
    fill: currentColor;
}

.share-widget .share-widget__action:hover,
.share-widget .share-widget__action:focus-visible {
    border-color: rgba(255, 255, 255, .72);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 8px 18px rgba(0, 0, 0, .22);
}

.share-widget .share-widget__action--facebook { background: #1877f2; border-color: #4d96f7; }
.share-widget .share-widget__action--linkedin { background: #0a66c2; border-color: #4a91d4; }
.share-widget .share-widget__action--x { background: #111; border-color: #545454; }
.share-widget .share-widget__action--mail { background: #376d7c; border-color: #6fa0b4; }
.share-widget .share-widget__action--copy { background: rgba(111, 160, 180, .18); }
.share-widget .share-widget__native { background: #346b78; border-color: #78aebb; }

.share-widget--inline {
    position: static;
    width: 100%;
    max-width: none;
    margin: 0 0 34px;
    padding: 18px 20px;
    transform: none;
}

.share-widget__heading small {
    min-height: 12px;
    color: #b8dbe6;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.1;
}

@media (max-width: 980px) {
    .home-test-activity-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .fish-counter__layout,
    .fish-counter__stats,
    .lake-finder,
    .lake-finder__results,
    .competition-submission {
        grid-template-columns: 1fr;
    }

    .buddy-hero__grid,
    .buddy-trust-strip__grid,
    .home-lake-spotlight__layout,
    .buddy-form-layout,
    .buddy-toolbar,
    .buddy-map-layout,
    .buddy-grid,
    .store-submission__layout,
    .contact-page__hero-grid,
    .contact-page__grid {
        grid-template-columns: 1fr;
    }

    .internal-links,
    .internal-links__grid,
    .internal-links--compact .internal-links__grid,
    .search-hero__layout,
    .search-results,
    .related-content,
    .related-content__grid {
        grid-template-columns: 1fr;
    }

    .search-hero__form {
        flex-direction: column;
    }

    .lakes-store-callout {
        grid-template-columns: 1fr;
    }

    .share-widget {
        position: static;
        width: min(100% - 32px, 640px);
        margin: 22px auto 0;
        padding: 14px 16px;
        transform: none;
    }

    .share-widget--inline { width: 100%; margin: 0 0 28px; }
}

@media (max-width: 560px) {
    .share-widget { align-items: flex-start; flex-direction: column; gap: 11px; }
    .share-widget__heading { width: 100%; }
    .share-widget__actions { flex-wrap: wrap; }
    .share-widget .share-widget__action { flex-basis: 40px; width: 40px; height: 40px; min-width: 40px; min-height: 40px; }
}

@media (max-width: 640px) {
    :root {
        --kf-home-section-space: 48px;
        --kf-section-space: 54px;
    }

    .container {
        width: min(100% - 28px, var(--container));
    }

    .hero {
        min-height: 620px;
    }

    .hero .hero-inner {
        padding-top: 128px;
        padding-bottom: 56px;
    }

    .hero h2,
    .lakes-hero h1,
    .news-archive__hero h1,
    .gallery-hero h1,
    .beginner-hub__hero h1,
    .competitions-hero h1,
    .partners-hero h1,
    .contact-page__hero h1,
    .search-hero h1 {
        font-size: clamp(42px, 14vw, 58px);
        line-height: .95;
    }

    .hero p,
    .section-copy,
    .front-news__intro p,
    .home-gallery__aside p,
    .home-buddy__aside p,
    .related-content__heading p {
        font-size: 16px;
        line-height: 1.6;
    }

    .front-news__grid,
    .home-lake-spotlight__layout,
    .home-gallery__mosaic,
    .home-buddy__grid,
    .related-content__grid {
        gap: 16px;
    }

    .front-news-card__body,
    .home-buddy-card,
    .related-card,
    .lake-review {
        border-radius: 8px;
    }

    .lake-finder__controls {
        grid-template-columns: 1fr;
    }

    .buddy-hero,
    .buddy-section,
    .buddy-form-section {
        padding: 58px 0;
    }

    .buddy-hero h1,
    .buddy-form-layout h2 {
        font-size: clamp(42px, 13vw, 50px);
    }

    .buddy-card,
    .buddy-form,
    .store-submission__form,
    .contact-page__form {
        padding: 20px;
    }

    .buddy-match-panel {
        position: static;
        width: auto;
        margin: 0 16px;
        transform: translateY(-24px);
    }

    .buddy-card header {
        padding-right: 0;
    }

    .buddy-match-score {
        position: static;
        width: fit-content;
        margin-top: 9px;
    }

    #buddy-map {
        min-height: 300px;
    }

    .site-maintenance-note {
        grid-template-columns: 1fr;
    }

    .site-maintenance-note span,
    .site-maintenance-note a {
        grid-column: auto;
        grid-row: auto;
    }

    .site-maintenance-note a {
        width: 100%;
    }

    .store-submission__row,
    .contact-page__row,
    .news-reactions,
    .news-reactions__buttons {
        grid-template-columns: 1fr;
    }

    .buddy-card dl,
    .buddy-form__row,
    .competition-submission__row {
        grid-template-columns: 1fr;
    }

    .richtext-content .rt-image--left,
    .richtext-content .rt-image--right {
        float: none;
        display: block;
        width: 100%;
        margin: 1.25em 0;
    }

    .site-search-form {
        flex-direction: column;
        align-items: stretch;
        border-radius: 8px;
        padding: 10px;
    }

    .site-search-form input,
    .site-search-form button {
        width: 100%;
        border-radius: 6px;
    }

    .admin-edit-floating {
        left: 14px;
        bottom: 14px;
        min-height: 38px;
        padding: 0 13px;
        font-size: 12px;
    }

    .buddy-safety-box,
    .events-archive__hero-layout,
    .events-archive-card,
    .home-test-hero__layout,
    .home-test-choice-grid,
    .home-test-personal__layout,
    .home-test-activity-grid,
    .home-test-proof__layout,
    .longtail-hero__layout,
    .longtail-layout,
    .longtail-card-grid {
        grid-template-columns: 1fr;
    }

    .home-test-hero {
        text-align: left;
    }

    .home-test-hero__actions,
    .home-test-proof__stats {
        grid-template-columns: 1fr;
    }

    .home-test-hero__actions .btn,
    .home-test-personal .btn {
        width: 100%;
    }

    .home-test-personal__image img {
        min-height: 310px;
    }

    .longtail-copy {
        position: static;
    }

    .site-breadcrumbs {
        padding: 12px 0;
    }

    .site-breadcrumbs li {
        font-size: 12px;
    }
}

/* Final visual QA overrides - cards, mobile, empty states */
.eyebrow,
.section-heading > span,
.shop-section-heading .eyebrow,
.lakes-map-shell__intro .eyebrow,
.news-archive__hero .eyebrow,
.gallery-hero .eyebrow,
.beginner-hub__hero .eyebrow,
.stores-hero .eyebrow,
.links-hero .eyebrow,
.polls-hero .eyebrow,
.competitions-hero .eyebrow,
.gear-section__header > span,
.buddy-section .eyebrow,
.store-submission .eyebrow {
    display: inline-flex !important;
    align-items: center;
    width: fit-content;
    max-width: 100%;
    min-height: 34px;
    padding: 8px 14px !important;
    border-radius: 999px;
    border: 1px solid rgba(111, 160, 180, .34);
    background: #e5f0f3;
    color: #0b2d3a !important;
    font-family: Outfit, Inter, system-ui, sans-serif;
    font-size: 13px !important;
    font-weight: 900;
    line-height: 1.1;
    text-transform: uppercase;
    letter-spacing: 0;
}
.kf-section--dark .eyebrow,
section[class*="--dark"] .eyebrow,
.hero .eyebrow,
.about-hero .eyebrow,
.lakes-hero .eyebrow,
.news-archive__hero .eyebrow,
.competition-detail__hero .eyebrow,
.shop-hero .eyebrow,
.gear-section--dark .gear-section__header > span,
.buddy-form-section .eyebrow {
    background: rgba(229, 240, 243, .14) !important;
    border-color: rgba(229, 240, 243, .28) !important;
    color: #e7f8ff !important;
}
.front-news-card__image,
.featured-guide-card__image,
.beginner-guide-card__media,
.shop-card__media,
.partner-card__media,
.home-partner-card__media,
.competition-card__media,
.events-archive-card__media,
.poll-card__media,
.gallery-card__media,
.store-card__media {
    overflow: hidden;
    background: #0b1d1f;
}
.front-news-card__image img,
.featured-guide-card__image img,
.beginner-guide-card img,
.shop-card__media img,
.partner-card__media > img,
.home-partner-card__media > img,
.competition-card__media img,
.events-archive-card__media img,
.poll-card__media img,
.gallery-card img,
.store-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
}
.front-news-card,
.featured-guide-card,
.beginner-guide-card,
.shop-card,
.partner-card,
.competition-card,
.events-archive-card,
.poll-card,
.store-card,
.link-card,
.longtail-lake-card {
    min-height: 100%;
}
.lakes-empty,
.gallery-empty,
.partners-empty,
.links-empty,
.links-empty--page,
.poll-empty,
.stores-empty,
.competitions-empty,
.shop-empty,
.search-empty,
.buddy-empty,
.gear-section__empty {
    border: 1px dashed rgba(111, 160, 180, .34) !important;
    border-radius: 10px;
    background: linear-gradient(145deg, rgba(229, 240, 243, .78), rgba(255, 255, 255, .95)) !important;
    color: #071313 !important;
    padding: clamp(28px, 5vw, 56px) !important;
    text-align: center;
}
.lakes-empty h2,
.gallery-empty h2,
.partners-empty h2,
.links-empty h2,
.links-empty--page h2,
.poll-empty h2,
.stores-empty h2,
.competitions-empty h2,
.shop-empty h2,
.search-empty h2,
.buddy-empty h2,
.gear-section__empty h2 {
    color: #071313 !important;
    margin-top: 0;
}
.lakes-empty p,
.gallery-empty p,
.partners-empty p,
.links-empty p,
.links-empty--page p,
.poll-empty p,
.stores-empty p,
.competitions-empty p,
.shop-empty p,
.search-empty p,
.buddy-empty p,
.gear-section__empty p {
    color: #506266 !important;
    margin-inline: auto;
    max-width: 680px;
}
.lakes-list,
.stores-list,
.news-archive__grid,
.shop-grid,
.gallery-grid,
.links-grid,
.poll-grid,
.competitions-grid,
.beginner-guide-grid {
    align-items: stretch;
}
.lake-card,
.store-card,
.front-news-card,
.shop-card,
.beginner-guide-card {
    display: flex;
    flex-direction: column;
}
.lake-card .btn,
.store-card .btn,
.shop-card__actions,
.front-news-card__footer,
.beginner-guide-card__link {
    margin-top: auto;
}
@media (max-width: 900px) {
    :root {
        --kf-home-section-space: clamp(42px, 9vw, 64px);
        --kf-section-space: clamp(42px, 9vw, 64px);
    }
    .container {
        width: min(100%, 720px);
        padding-inline: 18px;
    }
    .section-heading,
    .section-heading--split,
    .shop-section-heading {
        gap: 14px;
        margin-bottom: 22px;
    }
    .section-heading h2,
    .section-heading h3,
    .shop-section-heading h2,
    .lakes-map-shell__intro h2,
    .news-archive__hero h1,
    .gallery-hero h1,
    .beginner-hub__hero h1,
    .stores-hero h1,
    .links-hero h1,
    .polls-hero h1,
    .competitions-hero h1,
    .shop-hero h1 {
        font-size: clamp(34px, 9vw, 48px) !important;
        line-height: 1.02;
    }
    .front-news-card__image,
    .featured-guide-card__image,
    .beginner-guide-card__media,
    .shop-card__media,
    .competition-card__media,
    .events-archive-card__media,
    .poll-card__media {
        aspect-ratio: 1.35 / .82;
    }
}
@media (max-width: 620px) {
    .eyebrow,
    .section-heading > span,
    .shop-section-heading .eyebrow {
        min-height: 32px;
        padding: 7px 11px !important;
        font-size: 12px !important;
    }
    .shop-card__actions,
    .front-news-card__footer {
        align-items: stretch;
        flex-direction: column;
    }
}
