/* Sky Forest: colour overrides only; imported layouts and imagery stay intact. */
:root {
  --sky-background: #FAF9F6;
  --sky-text: #183D32;
  --sky-accent: #276749;
  --sky-hero-background: #276749;
  --sky-hero-ink: #FFFFFF;
  --sky-accent-hover: #1E5039;
  --sky-surface: #FFFFFF;
  --sky-tint: #EDF2EC;
  --sky-border: #C9D6CC;
  --sky-muted: #52675D;
  --hb-cp-o-color-1: var(--sky-text);
  --hb-cp-o-color-2: var(--sky-muted);
  --hb-cp-o-color-3: var(--sky-tint);
  --hb-cp-o-color-4: var(--sky-surface);
  --hb-cp-o-color-5: var(--sky-text);
  --primary: var(--sky-accent);
  --body-color: var(--sky-text);
  --body-bg: var(--sky-background);
}
body.sky-north {
  --sky-ink: var(--sky-text);
  --sky-link: var(--sky-accent-hover);
  --sky-link-hover: var(--sky-accent-hover);
  background: var(--sky-background);
  color: var(--sky-text);
}
body.sky-north #wrapwrap,
body.sky-north #main-content { background-color: var(--sky-background); color: var(--sky-text); }
body.sky-north #wrapwrap :is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6) { color: var(--sky-ink); }
body.sky-north #wrapwrap a:not(.btn):not(.sky-news-card) { color: var(--sky-link); }
body.sky-north #wrapwrap a:not(.btn):not(.sky-news-card):hover { color: var(--sky-link-hover); }

/* Map the imported section palettes, including nested light sections. */
body.sky-north :is(.o_cc1,.o_cc2,.o_cc3,.bg-o-color-2,.bg-o-color-3,.bg-o-color-4,.bg-white,.bg-light) {
  --sky-ink: var(--sky-text);
  --sky-link: var(--sky-accent-hover);
  --sky-link-hover: var(--sky-accent-hover);
  color: var(--sky-text) !important;
}
body.sky-north :is(.o_cc1,.bg-o-color-4,.bg-white,.bg-100) { background-color: var(--sky-background) !important; }
body.sky-north :is(.o_cc2,.o_cc3,.bg-o-color-2,.bg-o-color-3,.bg-light,.bg-200) { background-color: var(--sky-tint) !important; }
body.sky-north :is(.o_cc4,.o_cc5,.bg-o-color-1,.bg-o-color-5,.bg-primary,.bg-dark) {
  --sky-ink: #FFFFFF;
  --sky-link: #FFFFFF;
  --sky-link-hover: #FFFFFF;
  background-color: var(--sky-text) !important;
  color: #FFFFFF !important;
}
body.sky-north :is(.text-primary,.text-o-color-1,.text-o-color-5) { color: var(--sky-ink) !important; }
body.sky-north .text-o-color-2 { color: var(--sky-muted) !important; }
body.sky-north :is(.text-white,.text-o-color-4) { color: #FFFFFF !important; }
body.sky-north .text-o-color-3 { color: var(--sky-tint) !important; }

/* Imported HTML also contains literal inline colours. Match only the old brand values. */
body.sky-north [style*="color: rgb(0, 61, 115)"],
body.sky-north [style*="color: rgb(0, 52, 98)"] { color: var(--sky-ink) !important; }
body.sky-north [style*="background-color: rgb(238, 238, 236)"] {
  --sky-ink: var(--sky-text);
  --sky-link: var(--sky-accent-hover);
  --sky-link-hover: var(--sky-accent-hover);
  background-color: var(--sky-tint) !important;
  color: var(--sky-text) !important;
}
body.sky-north [style*="background-color: rgb(0, 52, 98)"] { background-color: var(--sky-accent) !important; }
body.sky-north [style*="border-color: rgb(0, 49, 92)"],
body.sky-north [style*="border-color: rgb(0, 52, 98)"] { border-color: var(--sky-accent) !important; }

/* Explicit button states override section-specific and inline button colours. */
body.sky-north #wrapwrap :is(.btn-primary,.btn-fill-primary,.btn-secondary,.btn-fill-secondary,.btn.bg-o-color-1,.btn[style*="background-color: rgb(0, 52, 98)"]),
body.sky-north #sky-cookie-dialog .btn-primary {
  --btn-color: #FFFFFF;
  --btn-bg: var(--sky-accent);
  --btn-border-color: var(--sky-accent);
  --btn-hover-color: #FFFFFF;
  --btn-hover-bg: var(--sky-accent-hover);
  --btn-hover-border-color: var(--sky-accent-hover);
  --btn-active-color: #FFFFFF;
  --btn-active-bg: var(--sky-accent-hover);
  --btn-active-border-color: var(--sky-accent-hover);
  --btn-disabled-color: #FFFFFF;
  --btn-disabled-bg: var(--sky-accent);
  --btn-disabled-border-color: var(--sky-accent);
  color: #FFFFFF !important;
  background-color: var(--sky-accent) !important;
  border-color: var(--sky-accent) !important;
}
body.sky-north #wrapwrap :is(.btn-primary,.btn-fill-primary,.btn-secondary,.btn-fill-secondary,.btn.bg-o-color-1,.btn[style*="background-color: rgb(0, 52, 98)"]):is(:hover,:active),
body.sky-north #sky-cookie-dialog .btn-primary:is(:hover,:active) {
  background-color: var(--sky-accent-hover) !important;
  border-color: var(--sky-accent-hover) !important;
}
body.sky-north :is(#wrapwrap,#sky-cookie-dialog) :is(.btn-outline-primary,.btn-outline-secondary) {
  --btn-disabled-color: var(--sky-accent);
  --btn-disabled-border-color: var(--sky-accent);
  color: var(--sky-accent) !important;
  background-color: var(--sky-surface) !important;
  border-color: var(--sky-accent) !important;
}
body.sky-north :is(#wrapwrap,#sky-cookie-dialog) :is(.btn-outline-primary,.btn-outline-secondary):is(:hover,:active) {
  color: #FFFFFF !important;
  background-color: var(--sky-accent-hover) !important;
  border-color: var(--sky-accent-hover) !important;
}

.sky-north .sky-header,
.sky-north .sky-header #sky-menu { background-color: var(--sky-background); }
.sky-north .sky-header { box-shadow: 0 3px 12px color-mix(in srgb, var(--sky-text) 12%, transparent); }
body.sky-north #wrapwrap .sky-nav-links a:not(.btn):not(.sky-news-card) { color: var(--sky-text); border-color: var(--sky-border); }
.sky-north :is(.sky-menu-toggle,.sky-dialog-close) { color: var(--sky-text); }
.sky-north :is(.sky-search input,.sky-field input,.sky-field textarea,.sky-field select,.form-control,.form-select) {
  color: var(--sky-text);
  background-color: var(--sky-surface);
  border-color: var(--sky-border);
}
.sky-north :is(input,textarea)::placeholder { color: var(--sky-muted); opacity: 1; }
.sky-north .sky-search button { color: var(--sky-text); background-color: var(--sky-tint); }
.sky-north :is(.sky-choice input,input[type=checkbox],input[type=radio]) { accent-color: var(--sky-accent); }
.sky-north .sky-form-note { color: var(--sky-muted); }
.sky-north :is(.card,.accordion-item) { background-color: var(--sky-surface); color: var(--sky-text); border-color: var(--sky-border); }
.sky-north :is(.accordion-button,.sky-skip) { color: var(--sky-text); background-color: var(--sky-tint); }
.sky-north :is(.sky-footer,.sky-footer-main) { background-color: var(--sky-tint); color: var(--sky-text); }
.sky-north :is(.sky-footer-contact,.sky-footer-bottom,.sky-result) { border-color: var(--sky-border); }
.sky-north .sky-footer-contact h2 span { color: var(--sky-muted); }
body.sky-north #wrapwrap .sky-footer :is(a:not(.btn),nav button) { color: var(--sky-text); }
body.sky-north #wrapwrap .sky-footer a:not(.btn):hover { color: var(--sky-accent); }
.sky-north #sky-cookie-dialog { color: var(--sky-text); background: var(--sky-background); box-shadow: 0 20px 80px color-mix(in srgb, var(--sky-text) 20%, transparent); }
.sky-north #sky-cookie-dialog a { color: var(--sky-accent-hover); }
.sky-north #sky-cookie-dialog::backdrop { background: color-mix(in srgb, var(--sky-text) 40%, transparent); }
.sky-north .sky-back-to-top { color: #FFFFFF; background: var(--sky-accent); box-shadow: 0 4px 16px color-mix(in srgb, var(--sky-text) 20%, transparent); }
.sky-north .sky-back-to-top:hover { background: var(--sky-accent-hover); }
body.sky-north :is(a,button,input,textarea,select):focus-visible {
  outline: 3px solid var(--sky-accent);
  outline-offset: 4px;
  box-shadow: 0 0 0 3px var(--sky-background);
}
body.sky-north ::selection { color: #FFFFFF; background: var(--sky-accent); }
/* Photo cards keep their original white text and image overlays. */
body.sky-north #wrapwrap .sky-news-card,
body.sky-north #wrapwrap .sky-news-card h3 { color: #FFFFFF !important; }

/* Forest only: a floating glass navigation shell, with an opaque fallback. */
.sky-north .sky-header {
  --sky-header-offset: 24px;
  position: fixed;
  top: var(--sky-header-offset);
  inset-inline: 0;
  width: calc(100% - 48px);
  max-width: 1120px;
  margin-inline: auto;
  border: 1px solid rgba(255, 255, 255, .8);
  border-radius: 28px;
  background: var(--sky-background);
  box-shadow: 0 12px 40px rgba(24, 61, 50, .12), inset 0 1px 0 rgba(255, 255, 255, .7);
}
.sky-north.admin-bar .sky-header { --sky-header-offset: 56px; }
.sky-north .sky-header.is-scroll-hidden {
  transform: translateY(calc(-100% - var(--sky-header-offset) - 12px));
}
.sky-north .sky-header-inner {
  min-height: 80px;
  padding: 12px 20px;
  gap: 28px;
}
.sky-north .sky-logo img { width: 56px; height: 56px; border-radius: 12px; }
.sky-north .sky-header #sky-menu { background: transparent; gap: 24px; }
.sky-north .sky-nav-links { margin-inline: auto; gap: 24px; }
.sky-north .sky-nav-actions { margin-left: 0; }
.sky-north .sky-search button { background: rgba(24, 61, 50, .06); }
.sky-north .sky-search input { background-color: var(--sky-background); }
.sky-north #main-content { padding-top: 128px; }
.sky-north #main-content:has(.s_carousel_wrapper) { padding-top: 0; }
.sky-north .sky-skip { z-index: 101; }
html { scroll-padding-top: 132px; }

@supports ((backdrop-filter: blur(20px)) or (-webkit-backdrop-filter: blur(20px))) {
  .sky-north .sky-header {
    background: rgba(250, 249, 246, .86);
    -webkit-backdrop-filter: blur(20px) saturate(145%);
    backdrop-filter: blur(20px) saturate(145%);
  }
}
@media (max-width: 991px) {
  .sky-north .sky-header {
    --sky-header-offset: 16px;
    width: calc(100% - 32px);
    max-width: 680px;
    border-radius: 24px;
  }
  .sky-north.admin-bar .sky-header { --sky-header-offset: 62px; }
  .sky-north .sky-header-inner { min-height: 72px; padding: 10px 16px; gap: 16px; }
  .sky-north .sky-logo img { width: 50px; height: 50px; border-radius: 10px; }
  .sky-north .sky-header #sky-menu {
    top: calc(100% + 12px);
    left: -1px;
    right: -1px;
    padding: 20px;
    max-height: calc(100dvh - var(--sky-header-offset) - 100px);
    border: 1px solid rgba(255, 255, 255, .8);
    border-radius: 24px;
    background: var(--sky-background);
    box-shadow: 0 16px 40px rgba(24, 61, 50, .15);
  }
  .sky-north .sky-nav-links { margin: 0; gap: 0; }
  .sky-north .sky-nav-actions { margin: 0; }
  .sky-north .sky-search input { min-width: 0; }
  .sky-north #main-content { padding-top: 112px; }
  .sky-north #main-content:has(.s_carousel_wrapper) { padding-top: 0; }
  .sky-north .s_carousel .carousel-item { padding-top: 128px !important; }
  html { scroll-padding-top: 116px; }
  @supports ((backdrop-filter: blur(20px)) or (-webkit-backdrop-filter: blur(20px))) {
    .sky-north .sky-header #sky-menu {
      background: rgba(250, 249, 246, .96);
      -webkit-backdrop-filter: blur(20px) saturate(145%);
      backdrop-filter: blur(20px) saturate(145%);
    }
  }
}
@media (prefers-reduced-transparency: reduce) {
  .sky-north .sky-header,
  .sky-north .sky-header #sky-menu {
    background: var(--sky-background);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
}
