/*
 * Base Reset & Theme Styles — cleaned and consolidated
 * - Modern reset
 * - Variables (light/dark)
 * - Base elements & accessibility
 * - Utilities & components (buttons, tables, embeds, slick)
 *
 * Notes:
 * - Avoids redundant vendor prefixes
 * - Uses :focus-visible; keeps focus outlines for accessibility
 * - Replaces .sr-only with .visually-hidden pattern
 * - Fixes typos (e.g. slick dots bottom offset)
 * - Replaces invalid negative scroll-padding-top
 */

/* =============================
  # Reset (modern-css-reset)
============================= */
*,
*::before,
*::after { box-sizing: border-box; }

html { height: 100%; -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  min-height: 100vh;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-family: var(--content);
  color: var(--black);
  background-color:var(--black);
}

img,
picture,
video,
canvas,
svg { display: block; max-width: 100%; }



input,
button,
textarea,
select { font: var(--content) }

p,
h1,
h2,
h3,
h4,
h5,
h6 { overflow-wrap: break-word; color: var(--black);margin-top: 0; margin-bottom: 0; }

#root,
#__next { isolation: isolate; }

section { max-width: 100svw; /*overflow-x: hidden;*/position: relative;z-index:1;background-color:var(--off-white) }
@view-transition {
  navigation: auto;
}

/* Safari float clearfix quirk */
.row::before,
.row::after { content: ""; display: table; }

/* =============================
  # CSS Variables (Theme)
============================= */
:root {
  --semi: 600;
  --bold: 700;
  --medium: 500;
  --radius: 8px;
  --ease-3: cubic-bezier(.2, .8, .2, 1);
  --transition: all .2s var(--ease-3);
}


/* =============================
  # Base / Global
============================= */
::selection { background-color: var(--purple); color: var(--white); }
::-moz-selection { background-color: var(--purple); color: var(--white); }

/* Links & interactive */
a { color: inherit; text-decoration: none; transition: var(--transition); }
a:hover { text-decoration: none; }

/* Do NOT remove focus outlines; improve them */
:focus { outline: none; }
:focus-visible { outline: 1px solid var(--purple);
  outline-offset: -1px; }

button { cursor: pointer; transition: var(--transition); }
button:focus-visible { outline: 2px solid var(--purple); outline-offset: 2px; }

b, strong {
  font-family: var(--semi);
  font-weight: 600;
}

/* Media */
.img-res { width: 100%; height: auto; }
video { width: 100%; height: auto; }
.circle-image {overflow:hidden;border-radius:50%}
.circle-image img {object-fit: cover;aspect-ratio: 1 / 1}

/* Scrollbar (WebKit only) */
body::-webkit-scrollbar { width: 1em; }
body::-webkit-scrollbar-track { box-shadow: inset 0 0 6px rgba(0,0,0,.3); }
body::-webkit-scrollbar-thumb { background-color: var(--purple); outline: 1px solid var(--purple); }

.center-flex, .center-block {display:flex;align-items: center;justify-content: center;height: 100%;}
.center-block-left {display:flex;align-items: center;justify-content: left;height: 100%;}

/* =============================
  # Accessibility
============================= */
.visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0);
  white-space: nowrap; border: 0;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  border: 0;
}

.sr-only-focusable:focus {
  position: relative;
  width: auto;
  height: auto;
  clip: initial;
  margin: inherit;
  padding: inherit;
  border: initial;
}

/* Headings offset for anchored targets (use on headings) */
:target { scroll-margin-top: 0px; }

@media (max-width: 1280px) {
  :target { scroll-margin-top: 0px;}
}
.jump-target { display: block; position: relative; top: 0px; visibility: hidden; }

/* =============================
  # Content Blocks
============================= */


.content-block-linked a {border-bottom: 1px solid rgba(35,31,32,.15);
  transition: 0.2s ease-in-out all;}
.content-block-linked a:hover {border-bottom: 1px solid rgba(35,31,32,9);
  transition: 0.2s ease-in-out all;}

.content-block-linked-white a {border-bottom: 1px solid rgba(252,249,242,.15);
  transition: 0.2s ease-in-out all;}
.content-block-linked-white a:hover {border-bottom: 1px solid rgba(252,249,242,9);
  transition: 0.2s ease-in-out all;}


.image-block{}
.image-block img {width:100%;height:auto}
.image-block.image-full {height: 100%;width: 100%;}
.image-block.image-full img {object-fit: cover;width:100%;height: 100%;}

.content-block h1,
.content-block h2,
.content-block h3,
.content-block h4,
.content-block h5,
.content-block h6,
.content-block p,
.content-block li { color:var(--black)}

/* Hover effect for lists */
/*ul > li { transition: opacity .3s var(--ease-3); }
ul:hover > li:not(:hover) { opacity: .8; }*/





/* ---------------------------------------------
  Core Collapse Behaviour (Bootstrap-like)
--------------------------------------------- */
.accordion-collapse {
    display: none;
    overflow: hidden;
}

.accordion-collapse.show {
    display: block;
}
.accordion {
    border: 0;
}

/* ---------------------------------------------
  The Arrow
--------------------------------------------- */
.accordion-button::after {
    content: "";
    flex-shrink: 0;
    width: 11px;
    height: 11px;
    background-image:url(../../../img/accordion-cross.png);
    background-size:cover;
    background-repeat: no-repeat;
    transition: transform .2s ease;
    transform: rotate(180deg);
}

/* Rotate when open */
.accordion-button:not(.collapsed)::after {
    width: 11px;
    height: 11px;
    background-image:url(../../../img/accordion-line.png);
}

.accordion-button.collapsed::after {
    transform: rotate(0deg);
}

.accordion-button:focus {
  z-index: 3;
  outline: 0;
  box-shadow: 0 0 0 00rem rgba(13, 110, 253, 0);
}

/* =============================
  # Slick Carousel
============================= */

.slick-prev:hover,
.slick-prev:focus,
.slick-next:hover,
.slick-next:focus { color: transparent; outline: none; opacity:1}
.slick-prev.slick-disabled,
.slick-next.slick-disabled { opacity: .5; }
.slick-prev { left: -25px; background-image: url(../../../img/slick-left.svg); }
.slick-next { right: -25px; background-image: url(../../../img/slick-right.svg); }
.slick-slide { margin: 0 27px; }
.slick-list { margin: 0 -27px; }
.image-slider-module .slick-slide { margin: 0; }
.image-slider-module .slick-list { margin: 0; }

/* Dots */
.slick-dotted.slick-slider { margin-bottom: 30px; }
.slick-dots { position: absolute; bottom: -45px; display: block; width: 100%; padding: 0; margin: 0; list-style: none; text-align: center; }
.slick-dots li { position: relative; display: inline-block; width: 20px; height: 20px; margin: 0 5px; padding: 0; cursor: pointer; }
.slick-dots li button { font-size: 0; line-height: 0; display: block; width: 20px; height: 20px; padding: 5px; cursor: pointer; color: transparent; border: 0; outline: none; background: transparent; border-radius: 50%; background-color: #4B8F8C; }
.slick-dots li.slick-active button { background-color: #fff; }
.slick-dots li button:hover { background-color: #D5D5D5; }

@media (max-width: 1366px) {
  .slick-prev {left: -15px;}
  .slick-next {right: -15px;}
}
@media (max-width: 992px) {
  .slick-prev {left: -10px;}
  .slick-next {right: -10px;}
}


/* =============================
  # Forms & Misc Utilities
============================= */
.form-control {
  display: block; width: 100%;
  padding: .375rem .75rem;
  font-size: 18px; font-weight: 400; line-height: 26px;
  color: #000; background-color: #fff; background-clip: padding-box;
  border: 1px solid #ced4da; appearance: none; border-radius: 0;
  transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
  margin-bottom: 10px;
}
.wpcf7 form .wpcf7-response-output {background-color: #fff;padding: 10px 15px;}
.wpcf7-not-valid-tip {font-size: 14px; position: relative;top: -34px;left: 5px;}

.background { position: relative; }
.background img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
.background-image { background-position: center; background-repeat: no-repeat; background-size: cover; }
.contain-background { background-position: center right; background-repeat: no-repeat; background-size: contain; }

.img-fill { object-fit: cover; width: 100%; height: auto; }

.box { display: flex; align-items: center; justify-content: center; }
.box div { width: 100%; height: 100%; }

.show-600 { display: none; }
.hide-600 { display: block; }
.show-700 { display: none; }
.hide-700 { display: block; }
.show-900,
.show-900-flex { display: none!important; }
.hide-900 { display: block; }


.row-eq-height { display: flex; }
.vcenter { display: flex; flex-direction: column; justify-content: center; }
.wpcf7-spinner { position: absolute; }
.full-height { height: 100svh; }

input:focus::placeholder { color: transparent; }

.noselect { -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; }
[type=button],
[type=reset],
[type=submit],
button { -webkit-appearance: none !important; }

.center-this { display: flex; align-items: center; justify-content: center; height: 100%; }

.darken-me {
  background: linear-gradient(180deg, rgba(23,36,62,1) 0%, rgba(0,0,0,1) 100%);
  opacity: .55; position: absolute; inset: 0; width: 100%; height: 100%;
}


/* =============================
  # Buttons
============================= */
.btn {
  --bs-btn-padding-x: .75rem;
  --bs-btn-padding-y: .375rem;
  --bs-btn-font-size: 1rem;
  --bs-btn-font-weight: 400;
  --bs-btn-line-height: 1.5;
  --bs-btn-color: #212529;
  --bs-btn-bg: transparent;
  --bs-btn-border-width: 1px;
  --bs-btn-border-color: transparent;
  --bs-btn-border-radius: .375rem;
  --bs-btn-hover-border-color: transparent;
  --bs-btn-disabled-opacity: .65;
  display: inline-block;
  padding: var(--bs-btn-padding-y) var(--bs-btn-padding-x);
  font-size: var(--bs-btn-font-size);
  font-weight: var(--bs-btn-font-weight);
  line-height: var(--bs-btn-line-height);
  color: var(--bs-btn-color);
  text-align: center; text-decoration: none; vertical-align: middle;
  user-select: none;
  border: var(--bs-btn-border-width) solid var(--bs-btn-border-color);
  border-radius: var(--bs-btn-border-radius);
  background-color: var(--bs-btn-bg);
  transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;
}


/* =============================
  # Tables & Embeds
============================= */
table { color: #333; background: #fff; border: 1px solid grey; font-size: 12pt; border-collapse: collapse; margin-bottom: 50px; }
table thead th,
table tfoot th { color: #777; background: rgba(0,0,0,.1); }
table caption { padding: .5em; }
table th,
table td { padding: .5em; border: 1px solid #d3d3d3; }

.videoWrapper { position: relative; padding-bottom: 56.25%; height: 0; }
.videoWrapper iframe { position: absolute; inset: 0; width: 100%; height: 100%; }

/* =============================
  # Colour Mode Override Hooks
============================= */
.dark-mode {}
.light-mode {}


/* ---------------------------------------------
* Generic Section Fade in - no AOS
* ------------------------------------------- */
#main.site-main > section > .container {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s ease, transform 0.6s ease-in-out;
}

#main.site-main > section > .container.visible {
  opacity: 1;
  transform: translateY(0);
}
#main.site-main > section.always-visable > .container {opacity: 1; transform: translateY(0);}

/*
 * Responsive & Cookie Consent Styles — cleaned and consolidated
 * - Desktop-first responsive container paddings
 * - Show/Hide utilities at common breakpoints
 * - Motion-safe AOS overrides
 * - Cookiebot & CookieScript tweaks
 *
 * Notes:
 * - Reduces duplicate selectors; groups container classes
 * - Removes redundant vendor prefixes
 * - Uses appearance instead of -webkit-appearance where possible
 */

/* =============================
  # Responsive (desktop-first)
============================= */
.container-noside { max-width: 100% !important; padding-left: 0; padding-right: 0; }

/* Helper to target all bootstrap containers consistently */
.container,
.container-sm,
.container-md,
.container-lg,
.container-xl,
.container-xxl { margin:auto;width:100%;max-width: 100% !important; padding-left: 25px; padding-right: 25px; }

@media (max-width: 1536px) {

}

@media (max-width: 1400px) {

}

@media (max-width: 1366px) {

}

@media (max-width: 1280px) {

}

@media (max-width: 992px) {
  .show-900 { display: block!important; }
  .show-900-flex { display: flex; }
  .hide-900 { display: none!important;}
  .container,
  .container-sm,
  .container-md,
  .container-lg,
  .container-xl,
  .container-xxl { padding-left: 20px; padding-right:20px; }
  .mobile-overflow { position: relative; overflow: hidden; }
  .center-mobile {text-align: center!important;padding:10px 0px}
  .content-block h1,
  .content-block h2 { font-size: 35px; line-height: 43px;}
  .content-block h3 { font-size: 25px; line-height: 27px;}
  .col-md-0 {flex: 0 0 auto;width: 0%;}
  #main.site-main > section {opacity: 1; transform: translateY(0);}
}

@media (max-width: 768px) {
  .show-700 { display: block; }
  .hide-700 { display: none; }
  /* Motion-safe AOS overrides: only disable animations if user prefers reduced motion */
  @media (prefers-reduced-motion: reduce) {
    .aos-animate { transition-property: none !important; transform: none !important; animation: none !important; }
    [data-aos^="fade"][data-aos^="fade"] { opacity: 1 !important; transform: translateZ(0); }
  }
}

@media (max-width: 600px) {
  .show-600 { display: block; }
  .hide-600 { display: none; }
}

/* =============================
  # Cookiebot — dialog & details
============================= */
#CybotCookiebotDialogPoweredByText,
#CybotCookiebotDialogPoweredByText a { display: none !important; }
#CybotCookiebotDialogDetailBodyContentTextAbout a { color: #434f5b; font-weight: 600; text-decoration: underline; }
#CybotCookiebotDialog .CybotCookiebotScrollContainer {position: relative; height: 100%; min-height: 20vh; padding: .375em; border-bottom: 1px solid #e2d6c0;}
#CybotCookiebotDialogHeader {display: flex; align-items: center; width: 100%; padding: 1em; border-bottom: 1px solid #e2d6c0;}
#CybotCookiebotDialogHeaderLogosWrapper a { display: none !important; }

/* =============================
  # CookieScript — report table & controls
============================= */
.table-responsive._CookieScriptReportPageTableWrapper { width: 100%; }

table._CookieScriptReportPageTable,
._CookieScriptReportPageTable tbody,
._CookieScriptReportPageTable td,
._CookieScriptReportPageTable tfoot,
._CookieScriptReportPageTable th,
._CookieScriptReportPageTable thead,
._CookieScriptReportPageTable tr {
  font-size: 16px; line-height: 20px; font-family: var(--tk-poppins, system-ui, sans-serif);
  text-overflow: ellipsis; word-wrap: break-word;
}

table._CookieScriptReportPageTable { margin-bottom: 35px !important; border-collapse: collapse; width: 100%; }

button._CookieScriptReportPageSaveSettingButton {
  color: #203364; font-size: 19px; line-height: 29px;
  transition: all .3s ease; border: 2px solid #203364;
  background-color: transparent; outline: none; padding: 5px 10px 2px;
}
button._CookieScriptReportPageSaveSettingButton:hover { color: #fff; background-color: #203364; }

input._CookieScriptReportPageCheckboxInput { width: 14px; height: 14px; border: 1px solid #000; appearance: auto; margin: 0 5px 5px 0; }

@media (max-width: 1440px) {
  ._CookieScriptReportPageCheckboxes { display: block !important; margin-bottom: 50px !important; }
  ._CookieScriptReportPageCheckbox { margin: 0 20px 25px 0 !important; }
}

@media (max-width: 768px) {
  ._CookieScriptReportPageTable tbody,
  ._CookieScriptReportPageTable td,
  ._CookieScriptReportPageTable tfoot,
  ._CookieScriptReportPageTable th,
  ._CookieScriptReportPageTable thead,
  ._CookieScriptReportPageTable tr { font-size: 11px; line-height: 13px; }

  ._CookieScriptReportPageTableTd,
  ._CookieScriptReportPageTableTh { padding: 4px; }
}