/* ============================================================
   Hudson site colour system
   ------------------------------------------------------------
   Recolours themed elements according to the active
   body[data-colour="…"] (set by the colour switcher).

   Refactored from ~600 lines of per-theme duplication: each theme
   now defines three custom properties (primary / secondary /
   on-secondary) and every rule is written ONCE against those.
   The underlying palette still comes from the Elementor global
   colour variables (--e-global-color-*).
   ============================================================ */

/* ---- 1. Per-theme tokens ------------------------------------ */
/* Switcher order (2026): yellow, orange, pink, purple, blue, green(=default).
   --hc-primary   = the theme colour.
   --hc-secondary = the hover colour (designer's 2026 pairs: green<->blue,
                    purple<->pink, orange<->yellow).
   --hc-on-secondary = button text on hover = white for every theme. */
body[data-colour="yellow"] { --hc-primary:var(--e-global-color-9cf2d14); --hc-secondary:var(--e-global-color-c0d22e7); --hc-on-secondary:#fff; }
body[data-colour="orange"] { --hc-primary:var(--e-global-color-c0d22e7); --hc-secondary:var(--e-global-color-9cf2d14); --hc-on-secondary:#fff; }
body[data-colour="pink"]   { --hc-primary:var(--e-global-color-c1a15d8); --hc-secondary:var(--e-global-color-04e7660); --hc-on-secondary:#fff; }
body[data-colour="purple"] { --hc-primary:var(--e-global-color-04e7660); --hc-secondary:var(--e-global-color-c1a15d8); --hc-on-secondary:#fff; }
body[data-colour="blue"]   { --hc-primary:var(--e-global-color-b1cb24a); --hc-secondary:var(--e-global-color-accent);  --hc-on-secondary:#fff; }
body[data-colour="green"],
body[data-colour="default"]{ --hc-primary:var(--e-global-color-accent);  --hc-secondary:var(--e-global-color-b1cb24a); --hc-on-secondary:#fff; }

/* ---- 2. Primary colour ------------------------------------- */

/* fill */
body[data-colour] .social-icons.footer a svg path,
body[data-colour] .elementor-widget-container svg.customColour path,
body[data-colour] .team_member .meta svg path{
	fill:var(--hc-primary)!important;
}

/* background-color */
body[data-colour] .bgCustomColour,
body[data-colour] .elementor-widget-nav-menu .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item:before,
body[data-colour] .elementor-widget-nav-menu .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item:after,
body[data-colour] .bgCustomColour > div.elementor-widget-wrap,
body[data-colour] .bgCustomColour2 > div.elementor-widget-wrap,
body[data-colour] .owl-dots .owl-dot.active{
	background-color:var(--hc-primary)!important;
}

/* color */
body[data-colour] .elementor-element span.textCustomColour,
body[data-colour] .elementor-element .elementor-swiper-button.elementor-swiper-button-prev,
body[data-colour] .elementor-element .elementor-swiper-button.elementor-swiper-button-next,
body[data-colour] .elementor-element .uc_fbps_container_meta,
body[data-colour] .elementor-icon-list-text{
	color:var(--hc-primary)!important;
}

/* background (shorthand) — slick carousel arrows + active tab */
body[data-colour] .list-carousel-slick .slick-prev.style-2 .icon-wrap:before,
body[data-colour] .list-carousel-slick .slick-prev.style-2 .icon-wrap:after,
body[data-colour] .list-carousel-slick .slick-next.style-2 .icon-wrap:before,
body[data-colour] .list-carousel-slick .slick-next.style-2 .icon-wrap:after,
body[data-colour] .list-carousel-slick .slick-prev.style-5 .icon-wrap:before,
body[data-colour] .list-carousel-slick .slick-prev.style-5 .icon-wrap:after,
body[data-colour] .list-carousel-slick .slick-next.style-5 .icon-wrap:before,
body[data-colour] .list-carousel-slick .slick-next.style-5 .icon-wrap:after,
body[data-colour] .elementor-tab-title.elementor-active{
	background:var(--hc-primary)!important;
}

/* solid buttons, submit buttons, hover boxes, brand-list hover — bg + border */
body[data-colour] .btnCustomColour a,
body[data-colour] .elementor-field-type-submit button,
body[data-colour] .cstHoverBox:hover > .elementor-element-populated,
body[data-colour] .brand_list a:hover,
body[data-colour] .job_filters .search_submit input,
body[data-colour] .comment-form input.submit{
	background-color:var(--hc-primary)!important;
	border-color:var(--hc-primary)!important;
}

/* icon-list divider */
body[data-colour] .elementor-icon-list-item:not(:last-child):after{
	border-color:var(--hc-primary)!important;
}

/* outline button (.bbtnCustomColour) — primary outline */
body[data-colour] .bbtnCustomColour a{
	border-color:var(--hc-primary)!important;
	color:var(--hc-primary)!important;
}

/* header social icons follow the active theme colour (like the footer) */
body[data-colour] .elementor-location-header .social-icons.header a svg path{
	fill:var(--hc-primary)!important;
}

/* ---- 3. Secondary colour (hover states) -------------------- */

/* solid buttons + submits swap to secondary on hover */
body[data-colour] .btnCustomColour a:hover,
body[data-colour] .elementor-field-type-submit:hover button,
body[data-colour] .job_filters .search_submit input:hover,
body[data-colour] .comment-form input.submit:hover{
	background-color:var(--hc-secondary)!important;
	border-color:var(--hc-secondary)!important;
	color:var(--hc-on-secondary)!important;
}

/* outline button swaps its outline to the hover colour (secondary) on hover */
body[data-colour] .bbtnCustomColour a:hover{
	border-color:var(--hc-secondary)!important;
	color:var(--hc-secondary)!important;
}

/* ---- 4. Layout / misc (not colour-themed) ------------------ */
.social-icons a{ margin:0 10px; }
.social-icons a:last-child{ margin-right:0; }
/* Circular social-icon frames: the SVG carries a circular border path, so make
   the SVG box a circle too — this keeps the header-hover background fill round. */
.social-icons a svg{ border-radius:50%; }
.cky-consent-bar{ z-index:999999!important; }
.elementor-nav-menu--toggle .elementor-menu-toggle.elementor-active+.elementor-nav-menu__container{ height:100vh; }
.wpgmp_tabs_container{ top:0!important; right:0!important; }
