/*
 * 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;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-family: var(--content);
  font-weight: var(--medium);
  font-weight: 400;
  color: var(--black);
  font-size: 1.125rem;
  line-height: 26px;
}

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

input,
button,
textarea,
select { font: inherit; }

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

h1,
h2,
h3,
h4,
h5,
h6 { font-weight: 600;}

p {font-size: 1.125rem; font-size: 1rem;
  line-height: 26px; line-height: 24px;
  margin-bottom: 1rem;
}

em { font-family: 'Noto Serif Display', serif; letter-spacing: -0.05em; }

#root,
#__next { isolation: isolate; }

section { max-width: 100vw; overflow-x: hidden; }

/* Smooth scrolling (respects reduced motion) */
:root { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  :root { scroll-behavior: auto; }
  * { animation: none !important; transition: none !important; }
}

/* View transitions */
@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);
}

/* Dark mode overrides 
[data-bs-theme="dark"] {
  --black: #ffffff;
  --white: #000000;
}*/

/* =============================
  # Base / Global
============================= */


/* 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: 2px solid var(--orange); outline-offset: 2px; }

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

b,
strong { font-weight: 700; }

/* Media */
.img-res { width: 100%; height: auto; }
video { width: 100%; height: auto; }



/* =============================
  # 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: 3rem; }

@media (max-width: 1280px) {
  :target { scroll-margin-top: 150px;}
}

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


.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%;}



/* =============================
  # Slick Carousel
============================= */
.slick-prev,
.slick-next {
  font-size: 0; line-height: 0; position: absolute; top: calc(50% - 19%);
  display: block; width: 17px; height: 29px; padding: 0;
  transform: translate(0, -50%);
  cursor: pointer; color: transparent; border: none; outline: none; background: transparent;
  background-position: center; background-repeat: no-repeat; background-size: cover; z-index: 10;opacity:0.7
}
.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; }

/* 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;}
}

/* =============================
  # Mode Switches
============================= */
.bd-mode-toggle { background-color: #712cf9; }
.switches { display: inline-block; padding: 0; margin: 10px 0 0; border-radius: 6px; }
.switches li { position: relative; }
.switches li:not(:last-child) { border-bottom: 1px solid var(--gray); }
.switches li [type="radio"] { position: absolute; left: -9999px; }
.switches label { display: grid; grid-template-columns: 40px auto; align-items: center; gap: 10px; padding: 20px; cursor: pointer; }

/* Icon visibility (Font Awesome classes assumed) */
.bd-mode-toggle .btn .fa-moon { display: none; color: #fff; }
.bd-mode-toggle .btn .fa-sun  { display: block; color: #fff; }
.bd-mode-auto .fa-moon { display: none; }
.bd-mode-auto .fa-sun  { display: block; }
[data-bs-theme="dark"] .bd-mode-toggle .btn .fa-sun { display: none; }
[data-bs-theme="dark"] .bd-mode-auto  .fa-sun { display: none; }
[data-bs-theme="dark"] .bd-mode-toggle .btn .fa-moon { display: block; }
[data-bs-theme="dark"] .bd-mode-auto  .fa-moon { display: block; }
.dropdown-toggle::after { border-top: .3em solid #fff; }

/* =============================
  # 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; }
.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%;
}


/* =============================
  # 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 {}


/*
 * 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 {
  max-width: 81rem;
  width: 100%;
  padding-left: 3rem;
  padding-right: 3rem;
  margin-left: auto;
  margin-right: auto;
}

#main {
  min-height: calc(100svh - 650px);
}

@media (max-width: 1536px) {

}

@media (max-width: 1300px) {
  .container,
  .container-sm,
  .container-md,
  .container-lg,
  .container-xl,
  .container-xxl {   max-width: 100% !important;}

}

@media (max-width: 1366px) {

}

@media (max-width: 1280px) {

}

@media (max-width: 992px) {
  .show-900 { display: block; }
  .show-900-flex { display: flex; }
  .hide-900 { display: none; }
  .left-900 {text-align:left!important}

  .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;}

  .two-ctas .btn { margin: 0 20px;margin-bottom: 20px; }

}

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

  .nav-toggle { display: block; }

  /* 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); }
  }

  .cta-btn {width: 100%; margin-left: 0px !important;padding: 15px 25px;}

  .content-block h1,
  .content-block h2 { font-size: 30px; line-height: 37px;}
  .content-block h3 { font-size: 20px; line-height: 25px;}
  .content-block p, .content-block li {font-size: 16px; line-height: 22px;}
  .content-block p {padding-bottom:20px}
  
  .section-ctas.has-two .two-ctas a {margin-bottom:30px}

  .container, .container-sm, .container-md, .container-lg, .container-xl, .container-xxl {padding-left: 1.5rem;padding-right: 1.5rem;}
}

@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; }
}