/*
Theme Name: Identity Studio
Template:     Divi
Version: 1.0.123
*/

@import url("../Divi/style.css");

/* =Theme customization starts here
-------------------------------------------------------------- */

/* 
Page background overrides
-------------------------------------------------------------- */

/* Colours
TBC
*/

body:not(.et-fb) h1 { font-size: clamp(44px, 3.2vw + 22px, 64px) !important; line-height: 1.3em;}
body:not(.et-fb) h2 { font-size: clamp(34px, 2.4vw + 18px, 44px) !important; line-height: 1.35em;}
body:not(.et-fb) h3, body:not(.et-fb) .header-block h2, body:not(.et-fb).parent-pageid-1288 h2 { font-size: clamp(26px, 1.6vw + 16px, 34px) !important; line-height: 1.4em; }
body:not(.et-fb) h4, body:not(.et-fb).parent-pageid-1288 h3 { font-size: clamp(22px, 1.2vw + 14px, 28px) !important; line-height: 1.35em; }
body:not(.et-fb) h5 { font-size: clamp(18px, 0.9vw + 12px, 22px) !important; line-height: 1.3em; /*font-weight: 800;*/ }
body:not(.et-fb) h6 { font-size: clamp(16px, 0.7vw + 11px, 20px) !important; line-height: 1.35em; }

/* BODY TEXT - Arboria */

body:not(.et-fb),
body:not(.et-fb) p,
body:not(.et-fb) .et_pb_text,
body:not(.et-fb) .et_pb_blurb_description,
body:not(.et-fb) .et_pb_toggle_content,
body:not(.et-fb) .et_pb_tab_content,
body:not(.et-fb) .et_pb_testimonial_content,
body:not(.et-fb) .et_pb_post_content,
body:not(.et-fb) .entry-content {
  font-weight: 300;}

body:not(.et-fb) p,
.et_pb_testimonial_content, .et_pb_testimonial_content p, .et_pb_testimonial_author {
  font-size: clamp(16px, 1vw + 12px, 18px) !important;
  line-height: 1.65;
}

body:not(.et-fb) #main-content p,
body:not(.et-fb) #main-content ul {
    font-size: clamp(16px, 1vw + 12px, 18px) !important;
    line-height: 1.65;}

body:not(.et-fb) .et-l--footer p,
body:not(.et-fb) .et-l--footer ul {font-size: 14px !important; line-height: 2em!important;}

/* Links */
a {
  -webkit-transition: all 0.3s ease-in-out;
  -moz-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}

/* default content links */
body:not(.et-fb) p a,
body:not(.et-fb) .et_pb_text a,
body:not(.et-fb) .et_pb_blurb_description a,
body:not(.et-fb) .et_pb_toggle_content a,
body:not(.et-fb) .et_pb_tab_content a,
body:not(.et-fb) .et_pb_testimonial_content a
/*, body:not(.et-fb) .et_pb_post_content a,
body:not(.et-fb) .entry-content a */ {
  border-bottom: 1px solid currentColor !important;
  font-weight: 700 !important;
}

/* dark background / light text blocks in Divi */
.et_pb_bg_layout_dark p a,
.et_pb_bg_layout_dark .et_pb_text a,
.et_pb_bg_layout_dark .et_pb_blurb_description a,
.et_pb_bg_layout_dark .et_pb_toggle_content a,
.et_pb_bg_layout_dark .et_pb_tab_content a,
.et_pb_bg_layout_dark .et_pb_testimonial_content a,
.et_pb_bg_layout_dark .et_pb_post_content a,
.et_pb_bg_layout_dark .entry-content a {
  color: #ffffff !important;
  border-bottom: 1px solid currentColor !important;
}

/* hover state in dark blocks */
.et_pb_bg_layout_dark p a:hover,
.et_pb_bg_layout_dark .et_pb_text a:hover,
.et_pb_bg_layout_dark .et_pb_blurb_description a:hover,
.et_pb_bg_layout_dark .et_pb_toggle_content a:hover,
.et_pb_bg_layout_dark .et_pb_tab_content a:hover,
.et_pb_bg_layout_dark .et_pb_testimonial_content a:hover,
.et_pb_bg_layout_dark .et_pb_post_content a:hover,
.et_pb_bg_layout_dark .entry-content a:hover {
  color: #d9d9d9 !important; /* light grey */
  border-bottom: 1px solid currentColor !important;
}

footer .et_pb_text_inner a,
.light-link a,
.dsm-typing a {
  color: #ffffff !important;
  border-bottom: 1px solid currentColor !important;
  font-weight: 700 !important;
}

footer .et_pb_text_inner a:hover,
.light-link a:hover,
.dsm-typing a:hover {
  color: #d9d9d9 !important;
  border-bottom: 1px solid currentColor !important;
}

body:not(.et-fb) .parent-page-link a{
  color: #fff !important;
  text-decoration: none;
	font-family: 'Manrope',Helvetica,Arial,Lucida,sans-serif;
font-weight: 300!important;
text-transform: uppercase;
font-size: 1.1em;
}

body:not(.et-fb) .parent-page-link a:hover{
  color: inherit !important; opacity: 0.7;
  text-decoration: none;
}

/* Menu */


/* Footer */
#FooterimageContainer { width: 100%; position: relative;}
#Footerimages {display: flex;margin: 2px;}
#FooterimageContainer img { display: inline-block; position: relative;
  /* Important bits: */ min-width: 0; object-fit: contain;
  /* Extras: min-width: 100px; */  margin: 0 64px 0 0; height: fit-content; max-height: 100px;}
#FooterimageContainer img.sidespace { padding: 0 64px 0 0!important;}
.et_pb_text_inner #FooterimageContainer a, .et_pb_text_inner #FooterimageContainer a:hover {border:none!important;}

/* Footer logo marquee */

.footer-logo-marquee {width: 100%; overflow: hidden; position: relative; padding: 20px 0;}

.footer-logo-track {display: flex !important; align-items: center !important; flex-wrap: nowrap !important; width: max-content; animation: footerLogoLoop 35s linear infinite; will-change: transform;}

.footer-logo-set {display: flex !important; flex-direction: row !important; align-items: center !important; flex-wrap: nowrap !important; flex: 0 0 auto !important; gap: 64px; padding-right: 64px; margin: 0 !important; white-space: nowrap;}

.footer-logo-marquee br, .footer-logo-track br, .footer-logo-set br {display: none !important;}

.footer-logo-marquee a, .footer-logo-marquee a:hover, .et_pb_text_inner .footer-logo-marquee a, .et_pb_text_inner .footer-logo-marquee a:hover {display: flex !important; align-items: center !important; flex: 0 0 auto !important; border: none !important; border-bottom: none !important; box-shadow: none !important; text-decoration: none !important; background-image: none !important;}

.footer-logo-marquee img {display: block !important; width: auto !important; max-width: none !important; max-height: 90px !important; height: auto !important; object-fit: contain; border: none !important; box-shadow: none !important;}

.footer-logo-marquee:hover .footer-logo-track {animation-play-state: paused;}

.footer-logo-marquee::before, .footer-logo-marquee::after {content: ""; position: absolute; top: 0; width: 40px; height: 100%; z-index: 5; pointer-events: none;}

.footer-logo-marquee::before {left: 0; background: linear-gradient(to right, #eceeef 0%, rgba(236,238,239,0) 100%);}

.footer-logo-marquee::after {right: 0; background: linear-gradient(to left, #eceeef 0%, rgba(236,238,239,0) 100%);}

@keyframes footerLogoLoop {from {transform: translateX(0);} to {transform: translateX(-33.3333%);}}

@keyframes footerLogoLoopReverse {from {transform: translateX(-33.3333%);} to {transform: translateX(0);}}

.footer-logo-mobile-marquees {display: none;}

/* Tablet */
@media (max-width: 980px) {

.footer-logo-set {gap: 48px; padding-right: 48px;}

.footer-logo-marquee img {max-height: 72px !important;}

.footer-logo-marquee::before, .footer-logo-marquee::after {width: 28px;}

}

/* Mobile */
@media (max-width: 767px) {

.footer-logo-desktop {display: none;}

.footer-logo-mobile-marquees {display: block;}

.footer-logo-mobile-row {padding: 8px 0;}

.footer-logo-mobile-row .footer-logo-track {animation-duration: 30s;}

.footer-logo-mobile-row .footer-logo-track.reverse {animation-name: footerLogoLoopReverse;}

.footer-logo-mobile-row .footer-logo-set {gap: 36px; padding-right: 36px;}

.footer-logo-mobile-row img {max-height: 56px !important;}

.footer-logo-marquee::before, .footer-logo-marquee::after {width: 18px;}

}

/* Reduced motion accessibility */
@media (prefers-reduced-motion: reduce) {

.footer-logo-track, .footer-logo-mobile-row .footer-logo-track, .footer-logo-mobile-row .footer-logo-track.reverse {animation: none !important; transform: none !important;}

}
/* Text */

/* ================================
   Buttons
   ================================ */
/* ============================================================
   DIVI SPLIT-ICON BUTTONS (GLOBAL)
   - Default icon on ALL Divi buttons (uses ETmodules)
   - Square icon block on the right
   - True transparent gap (background “hole”) via gradient
   - Instant hover (no fade/delay)
   - 3 variants via section classes:
       1) Default:  Grey bg + white text  -> Hover: White bg + grey text
       2) .section-dark: Red bg + white text -> Hover: White bg + grey text
       3) .section-light: Grey bg + white text -> Hover: Red bg + white text
   ------------------------------------------------------------
   Tweak these globals if needed:
     --h (button height & icon width)
     --gap (gap size)
     --pad-x (text padding)
   ============================================================ */

/* ---------- Base / structure (applies to all Divi buttons) ---------- */
a.et_pb_button{
  /* layout */
  --h: 54px;        /* height AND icon width (square) */
  --gap: 3px;       /* see-through gap width */
  --pad-x: 28px;    /* left padding for text */

  /* colours (DEFAULT variant; overridden below) */
  --btn-bg: #1e1e1e;
  --icon-bg: #1e1e1e;
  --btn-bg-hover: #ffffff;
  --icon-bg-hover: #ffffff;
  --text: #ffffff;
  --text-hover: #1e1e1e;

  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;

  min-height: var(--h) !important;

  /* reserve space for icon + gap + right padding */
  padding: 0 calc(var(--h) + var(--gap) + var(--pad-x)) 0 var(--pad-x) !important;

  /* true "hole" for the gap using a transparent slice */
  background: linear-gradient(
    to right,
    var(--btn-bg) 0,
    var(--btn-bg) calc(100% - (var(--h) + var(--gap))),
    transparent  calc(100% - (var(--h) + var(--gap))),
    transparent  calc(100% - var(--h)),
    var(--btn-bg) calc(100% - var(--h)),
    var(--btn-bg) 100%
  ) !important;

  color: var(--text) !important;
  font-weight: 500 !important;

  overflow: visible !important;
  line-height: 1 !important;
  text-decoration: none;

  /* instant hover (no fade) */
  transition: none !important;
	border-bottom:none!important;
}

/* icon block (square) */
a.et_pb_button::after{
  content: "\35" !important;            /* DEFAULT ICON (change if desired) */
  font-family: "ETmodules" !important;

  position: absolute !important;
  top: 0; bottom: 0;
  right: 0 !important;

  width: var(--h) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;

  background: var(--icon-bg) !important;
  color: var(--icon-text) !important;

  /* always visible, no Divi animation */
  opacity: 1 !important;
  transform: none !important;
  margin-left: 0 !important;
  animation: none !important;
  transition: none !important;

  /* ensures hover is consistent regardless of icon area */
  pointer-events: none !important;
}

/* If Divi has a chosen icon, use it */
a.et_pb_button[data-icon]::after{
  content: attr(data-icon) !important;
}

/* hover: keep padding locked so Divi can't animate it */
a.et_pb_button:hover{
  padding: 0 calc(var(--h) + var(--gap) + var(--pad-x)) 0 var(--pad-x) !important;

  background: linear-gradient(
    to right,
    var(--btn-bg-hover) 0,
    var(--btn-bg-hover) calc(100% - (var(--h) + var(--gap))),
    transparent          calc(100% - (var(--h) + var(--gap))),
    transparent          calc(100% - var(--h)),
    var(--btn-bg-hover)  calc(100% - var(--h)),
    var(--btn-bg-hover)  100%
  ) !important;

  color: var(--text-hover) !important;
  transition: none !important;
}

a.et_pb_button:hover::after{
  background: var(--icon-bg-hover) !important;
  transition: none !important;
}

/* ---------- Variant 2: for DARK GREY background sections ---------- */
/* Add class "section-dark" to the Section/Row in Divi */
.section-dark a.et_pb_button{
  --btn-bg: #bb001f;
  --icon-bg: #bb001f;

  --btn-bg-hover: #ffffff;
  --icon-bg-hover: #ffffff;

  --text: #ffffff;
  --text-hover: #1e1e1e;
}

/* ---------- Variant 3: for LIGHT/WHITE background sections ---------- */
/* Add class "section-light" to the Section/Row in Divi */
.section-light a.et_pb_button{
  --btn-bg: #1e1e1e;
  --icon-bg: #1e1e1e;

  --btn-bg-hover: #bb001f;
  --icon-bg-hover: #bb001f;

  --text: #ffffff;
  --text-hover: #ffffff;
}

/* ---------- Optional: Opt-out class (disable split icon styling) ---------- */
/* Add class "no-split-icon" to any button to return to normal */
a.et_pb_button.no-split-icon{
  background: initial !important;
  padding: 14px 24px !important;
  min-height: initial !important;
}
a.et_pb_button.no-split-icon::after{
  content: none !important;
}

/* ==== FIX: force hover text + icon colour (wins vs Divi) ==== */

/* Set explicit icon/text colour vars (defaults follow text vars) */
a.et_pb_button{
  --icon-text: var(--text);
  --icon-text-hover: var(--text-hover);
}

/* Stronger specificity than Divi */
body a.et_pb_button:hover,
body .et_pb_button_module_wrapper a.et_pb_button:hover{
  color: var(--text-hover) !important;
}

/* Force icon colour too (don’t rely on currentColor) */
body a.et_pb_button::after{
  color: var(--icon-text) !important;
}
body a.et_pb_button:hover::after,
body .et_pb_button_module_wrapper a.et_pb_button:hover::after{
  color: var(--icon-text-hover) !important;
}


/* ================================
   CTA MODULE BUTTON FIXES
   - Apply split-icon styling to Call To Action buttons too
   - Make CTA buttons full width
   ================================ */

/* CTA wrapper contains a button wrapper that can override button display/width */
.et_pb_call_to_action .et_pb_button_wrapper{
  width: 100% !important;
}

/* Make CTA buttons full width + keep your split-icon layout intact */
.et_pb_call_to_action .et_pb_button_wrapper a.et_pb_button,
.et_pb_call_to_action .et_pb_promo_button.et_pb_button{
  width: 100% !important;
  display: inline-flex !important; /* keep your icon block working */
  justify-content: center !important; /* center text nicely on full-width */
  box-sizing: border-box !important;
}

/* If Divi is forcing a CTA-specific background/border, neutralise it */
.et_pb_call_to_action a.et_pb_button{
  background-image: none !important;
}

/* Ensure your hover text/icon colours win inside CTA module */
body .et_pb_call_to_action a.et_pb_button:hover{
  color: var(--text-hover) !important;
}

body .et_pb_call_to_action a.et_pb_button::after{
  color: var(--icon-text) !important;
}

body .et_pb_call_to_action a.et_pb_button:hover::after{
  color: var(--icon-text-hover) !important;
}

/* Keep padding locked (Divi CTA can try to animate/adjust it) */
.et_pb_call_to_action .et_pb_button_wrapper a.et_pb_button:hover,
.et_pb_call_to_action .et_pb_promo_button.et_pb_button:hover{
  padding: 0 calc(var(--h) + var(--gap) + var(--pad-x)) 0 var(--pad-x) !important;
}

/* Service Columns button align */
.service-col .et_pb_image{
  margin-bottom: 20px;
}

.service-col .service-card{
  margin-bottom: 0;
}

.service-col .service-card .et_pb_button_wrapper{
  margin-top: 20px;
}

.service-col .service-card .et_pb_promo_description p{
  margin-bottom: 10px;
}

.service-col .service-card h4{
  margin-bottom: 10px;
}


/* Very wide screens */
@media (min-width: 1401px){
  .service-col .service-card .et_pb_promo_description{
    min-height: 200px !important;
  }
}

/* Large desktop */
@media (min-width: 1281px) and (max-width: 1400px){
  .service-col .service-card .et_pb_promo_description{
    min-height: 240px !important;
  }
}

/* Desktop and laptop */
@media (min-width: 1061px) and (max-width: 1280px){
  .service-col .service-card .et_pb_promo_description{
    min-height: 280px !important;
  }
}

/* Narrow desktop */
@media (min-width: 981px) and (max-width: 1060px){
  .service-col .service-card .et_pb_promo_description{
    min-height: 305px !important;
  }
}

/* Tablet and below */
@media (max-width: 980px){
  .service-col .service-card .et_pb_promo_description{
    min-height: auto !important;
  }
}
/* ============================================================
   DIVI CTA (Call To Action / Promo) — FORCE FULL WIDTH BUTTON
   (Safe for split-icon ::after)
   ============================================================ */

/* The CTA module is usually .et_pb_promo (not always .et_pb_call_to_action) */
body .et_pb_promo .et_pb_button_wrapper,
body .et_pb_call_to_action .et_pb_button_wrapper{
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
}

/* Make the CTA button fill the available width */
body .et_pb_promo .et_pb_button_wrapper a.et_pb_button,
body .et_pb_promo a.et_pb_promo_button.et_pb_button,
body .et_pb_call_to_action .et_pb_button_wrapper a.et_pb_button,
body .et_pb_call_to_action a.et_pb_promo_button.et_pb_button{
  display: flex !important;          /* important: avoids “shrink-to-content” behaviour */
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;

  /* If Divi is floating it, kill that */
  float: none !important;

  /* keep your icon system intact */
  align-items: center !important;
}


/* Module-level theme overrides (works on Button + CTA modules) */
.theme-dark a.et_pb_button,
.theme-dark .et_pb_promo_button.et_pb_button{
  --btn-bg: #bb001f;
  --icon-bg: #bb001f;
  --btn-bg-hover: #ffffff;
  --icon-bg-hover: #ffffff;
  --text: #ffffff;
  --text-hover: #1e1e1e;
}

.theme-light a.et_pb_button,
.theme-light .et_pb_promo_button.et_pb_button{
  --btn-bg: #1e1e1e;
  --icon-bg: #1e1e1e;
  --btn-bg-hover: #bb001f;
  --icon-bg-hover: #bb001f;
  --text: #ffffff;
  --text-hover: #ffffff;
}

.theme-black-white a.et_pb_button,
.theme-black-white .et_pb_promo_button.et_pb_button{
  --btn-bg: #1e1e1e;
  --icon-bg: #1e1e1e;
  --btn-bg-hover: #ffffff;
  --icon-bg-hover: #ffffff;
  --text: #ffffff;
  --text-hover: #1e1e1e;
}


.et_pb_column_1_2 .et_pb_promo, .et_pb_column_1_3 .et_pb_promo, .et_pb_column_1_4 .et_pb_promo, .et_pb_column_1_5 .et_pb_promo, .et_pb_column_1_6 .et_pb_promo, .et_pb_column_2_5 .et_pb_promo, .et_pb_column_3_5 .et_pb_promo {
padding: 20px 30px 30px!important;}

/* ================================
   Navigation
   ================================ */

/* ================================
   MOBILE BREAKPOINT (header switch)
   ================================ */

.et_mobile_nav_menu,
#nav-mob{
  display:none;
}

@media (max-width:1100px){

  .et_mobile_nav_menu,
  #nav-mob{
    display:block;
  }

  .et-menu-nav,
  #nav-top,
  .hide-mobile{
    display:none!important;
  }

  .nav-button a{
    margin-top:16px!important;
  }
}

:root{
  --header-offset: 140px;
}

/* ---------------------------
   Standard pages you choose
   --------------------------- */
body.has-header-offset:not(.et-fb) #main-content .et_pb_section:first-of-type,
body.has-header-offset:not(.et-fb) #main-content .et_pb_fullwidth_section:first-of-type{
  padding-top: var(--header-offset) !important;
}

body.has-header-offset.admin-bar:not(.et-fb) #main-content .et_pb_section:first-of-type,
body.has-header-offset.admin-bar:not(.et-fb) #main-content .et_pb_fullwidth_section:first-of-type{
  padding-top: calc(var(--header-offset) + 32px) !important;
}

/* ---------------------------
   Pages using Theme Builder custom body
   --------------------------- */
body:not(.et-fb) #main-content > .et-l--body > .et_builder_inner_content > .et_pb_section:first-child,
body:not(.et-fb) #main-content > .et-l--body > .et_builder_inner_content > .et_pb_fullwidth_section:first-child{
  padding-top: var(--header-offset) !important;
}

body.admin-bar:not(.et-fb) #main-content > .et-l--body > .et_builder_inner_content > .et_pb_section:first-child,
body.admin-bar:not(.et-fb) #main-content > .et-l--body > .et_builder_inner_content > .et_pb_fullwidth_section:first-child{
  padding-top: calc(var(--header-offset) + 32px) !important;
}

/* ---------------------------
   Reset nested Divi content blocks
   --------------------------- */
body:not(.et-fb) .et-l--post > .et_builder_inner_content > .et_pb_section:first-child,
body:not(.et-fb) .et-l--post > .et_builder_inner_content > .et_pb_fullwidth_section:first-child{
  padding-top: 0 !important;
}

body.admin-bar:not(.et-fb) .et-l--post > .et_builder_inner_content > .et_pb_section:first-child,
body.admin-bar:not(.et-fb) .et-l--post > .et_builder_inner_content > .et_pb_fullwidth_section:first-child{
  padding-top: 0 !important;
}


/* ================================
   THEME BUILDER HEADER
   Frontend only - do not affect Divi Builder
   ================================ */

body:not(.et-fb) #et-boc .et-l--header{
  position:absolute;
  top:0;
  left:0;
  right:0;
  width:100%;
  z-index:99999;
  background:transparent!important;
}

body:not(.et-fb) #et-boc .et-l--header .et_pb_sticky,
body:not(.et-fb) #et-boc .et-l--header .et_pb_sticky--top{
  position:fixed!important;
  top:0!important;
  left:0;
  right:0;
  width:100%;
}

body:not(.et-fb) #page-container{
  padding-top:0!important;
}

body.admin-bar:not(.et-fb) #et-boc .et-l--header{
  top:32px!important;
}

body.admin-bar:not(.et-fb) #top-bar-desktop.et_pb_sticky,
body.admin-bar:not(.et-fb) #top-bar-mob.et_pb_sticky,
body.admin-bar:not(.et-fb) #nav-top.et_pb_sticky,
body.admin-bar:not(.et-fb) #nav-mob.et_pb_sticky{
  top:32px!important;
}

/* ================================
   MPS NAV (glass row)
   ================================ */

:root{
  --mps-grey:22,22,22;
  --mps-alpha:0.88;
  --mps-blur:12px;
  --mps-sat:100%;
  --mps-cut:16px;
}

#nav-top,
#nav-mob{
  background:transparent!important;
}

#nav-top::before,
#nav-top::after,
#nav-mob::before,
#nav-mob::after{
  content:none!important;
}

#top-bar-desktop,
#top-bar-mob,
#top-bar-desktop .et_pb_row,
#top-bar-mob .et_pb_row,
#top-bar-desktop .et_pb_column,
#top-bar-mob .et_pb_column,
#top-bar-desktop .et_pb_menu,
#top-bar-mob .et_pb_menu,
#top-bar-desktop .et_pb_menu_inner_container,
#top-bar-mob .et_pb_menu_inner_container,
#lvl1-nav{
  background:transparent!important;
}

/* Desktop nav: solid when fixed, glass when sticky (diagonal always) */

#top-bar-desktop{
  position:relative;
  overflow:hidden;
  isolation:isolate;
/* Adds diagonal cut not right of nav 
  -webkit-clip-path:polygon(
    0 0,
    calc(100% - var(--mps-cut)) 0,
    100% var(--mps-cut),
    100% 100%,
    0 100%
  );
  clip-path:polygon(
    0 0,
    calc(100% - var(--mps-cut)) 0,
    100% var(--mps-cut),
    100% 100%,
    0 100%
  );*/

  background:#1e1e1e!important;
}

#top-bar-desktop > *{
  position:relative;
  z-index:2;
}

#top-bar-desktop::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  opacity:0;
  background:rgba(42,42,42,0.72);
  transition:opacity .2s ease;
}

/* Sticky glass */

#top-bar-desktop.et_pb_sticky,
#top-bar-desktop.et_pb_sticky--top{
  background:rgba(42,42,42,0.10)!important;
  -webkit-backdrop-filter:blur(var(--mps-blur)) saturate(var(--mps-sat));
  backdrop-filter:blur(var(--mps-blur)) saturate(var(--mps-sat));
}

#top-bar-desktop.et_pb_sticky::before,
#top-bar-desktop.et_pb_sticky--top::before{
  opacity:1;
}

/* Parent-applied sticky support */

#nav-top.et_pb_sticky #top-bar-desktop,
#nav-top.et_pb_sticky--top #top-bar-desktop,
#et-boc .et-l--header .et_pb_sticky #top-bar-desktop,
#et-boc .et-l--header .et_pb_sticky--top #top-bar-desktop{
  background:rgba(42,42,42,0.10)!important;
  -webkit-backdrop-filter:blur(var(--mps-blur)) saturate(var(--mps-sat));
  backdrop-filter:blur(var(--mps-blur)) saturate(var(--mps-sat));
}

#nav-top.et_pb_sticky #top-bar-desktop::before,
#nav-top.et_pb_sticky--top #top-bar-desktop::before,
#et-boc .et-l--header .et_pb_sticky #top-bar-desktop::before,
#et-boc .et-l--header .et_pb_sticky--top #top-bar-desktop::before{
  opacity:1;
}

#top-bar-desktop::after,
#top-bar-mob::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  border:1px solid var(--mps-border);
  -webkit-clip-path:inherit;
  clip-path:inherit;
}

.et_pb_sticky,
.et_pb_sticky--top,
.et_pb_sticky_module{
  transform:none!important;
}

/* ================================
   MOBILE MENU ICON (burger → X)
   ================================ */

:root{
  --burger-long:46px;
  --burger-med:32px;
  --burger-short:20px;
  --burger-h:3px;
  --burger-gap:10px;
  --burger-col:#fff;
  --burger-hover:#bb001f;
}

.et_pb_menu .mobile_nav .mobile_menu_bar{
  position:relative;
  display:inline-block;
  width:var(--burger-long);
  height:calc(var(--burger-h)*3 + var(--burger-gap)*2);
  cursor:pointer;
  background:
    linear-gradient(var(--burger-col), var(--burger-col))
    right calc(var(--burger-h) + var(--burger-gap))
    / var(--burger-med) var(--burger-h)
    no-repeat;
  transition:background .18s ease;
}

.et_pb_menu .mobile_nav .mobile_menu_bar:before{
  content:""!important;
  font-size:0!important;
}

.et_pb_menu .mobile_nav .mobile_menu_bar::before{
  content:"";
  position:absolute;
  right:0;
  top:0;
  width:var(--burger-long);
  height:var(--burger-h);
  background:var(--burger-col);
  transition:all .18s ease;
}

.et_pb_menu .mobile_nav .mobile_menu_bar::after{
  content:"";
  position:absolute;
  right:0;
  top:calc((var(--burger-h)*2) + (var(--burger-gap)*2));
  width:var(--burger-short);
  height:var(--burger-h);
  background:var(--burger-col);
  transition:all .18s ease;
}

.et_pb_menu .mobile_nav:hover .mobile_menu_bar{
  background:
    linear-gradient(var(--burger-hover), var(--burger-hover))
    right calc(var(--burger-h) + var(--burger-gap))
    / var(--burger-long) var(--burger-h)
    no-repeat;
}

.et_pb_menu .mobile_nav:hover .mobile_menu_bar::before,
.et_pb_menu .mobile_nav:hover .mobile_menu_bar::after{
  background:var(--burger-hover);
}

.et_pb_menu .mobile_nav:hover .mobile_menu_bar::after{
  width:var(--burger-med);
}

.et_pb_menu .mobile_nav.opened .mobile_menu_bar{
  background:none;
}

.et_pb_menu .mobile_nav.opened .mobile_menu_bar::before{
  top:50%;
  width:var(--burger-long);
  transform:translateY(-50%) rotate(45deg);
}

.et_pb_menu .mobile_nav.opened .mobile_menu_bar::after{
  top:50%;
  width:var(--burger-long);
  transform:translateY(-50%) rotate(-45deg);
}

/* ================================
   MOBILE MENU BASE
   ================================ */

html{
  height:-webkit-fill-available;
}

.et_mobile_menu{
  border-top:0;
  padding-top:0!important;
}

.et_mobile_menu li{
  text-align:center!important;
}

.et_mobile_menu li li,
.et_mobile_menu li ul{
  padding-left:0!important;
}

.mobile_nav.opened .et_mobile_menu{
  display:block!important;
}

.et_mobile_menu a{
  font-weight:400!important;
}

/* ================================
   RESPONSIVE
   ================================ */

@media (max-width:980px){
  :root{ --header-offset:110px; }
}

@media (max-width:767px){
  :root{ --header-offset:95px; }
}


@media (max-width:782px){

  body.admin-bar:not(.et-fb) .et-l--body > .et_builder_inner_content > .et_pb_section:first-of-type,
  body.admin-bar:not(.et-fb) .et-l--body > .et_builder_inner_content > .et_pb_fullwidth_section:first-of-type{
    padding-top:calc(var(--header-offset) + 46px)!important;
  }
	
  body.admin-bar #et-boc .et-l--header{
    top:46px!important;
  }

  body.admin-bar #top-bar-desktop.et_pb_sticky,
  body.admin-bar #top-bar-mob.et_pb_sticky,
  body.admin-bar #nav-top.et_pb_sticky,
  body.admin-bar #nav-mob.et_pb_sticky{
    top:46px!important;
  }
}

@media (max-width:1100px){
  .et_pb_menu .mobile_nav.opened #mobile_menu1,
  .et_pb_menu .mobile_nav.opened #mobile_menu2{
    position:fixed!important;
    left:2vw!important;
    right:2vw!important;
    width:auto!important;
    max-width:none!important;
    top:var(--header-offset,95px)!important;
    margin:0!important;
    transform:none!important;
    box-sizing:border-box!important;
    z-index:999999!important;
  }

  #mobile_menu1,
  #mobile_menu2,
  #mobile_menu1 li,
  #mobile_menu2 li{
    padding:0!important;
    margin:0!important;
  }

  #mobile_menu1 li a,
  #mobile_menu2 li a{
    display:block!important;
    padding:16px 0!important;
    margin:0!important;
    border-bottom:1px solid rgba(255,255,255,.15)!important;
    opacity:1!important;
    color:#fff!important;
    transition:background-color .2s ease, color .2s ease!important;
  }

  #mobile_menu1 li:last-child a,
  #mobile_menu2 li:last-child a{
    border-bottom:none!important;
  }

  #mobile_menu1 li:hover > a,
  #mobile_menu2 li:hover > a{
    background-color:#333333!important;
    color:#fff!important;
    opacity:1!important;
  }
}

/* =========================================
   DIAGONAL CUT ON BUTTON TOP-RIGHT (VISIBLE)
   ========================================= */

a.et_pb_button{
  --corner-cut: 16px; /* change this once for all buttons */
  -webkit-clip-path: polygon(
    0 0,
    calc(100% - var(--corner-cut)) 0,
    100% var(--corner-cut),
    100% 100%,
    0 100%
  ) !important;
  clip-path: polygon(
    0 0,
    calc(100% - var(--corner-cut)) 0,
    100% var(--corner-cut),
    100% 100%,
    0 100%
  ) !important;
}


/* ================================
   COLUMN CORNER CUT (TOP-RIGHT)
   Add class: corner-cut-tr
   Tweak: --cut
   ================================ */

.corner-cut-tr{
  --cut: 16px;                 /* corner size */
  position: relative;
  overflow: hidden;            /* important so contents respect the cut */
  -webkit-clip-path: polygon(0 0, calc(100% - var(--cut)) 0, 100% var(--cut), 100% 100%, 0 100%);
  clip-path: polygon(0 0, calc(100% - var(--cut)) 0, 100% var(--cut), 100% 100%, 0 100%);
}

/* Testimonials */

.et_pb_testimonial:before {font-size: 40px; border-radius: 40px; top: -25px; margin-left: -25px; padding: 10px; background-color: #1e1e1e;
content: "\76"!important;}
.et_pb_testimonial_author {margin-top: 22px!important;}

/* Page Layouts */
@media (min-width:981px) {
	.page-template-default .et_builder_inner_content .et_pb_row_1_tb_body {padding: 2% 0 0 0!important;}
}

/* UK Threat Level Plugin */
.threat-level {
  display: block;
  width: 100%;
  padding: 0;
  background: transparent !important;
  color: #ffffff;
}

.threat-level h3 {
  margin: 0 0 12px;
  color: #ffffff;
}

.threat-level h3 strong {
  font-weight: 500;
}

.threat-level-low h3 strong { color: #6fcf97; }
.threat-level-moderate h3 strong { color: #f2c94c; }
.threat-level-substantial h3 strong { color: #f2994a; }
.threat-level-severe h3 strong { color: #eb5757; }
.threat-level-critical h3 strong { color: #c0392b; }

.threat-level p {
  margin: 0;
  font-size: clamp(16px, 1vw + 12px, 18px) !important;
  line-height: 1.65;
  color: #ffffff;
}

/* Link styling */
.threat-level a {color: #ffffff; text-decoration: none;}
.threat-level a:hover {color: #d9d9d9 !important;}

/* Keep desktop dropdown above page content */
#nav-top,
#top-bar-desktop,
#top-bar-desktop .et_pb_menu,
#top-bar-desktop .et_pb_menu__wrap,
#top-bar-desktop .et-menu-nav{
  position:relative;
  z-index:99999!important;
}

#top-bar-desktop .et-menu li ul{
  z-index:999999!important;
}

#top-bar-desktop{
  overflow:visible;
}


/* Wider desktop dropdown menus */
@media (min-width:1101px){

  #top-bar-desktop .et-menu-nav li ul{
    width:420px!important;
  }

  #top-bar-desktop .et-menu-nav li li{
    width:100%!important;
    padding:0!important;
  }

  #top-bar-desktop .et-menu-nav li li a{
    width:100%!important;
    padding:12px 24px!important;
    box-sizing:border-box;
    white-space:normal;
    font-size:15px!important;
    line-height:1.4em!important;
  }
}


/* =========================================
   DIVI 5 - RESTORE SPLIT BUTTON PADDING
   ========================================= */

body #page-container .et_pb_section a.et_pb_button {
    padding: 0 calc(var(--h) + var(--gap) + var(--pad-x)) 0 var(--pad-x) !important;
}

body #page-container .et_pb_section a.et_pb_button:hover {
    padding: 0 calc(var(--h) + var(--gap) + var(--pad-x)) 0 var(--pad-x) !important;
}

/* =========================================
   DIVI 5 MOBILE MENU - SCROLL INSIDE MENU
   ========================================= */

@media (max-width:1100px){

  .et_pb_menu .mobile_nav.opened #mobile_menu1,
  .et_pb_menu .mobile_nav.opened #mobile_menu2{
    bottom:0 !important;
    max-height:calc(100dvh - var(--header-offset,95px)) !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
  }

  body:has(.mobile_nav.opened){
    overflow:hidden;
  }
}

/* =========================================
   DIVI 5 MOBILE MENU - COLLAPSIBLE SUBMENUS
   Parent text remains clickable to hub page
   ========================================= */

@media (max-width:1100px){

  /* Parent menu item */
  #mobile_menu1 > li.menu-item-has-children,
  #mobile_menu2 > li.menu-item-has-children{
    position:relative;
  }

  /* Leave room for separate toggle arrow */
  #mobile_menu1 > li.menu-item-has-children > a,
  #mobile_menu2 > li.menu-item-has-children > a{
    padding-left:50px !important;
    padding-right:50px !important;
  }

  /* Hide child menus by default */
  #mobile_menu1 > li.menu-item-has-children > ul.sub-menu,
  #mobile_menu2 > li.menu-item-has-children > ul.sub-menu{
    display:none !important;
  }

  /* Show when opened */
  #mobile_menu1 > li.menu-item-has-children.mps-submenu-open > ul.sub-menu,
  #mobile_menu2 > li.menu-item-has-children.mps-submenu-open > ul.sub-menu{
    display:block !important;
  }

  /* Separate arrow button */
  .mps-submenu-toggle{
    position:absolute;
    top:0;
    right:0;
    width:54px;
    height:57px;
    padding:0;
    margin:0;
    border:0;
    background:#bb001f !important; /*background:transparent;*/
    color:#fff;
    cursor:pointer;
    z-index:5;
  }

  /* Chevron */
  .mps-submenu-toggle::before{
    content:"";
    position:absolute;
    top:50%;
    left:50%;
    width:9px;
    height:9px;
    border-right:2px solid currentColor;
    border-bottom:2px solid currentColor;
    transform:translate(-50%,-65%) rotate(45deg);
    transition:transform .2s ease;
  }

  /* Turn arrow upwards when open */
  .mps-submenu-open > .mps-submenu-toggle::before{
    transform:translate(-50%,-35%) rotate(225deg);
  }

  .mps-submenu-toggle:hover{
    background:#333333;
  }

  /* Slight visual distinction for child links */
  #mobile_menu1 > li > ul.sub-menu > li > a,
  #mobile_menu2 > li > ul.sub-menu > li > a{
    font-size:0.92em !important;
    background:rgba(255,255,255,0.025);
  }
}

@media (max-width:1100px){
  .mps-submenu-toggle{background:#bb001f !important;}
	#mobile_menu1 > li > ul.sub-menu > li > a,
  #mobile_menu2 > li > ul.sub-menu > li > a{
    padding-top:12px !important;
    padding-bottom:12px !important;
    line-height:1.35em !important;
  }
}

/* Divi 5 - restore mobile spacing on Theme Builder page headers */

@media (max-width:767px){
  body.has-header-offset:not(.et-fb) #main-content .et_pb_section:first-of-type,
  body.has-header-offset:not(.et-fb) #main-content .et_pb_fullwidth_section:first-of-type,
  body:not(.et-fb) #main-content > .et-l--body > .et_builder_inner_content > .et_pb_section:first-child,
  body:not(.et-fb) #main-content > .et-l--body > .et_builder_inner_content > .et_pb_fullwidth_section:first-child{
    padding-top:172px !important;}
}

/* =========================================
   MPS DESKTOP MEGA MENU
   Services + Sectors
   ========================================= */

@media (min-width:1101px){

  /* Full-width nav becomes positioning reference */
  #nav-top{overflow:visible !important;}
  #top-bar-desktop{position:relative !important; overflow:visible !important;}

  /* Allow submenu to position relative to #nav-top */
  #top-bar-desktop .et_pb_row,
  #top-bar-desktop .et_pb_column,
  #top-bar-desktop .et_pb_menu,
  #top-bar-desktop .et_pb_menu_inner_container,
  #top-bar-desktop .et_pb_menu__wrap,
  #top-bar-desktop .et-menu-nav,
  #top-bar-desktop .et-menu{
    position:static !important;
    overflow:visible !important;
  }

  #top-bar-desktop .et-menu-nav > ul > li.mps-mega-menu{
    position:static !important;
  }

  /* Full-width dropdown */
  #top-bar-desktop .et-menu-nav > ul > li.mps-mega-menu > ul.sub-menu{
    position:absolute !important;

    top:100% !important;
left:50% !important;
right:auto !important;

width:96vw !important;
max-width:none !important;
transform:translateX(-50%) !important;

    padding:14px 28px !important;
    margin:0 !important;

    background:#1e1e1e !important;

    border-top:3px solid #bb001f !important;
    border-bottom:2px solid #ffffff !important;

    box-sizing:border-box !important;

    column-count:4;
    column-gap:28px;

    z-index:999999 !important;

    display:block !important;
    visibility:hidden !important;
    opacity:0 !important;
    pointer-events:none !important;

    transition:opacity .12s ease;
  }

  /* Open state added by JS */
  #top-bar-desktop .et-menu-nav > ul > li.mps-mega-menu.mps-mega-open > ul.sub-menu{
    visibility:visible !important;
    opacity:1 !important;
    pointer-events:auto !important;
  }

  /* Menu items */
  #top-bar-desktop .et-menu-nav > ul > li.mps-mega-menu > ul.sub-menu > li{
    display:block !important;
    width:100% !important;

    margin:0 !important;
    padding:0 !important;

    break-inside:avoid;
    -webkit-column-break-inside:avoid;
  }

  /* Entire icon + text area clickable */
  #top-bar-desktop .et-menu-nav > ul > li.mps-mega-menu > ul.sub-menu > li > a{
    display:flex !important;
    align-items:center !important;
    gap:12px;

    width:100% !important;
    min-height:46px !important;

    padding:5px 10px !important;
    margin:0 0 2px 0 !important;

    box-sizing:border-box !important;

    background:transparent !important;
    color:#ffffff !important;

    font-size:15px !important;
    line-height:1.3em !important;

    white-space:normal !important;
    border:none !important;
  }

  #top-bar-desktop .et-menu-nav > ul > li.mps-mega-menu > ul.sub-menu > li > a:hover{
    background:#333333 !important;
    color:#ffffff !important;
    opacity:1 !important;
  }

  /* Featured SVG/icon */
  #top-bar-desktop .mps-mega-menu .mps-menu-icon{
    display:block !important;

    width:38px !important;
    height:38px !important;
    min-width:38px !important;
    max-width:38px !important;

    flex:0 0 38px !important;
    object-fit:contain;
  }

  #top-bar-desktop .mps-mega-menu .mps-menu-label{
    display:block;
    flex:1 1 auto;
  }

}


/* Three columns */
@media (min-width:1281px) and (max-width:1500px){

  #top-bar-desktop .et-menu-nav > ul > li.mps-mega-menu > ul.sub-menu{
    column-count:3;
  }

}


/* Two columns before mobile menu takes over */
@media (min-width:1101px) and (max-width:1280px){

  #top-bar-desktop .et-menu-nav > ul > li.mps-mega-menu > ul.sub-menu{
    column-count:2;
  }

}


/* No featured images in mobile accordion */
@media (max-width:1100px){

  .mps-menu-icon{
    display:none !important;
  }

}

/* Keep top-level Services / Sectors red while mega menu is open */
#top-bar-desktop .et-menu-nav > ul > li.mps-mega-menu.mps-mega-open > a{
  color:#bb001f !important;
}

/* Keep Divi dropdown arrow red too */
#top-bar-desktop .et-menu-nav > ul > li.mps-mega-menu.mps-mega-open > a::after{
  color:#bb001f !important;
}

/* =========================================
   MPS CONTACT FORM - SHOW LABELS
   ========================================= */

.mps-contact-form .et_pb_contact_form_label{
    display:block !important;
    position:relative !important;
    width:auto !important;
    height:auto !important;
    margin:0 0 8px 0 !important;
    padding:0 !important;
    overflow:visible !important;
    clip:auto !important;
    clip-path:none !important;
    white-space:normal !important;
    color:#ffffff !important;
    font-size:16px !important;
    line-height:1.3em !important;
    font-weight:400 !important;
}

.mps-contact-form input::placeholder,
.mps-contact-form textarea::placeholder{
    color:transparent !important;
    opacity:0 !important;
}

/* Space between each complete field group */
.mps-contact-form .et_pb_contact_field{
    margin-bottom:24px !important;
}

/* Keep label close to its own field */
.mps-contact-form .et_pb_contact_form_label{
    margin:0!important;
}

/* Remove any extra space above the input itself */
.mps-contact-form .et_pb_contact_field input,
.mps-contact-form .et_pb_contact_field textarea,
.mps-contact-form .et_pb_contact_field select{
    margin-top:0 !important;
}

/* Tighten label-to-input spacing inside each field */
.mps-contact-form .et_pb_contact_field{
    display:flex !important;
    flex-direction:column !important;
    gap:4px !important;
}

/* Keep field groups separated from each other */
.mps-contact-form .et_pb_contact_field{
    margin-bottom:22px !important;
}

/* =========================================
   MPS CONTACT FORM - SUBMIT BUTTON
   ========================================= */

.mps-contact-form .et_pb_contact_submit{
    background:#bb001f !important;
    color:#ffffff !important;

    border:0 !important;
    border-radius:0 !important;

    padding:14px 24px !important;

    font-size:16px !important;
    line-height:1.2em !important;
    font-weight:400 !important;

    min-height:48px !important;

    box-shadow:none !important;
}

.mps-contact-form .et_pb_contact_submit:hover{
    background:#1e1e1e !important;
    color:#ffffff !important;
}

/* =========================================
   MPS CONTACT FORM - SPLIT SUBMIT BUTTON
   No pseudo-elements
   ========================================= */

.mps-contact-form button.et_pb_contact_submit.et_pb_button{
    width:155px !important;
    height:50px !important;
    min-height:50px !important;
    max-height:50px !important;

    margin:0 0 0 18px !important;
    padding:0 58px 0 18px !important;

    border:0 !important;
    border-radius:0 !important;

    color:#ffffff !important;
    font-size:16px !important;
    line-height:50px !important;
    text-align:left !important;

    box-sizing:border-box !important;

    /* Red button + dark divider + white arrow */
    background-color:#bb001f !important;
    background-image:
        linear-gradient(
            to right,
            transparent calc(100% - 48px),
            #1e1e1e calc(100% - 48px),
            #1e1e1e calc(100% - 45px),
            transparent calc(100% - 45px)
        ),
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='24' viewBox='0 0 14 24'%3E%3Cpath d='M2 2l10 10L2 22' fill='none' stroke='%23ffffff' stroke-width='2.5'/%3E%3C/svg%3E") !important;

    background-repeat:no-repeat,no-repeat !important;
    background-position:center,right 16px center !important;
    background-size:100% 100%,10px 18px !important;

    /* Same angled corner language as your other buttons */
    clip-path:polygon(
        0 0,
        calc(100% - 10px) 0,
        100% 10px,
        100% 100%,
        0 100%
    ) !important;

    box-shadow:none !important;
}


/* Kill Divi's own icon completely */
.mps-contact-form button.et_pb_contact_submit.et_pb_button::before,
.mps-contact-form button.et_pb_contact_submit.et_pb_button::after{
    display:none !important;
    content:none !important;
}


/* Hover: white background / dark text + arrow */
.mps-contact-form button.et_pb_contact_submit.et_pb_button:hover{
    color:#333333 !important;

    background-color:#ffffff !important;
    background-image:
        linear-gradient(
            to right,
            transparent calc(100% - 48px),
            #1e1e1e calc(100% - 48px),
            #1e1e1e calc(100% - 45px),
            transparent calc(100% - 45px)
        ),
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='24' viewBox='0 0 14 24'%3E%3Cpath d='M2 2l10 10L2 22' fill='none' stroke='%23333333' stroke-width='2.5'/%3E%3C/svg%3E") !important;

    background-repeat:no-repeat,no-repeat !important;
    background-position:center,right 16px center !important;
    background-size:100% 100%,10px 18px !important;
}

/* Footer social + staff login row */
.footer-social-login {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    flex-wrap: nowrap !important;
    gap: 24px !important;
}

/* Let both Divi columns hug their contents */
.footer-social-login > .et_pb_column {
    width: auto !important;
    flex: 0 0 auto !important;
    margin: 0 !important;
}

/* Social module */
.footer-social-login .et_pb_social_media_follow {
    width: auto !important;
    margin: 0 !important;
    white-space: nowrap;
}

.footer-social-login .et_pb_social_media_follow li {
    margin: 6px !important;
}

/* Your compact social buttons */
.footer-social-login .et_pb_social_media_follow li a.icon {
    width: 42px !important;
    height: 42px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.footer-social-login .et_pb_social_media_follow li a.icon::before {
    font-size: 26px !important;
    line-height: 1 !important;
}

/* Staff login */
.footer-social-login .et_pb_button_module_wrapper {
    margin: 0 !important;
    width: auto !important;
}
@media (min-width: 768px) and (max-width: 1100px) {

    .footer-social-login {
        flex-wrap: wrap !important;
        gap: 16px !important;
    }

    .footer-social-login > .et_pb_column {
        flex: 0 0 auto !important;
        width: auto !important;
    }
}

/* Footer socials/login - narrow desktop */
@media (min-width: 981px) and (max-width: 1350px) {

  .footer-social-login {
    flex-wrap: wrap !important;
    gap: 14px !important;
  }

  .footer-social-login > .et_pb_column:first-child {
    width: auto !important;
    flex: 0 0 auto !important;
    margin: 0 !important;
  }

  .footer-social-login > .et_pb_column:nth-child(2) {
    width: 100% !important;
    flex: 0 0 100% !important;
    margin: 0 !important;
  }

  .footer-social-login .et_pb_button_module_wrapper {
    width: auto !important;
    display: inline-block !important;
  }
}

/* Staff login button - match social icon box height */
body #page-container a.et_pb_button.footer-staff-login,
body #page-container .footer-staff-login a.et_pb_button{
  --h: 42px !important;
  --pad-x: 20px !important;

  height: 42px !important;
  min-height: 42px !important;
  max-height: 42px !important;
}

body #page-container a.et_pb_button.footer-staff-login::after,
body #page-container .footer-staff-login a.et_pb_button::after{width: 42px !important;}
.footer-staff-login{transform: translateY(6px);}

/* Vanta globe over photographic background */
#js-globe canvas.vanta-canvas{
  mix-blend-mode: screen !important;
}

/* =========================================
   COOKIE YES COLOURS
   ========================================= */

.cky-btn-accept,
.cky-btn-reject {
	background: #BB001F !important;
	border-color: #BB001F !important;
	color: #fff !important;
}

.cky-btn-customize {
	background: transparent !important;
	border-color: #BB001F !important;
	color: #BB001F !important;
}

/* Hover */
.cky-btn-accept:hover,
.cky-btn-reject:hover {
	background: #1E1E1E !important;
	border-color: #1E1E1E !important;
	color: #fff !important;
}

.cky-btn-customize:hover {
	background: #BB001F !important;
	border-color: #BB001F !important;
	color: #fff !important;
}


/* Save Preferences button */
.cky-btn-preferences,
.cky-preference-content-wrapper .cky-btn {
	background: #BB001F !important;
	border-color: #BB001F !important;
	color: #fff !important;
}

.cky-btn-preferences:hover,
.cky-preference-content-wrapper .cky-btn:hover {
	background: #1E1E1E !important;
	border-color: #1E1E1E !important;
	color: #fff !important;
}

.cky-btn-revisit-wrapper {
	background: #BB001F !important;
	border: 2px solid #fff !important;
	box-shadow: 0 2px 8px rgba(0,0,0,0.18) !important;
}

.cky-btn-revisit-wrapper:hover {
	background: #1E1E1E !important;
	border-color: #fff !important;
}

/* Keep inner button transparent */
.cky-btn-revisit-wrapper .cky-btn-revisit {
	background: transparent !important;
}

.cky-switch input[type="checkbox"]:checked {
	background-color: #BB001F !important;
	border-color: #BB001F !important;
}

/* Keep unchecked state neutral */
.cky-switch input[type="checkbox"]:not(:checked) {
	background-color: #ECEEEF !important;
}

/* Keep toggle knob white */
.cky-switch input[type="checkbox"]::after {
	background-color: #fff !important;
}