/* ==========================================================================
	Project: Kraken Framework
	File: public.css
	Purpose: base + layout + components + utilities.
	Author: Christopher Satterthwaite  |  Updated: 2025-12-09  |  Version: 3.0.0
========================================================================== */
/* TOC
[00] Root
[01] Normalize
[02] Base
  [02.1] Header Motion + State Styles
[03] Typography
  [03.1] Heading Styles
  [03.2] Font Styles
  [03.3] List Styles
  [03.4] Button Styles
  [03.5] Sitemap Styles
[04] Layout
  [04.1] Header Styles
    [04.1.a] Header Inner Styles
    [04.1.b] Mobile Header Inner Styles
    [04.1.c] Desktop Header Inner Styles
    [04.1.d] Header Row Styles
    [04.1.e] Header Row Inner Styles
    [04.1.f] Header Column Styles
  [04.2] Content Styles
  [04.2.a] Kraken Element Styles
  [04.2.b] Main Styles
  [04.3] Archive Styles
    [04.3.a] Archive List Styles
  [04.4] Footer Styles
    [04.4.a] Footer Inner Styles
    [04.4.b] Footer Row Styles
    [04.4.c] Footer Row Inner Styles
    [04.4.d] Footer Column Styles
    [04.4.e] Footer Column Inner Styles
[05] Components
  [05.1] Skip Navigation Styles
  [05.2] Header Notice Styles
  [05.3] Logo Styles
    [05.3.a] Default Logo Styles
    [05.3.b] Transparent Logo Styles
    [05.3.c] Transparent Scroll Logo Styles
    [05.3.d] Shrink Logo Styles
    [05.3.e] Shrink Transparent Logo Styles
    [05.3.f] Footer Logo Styles
  [05.4] Navigation Styles
    [05.4.a] Navigation Base Styles
    [05.4.b] Navigation Links Styles
    [05.4.c] Navigation Carets Styles
    [05.4.d] Sub Menu Base Styles
    [05.4.e] Sub Menu Items Styles
    [05.4.f] Sub Menu States Styles
    [05.4.g] Legal Menu States Styles
    [05.4.h] Toggle Mobile (Hamburger) Styles
    [05.4.i] Drawer Styles
  [05.5] Breadcrumb Styles
  [05.6] Post Filter Styles
  [05.7] Card Styles
  [05.8] Featured Image Styles
  [05.9] Title Styles
  [05.10] Meta Styles
  [05.11] Date Styles
  [05.12] Author Avatar Styles
  [05.13] Author Styles
  [05.14] Reading Time Styles
  [05.15] Comments Styles
  [05.16] Views Styles
  [05.17] Excerpt Styles
  [05.18] Link Styles
    [05.18.a] Archive Pagination Styles
  [05.19] Single Post Title Styles
  [05.20] Tags Styles
  [05.21] Categories Styles
  [05.22] Post Navigation Styles
  [05.23] Social Media Share Bar Styles
  [05.24] Related Post Styles
  [05.25] Comment Styles
  [05.26] Social Media Styles
  [05.27] Address Styles
  [05.28] Phone Styles
  [05.29] Email Styles
  [05.30] Splash Credit Styles
[06] Utilities
  [06.1] Screen Reader
  [06.2] Skip Links
  [06.3] Has Global Padding
*/

/* ================= [00] Root ================= */
/* Root variables are set in the layout.php */
/* ================= [01] Normalize ================= */
/* 1. Use a more-intuitive box-sizing model */
*, *::before, *::after {
  box-sizing: border-box;
}

/* 2. Remove default margin and padding */
* {
  margin: 0;
  padding: 0;
}

/* 3. Set core body defaults */
body {
  min-height: 100vh;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* 4. Remove list styles on ul, ol elements with a list role */
ul[role='list'], ol[role='list'] {
  list-style: none;
}

/* 5. Set shorter line heights on interactive elements */
button, input, label {
  line-height: 1.1;
}

/* 6. Balance text wrapping on headings */
h1, h2, h3, h4 {
  text-wrap: balance;
}

/* 7. Improve text rendering and wrapping */
p, h1, h2, h3, h4, h5, h6 {
  overflow-wrap: break-word;
}

p {
  text-wrap: pretty;
}

/* 9. Make images and media easier to work with */
img, picture, video, canvas, svg {
  display: block;
  max-width: 100%;
}

embed, iframe, object, video {
    max-width: 100%;
}

/* 10. Inherit fonts for inputs and buttons */
input, button, textarea, select {
  font: inherit;
}

/* 11. Make sure textareas without a rows attribute are not tiny */
textarea:not([rows]) {
  min-height: 10em;
}

/* 12. Anything that has been anchored to should have extra scroll margin */
:target {
  scroll-margin-block: 5ex;
}

/* 13. Root stacking context */
#root, #__next {
  isolation: isolate;
}

/* 14. Enable keyword animations for modern browsers */
@media (prefers-reduced-motion: no-preference) {
  html {
    scroll-behavior: smooth;
    interpolate-size: allow-keywords;
  }
}

/* 15. HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block;
}

/* 16. Remove quotes from blockquotes and q elements */
blockquote, q {
  quotes: none;

  &::before,
  &::after {
    content: '';
    content: none;
  }
}

/* 17. Table border collapse */
table {
  border-collapse: collapse;
  border-spacing: 0;
}

/* 18. Focus management for accessibility */
:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

/* 19. Remove focus outline for mouse users */
:focus:not(:focus-visible) {
  outline: none;
}

/* ================= [02] Base ================= */
html {
  text-rendering: optimizeLegibility;
  -webkit-text-size-adjust: 100%;
  font-size: 16px;
  line-height: 1.5;
}

body {
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  background-color: var(--kf-body-background-color, var(--kf-alt-background, var(--kf-background)));
  color: var(--kf-body-font-color, var(--kf-text));
  font-family: var(--kf-body-font-family, var(--kf-font-body-source-family));
  font-weight: var(--kf-body-font-weight);
  font-style: normal;
  font-size: var(--kf-body-font-size);
  line-height: var(--kf-body-line-height);
}

body.mobile-toggle,
body.hamburger-toggle {
  overflow: hidden;
}

@keyframes kf-header-hide-top-scroll {
  from {
    transform: translateY(0);
  }

  to {
    transform: translateY(calc(var(--kf-header-hide-top-offset, 0px) * -1));
  }
}

@keyframes kf-header-hide-top-main-scroll {
  from {
    transform: translateY(0);
  }

  to {
    transform: translateY(calc(var(--kf-header-hide-top-main-offset, 0px) * -1));
  }
}

@keyframes kf-header-hide-all-scroll {
  from {
    transform: translateY(0);
  }

  to {
    transform: translateY(calc(var(--kf-header-height, 0px) * -1));
  }
}

@keyframes kf-header-row-top-padding-shrink {
  from {
    padding-top: var(--kf-header-row-top-inner-padding-top);
    padding-bottom: var(--kf-header-row-top-inner-padding-bottom);
  }

  to {
    padding-top: var(--kf-header-row-top-inner-padding-top-shrink);
    padding-bottom: var(--kf-header-row-top-inner-padding-bottom-shrink);
  }
}

@keyframes kf-header-row-main-padding-shrink {
  from {
    padding-top: var(--kf-header-row-main-inner-padding-top);
    padding-bottom: var(--kf-header-row-main-inner-padding-bottom);
  }

  to {
    padding-top: var(--kf-header-row-main-inner-padding-top-shrink);
    padding-bottom: var(--kf-header-row-main-inner-padding-bottom-shrink);
  }
}

@keyframes kf-header-row-bottom-padding-shrink {
  from {
    padding-top: var(--kf-header-row-bottom-inner-padding-top);
    padding-bottom: var(--kf-header-row-bottom-inner-padding-bottom);
  }

  to {
    padding-top: var(--kf-header-row-bottom-inner-padding-top-shrink);
    padding-bottom: var(--kf-header-row-bottom-inner-padding-bottom-shrink);
  }
}

@keyframes kf-header-row-top-background-scroll {
  from {
    background-color: var(--kf-header-row-top-background-transparent-color);
  }

  to {
    background-color: var(--kf-header-row-top-background-transparent-scroll-color);
  }
}

@keyframes kf-header-row-main-background-scroll {
  from {
    background-color: var(--kf-header-row-main-background-transparent-color);
  }

  to {
    background-color: var(--kf-header-row-main-background-transparent-scroll-color);
  }
}

@keyframes kf-header-row-bottom-background-scroll {
  from {
    background-color: var(--kf-header-row-bottom-background-transparent-color);
  }

  to {
    background-color: var(--kf-header-row-bottom-background-transparent-scroll-color);
  }
}

@keyframes kf-header-navigation-link-scroll {
  from {
    color: var(--kf-header-navigation-link-transparent-color);
  }

  to {
    color: var(--kf-header-navigation-link-transparent-scroll-color);
  }
}

@keyframes kf-header-navigation-link-hover-scroll {
  from {
    color: var(--kf-header-navigation-link-transparent-hover-color);
  }

  to {
    color: var(--kf-header-navigation-link-transparent-scroll-hover-color);
  }
}

@keyframes kf-header-navigation-link-active-scroll {
  from {
    color: var(--kf-header-navigation-link-transparent-active-color);
  }

  to {
    color: var(--kf-header-navigation-link-transparent-scroll-active-color);
  }
}

@keyframes kf-header-contact-link-scroll {
  from {
    color: var(--kf-header-contact-transparent-color);
  }

  to {
    color: var(--kf-header-contact-scroll-color);
  }
}

@keyframes kf-header-contact-link-hover-scroll {
  from {
    color: var(--kf-header-contact-transparent-hover-color);
  }

  to {
    color: var(--kf-header-contact-scroll-hover-color);
  }
}

@keyframes kf-header-phone-link-scroll {
  from {
    color: var(--kf-phone-header-transparent-font-color, var(--kf-header-contact-transparent-color));
  }

  to {
    color: var(--kf-phone-header-transparent-scroll-font-color, var(--kf-phone-header-font-color, var(--kf-header-contact-scroll-color)));
  }
}

@keyframes kf-header-phone-link-hover-scroll {
  from {
    color: var(--kf-phone-header-transparent-hover-font-color, var(--kf-header-contact-transparent-hover-color));
  }

  to {
    color: var(--kf-phone-header-transparent-scroll-hover-font-color, var(--kf-phone-header-hover-font-color, var(--kf-header-contact-scroll-hover-color)));
  }
}

@keyframes kf-header-email-link-scroll {
  from {
    color: var(--kf-email-header-transparent-font-color, var(--kf-header-contact-transparent-color));
  }

  to {
    color: var(--kf-email-header-transparent-scroll-font-color, var(--kf-email-header-font-color, var(--kf-header-contact-scroll-color)));
  }
}

@keyframes kf-header-email-link-hover-scroll {
  from {
    color: var(--kf-email-header-transparent-hover-font-color, var(--kf-header-contact-transparent-hover-color));
  }

  to {
    color: var(--kf-email-header-transparent-scroll-hover-font-color, var(--kf-email-header-hover-font-color, var(--kf-header-contact-scroll-hover-color)));
  }
}

@keyframes kf-header-address-scroll {
  from {
    color: var(--kf-address-header-transparent-font-color, var(--kf-header-contact-transparent-color));
  }

  to {
    color: var(--kf-address-header-transparent-scroll-font-color, var(--kf-address-header-font-color, var(--kf-header-contact-scroll-color)));
  }
}

@keyframes kf-header-social-link-scroll {
  from {
    color: var(--kf-header-social-transparent-color);
  }

  to {
    color: var(--kf-header-social-scroll-color);
  }
}

@keyframes kf-header-social-link-hover-scroll {
  from {
    color: var(--kf-header-social-transparent-hover-color);
  }

  to {
    color: var(--kf-header-social-scroll-hover-color);
  }
}

@keyframes kf-header-default-logo-solid-state {
  0%,
  99.999% {
    opacity: 0;
    visibility: hidden;
  }

  100% {
    opacity: 1;
    visibility: visible;
  }
}

@keyframes kf-header-transparent-logo-solid-state {
  0%,
  99.999% {
    opacity: 1;
    visibility: visible;
  }

  100% {
    opacity: 0;
    visibility: hidden;
  }
}

@keyframes kf-header-logo-fade-out {
  0% {
    opacity: 1;
    visibility: visible;
  }

  99.999% {
    opacity: 0;
    visibility: visible;
  }

  100% {
    opacity: 0;
    visibility: hidden;
  }
}

@keyframes kf-header-logo-fade-in {
  0% {
    opacity: 0;
    visibility: hidden;
  }

  0.001% {
    opacity: 0;
    visibility: visible;
  }

  100% {
    opacity: 1;
    visibility: visible;
  }
}

/* -- [02.1] Header Motion + State Styles -- */
@media (min-width: 992px) {
  body.kf-header-position-desktop-fixed {
    &.kf-header-type-desktop-transparent {
      --kf-header-scroll-background-range: var(--kf-header-transparent-scroll-range, 150px);

      &.kf-header-scroll-desktop-top {
        --kf-header-scroll-background-range: var(--kf-header-hide-top-offset, 0px);
      }

      &.kf-header-scroll-desktop-top_main {
        --kf-header-scroll-background-range: var(--kf-header-hide-top-main-offset, 0px);
      }

      &.kf-header-scroll-desktop-all {
        --kf-header-scroll-background-range: var(--kf-header-height, 0px);
      }

      .kf-header__inner--desktop {
        .kf-header__row--main {
          .kf-header__column--start {
            display: grid;
            justify-items: start;
            align-items: center;
          }
        }
      }

      &:not(:is(.kf-header-shrink-desktop-main, .kf-header-shrink-desktop-all)) {
        .kf-header__inner--desktop {
          .kf-header__row--main {
            .kf-header__column--start {
              .kf-logo--default,
              .kf-logo--transparent {
                grid-area: 1 / 1;
              }

              .kf-logo--default {
                display: block;
                opacity: 0;
                visibility: hidden;
              }

              .kf-logo--transparent {
                display: block;
                opacity: 1;
                visibility: visible;
              }
            }
          }
        }
      }

      &:is(.kf-header-shrink-desktop-main, .kf-header-shrink-desktop-all) {
        .kf-header__inner--desktop {
          .kf-header__row--main {
            .kf-header__column--start {
              .kf-logo--transparent,
              .kf-logo--shrink-transparent {
                grid-area: 1 / 1;
              }

              .kf-logo--transparent {
                display: block;
                opacity: 1;
                visibility: visible;
              }

              .kf-logo--shrink-transparent {
                display: block;
                opacity: 0;
                visibility: hidden;
              }
            }
          }
        }
      }
    }

    &.kf-header-shrink-desktop-top {
      --kf-header-shrink-scroll-range: var(--kf-header-shrink-top-range, 0px);
    }

    &.kf-header-shrink-desktop-main {
      --kf-header-shrink-scroll-range: var(--kf-header-shrink-main-range, 0px);
    }

    &.kf-header-shrink-desktop-bottom {
      --kf-header-shrink-scroll-range: var(--kf-header-shrink-bottom-range, 0px);
    }

    &.kf-header-shrink-desktop-all {
      --kf-header-shrink-scroll-range: var(--kf-header-shrink-all-range, 0px);
    }

    &:is(.kf-header-shrink-desktop-main, .kf-header-shrink-desktop-all) {
      .kf-header__inner--desktop {
        .kf-header__row--main {
          .kf-header__column--start {
            display: grid;
            justify-items: start;
            align-items: center;
          }
        }
      }
    }

    &.kf-header-type-desktop-solid {
      &:is(.kf-header-shrink-desktop-main, .kf-header-shrink-desktop-all) {
        .kf-header__inner--desktop {
          .kf-header__row--main {
            .kf-header__column--start {
              .kf-logo--default,
              .kf-logo--shrink {
                grid-area: 1 / 1;
              }

              .kf-logo--default {
                display: block;
                opacity: 1;
                visibility: visible;
              }

              .kf-logo--shrink {
                display: block;
                opacity: 0;
                visibility: hidden;
              }
            }
          }
        }
      }
    }
  }
}

@media (max-width: 991px) {
  body.kf-header-position-mobile-fixed {
    &.kf-header-type-mobile-transparent {
      --kf-header-scroll-background-range: var(--kf-header-transparent-scroll-range, 150px);

      &.kf-header-scroll-mobile-top {
        --kf-header-scroll-background-range: var(--kf-header-hide-top-offset, 0px);
      }

      &.kf-header-scroll-mobile-top_main {
        --kf-header-scroll-background-range: var(--kf-header-hide-top-main-offset, 0px);
      }

      &.kf-header-scroll-mobile-all {
        --kf-header-scroll-background-range: var(--kf-header-height, 0px);
      }
    }

    &.kf-header-shrink-mobile-top {
      --kf-header-shrink-scroll-range: var(--kf-header-shrink-top-range, 0px);
    }

    &.kf-header-shrink-mobile-main {
      --kf-header-shrink-scroll-range: var(--kf-header-shrink-main-range, 0px);
    }

    &.kf-header-shrink-mobile-bottom {
      --kf-header-shrink-scroll-range: var(--kf-header-shrink-bottom-range, 0px);
    }

    &.kf-header-shrink-mobile-all {
      --kf-header-shrink-scroll-range: var(--kf-header-shrink-all-range, 0px);
    }
  }
}

body.customize-preview {
  .kf-header,
  .kf-header__row,
  .kf-header__row-inner,
  .kf-header__inner--desktop .kf-header__row--main .kf-header__column--start .kf-logo {
    animation: none !important;
    animation-timeline: auto !important;
    transition: none !important;
    transform: none !important;
    will-change: auto !important;
  }
}

@media (prefers-reduced-motion: no-preference) {
  @supports (animation-timeline: scroll()) {
    @media (min-width: 992px) {
      body.kf-header-position-desktop-fixed {
        &.kf-header-scroll-desktop-top {
          .kf-header {
            animation-name: kf-header-hide-top-scroll;
            animation-duration: 1s;
            animation-timing-function: linear;
            animation-fill-mode: both;
            animation-timeline: scroll();
            animation-range: 0px var(--kf-header-hide-top-offset, 0px);
            will-change: transform;
          }
        }

        &.kf-header-scroll-desktop-top_main {
          .kf-header {
            animation-name: kf-header-hide-top-main-scroll;
            animation-duration: 1s;
            animation-timing-function: linear;
            animation-fill-mode: both;
            animation-timeline: scroll();
            animation-range: 0px var(--kf-header-hide-top-main-offset, 0px);
            will-change: transform;
          }
        }

        &.kf-header-scroll-desktop-all {
          .kf-header {
            animation-name: kf-header-hide-all-scroll;
            animation-duration: 1s;
            animation-timing-function: linear;
            animation-fill-mode: both;
            animation-timeline: scroll();
            animation-range: 0px var(--kf-header-height, 0px);
            will-change: transform;
          }
        }

        &.kf-header-shrink-desktop-top {
          .kf-header__row-inner--top {
            animation-name: kf-header-row-top-padding-shrink;
            animation-duration: 1s;
            animation-timing-function: linear;
            animation-fill-mode: both;
            animation-timeline: scroll();
            animation-range: 0px var(--kf-header-shrink-scroll-range, 0px);
            will-change: padding-top, padding-bottom;
          }
        }

        &.kf-header-shrink-desktop-main {
          .kf-header__row-inner--main {
            animation-name: kf-header-row-main-padding-shrink;
            animation-duration: 1s;
            animation-timing-function: linear;
            animation-fill-mode: both;
            animation-timeline: scroll();
            animation-range: 0px var(--kf-header-shrink-scroll-range, 0px);
            will-change: padding-top, padding-bottom;
          }
        }

        &.kf-header-shrink-desktop-bottom {
          .kf-header__row-inner--bottom {
            animation-name: kf-header-row-bottom-padding-shrink;
            animation-duration: 1s;
            animation-timing-function: linear;
            animation-fill-mode: both;
            animation-timeline: scroll();
            animation-range: 0px var(--kf-header-shrink-scroll-range, 0px);
            will-change: padding-top, padding-bottom;
          }
        }

        &.kf-header-shrink-desktop-all {
          .kf-header__row-inner--top {
            animation-name: kf-header-row-top-padding-shrink;
            animation-duration: 1s;
            animation-timing-function: linear;
            animation-fill-mode: both;
            animation-timeline: scroll();
            animation-range: 0px var(--kf-header-shrink-scroll-range, 0px);
            will-change: padding-top, padding-bottom;
          }

          .kf-header__row-inner--main {
            animation-name: kf-header-row-main-padding-shrink;
            animation-duration: 1s;
            animation-timing-function: linear;
            animation-fill-mode: both;
            animation-timeline: scroll();
            animation-range: 0px var(--kf-header-shrink-scroll-range, 0px);
            will-change: padding-top, padding-bottom;
          }

          .kf-header__row-inner--bottom {
            animation-name: kf-header-row-bottom-padding-shrink;
            animation-duration: 1s;
            animation-timing-function: linear;
            animation-fill-mode: both;
            animation-timeline: scroll();
            animation-range: 0px var(--kf-header-shrink-scroll-range, 0px);
            will-change: padding-top, padding-bottom;
          }
        }
      }

      body.kf-header-position-desktop-fixed.kf-header-type-desktop-transparent {
        .kf-header__row--top {
          animation-name: kf-header-row-top-background-scroll;
          animation-duration: 1s;
          animation-timing-function: linear;
          animation-fill-mode: both;
          animation-timeline: scroll();
          animation-range: 0px var(--kf-header-scroll-background-range, 0px);
        }

        .kf-header__row--main {
          animation-name: kf-header-row-main-background-scroll;
          animation-duration: 1s;
          animation-timing-function: linear;
          animation-fill-mode: both;
          animation-timeline: scroll();
          animation-range: 0px var(--kf-header-scroll-background-range, 0px);
        }

        .kf-header__row--bottom {
          animation-name: kf-header-row-bottom-background-scroll;
          animation-duration: 1s;
          animation-timing-function: linear;
          animation-fill-mode: both;
          animation-timeline: scroll();
          animation-range: 0px var(--kf-header-scroll-background-range, 0px);
        }

        .kf-header__row--top,
        .kf-header__row--main,
        .kf-header__row--bottom {
          .kf-navigation--primary {
            --kf-header-navigation-link-transparent-color: var(--kf-primary-navigation-transparent-font-color);
            --kf-header-navigation-link-transparent-hover-color: var(--kf-primary-navigation-transparent-hover-font-color);
            --kf-header-navigation-link-transparent-active-color: var(--kf-primary-navigation-transparent-active-font-color);
            --kf-header-navigation-link-transparent-scroll-color: var(--kf-primary-navigation-transparent-scroll-font-color);
            --kf-header-navigation-link-transparent-scroll-hover-color: var(--kf-primary-navigation-transparent-scroll-hover-font-color);
            --kf-header-navigation-link-transparent-scroll-active-color: var(--kf-primary-navigation-transparent-scroll-active-font-color);
          }

          .kf-navigation--secondary {
            --kf-header-navigation-link-transparent-color: var(--kf-secondary-navigation-transparent-font-color);
            --kf-header-navigation-link-transparent-hover-color: var(--kf-secondary-navigation-transparent-hover-font-color);
            --kf-header-navigation-link-transparent-active-color: var(--kf-secondary-navigation-transparent-active-font-color);
            --kf-header-navigation-link-transparent-scroll-color: var(--kf-secondary-navigation-transparent-scroll-font-color);
            --kf-header-navigation-link-transparent-scroll-hover-color: var(--kf-secondary-navigation-transparent-scroll-hover-font-color);
            --kf-header-navigation-link-transparent-scroll-active-color: var(--kf-secondary-navigation-transparent-scroll-active-font-color);
          }

          .kf-navigation--primary,
          .kf-navigation--secondary {
            > .kf-navigation__list > .menu-item > a {
              animation-name: kf-header-navigation-link-scroll;
              animation-duration: 1s;
              animation-timing-function: linear;
              animation-fill-mode: both;
              animation-timeline: scroll();
              animation-range: 0px var(--kf-header-scroll-background-range, 0px);
            }

            > .kf-navigation__list > .menu-item:is(.current-menu-item, .current-menu-ancestor) > a {
              animation-name: kf-header-navigation-link-active-scroll;
              animation-duration: 1s;
              animation-timing-function: linear;
              animation-fill-mode: both;
              animation-timeline: scroll();
              animation-range: 0px var(--kf-header-scroll-background-range, 0px);
            }

            > .kf-navigation__list > .menu-item > a:is(:hover, :focus) {
              animation-name: kf-header-navigation-link-hover-scroll;
              animation-duration: 1s;
              animation-timing-function: linear;
              animation-fill-mode: both;
              animation-timeline: scroll();
              animation-range: 0px var(--kf-header-scroll-background-range, 0px);
            }
          }
        }

        .kf-header {
          .kf-phone-number__link {
            animation-name: kf-header-phone-link-scroll;
            animation-duration: 1s;
            animation-timing-function: linear;
            animation-fill-mode: both;
            animation-timeline: scroll();
            animation-range: 0px var(--kf-header-scroll-background-range, 0px);
          }

          .kf-email__link {
            animation-name: kf-header-email-link-scroll;
            animation-duration: 1s;
            animation-timing-function: linear;
            animation-fill-mode: both;
            animation-timeline: scroll();
            animation-range: 0px var(--kf-header-scroll-background-range, 0px);
          }

          .kf-address__item {
            animation-name: kf-header-address-scroll;
            animation-duration: 1s;
            animation-timing-function: linear;
            animation-fill-mode: both;
            animation-timeline: scroll();
            animation-range: 0px var(--kf-header-scroll-background-range, 0px);
          }

          .kf-phone-number__link:is(:hover, :focus) {
            animation-name: kf-header-phone-link-hover-scroll;
            animation-duration: 1s;
            animation-timing-function: linear;
            animation-fill-mode: both;
            animation-timeline: scroll();
            animation-range: 0px var(--kf-header-scroll-background-range, 0px);
          }

          .kf-email__link:is(:hover, :focus) {
            animation-name: kf-header-email-link-hover-scroll;
            animation-duration: 1s;
            animation-timing-function: linear;
            animation-fill-mode: both;
            animation-timeline: scroll();
            animation-range: 0px var(--kf-header-scroll-background-range, 0px);
          }
        }

        .kf-social-media--header {
          .kf-social-media__link {
            animation-name: kf-header-social-link-scroll;
            animation-duration: 1s;
            animation-timing-function: linear;
            animation-fill-mode: both;
            animation-timeline: scroll();
            animation-range: 0px var(--kf-header-scroll-background-range, 0px);
          }

          .kf-social-media__link:is(:hover, :focus) {
            animation-name: kf-header-social-link-hover-scroll;
            animation-duration: 1s;
            animation-timing-function: linear;
            animation-fill-mode: both;
            animation-timeline: scroll();
            animation-range: 0px var(--kf-header-scroll-background-range, 0px);
          }
        }

        &:not(:is(.kf-header-shrink-desktop-main, .kf-header-shrink-desktop-all)) {
          .kf-header__inner--desktop {
            .kf-header__row--main {
              .kf-header__column--start {
                .kf-logo--default {
                  animation-name: kf-header-default-logo-solid-state;
                  animation-duration: 1s;
                  animation-timing-function: linear;
                  animation-fill-mode: both;
                  animation-timeline: scroll();
                  animation-range: 0px var(--kf-header-scroll-background-range, 0px);
                }

                .kf-logo--transparent {
                  animation-name: kf-header-transparent-logo-solid-state;
                  animation-duration: 1s;
                  animation-timing-function: linear;
                  animation-fill-mode: both;
                  animation-timeline: scroll();
                  animation-range: 0px var(--kf-header-scroll-background-range, 0px);
                }
              }
            }
          }
        }
      }

      body.kf-header-position-desktop-fixed.kf-header-type-desktop-solid:is(.kf-header-shrink-desktop-main, .kf-header-shrink-desktop-all) {
        .kf-header__inner--desktop {
          .kf-header__row--main {
            .kf-header__column--start {
              .kf-logo--default {
                animation-name: kf-header-logo-fade-out;
                animation-duration: 1s;
                animation-timing-function: linear;
                animation-fill-mode: both;
                animation-timeline: scroll();
                animation-range: 0px var(--kf-header-shrink-scroll-range, 0px);
              }

              .kf-logo--shrink {
                animation-name: kf-header-logo-fade-in;
                animation-duration: 1s;
                animation-timing-function: linear;
                animation-fill-mode: both;
                animation-timeline: scroll();
                animation-range: 0px var(--kf-header-shrink-scroll-range, 0px);
              }
            }
          }
        }
      }

      body.kf-header-position-desktop-fixed.kf-header-type-desktop-transparent:is(.kf-header-shrink-desktop-main, .kf-header-shrink-desktop-all) {
        .kf-header__inner--desktop {
          .kf-header__row--main {
            .kf-header__column--start {
              .kf-logo--transparent {
                animation-name: kf-header-logo-fade-out;
                animation-duration: 1s;
                animation-timing-function: linear;
                animation-fill-mode: both;
                animation-timeline: scroll();
                animation-range: 0px var(--kf-header-shrink-scroll-range, 0px);
              }

              .kf-logo--shrink-transparent {
                animation-name: kf-header-logo-fade-in;
                animation-duration: 1s;
                animation-timing-function: linear;
                animation-fill-mode: both;
                animation-timeline: scroll();
                animation-range: 0px var(--kf-header-shrink-scroll-range, 0px);
              }
            }
          }
        }
      }
    }

    @media (max-width: 991px) {
      body.kf-header-position-mobile-fixed {
        &.kf-header-scroll-mobile-top {
          .kf-header {
            animation-name: kf-header-hide-top-scroll;
            animation-duration: 1s;
            animation-timing-function: linear;
            animation-fill-mode: both;
            animation-timeline: scroll();
            animation-range: 0px var(--kf-header-hide-top-offset, 0px);
            will-change: transform;
          }
        }

        &.kf-header-scroll-mobile-top_main {
          .kf-header {
            animation-name: kf-header-hide-top-main-scroll;
            animation-duration: 1s;
            animation-timing-function: linear;
            animation-fill-mode: both;
            animation-timeline: scroll();
            animation-range: 0px var(--kf-header-hide-top-main-offset, 0px);
            will-change: transform;
          }
        }

        &.kf-header-scroll-mobile-all {
          .kf-header {
            animation-name: kf-header-hide-all-scroll;
            animation-duration: 1s;
            animation-timing-function: linear;
            animation-fill-mode: both;
            animation-timeline: scroll();
            animation-range: 0px var(--kf-header-height, 0px);
            will-change: transform;
          }
        }

        &.kf-header-shrink-mobile-top {
          .kf-header__row-inner--top {
            animation-name: kf-header-row-top-padding-shrink;
            animation-duration: 1s;
            animation-timing-function: linear;
            animation-fill-mode: both;
            animation-timeline: scroll();
            animation-range: 0px var(--kf-header-shrink-scroll-range, 0px);
            will-change: padding-top, padding-bottom;
          }
        }

        &.kf-header-shrink-mobile-main {
          .kf-header__row-inner--main {
            animation-name: kf-header-row-main-padding-shrink;
            animation-duration: 1s;
            animation-timing-function: linear;
            animation-fill-mode: both;
            animation-timeline: scroll();
            animation-range: 0px var(--kf-header-shrink-scroll-range, 0px);
            will-change: padding-top, padding-bottom;
          }
        }

        &.kf-header-shrink-mobile-bottom {
          .kf-header__row-inner--bottom {
            animation-name: kf-header-row-bottom-padding-shrink;
            animation-duration: 1s;
            animation-timing-function: linear;
            animation-fill-mode: both;
            animation-timeline: scroll();
            animation-range: 0px var(--kf-header-shrink-scroll-range, 0px);
            will-change: padding-top, padding-bottom;
          }
        }

        &.kf-header-shrink-mobile-all {
          .kf-header__row-inner--top {
            animation-name: kf-header-row-top-padding-shrink;
            animation-duration: 1s;
            animation-timing-function: linear;
            animation-fill-mode: both;
            animation-timeline: scroll();
            animation-range: 0px var(--kf-header-shrink-scroll-range, 0px);
            will-change: padding-top, padding-bottom;
          }

          .kf-header__row-inner--main {
            animation-name: kf-header-row-main-padding-shrink;
            animation-duration: 1s;
            animation-timing-function: linear;
            animation-fill-mode: both;
            animation-timeline: scroll();
            animation-range: 0px var(--kf-header-shrink-scroll-range, 0px);
            will-change: padding-top, padding-bottom;
          }

          .kf-header__row-inner--bottom {
            animation-name: kf-header-row-bottom-padding-shrink;
            animation-duration: 1s;
            animation-timing-function: linear;
            animation-fill-mode: both;
            animation-timeline: scroll();
            animation-range: 0px var(--kf-header-shrink-scroll-range, 0px);
            will-change: padding-top, padding-bottom;
          }
        }
      }

      body.kf-header-position-mobile-fixed.kf-header-type-mobile-transparent {
        .kf-header__row--top {
          animation-name: kf-header-row-top-background-scroll;
          animation-duration: 1s;
          animation-timing-function: linear;
          animation-fill-mode: both;
          animation-timeline: scroll();
          animation-range: 0px var(--kf-header-scroll-background-range, 0px);
        }

        .kf-header__row--main {
          animation-name: kf-header-row-main-background-scroll;
          animation-duration: 1s;
          animation-timing-function: linear;
          animation-fill-mode: both;
          animation-timeline: scroll();
          animation-range: 0px var(--kf-header-scroll-background-range, 0px);
        }

        .kf-header__row--bottom {
          animation-name: kf-header-row-bottom-background-scroll;
          animation-duration: 1s;
          animation-timing-function: linear;
          animation-fill-mode: both;
          animation-timeline: scroll();
          animation-range: 0px var(--kf-header-scroll-background-range, 0px);
        }

        .kf-header__row--top,
        .kf-header__row--main,
        .kf-header__row--bottom {
          .kf-navigation--primary {
            --kf-header-navigation-link-transparent-color: var(--kf-primary-navigation-transparent-font-color);
            --kf-header-navigation-link-transparent-hover-color: var(--kf-primary-navigation-transparent-hover-font-color);
            --kf-header-navigation-link-transparent-active-color: var(--kf-primary-navigation-transparent-active-font-color);
            --kf-header-navigation-link-transparent-scroll-color: var(--kf-primary-navigation-transparent-scroll-font-color);
            --kf-header-navigation-link-transparent-scroll-hover-color: var(--kf-primary-navigation-transparent-scroll-hover-font-color);
            --kf-header-navigation-link-transparent-scroll-active-color: var(--kf-primary-navigation-transparent-scroll-active-font-color);
          }

          .kf-navigation--secondary {
            --kf-header-navigation-link-transparent-color: var(--kf-secondary-navigation-transparent-font-color);
            --kf-header-navigation-link-transparent-hover-color: var(--kf-secondary-navigation-transparent-hover-font-color);
            --kf-header-navigation-link-transparent-active-color: var(--kf-secondary-navigation-transparent-active-font-color);
            --kf-header-navigation-link-transparent-scroll-color: var(--kf-secondary-navigation-transparent-scroll-font-color);
            --kf-header-navigation-link-transparent-scroll-hover-color: var(--kf-secondary-navigation-transparent-scroll-hover-font-color);
            --kf-header-navigation-link-transparent-scroll-active-color: var(--kf-secondary-navigation-transparent-scroll-active-font-color);
          }

          .kf-navigation--primary,
          .kf-navigation--secondary {
            > .kf-navigation__list > .menu-item > a {
              animation-name: kf-header-navigation-link-scroll;
              animation-duration: 1s;
              animation-timing-function: linear;
              animation-fill-mode: both;
              animation-timeline: scroll();
              animation-range: 0px var(--kf-header-scroll-background-range, 0px);
            }

            > .kf-navigation__list > .menu-item:is(.current-menu-item, .current-menu-ancestor) > a {
              animation-name: kf-header-navigation-link-active-scroll;
              animation-duration: 1s;
              animation-timing-function: linear;
              animation-fill-mode: both;
              animation-timeline: scroll();
              animation-range: 0px var(--kf-header-scroll-background-range, 0px);
            }

            > .kf-navigation__list > .menu-item > a:is(:hover, :focus) {
              animation-name: kf-header-navigation-link-hover-scroll;
              animation-duration: 1s;
              animation-timing-function: linear;
              animation-fill-mode: both;
              animation-timeline: scroll();
              animation-range: 0px var(--kf-header-scroll-background-range, 0px);
            }
          }
        }

        .kf-header {
          .kf-phone-number__link {
            animation-name: kf-header-phone-link-scroll;
            animation-duration: 1s;
            animation-timing-function: linear;
            animation-fill-mode: both;
            animation-timeline: scroll();
            animation-range: 0px var(--kf-header-scroll-background-range, 0px);
          }

          .kf-email__link {
            animation-name: kf-header-email-link-scroll;
            animation-duration: 1s;
            animation-timing-function: linear;
            animation-fill-mode: both;
            animation-timeline: scroll();
            animation-range: 0px var(--kf-header-scroll-background-range, 0px);
          }

          .kf-address__item {
            animation-name: kf-header-address-scroll;
            animation-duration: 1s;
            animation-timing-function: linear;
            animation-fill-mode: both;
            animation-timeline: scroll();
            animation-range: 0px var(--kf-header-scroll-background-range, 0px);
          }

          .kf-phone-number__link:is(:hover, :focus) {
            animation-name: kf-header-phone-link-hover-scroll;
            animation-duration: 1s;
            animation-timing-function: linear;
            animation-fill-mode: both;
            animation-timeline: scroll();
            animation-range: 0px var(--kf-header-scroll-background-range, 0px);
          }

          .kf-email__link:is(:hover, :focus) {
            animation-name: kf-header-email-link-hover-scroll;
            animation-duration: 1s;
            animation-timing-function: linear;
            animation-fill-mode: both;
            animation-timeline: scroll();
            animation-range: 0px var(--kf-header-scroll-background-range, 0px);
          }
        }

        .kf-social-media--header {
          .kf-social-media__link {
            animation-name: kf-header-social-link-scroll;
            animation-duration: 1s;
            animation-timing-function: linear;
            animation-fill-mode: both;
            animation-timeline: scroll();
            animation-range: 0px var(--kf-header-scroll-background-range, 0px);
          }

          .kf-social-media__link:is(:hover, :focus) {
            animation-name: kf-header-social-link-hover-scroll;
            animation-duration: 1s;
            animation-timing-function: linear;
            animation-fill-mode: both;
            animation-timeline: scroll();
            animation-range: 0px var(--kf-header-scroll-background-range, 0px);
          }
        }
      }
    }
  }
}

/* ================= [03] Typography ================= */
/* -- [03.1] Heading Styles -- */
/* Header Styles are set in the Theme.json */

.kf-footer__heading {
  display: block;
  margin: var(--kf-footer-heading-margin);
  color: var(--kf-footer-heading-font-color, var(--kf-headings));
  font-family: var(--kf-footer-heading-font-family, var(--kf-font-heading-source-family));
  font-size: var(--kf-footer-heading-font-size);
  line-height: var(--kf-footer-heading-line-height);
  font-weight: var(--kf-footer-heading-font-weight);
}

/* -- [03.2] Font Styles -- */
p {
  margin-top: var(--kf-body-margin-top);
  margin-bottom: var(--kf-body-margin-bottom);
}

pre, table, blockquote {
  margin-top: 0rem;
  margin-bottom: 1.5rem;
}

ul, ol {
  margin-bottom: 1.5rem;
  padding-left: 1rem;
}

ul ul, ol ol, ul ol, ol ul {
  margin-top: 0rem;
  margin-bottom: 0rem;
}

hr, .hr {
  border: 1px solid;
  margin: -1px 0;
}

a {
  color: var(--kf-link-font-color, var(--kf-primary));

  &:hover {
    color: var(--kf-link-hover-font-color, var(--kf-secondary));
  }
}

sub, sup {
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sup {
  top: -0.5em;
}

sub {
  bottom: -0.25em;
}

/* -- [03.3] List Styles -- */
.kf-list {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin: 0;
  padding: 0;

  .kf-list__item {
    line-height: 1;

    &.kf-list__item--spacer {
      height: 1.5rem;
    }
  }

  &.kf-list--style-none {
    list-style: none;
  }
}

/* -- [03.4] Button Styles -- */
.kf-btn {
  padding: var(--kf-button-padding);
  background-color: var(--kf-button-background-color, var(--kf-primary));
  color: var(--kf-button-font-color, var(--kf-background));
  border: none;
  border-radius: var(--kf-button-border-radius);
  font-size: var(--kf-button-font-size);
  line-height: var(--kf-button-line-height);
  font-weight: var(--kf-button-font-weight);
  text-decoration: none;
  transition: color 200ms ease-out, background-color 200ms ease-out;
  cursor: pointer;

  &:is(:hover, :focus) {
    background-color: var(--kf-button-hover-background-color, var(--kf-secondary));
  }

  &:focus-visible {
    outline: 2px solid var(--kf-accessibility-color);
    outline-offset: 2px;
    visibility: visible;
    opacity: 1;
  }
}

/* -- [03.5] Sitemap Styles -- */
.kf-site-map__list {
  list-style: none;
}

/* -- [03.6] blockquote Styles -- */
blockquote{
    border-left: 5px solid rgba(0, 0, 0, .05);
    padding: 20px;
    font-size: 1rem;
    font-style: italic;
    margin: 0 0 1.5rem;
    position: relative;
}


/* ================= [04] Layout ================= */
/* -- [04.1] Header Styles -- */
.kf-header {
  position: var(--kf-header-position-mode, relative);
  top: var(--kf-header-position-top, auto);
  left: var(--kf-header-position-left, auto);
  width: var(--kf-header-max-width);
  padding: var(--kf-header-padding);
  z-index: 500;

  /* -- [04.1.a] Header Inner Styles -- */
  .kf-header__inner {
    max-width: var(--kf-header-inner-max-width);
    padding: var(--kf-header-inner-padding);

    /* -- [04.1.b] Mobile Header Inner Styles -- */
    &.kf-header__inner--mobile {
      display: block;

      @media (min-width: 992px) {
        display: none;
      }
    }

    /* -- [04.1.c] Desktop Header Inner Styles -- */
    &.kf-header__inner--desktop {
      display: none;

      @media (min-width: 992px) {
        display: block;
      }
    }
  }

  /* -- [04.1.d] Header Row Styles -- */
  .kf-header__row {
    max-width: var(--kf-header-row-max-width);

    &.kf-header__row--top {
      background-color: var(--kf-header-row-top-effective-background-color, var(--kf-header-row-top-background-color));
    }

    &.kf-header__row--main {
      background-color: var(--kf-header-row-main-effective-background-color, var(--kf-header-row-main-background-color));
    }

    &.kf-header__row--bottom {
      background-color: var(--kf-header-row-bottom-effective-background-color, var(--kf-header-row-bottom-background-color));
    }
  }

  /* -- [04.1.e] Header Row Inner Styles -- */
  .kf-header__row-inner {
    display: flex;
    justify-content: space-between;
    align-items: stretch;
    margin: 0 auto;

    &.kf-header__row-inner--top {
      max-width: var(--kf-header-row-top-inner-max-width);
      padding-top: var(--kf-header-row-top-inner-padding-top);
      padding-right: var(--kf-header-row-top-inner-padding-right);
      padding-bottom: var(--kf-header-row-top-inner-padding-bottom);
      padding-left: var(--kf-header-row-top-inner-padding-left);
    }

    &.kf-header__row-inner--main {
      max-width: var(--kf-header-row-main-inner-max-width);
      padding-top: var(--kf-header-row-main-inner-padding-top);
      padding-right: var(--kf-header-row-main-inner-padding-right);
      padding-bottom: var(--kf-header-row-main-inner-padding-bottom);
      padding-left: var(--kf-header-row-main-inner-padding-left);
    }

    &.kf-header__row-inner--bottom {
      max-width: var(--kf-header-row-bottom-inner-max-width);
      padding-top: var(--kf-header-row-bottom-inner-padding-top);
      padding-right: var(--kf-header-row-bottom-inner-padding-right);
      padding-bottom: var(--kf-header-row-bottom-inner-padding-bottom);
      padding-left: var(--kf-header-row-bottom-inner-padding-left);
    }
  }

  /* -- [04.1.f] Header Column Styles -- */
  .kf-header__column {
    min-width: 0;

    &.kf-header__column--start {
      display: flex;
      justify-content: flex-start;
      align-items: center;
    }

    &.kf-header__column--middle {
      display: flex;
      justify-content: center;
      align-items: center;
    }

    &.kf-header__column--end {
      display: flex;
      justify-content: flex-end;
      align-items: center;
    }
  }
}

.kf-main,
.kf-sidebar {
  padding-top: var(--kf-header-content-padding-top, 0px);
}

/* -- [04.2] Content Styles -- */
.kf-content {
  &.kf-content--sidebar-right {
    width: 100%;
    margin-left: auto;
    margin-right: auto;

    @media (min-width: 991px) {
      display: flex;
      gap: 3rem;
      max-width: var(--kf-max-width);
    }

    .kf-main {
      width: 100%;

      @media (min-width: 991px) {
        width: calc(70% - 2.1rem);

        .kf-main__inner {
          padding-right: 0;
          padding-left: 0;
        }
      }
    }

    .kf-sidebar {
      width: 100%;

      @media (min-width: 991px) {
        width: calc(30% - 0.9rem);
      }

      .kf-sidebar__inner {
        padding-top: var(--kf-main-inner-padding-top);
        padding-bottom: var(--kf-main-inner-padding-bottom);
        padding-left: var(--kf-main-inner-padding-left);
        padding-right: var(--kf-main-inner-padding-right);

        @media (min-width: 991px) {
          padding-right: 0;
          padding-left: 0;
        }
      }
    }

    .kf-main--archive ~ .kf-sidebar {
      .kf-sidebar__inner {
        padding-top: var(--kf-archive-inner-padding-top);
        padding-bottom: var(--kf-archive-inner-padding-bottom);
        padding-left: var(--kf-archive-inner-padding-left);
        padding-right: var(--kf-archive-inner-padding-right);
      }
    }

    .kf-main--single ~ .kf-sidebar {
      .kf-sidebar__inner {
        padding-top: var(--kf-single-inner-padding-top);
        padding-bottom: var(--kf-single-inner-padding-bottom);
        padding-left: var(--kf-single-inner-padding-left);
        padding-right: var(--kf-single-inner-padding-right);
      }
    }
  }

  &.kf-content--sidebar-left {
    width: 100%;
    margin-left: auto;
    margin-right: auto;

    @media (min-width: 991px) {
      display: flex;
      gap: 3rem;
      max-width: var(--kf-max-width);
    }

    .kf-main {
      width: 100%;

      @media (min-width: 991px) {
        order: 2;
        width: calc(70% - 2.1rem);
        
        .kf-main__inner {
          padding-right: 0;
          padding-left: 0;
        }
      }
    }

    .kf-sidebar {
      width: 100%;

      @media (min-width: 991px) {
        order: 1;
        width: calc(30% - 0.9rem);
      }

      .kf-sidebar__inner {
        padding-top: var(--kf-main-inner-padding-top);
        padding-bottom: var(--kf-main-inner-padding-bottom);
        padding-left: var(--kf-main-inner-padding-left);
        padding-right: var(--kf-main-inner-padding-right);
        
        @media (min-width: 991px) {
          padding-right: 0;
          padding-left: 0;
        }
      }
    }

    .kf-main--archive ~ .kf-sidebar {
      .kf-sidebar__inner {
        padding-top: var(--kf-archive-inner-padding-top);
        padding-bottom: var(--kf-archive-inner-padding-bottom);
        padding-left: var(--kf-archive-inner-padding-left);
        padding-right: var(--kf-archive-inner-padding-right);
      }
    }

    .kf-main--single ~ .kf-sidebar {
      .kf-sidebar__inner {
        padding-top: var(--kf-single-inner-padding-top);
        padding-bottom: var(--kf-single-inner-padding-bottom);
        padding-left: var(--kf-single-inner-padding-left);
        padding-right: var(--kf-single-inner-padding-right);
      }
    }
  }
}

/* -- [04.2.a] Kraken Element Styles -- */
.kraken-element > .alignwide {
  width: min(
    var(--kf-wide-width),
    calc(100vw - var(--kf-main-inner-padding-left) - var(--kf-main-inner-padding-right))
  );
  max-width: none;
  margin-left: 50%;
  transform: translateX(-50%);
}

.kraken-element > .alignfull {
  max-width: none; 
  margin-left: calc(50% - 100vw / 2);
  margin-right: calc(50% - 100vw / 2);
}

/* -- [04.2.b] Main Styles -- */
.kf-main {
  position: relative;
  z-index: 300;

  .kf-main__inner {
    padding-top: var(--kf-main-inner-padding-top);
    padding-bottom: var(--kf-main-inner-padding-bottom);

    .kf-entry__header {
      max-width: var(--kf-entry-header-max-width);
      margin: 0 auto;
      padding-left: var(--kf-main-inner-padding-left);
      padding-right: var(--kf-main-inner-padding-right);
    }

    .kf-entry__content {
      max-width: var(--kf-entry-content-max-width);
      margin-left: auto;
      margin-right: auto;
      padding-left: var(--kf-main-inner-padding-left);
      padding-right: var(--kf-main-inner-padding-right);
    }

    .kf-entry__footer {
      max-width: var(--kf-entry-footer-max-width);
      margin: 0 auto;
      padding-left: var(--kf-main-inner-padding-left);
      padding-right: var(--kf-main-inner-padding-right);
    }

    .kf-entry__content > .alignwide {
      width: min(
        var(--kf-wide-width),
        calc(100vw - var(--kf-main-inner-padding-left) - var(--kf-main-inner-padding-right))
      );
      max-width: none;
      margin-left: 50%;
      transform: translateX(-50%);
    }

    .kf-entry__content > .alignfull {
      max-width: none;
      margin-left: calc(50% - 50vw);
      margin-right: calc(50% - 50vw);
    }

    .kf-entry__content > .alignwide.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
    .kf-entry__content > .alignfull.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
      max-width: min(
        calc(var(--kf-entry-content-max-width) - var(--kf-main-inner-padding-left) - var(--kf-main-inner-padding-right)),
        calc(100% - var(--kf-main-inner-padding-left) - var(--kf-main-inner-padding-right))
      );
      margin-left: auto !important;
      margin-right: auto !important;
    }

    .kf-entry__content > .alignwide.is-layout-constrained > .alignwide,
    .kf-entry__content > .alignfull.is-layout-constrained > .alignwide {
      max-width: min(
        calc(var(--kf-wide-width) - var(--kf-main-inner-padding-left) - var(--kf-main-inner-padding-right)),
        calc(100% - var(--kf-main-inner-padding-left) - var(--kf-main-inner-padding-right))
      );
    }

    .wp-block-kraken-element > .alignwide {
      width: min(
        var(--kf-wide-width),
        calc(100vw - var(--kf-main-inner-padding-left) - var(--kf-main-inner-padding-right))
      );
      max-width: none;
      margin-left: 50%;
      transform: translateX(-50%);
    }

    .wp-block-kraken-element > .alignfull {
      max-width: none;
      margin-left: calc(50% - 50vw);
      margin-right: calc(50% - 50vw);
    }

    .wp-block-kraken-element > .alignwide.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
    .wp-block-kraken-element > .alignfull.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
      max-width: min(
        calc(var(--kf-entry-content-max-width) - var(--kf-main-inner-padding-left) - var(--kf-main-inner-padding-right)),
        calc(100% - var(--kf-main-inner-padding-left) - var(--kf-main-inner-padding-right))
      );
      margin-left: auto !important;
      margin-right: auto !important;
    }

    .wp-block-kraken-element > .alignwide.is-layout-constrained > .alignwide,
    .wp-block-kraken-element > .alignfull.is-layout-constrained > .alignwide {
      max-width: min(
        calc(var(--kf-wide-width) - var(--kf-main-inner-padding-left) - var(--kf-main-inner-padding-right)),
        calc(100% - var(--kf-main-inner-padding-left) - var(--kf-main-inner-padding-right))
      );
    }

    .kf-entry__content img {
      max-width: 100%;
    }

    .kf-entry__content .wp-caption {
      max-width: 100%;
    }

    .kf-entry__content .alignleft {
      float: left;
      margin: 0.25rem 1.25rem 1.25rem 0;
    }

    .kf-entry__content .alignright {
      float: right;
      margin: 0.25rem 0 1.25rem 1.25rem;
    }

    .kf-entry__content .aligncenter {
      display: block;
      margin: 0 auto 1.25rem;
    }

    .kf-entry__content figure.alignleft,
    .kf-entry__content figure.alignright {
      display: table;
    }

    .kf-entry__content::after {
      content: "";
      display: block;
      clear: both;
    }
  }
  &.kf-main--404 {
    .kf-main__inner {
      --kf-main-inner-padding-top: var(--kf-404-inner-padding-top);
      --kf-main-inner-padding-bottom: var(--kf-404-inner-padding-bottom);
      --kf-main-inner-padding-left: var(--kf-404-inner-padding-left);
      --kf-main-inner-padding-right: var(--kf-404-inner-padding-right);
    }

    .kf-entry__content {
      max-width: var(--kf-404-inner-max-width);
      margin: 0 auto;
    }
  }

  &.kf-main--archive {
    .kf-main__inner {
      --kf-main-inner-padding-top: var(--kf-archive-inner-padding-top);
      --kf-main-inner-padding-bottom: var(--kf-archive-inner-padding-bottom);
    }

    .kf-archive-content,
    .kf-archive-content__loop {
      max-width: var(--kf-archive-inner-max-width);
      margin: 0 auto;
      padding-left: var(--kf-archive-inner-padding-left);
      padding-right:var(--kf-archive-inner-padding-right);
    }
  }

  &.kf-main--single {  
    .kf-main__inner {
      --kf-main-inner-padding-top: var(--kf-single-inner-padding-top);
      --kf-main-inner-padding-bottom: var(--kf-single-inner-padding-bottom);
    }

    .kf-entry__header {
        max-width: var(--kf-single-header-max-width);
        padding-left: var(--kf-single-inner-padding-left);
        padding-right:var(--kf-single-inner-padding-right);
    }

    .kf-entry__content {
      max-width: var(--kf-single-content-max-width);
      padding-left: var(--kf-single-inner-padding-left);
      padding-right:var(--kf-single-inner-padding-right);
    }

    .kf-entry__footer {
      max-width: var(--kf-single-footer-max-width);
      padding-left: var(--kf-single-inner-padding-left);
      padding-right:var(--kf-single-inner-padding-right);
    }
  }
}

/* -- [04.3] Archive Styles -- */
.kf-archive-content__loop {
  /* -- [04.3.a] Archive List Styles -- */
  .kf-archive__list {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    margin: 0;
    padding: 0;
    list-style: none;
  }
}

/* -- [04.4] Footer Styles -- */
.kf-footer {
  position: relative;
  width: var(--kf-footer-max-width);
  padding: var(--kf-footer-padding);
  z-index: 400;

  /* -- [04.4.a] Footer Inner Styles -- */
  .kf-footer__inner {
    max-width: var(--kf-footer-inner-max-width);
    padding: var(--kf-footer-inner-padding);
  }

  /* -- [04.4.b] Footer Row Styles -- */
  .kf-footer__row {
    max-width: var(--kf-footer-row-max-width);

    &.kf-footer__row--top {
      background-color: var(--kf-footer-row-top-background-color);
    }

    &.kf-footer__row--main {
      background-color: var(--kf-footer-row-main-background-color);
    }

    &.kf-footer__row--bottom {
      background-color: var(--kf-footer-row-bottom-background-color);
    }

    &.kf-footer__row--base {
      background-color: var(--kf-footer-row-base-background-color);
    }
  }

  /* -- [04.4.c] Footer Row Inner Styles -- */
  .kf-footer__row-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    margin: 0 auto;

    &.kf-footer__row-inner--top {
      max-width: var(--kf-footer-row-top-inner-max-width);
      gap: var(--kf-footer-row-top-gap-mobile);
      padding-top: var(--kf-footer-row-top-inner-padding-top);
      padding-right: var(--kf-footer-row-top-inner-padding-right);
      padding-bottom: var(--kf-footer-row-top-inner-padding-bottom);
      padding-left: var(--kf-footer-row-top-inner-padding-left);

      @media (min-width: 991px) {
        gap: var(--kf-footer-row-top-gap-desktop);
      }
    }

    &.kf-footer__row-inner--main {
      max-width: var(--kf-footer-row-main-inner-max-width);
      gap: var(--kf-footer-row-main-gap-mobile);
      padding-top: var(--kf-footer-row-main-inner-padding-top);
      padding-right: var(--kf-footer-row-main-inner-padding-right);
      padding-bottom: var(--kf-footer-row-main-inner-padding-bottom);
      padding-left: var(--kf-footer-row-main-inner-padding-left);

      @media (min-width: 991px) {
        gap: var(--kf-footer-row-main-gap-desktop);
      }
    }

    &.kf-footer__row-inner--bottom {
      max-width: var(--kf-footer-row-bottom-inner-max-width);
      gap: var(--kf-footer-row-bottom-gap-mobile);
      padding-top: var(--kf-footer-row-bottom-inner-padding-top);
      padding-right: var(--kf-footer-row-bottom-inner-padding-right);
      padding-bottom: var(--kf-footer-row-bottom-inner-padding-bottom);
      padding-left: var(--kf-footer-row-bottom-inner-padding-left);

      @media (min-width: 991px) {
        gap: var(--kf-footer-row-bottom-gap-desktop);
      }
    }

    &.kf-footer__row-inner--base {
      max-width: var(--kf-footer-row-base-inner-max-width);
      gap: var(--kf-footer-row-base-gap-mobile);
      padding-top: var(--kf-footer-row-base-inner-padding-top);
      padding-right: var(--kf-footer-row-base-inner-padding-right);
      padding-bottom: var(--kf-footer-row-base-inner-padding-bottom);
      padding-left: var(--kf-footer-row-base-inner-padding-left);

      @media (min-width: 991px) {
        gap: var(--kf-footer-row-base-gap-desktop);
      }
    }
  }

  /* -- [04.4.d] Footer Column Styles -- */
  .kf-footer__column {
    flex: 1 1 100%;
    min-width: 0;

    @media (min-width: 991px) {
      flex-basis: calc((100% - 1.5rem) / 4);
    }
  }

  /* -- [04.4.e] Footer Column Inner Styles -- */
  .kf-footer__column-inner {
      text-align: center;

      @media (min-width: 991px) {
        text-align: left;
      }
  }
}

/* ================= [05] Components ================= */
/* -- [05.1] Skip Navigation Styles -- */
.kf-skip-links {
  position: fixed;
  top: 0px;
  left: 0px;
  z-index: 99999;

  .kf-skip-links__list {
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .kf-skip-links__item--desktop-nav {
    display: none;

    @media (min-width: 992px) {
      display: list-item;
    }
  }

  .kf-skip-links__item--mobile-nav {
    display: list-item;

    @media (min-width: 992px) {
      display: none;
    }
  }

  .kf-skip-links__link {
    position: fixed;
    top: 50px;
    left: 20px;
    z-index: 999999;
    opacity: 0;
    min-width: 200px;
    padding: 1rem 1.5rem;
    background-color: #ffffff;
    color: #222222;
    border: 3px solid var(--kf-accessibility-color);
    border-radius: 50px;
    outline: var(--kf-accessibility-color) solid 0px;
    direction: ltr;
    font-size: 1rem;
    text-align: center;
    text-decoration: none;
    transition: top 0.3s ease-out 0s;
    pointer-events: none;

    &:focus {
      top: 20px;
      opacity: 1;
      pointer-events: auto;
    }
  }
}

/* -- [05.2] Header Notice Styles -- */
.kf-header-notice {
  position: relative;
  width: 100%;
  display: block;
  color: var(--kf-notice-text-color);
  background-color: var(--kf-notice-bg-color);

  &.kf-header-notice--is-disabled {
    display: none;
  }

  .kf-header-notice__viewport {
    overflow: hidden;
  }

  .kf-header-notice__track {
    display: flex;
  }

  .kf-header-notice__slide {
    flex: 0 0 100%;
    background-color: var(--kf-notice-bg-color);
    color: var(--kf-notice-text-color);
  }

  .kf-header-notice__inner {
    display: grid;
    grid-template-columns: 2.25rem minmax(0, 1fr) 2.25rem 2.25rem;
    align-items: center;
    column-gap: 0.5rem;
  }

  .kf-header-notice__content {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    max-width: var(--kf-max-width);
    margin: 0 auto;
    padding: 0.75rem 0 0.75rem 0;
    text-align: center;
    grid-column: 2;
    justify-self: start;
  }

  .kf-header-notice__message {
    margin: 0;
    font-size: 0.8rem;
    line-height: 1.5;
  }

  .kf-header-notice__link {
    color: var(--kf-notice-link-color);
    text-decoration: none;
    font-size: 0.8rem;
    line-height: 1.5;

    &:is(:hover, :focus) {
      color: var(--kf-notice-link-hover-color);
    }

    &:focus-visible {
      outline: 2px solid var(--kf-accessibility-color);
      outline-offset: 2px;
      visibility: visible;
      opacity: 1;
    }
  }

  .kf-header-notice__controls {
    position: absolute;
    inset: 0;
    display: grid;
    grid-template-columns: 2.25rem minmax(0, 1fr) 2.25rem 2.25rem;
    align-items: center;
    column-gap: 0.5rem;
    pointer-events: none;
  }

  .kf-header-notice__control,
  .kf-header-notice__dismiss {
    pointer-events: auto;
    background: transparent;
    color: var(--kf-notice-control-color);
    border: none;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 1.2rem;

    &:disabled {
      opacity: 0.4;
      cursor: default;
    }

    &:is(:hover, :focus-visible) {
      color: var(--kf-notice-control-hover-color);
    }

    &:focus-visible {
      outline: 2px solid var(--kf-accessibility-color);
      outline-offset: 2px;
      visibility: visible;
      opacity: 1;
    }
  }

  .kf-header-notice__control--prev {
    grid-column: 1;
    justify-self: start;
  }

  .kf-header-notice__control--next {
    grid-column: 3;
    justify-self: end;
  }

  .kf-header-notice__dismiss {
    grid-column: 4;
    justify-self: end;
  }

  @media (min-width: 991px) {
    .kf-header-notice__content {
      flex-direction: row;
    }

    .kf-header-notice__content {
      gap: 0.5rem;
      padding: 0.6rem var(--kf-global-padding-right) 0.6rem var(--kf-global-padding-left);
    }
  }
}

/* -- [05.3] Logo Styles -- */
.kf-logo {
  &:focus-visible {
    outline: 2px solid var(--kf-accessibility-color);
    outline-offset: 2px;
    visibility: visible;
    opacity: 1;
  }

  /* -- [05.3.a] Default Logo Styles -- */
  &.kf-logo--default {
    display: var(--kf-logo-default-display, block);
  }

  /* -- [05.3.b] Transparent Logo Styles -- */
  &.kf-logo--transparent {
    display: var(--kf-logo-transparent-display, none);
  }

  /* -- [05.3.c] Transparent Scroll Logo Styles -- */
  &.kf-logo--transparent-scroll {
    display: var(--kf-logo-transparent-scroll-display, none);
  }

  /* -- [05.3.d] Shrink Logo Styles -- */
  &.kf-logo--shrink {
    display: var(--kf-logo-shrink-display, none);
  }

  /* -- [05.3.e] Shrink Transparent Logo Styles -- */
  &.kf-logo--shrink-transparent {
    display: var(--kf-logo-shrink-transparent-display, none);
  }

  /* -- [05.3.f] Footer Logo Styles -- */
  &.kf-logo--footer {
    .kf-logo__image--footer {
      margin: 1.5rem auto;

      @media (min-width: 991px) {
        margin: 0;
      }
    }
  }
}

/* -- [05.4] Navigation Styles -- */
.kf-navigation {
  /* -- [05.4.a] Navigation Base Styles -- */
  :where(ul) {
    margin: 0;
    padding: 0;
    list-style: none;
  }

  :where(.kf-navigation__list) {
    display: var(--kf-navigation-display);
    flex-direction: var(--kf-navigation-flex-direction);
    gap: var(--kf-navigation-flex-gap);

    :where(.menu-item) {
      position: relative;
      padding: 0;
      margin: 0;

      /* -- [05.4.b] Navigation Links Styles -- */
      &.current-menu-item > a,
      &.current-menu-ancestor > a {
        background-color: var(--kf-navigation-active-background-color);
        color: var(--kf-navigation-active-font-color);
      }

      &.menu-item-has-children {
        display: flex;
        flex-wrap: wrap;
        align-items: var(--kf-navigation-link-align);
      }

      &.menu-item-has-children > a {
        flex: 1 1 auto;
      }

      /* -- [05.4.c] Navigation Disclosure Button Styles -- */
      :where(.kf-navigation__submenu-toggle) {
        display: flex;
        justify-content: center;
        align-items: center;
        align-self: stretch;
        min-width: 1rem;
        min-height: 1rem;
        padding: 0.25rem;
        margin: var(--kf-navigation-link-margin);
        background-color: var(--kf-navigation-link-background-color);
        color: var(--kf-navigation-link-font-color);
        border: 0;
        border-radius: 0;
        font: inherit;
        line-height: var(--kf-navigation-link-line-height);
        cursor: pointer;
        transition: color 200ms ease-out, background-color 200ms ease-out;

        &::before {
          content: "";
          background-color: currentColor;
          -webkit-mask-image: var(--kf-navigation-caret);
          mask-image: var(--kf-navigation-caret);
          -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
          -webkit-mask-size: 100% 100%;
          mask-size: 100% 100%;
          width: var(--kf-navigation-caret-width);
          height: var(--kf-navigation-caret-height);
          transform-origin: center;
          transform: rotate(0deg);
          transition: transform 200ms ease-out;
        }

        &:is(:hover, :focus) {
          background-color: var(--kf-navigation-link-hover-background-color);
          color: var(--kf-navigation-link-hover-font-color);
        }

        &:focus-visible {
          outline: 2px solid var(--kf-accessibility-color);
          outline-offset: 2px;
          visibility: visible;
          opacity: 1;
        }

        &[aria-expanded="true"]::before {
          transform: rotate(180deg);
        }

        &[aria-expanded="true"] + :where(.sub-menu) {
          display: flex;
          visibility: visible;
          top: var(--kf-navigation-subnav-top);
          left: var(--kf-navigation-subnav-left);
          height: auto;
        }
      }

      :where(a) {
        display: flex;
        justify-content: var(--kf-navigation-flex-justify);
        align-items: var(--kf-navigation-link-align);
        padding: var(--kf-navigation-link-padding);
        margin: var(--kf-navigation-link-margin);
        background-color: var(--kf-navigation-link-background-color);
        color: var(--kf-navigation-link-font-color);
        font-family: var(--kf-navigation-link-font-family, inherit);
        font-size: var(--kf-navigation-link-font-size);
        font-weight: var(--kf-navigation-link-font-weight);
        line-height: var(--kf-navigation-link-line-height);
        text-decoration: none;
        transition: color 200ms ease-out, background-color 200ms ease-out;

        &:is(:hover, :focus) {
          background-color: var(--kf-navigation-link-hover-background-color);
          color: var(--kf-navigation-link-hover-font-color);
        }

        &:focus-visible {
          outline: 2px solid var(--kf-accessibility-color);
          outline-offset: 2px;
          visibility: visible;
          opacity: 1;
        }

      }

      /* -- [05.4.d] Sub Menu Base Styles -- */
      :where(.sub-menu) {
        display: none;
        flex-direction:var(--kf-navigation-subnav-flex-direction);
        justify-content: var(--kf-navigation-subnav-flex-justify);
        gap: var(--kf-navigation-subnav-flex-gap);
        align-items: var(--kf-navigation-subnav-link-align);
        visibility: hidden;
        position: var(--kf-navigation-subnav-position);
        top: -999em;
        left: -999em;
        z-index: 900;
        width: var(--kf-navigation-subnav-width);
        flex-basis: 100%;
        height: 0;
        margin: var(--kf-navigation-subnav-margin);
        padding: 0;
        background-color: var(--kf-navigation-subnav-background-color);
        list-style: none;

        /* -- [05.4.e] Sub Menu Items Styles -- */
        :where(.menu-item) {
          padding: 0;
          margin: 0;

          &.current-menu-item > a,
          &.current-menu-ancestor > a {
            background-color: var(--kf-navigation-subnav-link-active-background-color);
            color: var(--kf-navigation-subnav-link-active-font-color);
          }

          :where(.kf-navigation__submenu-toggle) {
            background-color: var(--kf-navigation-subnav-link-background-color);
            color: var(--kf-navigation-subnav-link-font-color);
            line-height: var(--kf-navigation-subnav-link-line-height);

            &:is(:hover, :focus) {
              background-color: var(--kf-navigation-subnav-hover-background-color);
              color: var(--kf-navigation-subnav-hover-font-color);
            }

            &[aria-expanded="true"] + :where(.sub-menu) {
              display: flex;
              visibility: visible;
              top: var(--kf-navigation-subnav-subnav-top);
              left: var(--kf-navigation-subnav-subnav-left);
              height: auto;
            }
          }

          :where(a) {
            display: flex;
            justify-content: var(--kf-navigation-flex-justify);
            align-items: var(--kf-navigation-subnav-link-align);
            width: var(--kf-navigation-subnav-width);
            padding: var(--kf-navigation-subnav-link-padding);
            margin: var(--kf-navigation-subnav-link-margin);
            background-color: var(--kf-navigation-subnav-link-background-color);
            color: var(--kf-navigation-subnav-link-font-color);
            font-family: var(--kf-navigation-subnav-link-font-family, inherit);
            font-size: var(--kf-navigation-subnav-link-font-size);
            font-weight: var(--kf-navigation-subnav-link-font-weight);
            line-height: var(--kf-navigation-subnav-link-line-height);

            &:is(:hover, :focus) {
              background-color: var(--kf-navigation-subnav-hover-background-color);
              color: var(--kf-navigation-subnav-hover-font-color);
            }

            &:focus-visible {
              outline: 2px solid var(--kf-accessibility-color);
              outline-offset: 2px;
              visibility: visible;
              opacity: 1;
            }

          }

          &.menu-item-has-children {
            width: var(--kf-navigation-subnav-width);

            > a {
              width: auto;
              min-width: 0;
            }
          }
        }
      }

    }

  }

  &:not(.kf-navigation--mobile):not(.kf-navigation--hamburger) {
    :where(.kf-navigation__list) {
      /* -- [05.4.f] Sub Menu States Styles -- */
      > :where(.menu-item:hover > .sub-menu) {
        display: flex;
        visibility: visible;
        top: var(--kf-navigation-subnav-top);
        left: var(--kf-navigation-subnav-left);
        height: auto;
      }

      :where(.sub-menu) > :where(.menu-item:hover > .sub-menu) {
        display: flex;
        visibility: visible;
        top: var(--kf-navigation-subnav-subnav-top);
        left: var(--kf-navigation-subnav-subnav-left);
        height: auto;
      }
    }
  }

  &.kf-navigation--mobile,
  &.kf-navigation--hamburger {
    :where(.menu-item-has-children) {
      align-items: stretch;
    }

    :where(.menu-item-has-children > a) {
      min-width: 0;
    }

    :where(.kf-navigation__submenu-toggle) {
      flex: 0 0 44px;
      width: 44px;
      min-width: 44px;
      min-height: 44px;
      padding: 0;
      margin-left: 0.25rem;
      background-color: rgba(0, 0, 0, 0.05);
      background-color: color-mix(in srgb, currentColor 10%, transparent);
      border-radius: 0.25rem;

      &:is(:hover, :focus) {
        background-color: rgba(0, 0, 0, 0.1);
        background-color: color-mix(in srgb, currentColor 16%, transparent);
      }
    }
  }

  /* -- [05.4.g] Legal Menu States Styles -- */
  &.kf-navigation--legal {
    .kf-navigation__list {
      @media (min-width: 991px) {
        .menu-item:nth-child(5) {
          margin-left: auto;
        }
      }
    }
  }
}

/* -- [05.4.h] Toggle Mobile (Hamburger) Styles -- */
:where(.kf-toggle-mobile, .kf-toggle-hamburger) {
  position: relative;
  padding: 8px;
  width: 40px;
  height: 40px;
  background-color: transparent;
  border: 1px solid transparent;
  border-radius: 5px;
  cursor: pointer;
  transition: all 300ms ease-out;
  z-index: 600;

  &:hover {
    background-color: transparent;
    border-color: transparent;

    :where(.kf-toggle-mobile__bar, .kf-toggle-hamburger__bar) {
      background: var(--kf-navigation-toggle-bar-hover-color, var(--kf-navigation-toggle-bar-color, #000000));
    }
  }

  :where(.kf-toggle-mobile__bar, .kf-toggle-hamburger__bar) {
    display: block;
    width: 100%;
    height: 3px;
    background: var(--kf-navigation-toggle-bar-color, #000000);
    border-radius: 3px;
    transform-origin: center;
    transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);

    &:nth-child(2) {
      margin: 4px 0;
    }
  }

  &.kf-toggle-mobile--is-open,
  &.kf-toggle-hamburger--is-open {
    :where(.kf-toggle-mobile__bar, .kf-toggle-hamburger__bar) {
      &:first-child {
        transform: translateY(8px) rotate(45deg);
      }

      &:nth-child(2) {
        opacity: 0;
      }

      &:last-child {
        transform: translateY(-6px) rotate(-45deg);
      }
    }
  }
}

/* -- [05.4.i] Drawer Styles -- */
:where(.kf-navigation__drawer) {
  display: block;
  position: fixed;
  inset: 0;
  visibility: hidden;
  pointer-events: none;
  transition: visibility 0s linear 0.4s;
  z-index: 600;

  &.kf-navigation__drawer--is-open {
    visibility: visible;
    pointer-events: auto;
    transition: visibility 0s linear 0s;

    :where(.kf-navigation__drawer-inner) {
      transform: translateX(0%);
    }

    :where(.kf-navigation__drawer-overlay) {
      opacity: 1;
      visibility: visible;
      transition-delay: 0.1s, 0s;
    }
  }

  :where(.kf-navigation__drawer-header) {
    display: flex;
    justify-content: flex-end;
    align-items: center;
  }

  :where(.kf-navigation__drawer-inner) {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: 90%;
    padding: 1.5rem;
    background: var(--kf-navigation-drawer-background-color, #ffffff);
    border-top-left-radius: 0.3rem;
    border-bottom-left-radius: 0.3rem;
    transform: translateX(100%);
    transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
  }

  :where(.kf-navigation__drawer-overlay) {
    position: fixed;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.4);
    opacity: 0;
    visibility: hidden;
    transition:
      opacity 0.3s ease-out 0.1s,
      visibility 0s linear 0.4s;
  }
}

/* -- [05.5] Breadcrumb Styles -- */
.kf-breadcrumbs {
  margin: 0 0 1.5rem 0;

  .kf-breadcrumbs__list {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
    padding: 0;
    list-style: none;

    .kf-breadcrumbs__item {
      &:not(:last-child)::after {
        content: "|";
        margin-left: 0.5rem;
        font-size: 0.6rem;
      }
    }

    .kf-breadcrumbs__link {
      font-family: var(--kf-breadcrumbs-font-family);
      color: var(--kf-breadcrumbs-font-color);
      font-size: var(--kf-breadcrumbs-font-size);
      line-height: var(--kf-breadcrumbs-line-height);
      font-weight: var(--kf-breadcrumbs-font-weight);
      text-decoration: none;
      transition: color 200ms ease-out;

      &:is(:hover, :focus) {
        color: var(--kf-breadcrumbs-hover-font-color);
      }

      &:focus-visible {
        outline: 2px solid var(--kf-accessibility-color);
        outline-offset: 2px;
        visibility: visible;
        opacity: 1;
      }

      &.kf-breadcrumbs__link--is-active {
        color: var(--kf-breadcrumbs-active-font-color);
        font-weight: var(--kf-breadcrumbs-active-font-weight);
      }
    }
  }
}

/* -- [05.6] Post Filter Styles -- */
.kf-archive-options {
  margin: 1rem 0 3rem 0;

  .kf-archive-filters__legend {
    margin: 0 0 0.5rem 0;
    font-size: 0.9rem;
  }

  .kf-archive-filters__fieldset {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 0;
    margin: 0;
    border: none;

    @media (min-width: 991px) {
      flex-direction: row;
      flex-wrap: nowrap;
      align-items: flex-end;
    }
  }

  .kf-archive-options__dropdown {
    width: 100%;

    @media (min-width: 991px) {
      width: auto;
      flex: 1 1 0;
      min-width: 0;
    }

    .kf-archive-options__select {
      -webkit-appearance: none;
      -moz-appearance: none;
      appearance: none;
      width: 100%;
      max-width: 100%;
      padding: 0.5rem 0.5rem;
      padding-right: 2rem;
      background-color: var(--kf-archive-select-background-color, var(--kf-background));
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M6 8l4 4 4-4'/%3E%3C/svg%3E");
      background-repeat: no-repeat;
      background-position: right 0.6rem center;
      background-size: 1rem 1rem;
      color: var(--kf-archive-select-font-color, var(--kf-text));
      border: 1px solid var(--kf-archive-select-border-color, var(--kf-border));
      border-radius: 0.3rem;
      font-size: 0.8rem;
      line-height: 1;
      transition: background-color 200ms ease-out, border-color 200ms ease-out, color 200ms ease-out;

      &:is(:hover, :focus) {
          background-color: var(--kf-archive-select-hover-background-color, var(--kf-background));
          border: 1px solid var(--kf-archive-select-hover-border-color, var(--kf-alt-border));
      }

      &:focus-visible {
        outline: 2px solid var(--kf-accessibility-color);
        outline-offset: 2px;
        visibility: visible;
        opacity: 1;
      }
    }
  }

  .kf-archive-filters__actions {
    width: 100%;
    display: flex;
    justify-content: flex-end;
    gap: 1rem;

    @media (min-width: 991px) {
      width: auto;
      flex: 0 0 auto;
      margin-left: auto;
    }
  }

  .kf-archive-option__btn {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0.5rem 0.9rem;
    background-color: var(--kf-archive-select-button-background-color);
    color: var(--kf-archive-select-button-font-color);
    border: none;
    border-radius: 0.2rem;
    font-size: 1rem;
    line-height: 1;
    text-decoration: none;
    cursor: pointer;

    &:is(:hover, :focus) {
      background-color: var(--kf-archive-select-button-hover-background-color);
      color: var(--kf-archive-select-button-hover-font-color);
    }

    &:focus-visible {
      outline: 2px solid var(--kf-accessibility-color);
      outline-offset: 2px;
      visibility: visible;
      opacity: 1;
    }
  }
}

/* -- [05.7] Card Styles -- */
.kf-post {
  width: 100%;
  margin: 0 auto;
  
  background-color: var(--kf-post-background, var(--kf-background));
  color: var(--kf-post-font-color);
  border-radius: var(--kf-post-border-radius);

  .kf-post__inner {
    padding: var(--kf-post-padding);
  }

  .kf-post__content {
    &.kf-post__content--format-gallery {
      padding: 1rem 0 0 0;
    }

    &.kf-post__content--format-image {
      padding: 1rem 0 0 0;

      .wp-block-image {
        display: block;

        a {
          display: block;
        }

        img {
          overflow: hidden;
          aspect-ratio: var(--kf-post-image-aspect-ratio);
          display: block;
          width: 100%;
          height: 100%;
          margin: var(--kf-post-image-margin);
          padding: var(--kf-post-image-padding);
          border-radius: var(--kf-post-image-border-radius);
        }
      }
    }

    &.kf-post__content--format-video {
      padding: 1rem 0 0 0;
    }

    &.kf-post__content--format-link {
      padding: 1rem 0 0 0;
    }

    &.kf-post__content--format-chat {
      padding: 1rem 0 0 0;

    }
  }

  .kf-post__footer {
    margin-top: 2rem;
  }
}

/* -- [05.8] Featured Image Styles -- */
.kf-post__image {
  &.kf-post__image--post {
    .kf-post__image-link {
      overflow: hidden;
      aspect-ratio: var(--kf-post-image-aspect-ratio);
      display: block;
      width: 100%;
      height: 100%;    
      margin: var(--kf-post-image-margin);
      padding: var(--kf-post-image-padding);
      border-radius: var(--kf-post-image-border-radius);
    }

    .kf-post__image-img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center;
      display: block;
    }
  }

  &.kf-post__image--single {
    overflow: hidden;
    aspect-ratio: var(--kf-single-post-image-aspect-ratio);
    margin: var(--kf-single-post-image-margin);
    padding: var(--kf-single-post-image-padding);
    border-radius: var(--kf-single-post-image-border-radius);

    .kf-post__image-img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center;
      display: block;
    }
  }

  &.kf-post__image--page {
    overflow: hidden;
    aspect-ratio: var(--kf-page-image-aspect-ratio);
    margin: var(--kf-page-image-margin);
    padding: var(--kf-page-image-padding);
    border-radius: var(--kf-page-image-border-radius);

    .kf-post__image-img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center;
      display: block;
    }
  }
}

/* -- [05.9] Title Styles -- */
.kf-post-title {
  margin: var(--kf-post-title-margin);
  padding: var(--kf-post-title-padding);
  font-size: var(--kf-post-title-font-size);
  line-height: var(--kf-post-title-line-height);

  .kf-post-title__link {
    color: var(--kf-post-title-font-color);
    text-decoration: none;
    transition: color 250ms ease-in-out;

    &:hover {
      color: var(--kf-post-title-hover-font-color);
    }

    &:focus-visible {
      outline: solid 2px var(--kf-accessibility-color);
      outline-offset: 2px;
      visibility: visible;
      opacity: 1;
    }
  }
}

/* -- [05.10] Meta Styles -- */
.kf-post-meta {
  display: flex;
  gap: 0.5rem;

  &.kf-post-meta--header {
    margin-bottom: 0.5rem;

    .kf-post-meta__col {
      &.kf-post-meta__col--1 {
        max-width: 60px;
      }

      &.kf-post-meta__col--2 {
        max-width: calc(100% - 60px);
      }
    }

    .kf-post-meta__row {
      display: flex;
      align-items: center;
      gap: 0.5rem;
    }
  }

  &.kf-post-meta--footer {
    .kf-post-meta__col {
      flex: 1 1 0;
      min-width: 0;

      &.kf-post-meta__col--1 {
        display: flex;
        justify-content: flex-start;
      }

      &.kf-post-meta__col--2 {
        display: flex;
        justify-content: flex-end;
      }
    }
  }
}

.single {
  .kf-post-meta--footer {
    margin: 3rem 0 1rem 0;
  }
}

/* -- [05.11] Date Styles -- */
.kf-post-date {
  color: var(--kf-post-date-font-color);
  font-size: var(--kf-post-date-font-size);
  line-height: var(--kf-post-date-line-height);
}

/* -- [05.12] Author Avatar Styles -- */
.kf-post-author-avatar {
  overflow: hidden;
  width: 32px;
  height: 32px;
  border-radius: 100%;
}

/* -- [05.13] Author Styles -- */
.kf-post-author {
  font-size: var(--kf-post-author-font-size);
  line-height: var(--kf-post-author-line-height);

  .kf-post-author__link {
    color: var(--kf-post-author-font-color);
    font-size: var(--kf-post-author-font-size);
    line-height: var(--kf-post-author-line-height);
    text-decoration: none;
    transition: color 250ms ease-in-out;

    .kf-post-author__name {
      color: var(--kf-post-author-font-color);
      font-size: var(--kf-post-author-font-size);
      line-height: var(--kf-post-author-line-height);
    }

    &:hover {
      .kf-post-author__name {
        color: var(--kf-post-author-hover-font-color);
      }
    }

    &:focus-visible {
      outline: solid 2px var(--kf-accessibility-color);
      outline-offset: 2px;
      visibility: visible;
      opacity: 1;
    }
  }
}

/* -- [05.14] Reading Time Styles -- */
.kf-post-reading {
  color: var(--kf-post-reading-font-color);
  font-size: var(--kf-post-reading-font-size);
  line-height: var(--kf-post-reading-line-height);
}

/* -- [05.15] Comments Styles -- */
.kf-post-comments {
  .kf-post-comments__link {
    color: var(--kf-post-comments-font-color);
    font-size: var(--kf-post-comments-font-size);
    line-height: var(--kf-post-comments-line-height);
    text-decoration: none;
    transition: color 250ms ease-in-out;

    &:hover {
      color: var(--kf-post-comments-hover-font-color);
    }

    &:focus-visible {
      outline: solid 2px var(--kf-accessibility-color);
      outline-offset: 2px;
      visibility: visible;
      opacity: 1;
    }
  }
}

/* -- [05.16] Views Styles -- */
.kf-post-views {
  color: var(--kf-post-views-font-color);
  font-size: var(--kf-post-views-font-size);
  line-height: var(--kf-post-views-line-height);
}

/* -- [05.17] Excerpt Styles -- */
.kf-post-excerpt {
  margin: var(--kf-post-excerpt-margin);
  padding: var(--kf-post-excerpt-padding);
  color: var(--kf-post-excerpt-font-color);
  font-size: var(--kf-post-excerpt-font-size);
  line-height: var(--kf-post-excerpt-line-height);
}

/* -- [05.18] Link Styles -- */
.kf-post-link {
  .kf-post-link__link {
    color: var(--kf-post-link-font-color);
    font-size: var(--kf-post-link-font-size);
    line-height: var(--kf-post-link-line-height);
    text-decoration: none;
    transition: color 250ms ease-in-out;

    &:hover {
      color: var(--kf-post-link-hover-font-color);
    }

    &:focus-visible {
      outline: solid 2px var(--kf-accessibility-color);
      outline-offset: 2px;
      visibility: visible;
      opacity: 1;
    }
  }
}

/* -- [05.18.a] Archive Pagination Styles -- */
.kf-archive-pagination  {
	display: flex;
	justify-content: center;
	align-items: center;
  margin: 2rem 0;

  .kf-archive-pagination__list {
    display: flex;
    gap: 0.5rem;
    list-style: none;
    margin: 0;
    padding: 0;
  }

  .kf-archive-pagination__link {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 2rem;
    height: 2rem;
    color: var(--kf-archive-pagination-font-color);
    background-color: transparent;
    border-radius: 1rem;
    font-size: 1rem;
    line-height: 1;
    letter-spacing: 2px;
    text-decoration: none;
    transition: color 0.2s ease-in-out, background-color 0.2s ease-in-out;

    &:is(:hover, :focus) {
      color: var(--kf-archive-pagination-hover-button-font-color);
      background-color: var(--kf-archive-pagination-hover-button-background-color);
      border-radius: 1rem;
    }

    &:focus-visible {
      outline: 2px solid var(--kf-accessibility-color);
      outline-offset: 2px;
      visibility: visible;
      opacity: 1;
    }

    &.kf-archive-pagination__link--current  {
      color: var(--kf-archive-pagination-hover-button-font-color);
      background-color: var(--kf-archive-pagination-hover-button-background-color);
      border-radius: 1rem;
    }

    &.kf-archive-pagination__link--dots  {
      color: var(--kf-archive-pagination-font-color);
      background-color: transparent;
      border-radius: 1rem;
      cursor: auto;
    }

    &.kf-archive-pagination__link--next,
    &.kf-archive-pagination__link--prev {
      width: auto;
      padding: 0.5rem 1rem;
    }
  }
}

/* -- [05.19] Single Post Title Styles -- */
.kf-title {
  &.kf-title--single {
    font-size: var(--kf-h1-font-size);
    line-height: var(--kf-h1-line-height);
    margin-top: var(--kf-h1-margin-top);
    margin-bottom: var(--kf-h1-margin-bottom);

    &:has(+ .kf-post-meta--header) {
      margin-bottom: 1rem;
    }

    + .kf-post-meta--header {
      margin-bottom: 1rem;
    }
  }
}

/* -- [05.20] Tags Styles -- */
.kf-post-tags {
  .kf-post-tags__list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
    padding: 0;
    list-style: none;

    .kf-post-tags__item {
      &.kf-post-tags__item--title {
        font-size: var(--kf-tag-label-font-size);
        font-weight: var(--kf-tag-label-font-weight);
      }

      .kf-post-tags__link {
        display: block;
        padding: var(--kf-tag-padding);
        background-color: var(--kf-tag-background);
        color: var(--kf-tag-font-color);
        border: var(--kf-tag-border);
        border-radius: var(--kf-tag-border-radius);
        text-decoration: none;
        font-size: var(--kf-tag-font-size);
        line-height: var(--kf-tag-line-height);
        transition: all 250ms ease-in-out;

        &:hover {
          background-color: var(--kf-tag-hover-background);
          color: var(--kf-tag-font-hover-color);
          border: var(--kf-tag-hover-border);
        }

        &:focus-visible {
          outline: solid 2px var(--kf-accessibility-color);
          outline-offset: 2px;
          visibility: visible;
          opacity: 1;
        }
      }
    }
  }
}

/* -- [05.21] Categories Styles -- */
.kf-post-categories {
  .kf-post-categories__list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.2rem;
    margin: 0;
    padding: 0;
    list-style: none;

    .kf-post-categories__item {
      &.kf-post-categories__item--title {
        font-size: var(--kf-categories-label-font-size);
        font-weight: var(--kf-categories-label-font-weight);
      }

      .kf-post-categories__link {
        display: block;
        padding: var(--kf-categories-padding);
        background-color: var(--kf-categories-background);
        color: var(--kf-categories-font-color);
        border: var(--kf-categories-border);
        border-radius: var(--kf-categories-border-radius);
        text-decoration: none;
        font-size: var(--kf-categories-font-size);
        line-height: var(--kf-categories-line-height);
        transition: all 250ms ease-in-out;

        &:hover {
          background-color: var(--kf-categories-hover-background);
          color: var(--kf-categories-font-hover-color);
          border: var(--kf-categories-hover-border);
        }

        &:focus-visible {
          outline: solid 2px var(--kf-accessibility-color);
          outline-offset: 2px;
          visibility: visible;
          opacity: 1;
        }
      }
    }
  }
}

/* -- [05.22] Post Navigation Styles -- */
.kf-post-navigation {
  margin: 2rem 0;

  .kf-post-navigation__list {
    display: flex;
    align-items: center;
    margin: 0;
    padding: 0;
    list-style: none;
    justify-content: space-between;
    width: 100%;

    .kf-post-navigation__link {
      padding: var(--kf-post-navigation-padding);
      background-color: var(--kf-post-navigation-background-color);
      color: var(--kf-post-navigation-font-color);
      border-radius: var(--kf-post-navigation-border-radius);
      font-size: var(--kf-post-navigation-font-size);
      line-height: var(--kf-post-navigation-line-height);
      font-weight: var(--kf-post-navigation-font-weight);
      text-decoration: none;
      transition: color 200ms ease-out, background-color 200ms ease-out;

      &:is(:hover, :focus) {
        color: var(--kf-post-navigation-hover-font-color);
        background-color: var(--kf-post-navigation-hover-background-color);
      }

      &:focus-visible {
        outline: 2px solid var(--kf-accessibility-color);
        outline-offset: 2px;
        visibility: visible;
        opacity: 1;
      }
    }

    .kf-post-navigation__item--next {
      margin-left: auto;
      text-align: right;
    }
  }
}


/* -- [05.23] Social Media Share Bar Styles -- */
.kf-post__share {
    .kf-post__share-list {
        display: flex;
        align-items: center;
        gap: 0.5rem;
        list-style: none;
        margin: 0;
        padding: 0;

        .kf-post__share-item {
            &.kf-post__share-item--heading {
                color: var(--kf-share-heading-font-color);
                font-size: var(--kf-share-heading-font-size);
                font-weight: var(--kf-share-heading-font-weight);
            }
        }

        .kf-post__share-link {
            display: flex;
            align-items: center;
            width: 24px;
            height: 24px;
            color: var(--kf-share-font-color);

            &:is(:hover, :focus) {
                color: var(--kf-share-hover-font-color);
            }

            &:focus-visible {
                outline: 2px solid var(--kf-accessibility-color);
                outline-offset: 2px;
                visibility: visible;
                opacity: 1;
            }
        }
    }
}

/* -- [05.24] Related Post Styles -- */
.kf-related-posts {
  .kf-related-posts__loop {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    list-style: none;
    margin: 0;
    padding: 0;
  }
}


/* -- [05.25] Comment Styles -- */
.kf-comments {
  margin: 3.5rem 0 0 0;

  .kf-comments__title {
    font-size: 1.5rem;
    line-height: 1.2;
    margin: 0 0 1rem 0;
  }

  .kf-comments__list {
    list-style: none;
    margin: 0;
    padding: 0;
  }

  .kf-comments__item {
    margin: 0 0 1.5rem 0;

    .children {
      list-style: none;
      margin: 1rem 0 0 1.5rem;
      padding: 0;
    }
  }

  .kf-comments__closed {
    margin: 1rem 0 0 0;
  }

  .kf-comments__form {
    margin: 1.5rem 0 0 0;

    input[type="text"],
    input[type="email"],
    input[type="url"],
    textarea {
      width: 100%;
      max-width: 100%;
      padding: 0.6rem 0.7rem;
      border: 1px solid var(--kf-border);
      border-radius: 0.3rem;
      background-color: var(--kf-background);
      color: var(--kf-text);
    }

    textarea {
      min-height: 140px;
      resize: vertical;
    }

    input:focus-visible,
    textarea:focus-visible {
      outline: 2px solid var(--kf-accessibility-color);
      outline-offset: 2px;
    }
  }
}

.kf-comment {
  padding: 1rem;
  border: 1px solid var(--kf-border);
  border-radius: 0.5rem;
  background-color: var(--kf-background);

  .kf-comment__notice {
    display: inline-block;
    margin: 0 0 0.75rem 0;
    font-size: 0.9rem;
    color: var(--kf-text);
  }

  .kf-comment__header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
  }

  .kf-comment__avatar {
    width: 40px;
    height: 40px;

    img {
      width: 100%;
      height: 100%;
      border-radius: 999px;
      display: block;
    }
  }

  .kf-comment__author {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
  }

  .kf-comment__date {
    font-size: 0.85rem;
    color: var(--kf-text);
  }

  .kf-comment__content {
    display: flex;
    gap: 0.75rem;
    margin-top: 0.75rem;
  }

  .kf-comment__thread {
    display: flex;
    align-items: stretch;
  }

  .kf-comment__thread-line {
    width: 2px;
    background-color: var(--kf-border);
    border-radius: 999px;
  }

  .kf-comment__message {
    flex: 1;

    p:last-child {
      margin-bottom: 0;
    }
  }

  .kf-comment__footer {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-top: 0.75rem;
  }

  .kf-comment__reply {
    margin-left: auto;

    a {
      color: var(--kf-link-font-color);
      text-decoration: none;

      &:is(:hover, :focus) {
        color: var(--kf-link-hover-font-color);
      }

      &:focus-visible {
        outline: 2px solid var(--kf-accessibility-color);
        outline-offset: 2px;
      }
    }
  }
}

/* -- [05.26] Social Media Styles -- */
.kf-social-media {
    .kf-social-media__list {
        display: flex;
        justify-content: center;
        align-items: center;
        flex-wrap: wrap;
        gap: 0.3rem;
        list-style: none;
        margin: 0;
        padding: 0;

        @media (min-width: 991px) {
          justify-content: flex-start;
        }

        .kf-social-media__link {
            display: flex;
            align-items: center;
            width: var(--kf-share-icon-width);
            height: var(--kf-share-icon-height);
            color: var(--kf-share-font-color);
            backface-visibility: hidden;
            transform: translateZ(0);

            &:is(:hover, :focus) {
                color: var(--kf-share-hover-font-color);
            }

            &:focus-visible {
                outline: 2px solid var(--kf-accessibility-color);
                outline-offset: 2px;
                visibility: visible;
                opacity: 1;
            }
        }
    }
}

/* -- [05.27] Address Styles -- */
.kf-address {
  .kf-address__list {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .kf-address__item {
    color: var(--kf-address-font-color);
    padding: var(--kf-address-padding);
    font-family: var(--kf-address-font-family, inherit);
    font-weight: var(--kf-address-font-weight, inherit);
    font-size: var(--kf-address-font-size);
    line-height: var(--kf-address-line-height);
    font-style: normal;
  }
}

.kf-header {
  .kf-address__item {
    color: var(--kf-address-header-font-color, var(--kf-address-font-color));
    font-family: var(--kf-address-header-font-family, var(--kf-address-font-family, inherit));
    font-weight: var(--kf-address-header-font-weight, var(--kf-address-font-weight, inherit));
    font-size: var(--kf-address-header-font-size, var(--kf-address-font-size));
    line-height: var(--kf-address-header-line-height, var(--kf-address-line-height));
  }
}

body.kf-header-type-desktop-transparent .kf-header,
body.kf-header-type-mobile-transparent .kf-header {
  .kf-address__item {
    color: var(--kf-address-header-transparent-font-color, var(--kf-address-header-font-color, var(--kf-address-font-color)));
  }
}

.kf-footer {
  .kf-address__item {
    color: var(--kf-address-footer-font-color, var(--kf-address-font-color));
    font-family: var(--kf-address-footer-font-family, var(--kf-address-font-family, inherit));
    font-weight: var(--kf-address-footer-font-weight, var(--kf-address-font-weight, inherit));
    font-size: var(--kf-address-footer-font-size, var(--kf-address-font-size));
    line-height: var(--kf-address-footer-line-height, var(--kf-address-line-height));
  }
}

.wp-block-kraken-address {
  .kf-address {
    font-size: inherit;
    line-height: inherit;
    font-family: inherit;
    font-weight: inherit;
  }

  .kf-address__list {
    font-size: inherit;
    line-height: inherit;
  }

  .kf-address__item {
    font-size: inherit;
    line-height: inherit;
    font-family: inherit;
    font-weight: inherit;
  }
}

/* -- [05.28] Phone Styles -- */
.kf-phone-number {
  .kf-phone-number__link {
    display: block;
    padding: var(--kf-phone-padding);
    color: var(--kf-phone-font-color);
    font-family: var(--kf-phone-font-family, inherit);
    font-weight: var(--kf-phone-font-weight, inherit);
    font-size: var(--kf-phone-font-size);
    line-height: var(--kf-phone-line-height);
    text-decoration: none;

    &:is(:hover, :focus) {
      color: var(--kf-phone-hover-font-color);
    }

    &:focus-visible {
      outline: 2px solid var(--kf-accessibility-color);
      outline-offset: 2px;
      visibility: visible;
      opacity: 1;
    }
  }
}

.kf-header {
  .kf-phone-number__link {
    color: var(--kf-phone-header-font-color, var(--kf-phone-font-color));
    font-family: var(--kf-phone-header-font-family, var(--kf-phone-font-family, inherit));
    font-weight: var(--kf-phone-header-font-weight, var(--kf-phone-font-weight, inherit));
    font-size: var(--kf-phone-header-font-size, var(--kf-phone-font-size));
    line-height: var(--kf-phone-header-line-height, var(--kf-phone-line-height));
  }

  .kf-phone-number__link:is(:hover, :focus) {
    color: var(--kf-phone-header-hover-font-color, var(--kf-phone-hover-font-color));
  }
}

body.kf-header-type-desktop-transparent .kf-header,
body.kf-header-type-mobile-transparent .kf-header {
  .kf-phone-number__link {
    color: var(--kf-phone-header-transparent-font-color, var(--kf-phone-header-font-color, var(--kf-phone-font-color)));
  }

  .kf-phone-number__link:is(:hover, :focus) {
    color: var(--kf-phone-header-transparent-hover-font-color, var(--kf-phone-header-hover-font-color, var(--kf-phone-hover-font-color)));
  }
}

.kf-footer {
  .kf-phone-number__link {
    color: var(--kf-phone-footer-font-color, var(--kf-phone-font-color));
    font-family: var(--kf-phone-footer-font-family, var(--kf-phone-font-family, inherit));
    font-weight: var(--kf-phone-footer-font-weight, var(--kf-phone-font-weight, inherit));
    font-size: var(--kf-phone-footer-font-size, var(--kf-phone-font-size));
    line-height: var(--kf-phone-footer-line-height, var(--kf-phone-line-height));
  }

  .kf-phone-number__link:is(:hover, :focus) {
    color: var(--kf-phone-footer-hover-font-color, var(--kf-phone-hover-font-color));
  }
}

.wp-block-kraken-phone-number {
  .kf-phone-number {
    font-size: inherit;
    line-height: inherit;
    font-family: inherit;
    font-weight: inherit;
  }

  .kf-phone-number__link {
    font-size: inherit;
    line-height: inherit;
    font-family: inherit;
    font-weight: inherit;
  }
}

/* -- [05.29] Email Styles -- */
.kf-email {
  .kf-email__link {
    display: block;
    padding: var(--kf-email-padding);
    color: var(--kf-email-font-color);
    font-family: var(--kf-email-font-family, inherit);
    font-weight: var(--kf-email-font-weight, inherit);
    font-size: var(--kf-email-font-size);
    line-height: var(--kf-email-line-height);
    text-decoration: none;

    &:is(:hover, :focus) {
      color: var(--kf-email-hover-font-color);
    }

    &:focus-visible {
      outline: 2px solid var(--kf-accessibility-color);
      outline-offset: 2px;
      visibility: visible;
      opacity: 1;
    }
  }
}

.kf-header {
  .kf-email__link {
    color: var(--kf-email-header-font-color, var(--kf-email-font-color));
    font-family: var(--kf-email-header-font-family, var(--kf-email-font-family, inherit));
    font-weight: var(--kf-email-header-font-weight, var(--kf-email-font-weight, inherit));
    font-size: var(--kf-email-header-font-size, var(--kf-email-font-size));
    line-height: var(--kf-email-header-line-height, var(--kf-email-line-height));
  }

  .kf-email__link:is(:hover, :focus) {
    color: var(--kf-email-header-hover-font-color, var(--kf-email-hover-font-color));
  }
}

body.kf-header-type-desktop-transparent .kf-header,
body.kf-header-type-mobile-transparent .kf-header {
  .kf-email__link {
    color: var(--kf-email-header-transparent-font-color, var(--kf-email-header-font-color, var(--kf-email-font-color)));
  }

  .kf-email__link:is(:hover, :focus) {
    color: var(--kf-email-header-transparent-hover-font-color, var(--kf-email-header-hover-font-color, var(--kf-email-hover-font-color)));
  }
}

.kf-footer {
  .kf-email__link {
    color: var(--kf-email-footer-font-color, var(--kf-email-font-color));
    font-family: var(--kf-email-footer-font-family, var(--kf-email-font-family, inherit));
    font-weight: var(--kf-email-footer-font-weight, var(--kf-email-font-weight, inherit));
    font-size: var(--kf-email-footer-font-size, var(--kf-email-font-size));
    line-height: var(--kf-email-footer-line-height, var(--kf-email-line-height));
  }

  .kf-email__link:is(:hover, :focus) {
    color: var(--kf-email-footer-hover-font-color, var(--kf-email-hover-font-color));
  }
}

.wp-block-kraken-email {
  .kf-email {
    font-size: inherit;
    line-height: inherit;
    font-family: inherit;
    font-weight: inherit;
  }

  .kf-email__link {
    font-size: inherit;
    line-height: inherit;
    font-family: inherit;
    font-weight: inherit;
  }
}

/* -- [05.30] Splash Credit Styles -- */
.kf-splash-credit__link {
  display: flex;
  justify-content: var(--kf-navigation-flex-justify);
  align-items: var(--kf-navigation-link-align);
  padding: var(--kf-navigation-link-padding);
  margin: var(--kf-navigation-link-margin);
  color: var(--kf-splash-credit-font-color);
  font-family: var(--kf-splash-credit-font-family, inherit);
  font-size: var(--kf-splash-credit-font-size);
  font-weight: var(--kf-splash-credit-font-weight);
  line-height: var(--kf-splash-credit-line-height);

  &:is(:hover, :focus) {
    color: var(--kf-splash-credit-hover-font-color);
  }

  &:focus-visible {
    outline: 2px solid var(--kf-accessibility-color);
    outline-offset: 2px;
    visibility: visible;
    opacity: 1;
  }
}

.kf-splash-credit__text{
  min-width: 50px;
}

.kf-splash-credit__logo {
  width: 54px;
}

/* -- [05.31] WP Gallery Styles -- */
.gallery {
  --kf-gallery-gap: 1rem;
  --kf-gallery-item-width: 100%;

  display: flex;
  flex-wrap: wrap;
  gap: var(--kf-gallery-gap);

  > .gallery-item {
    flex: 0 0 var(--kf-gallery-item-width);
    width: var(--kf-gallery-item-width);
    max-width: var(--kf-gallery-item-width);
    margin: 0;
    min-width: 0;
  }

  > br {
    display: none;
  }

  .gallery-caption {
    font-size: 0.8rem;
    line-height: 1.2;
    margin: 0.5rem 0;
  }

  img {
    display: block;
    width: 100%;
    height: auto;
  }

  &.gallery-columns-1 {
    --kf-gallery-item-width: 100%;
  }

  &.gallery-columns-2 {
    --kf-gallery-item-width: calc((100% - var(--kf-gallery-gap)) / 2);
  }

  &.gallery-columns-3 {
    --kf-gallery-item-width: calc((100% - var(--kf-gallery-gap) - var(--kf-gallery-gap)) / 3);
  }

  &.gallery-columns-4 {
    --kf-gallery-item-width: calc((100% - var(--kf-gallery-gap) - var(--kf-gallery-gap) - var(--kf-gallery-gap)) / 4);
  }

  &.gallery-columns-5 {
    --kf-gallery-item-width: calc((100% - var(--kf-gallery-gap) - var(--kf-gallery-gap) - var(--kf-gallery-gap) - var(--kf-gallery-gap)) / 5);
  }

  &.gallery-columns-6 {
    --kf-gallery-item-width: calc((100% - var(--kf-gallery-gap) - var(--kf-gallery-gap) - var(--kf-gallery-gap) - var(--kf-gallery-gap) - var(--kf-gallery-gap)) / 6);
  }

  &.gallery-columns-7 {
    --kf-gallery-item-width: calc((100% - var(--kf-gallery-gap) - var(--kf-gallery-gap) - var(--kf-gallery-gap) - var(--kf-gallery-gap) - var(--kf-gallery-gap) - var(--kf-gallery-gap)) / 7);
  }

  &.gallery-columns-8 {
    --kf-gallery-item-width: calc((100% - var(--kf-gallery-gap) - var(--kf-gallery-gap) - var(--kf-gallery-gap) - var(--kf-gallery-gap) - var(--kf-gallery-gap) - var(--kf-gallery-gap) - var(--kf-gallery-gap)) / 8);
  }

  &.gallery-columns-9 {
    --kf-gallery-item-width: calc((100% - var(--kf-gallery-gap) - var(--kf-gallery-gap) - var(--kf-gallery-gap) - var(--kf-gallery-gap) - var(--kf-gallery-gap) - var(--kf-gallery-gap) - var(--kf-gallery-gap) - var(--kf-gallery-gap)) / 9);
  }

  @media (max-width: 900px) {
    &.gallery-columns-4,
    &.gallery-columns-5,
    &.gallery-columns-6,
    &.gallery-columns-7,
    &.gallery-columns-8,
    &.gallery-columns-9 {
      --kf-gallery-item-width: calc((100% - var(--kf-gallery-gap) - var(--kf-gallery-gap)) / 3);
    }
  }

  @media (max-width: 640px) {
    &.gallery-columns-3,
    &.gallery-columns-4,
    &.gallery-columns-5,
    &.gallery-columns-6,
    &.gallery-columns-7,
    &.gallery-columns-8,
    &.gallery-columns-9 {
      --kf-gallery-item-width: calc((100% - var(--kf-gallery-gap)) / 2);
    }
  }

  @media (max-width: 480px) {
    --kf-gallery-item-width: 100%;
  }
}

/* -- [05.32] WP Embed Styles -- */
.kf-responsive-embed {
  width: 100%;
  aspect-ratio: var(--kf-embed-ratio, 16 / 9);
}

.kf-responsive-embed iframe {
  display: block;
  width: 100%;
  height: 100%;
}

/* ================= [06] Utilities ================= */
/* -- [06.1] Screen Reader -- */
.kf-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;

	&:focus,
	&:focus-within {
		position: static;
		width: auto;
		height: auto;
		margin: 0;
		overflow: visible;
		clip: auto;
		clip-path: none;
		white-space: normal;
	}

	&.focusable:not(:focus):not(:focus-within) {
		position: absolute;
		width: 1px;
		height: 1px;
		margin: -1px;
		padding: 0;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
		clip-path: inset(50%);
		white-space: nowrap;
		border: 0;
	}

	&.focusable:focus,
	&.focusable:focus-within {
		position: static;
		width: auto;
		height: auto;
		margin: 0;
		overflow: visible;
		clip: auto;
		clip-path: none;
		white-space: normal;
	}
}

/* -- [06.2] Skip Links -- */
.kf-skip-links {
  position: fixed;
  top: 0px;
  left: 0px;
  z-index: 99999;
}

.kf-skip-links__list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.kf-skip-links__link {
  position: fixed;
  top: 50px;
  left: 20px;
  z-index: 999999;
  opacity: 0;
  min-width: 200px;
  padding: 1rem 1.5rem;
  background-color: #ffffff;
  color: #222222;
  border: 3px solid var(--kf-accessibility-color);
  border-radius: 50px;
  outline: var(--kf-accessibility-color) solid 0px;
  direction: ltr;
  font-size: 1rem;
  text-align: center;
  text-decoration: none;
  transition: top 0.22s ease 0s;
  pointer-events: none;
}

.kf-skip-links__link:focus {
  top: 20px;
  opacity: 1;
  pointer-events: auto;
}

/* -- [06.3] Has Global Padding -- */
.has-global-padding {
    padding-left: var(--kf-global-padding-left);
    padding-right: var(--kf-global-padding-right);
}
