/* Small brand accents. Keep photography, body copy and approved case layouts intact. */
:root { --vj-accent: #ff4b00; --vj-accent-ink: var(--vj-accent); }
/* The theme's legacy peach accent now resolves to the same brand token. */
:root, body { --primary: var(--vj-accent) !important; }

body .swiper, body .swiper-container {
	--swiper-theme-color: var(--vj-accent);
	--swiper-pagination-color: var(--vj-accent);
	--swiper-navigation-color: var(--vj-accent);
}
body .swiper-pagination-bullet-active,
body .swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
	background: var(--vj-accent) !important;
}
/* The visible dot stays delicate; its transparent hit area is easier to tap. */
body.page-id-8653 .elementor-element-4bcc7ad0 .swiper-pagination-bullet {
	width: 10px; height: 10px; margin-inline: 8px; position: relative;
}
body.page-id-8653 .elementor-element-4bcc7ad0 .swiper-pagination-bullet::before {
	content: ""; position: absolute; inset: -7px; border-radius: 50%;
}
body .swiper-pagination-bullet:focus-visible {
	outline: 2px solid var(--vj-accent-ink); outline-offset: 5px;
}

@layer vj-brand-refinements {
	body .wcf__portfolio .title:is(:hover,:focus-visible),
	body .wcf__portfolio a:focus-visible .title {
		color: var(--vj-accent) !important;
	}
	/* Four service numbers form an orange thread through the homepage. */
	body.page-id-8653 :is(.elementor-element-1882f531,.elementor-element-4513167f,.elementor-element-336172f6,.elementor-element-550577c9) h2 {
		color: var(--vj-accent) !important;
		font-variant-numeric: tabular-nums;
	}
	/* Give project names the width currently consumed by the number-to-title gap. */
	body.page-id-8653 :is(.elementor-element-32f0078c,.elementor-element-29172640,.elementor-element-346d9d66,.elementor-element-27aee2f9) {
		width: 100% !important; max-width: 100% !important;
	}
	body.page-id-8653 .elementor-icon-box-wrapper {
		gap: clamp(24px, 3.5vw, 56px) !important; align-items: flex-start !important;
	}
	body.page-id-8653 .elementor-icon-box-icon {
		margin: 0 !important; flex: 0 0 28px !important;
	}
	body.page-id-8653 .elementor-icon-box-icon svg path { fill: var(--vj-accent) !important; }
	body.page-id-8653 .elementor-icon-box-content { min-width: 0; flex: 1; }
	body.page-id-8653 .elementor-icon-box-title {
		line-height: 1.3 !important; text-wrap: balance; margin-block: 0 14px !important;
	}
	body.page-id-8653 .elementor-icon-box-description {
		font-size: 16px !important; line-height: 1.7 !important; font-weight: 400 !important;
	}
	body.page-id-8653 :is(.elementor-element-7a971841,.elementor-element-1031ec9b,.elementor-element-6ce2493c,.elementor-element-1f8e9434) .wcf--title {
		text-wrap: balance; overflow-wrap: break-word;
	}
	body.page-id-8653 .wcf--text code {
		font: inherit !important; background: none; padding: 0;
	}
	/* Selected categories keep their black surface and gain a slim orange baseline. */
	body .vj-work-filter button.is-active {
		box-shadow: inset 0 -3px 0 var(--vj-accent) !important;
	}
	body .vj-work-filter button:is(:hover,:focus-visible) { border-color: var(--vj-accent) !important; }
	body :is(.vj-offcanvas-social__link,.wcf--social-icons .wcf-social-icon):is(:hover,:focus-visible) {
		color: var(--vj-accent) !important; border-color: var(--vj-accent) !important;
	}
	body :is(.vj-offcanvas-social__link,.wcf--social-icons .wcf-social-icon):is(:hover,:focus-visible) svg {
		fill: var(--vj-accent) !important;
	}
	body .offcanvas__menu-2 a:is(:hover,:focus-visible) .ha-nav-link { color: var(--vj-accent) !important; }
	body .offcanvas__contact a:is(:hover,:focus-visible) { color: var(--vj-accent) !important; }
	body .wcf__btn a:is(:hover,:focus-visible) { border-color: var(--vj-accent) !important; }
	body .wcf__btn a:is(:hover,:focus-visible) :is(i,svg) { color: var(--vj-accent) !important; fill: var(--vj-accent) !important; }
	/* Both collapsed plus and expanded minus use the same exact brand orange. */
	body:is(.page-id-2096, .page-id-12) .elementor-accordion-icon,
	body:is(.page-id-2096, .page-id-12) .elementor-accordion-icon i,
	body:is(.page-id-2096, .page-id-12) .elementor-accordion-icon i::before { color: var(--vj-accent) !important; }
	body:is(.page-id-2096, .page-id-12) .elementor-accordion-icon svg,
	body:is(.page-id-2096, .page-id-12) .elementor-accordion-icon svg path { fill: var(--vj-accent) !important; }
	body.page-id-8653 .elementor-element-71f94254 .quote,
	body.page-id-8653 .elementor-element-71f94254 .quote svg,
	body.page-id-8653 .elementor-element-71f94254 .quote svg path {
		color: var(--vj-accent) !important; fill: var(--vj-accent) !important;
	}
	/* The direct-contact card is the single solid orange panel on this page. */
	body.page-id-2474 .elementor-element-1232307 { background-color: var(--vj-accent) !important; }
	body.page-id-2474 :is(.elementor-element-3488855,.elementor-element-6ae1ede) .wcf--title { color: #fff !important; }
	body.page-id-2474 .elementor-element-cd1d59f svg { fill: #fff !important; opacity: .2; }
	body.page-id-2474 :is(input,textarea,select):focus-visible {
		outline: 2px solid var(--vj-accent-ink) !important; outline-offset: 3px;
	}
	@media (max-width: 767px) {
		body.page-id-8653 .elementor-icon-box-wrapper { gap: 20px !important; }
		body.page-id-8653 .elementor-icon-box-title { margin-block-end: 10px !important; }
	}
}
