html { scroll-behavior: smooth; box-sizing: border-box; }
*, *::before, *::after { box-sizing: inherit; }
body { font-family: 'Area', system-ui, sans-serif; }
h1, h2, h3 { font-family: 'Moduline', system-ui, sans-serif; }
.bg-linear-294 { background: linear-gradient(294deg, #2e1065 37%, #16a34a 68%); }
.bg-linear-301 { background: linear-gradient(301deg, #2e1065 37%, #16a34a 68%); }
/* Top border mask */
.border-mask-top { position: relative; z-index: 1; }
.border-mask-top::before { content: ""; position: absolute; top: -16px; left: 0; right: 0; height: 16px; background: inherit; -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1080 16' preserveAspectRatio=%27none%27%3E%3Cpath d='M0,16L56.9,1.9l81.6,13.4L295.3,1.4l95.7,12.6L529.4,1l138.2,13.6L771.1.5l75.6,13.3L952.4.2l86.3-.2,41.3,16H0Z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1080 16' preserveAspectRatio=%27none%27%3E%3Cpath d='M0,16L56.9,1.9l81.6,13.4L295.3,1.4l95.7,12.6L529.4,1l138.2,13.6L771.1.5l75.6,13.3L952.4.2l86.3-.2,41.3,16H0Z'/%3E%3C/svg%3E"); -webkit-mask-size: 100% 100%; mask-size: 100% 100%; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; pointer-events: none; }
/* Bottom border mask */
.border-mask-bottom { position: relative; }
.border-mask-bottom::after { content: ""; position: absolute; bottom: -32px; left: 0; right: 0; height: 32px; background: inherit; -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1080 32' preserveAspectRatio=%27none%27%3E%3Cpath d='M1080,0l-82.4,19.8L862.1,3.2l-98.4,16.9-141,.2s-102.7,0-103.2.2c-.5.2-75.6-10.7-75.6-10.7,0,0-103.5,11-110.6,11.2-7.1.3-95.5-12.9-101.4-11.7-5.9,1.2-90.3,22.5-90.3,22.5L57,8,15.8,21.4,0,0h1080Z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1080 32' preserveAspectRatio=%27none%27%3E%3Cpath d='M1080,0l-82.4,19.8L862.1,3.2l-98.4,16.9-141,.2s-102.7,0-103.2.2c-.5.2-75.6-10.7-75.6-10.7,0,0-103.5,11-110.6,11.2-7.1.3-95.5-12.9-101.4-11.7-5.9,1.2-90.3,22.5-90.3,22.5L57,8,15.8,21.4,0,0h1080Z'/%3E%3C/svg%3E"); -webkit-mask-size: 100% 100%; mask-size: 100% 100%; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; pointer-events: none; }
/* Decorative wave background */
.bg__waves--brown { background-image: url("../images/crocodile_waves--brown.svg"); background-size: auto 60%; background-position: bottom 10% right -10%; background-repeat: no-repeat; }
/* Mobile menu overlay */
.mobile-menu-overlay { transform: translateX(100%); opacity: 0; }
.mobile-menu-overlay .mobile-menu-link { opacity: 0; }
body.menu-open { overflow: hidden; }
/* Scoop corner shape for desktop header nav items */
header nav[aria-label="Main"] > a {
  --r: 4px;
  -webkit-mask:
    radial-gradient(circle at   0%   0%, transparent var(--r), white calc(var(--r) + 0.5px)),
    radial-gradient(circle at 100%   0%, transparent var(--r), white calc(var(--r) + 0.5px)),
    radial-gradient(circle at   0% 100%, transparent var(--r), white calc(var(--r) + 0.5px)),
    radial-gradient(circle at 100% 100%, transparent var(--r), white calc(var(--r) + 0.5px));
  mask:
    radial-gradient(circle at   0%   0%, transparent var(--r), white calc(var(--r) + 0.5px)),
    radial-gradient(circle at 100%   0%, transparent var(--r), white calc(var(--r) + 0.5px)),
    radial-gradient(circle at   0% 100%, transparent var(--r), white calc(var(--r) + 0.5px)),
    radial-gradient(circle at 100% 100%, transparent var(--r), white calc(var(--r) + 0.5px));
  -webkit-mask-composite: destination-in, destination-in, destination-in;
  mask-composite: intersect;
}
header nav[aria-label="Main"] > a:last-child {
  margin-left: auto;
  background-color: #1E40AF !important;
  color: #FFFFFF !important;
  --r: 4px;
  -webkit-mask:
    radial-gradient(circle at 0% 0%, transparent var(--r), white calc(var(--r) + 0.5px)),
    radial-gradient(circle at 0% 100%, transparent var(--r), white calc(var(--r) + 0.5px)),
    linear-gradient(white 0 0);
  mask:
    radial-gradient(circle at 0% 0%, transparent var(--r), white calc(var(--r) + 0.5px)),
    radial-gradient(circle at 0% 100%, transparent var(--r), white calc(var(--r) + 0.5px)),
    linear-gradient(white 0 0);
  -webkit-mask-composite: destination-in, destination-in;
  mask-composite: intersect;
  border-radius: 0 4px 4px 0;
}

/* Archive / post-type pagination: same scoop-corner mask as primary nav */
.navigation.pagination .nav-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0;
}
.navigation.pagination .nav-links > a,
.navigation.pagination .nav-links > span.page-numbers {
  min-height: 2.75rem;
  padding: 0.75rem 1.25rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  font-size: 1rem;
  line-height: 1;
  --r: 4px;
  -webkit-mask:
    radial-gradient(circle at   0%   0%, transparent var(--r), white calc(var(--r) + 0.5px)),
    radial-gradient(circle at 100%   0%, transparent var(--r), white calc(var(--r) + 0.5px)),
    radial-gradient(circle at   0% 100%, transparent var(--r), white calc(var(--r) + 0.5px)),
    radial-gradient(circle at 100% 100%, transparent var(--r), white calc(var(--r) + 0.5px));
  mask:
    radial-gradient(circle at   0%   0%, transparent var(--r), white calc(var(--r) + 0.5px)),
    radial-gradient(circle at 100%   0%, transparent var(--r), white calc(var(--r) + 0.5px)),
    radial-gradient(circle at   0% 100%, transparent var(--r), white calc(var(--r) + 0.5px)),
    radial-gradient(circle at 100% 100%, transparent var(--r), white calc(var(--r) + 0.5px));
  -webkit-mask-composite: destination-in, destination-in, destination-in;
  mask-composite: intersect;
}
.navigation.pagination .nav-links > a {
  background-color: #F9F5F0;
  color: #000;
  text-decoration: none;
}
.navigation.pagination .nav-links > a:hover {
  background-color: #EFE5DA;
}
.navigation.pagination .nav-links > span.page-numbers.current {
  background-color: #1E40AF;
  color: #fff;
}
.navigation.pagination .nav-links > span.page-numbers.dots {
  background: transparent;
  -webkit-mask: none;
  mask: none;
  color: #000;
}
.navigation.pagination .nav-links > span.page-numbers.disabled {
  background-color: #efe5da;
  color: #78716c;
  cursor: not-allowed;
}

/* Recent updates: Splide carousel (drag + arrows); extends to viewport on the right */
.kc-updates-carousel.kc-updates-splide.splide {
  position: relative;
  margin-right: calc(50% - 50vw);
}

.kc-updates-carousel__slide {
  /* border: 1px solid #efe5da; */
}

/* Theme arrows to match site; next sits over the slide area */
.kc-updates-splide .splide__arrow {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 9999px;
  background: #1e40af;
  opacity: 1;
}

.kc-updates-splide .splide__arrow svg {
  fill: #fff;
}

.kc-updates-splide .splide__arrow:disabled {
  opacity: 0.35;
}

.kc-updates-splide .splide__arrow--prev {
  left: 0;
}

.kc-updates-splide .splide__arrow--next {
  right: 1rem;
  z-index: 4;
}

/* Vertically align with thumbnail row (video is aspect-video; title sits below) */
.kc-updates-splide .splide__arrow {
  top: 32%;
}

@media (max-width: 640px) {
  .kc-updates-splide .splide__arrow {
    width: 2rem;
    height: 2rem;
  }
}

/* Dots: left-aligned with first slide (override Splide default centered absolute block) */
.kc-updates-splide .splide__pagination {
  position: static;
  left: auto;
  right: auto;
  bottom: auto;
  width: auto;
  transform: none;
  justify-content: flex-start;
  padding: 0;
  margin: 1rem 0 0;
  gap: 0.5rem;
}

.kc-updates-splide .splide__pagination__page {
  margin: 0;
  width: 0.75rem;
  height: 0.75rem;
  border-radius: 4px;
  background: #d6d3d1;
  opacity: 1;
}

.kc-updates-splide .splide__pagination__page.is-active {
  background: #1e40af;
}

.kc-video-thumb {
  position: relative;
  width: 100%;
  height: 100%;
  border: 0;
  padding: 0;
  cursor: pointer;
  display: block;
}

.kc-video-thumb img {
  display: block;
  pointer-events: none;
}

.kc-video-thumb__play {
  pointer-events: none;
  position: absolute;
  inset: 50% auto auto 50%;
  transform: translate(-50%, -50%);
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 9999px;
  background: rgba(30, 64, 175, 0.9);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.3rem;
  line-height: 1;
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.25);
}

.kc-video-dialog {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}

.kc-video-dialog__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.72);
}

.kc-video-dialog__panel {
  position: relative;
  width: min(100%, 960px);
  background: #000;
  border-radius: 0.5rem;
  overflow: hidden;
  z-index: 1;
}

.kc-video-dialog__close {
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
  width: 2rem;
  height: 2rem;
  border: 0;
  border-radius: 9999px;
  background: rgba(255, 255, 255, 0.9);
  color: #000;
  font-size: 1.4rem;
  line-height: 1;
  cursor: pointer;
  z-index: 2;
}

body.kc-video-dialog-open {
  overflow: hidden;
}
