:root { --ecom-action-fill:linear-gradient(110deg,#7f552f 0%,#b05e12 55%,#8b501f 100%); --ecom-action-hover:linear-gradient(110deg,#6b4326 0%,#97591b 55%,#754019 100%); --ecom-action-ink:#7f552f; --ecom-action-radius:8px; }
/* Functional accessibility improvements; preserve the original site palette. */
body :is(a,button,input,textarea,select,summary,[tabindex]):focus-visible {
 outline:3px solid #174ea6 !important; outline-offset:4px !important; box-shadow:0 0 0 2px #fff !important;
}
body :is(a,button,input,textarea,select,summary,[tabindex]) { scroll-margin-block:120px 80px; }
body :is(a,button):focus-visible { animation:none !important; }
#main :is(p,li) a:not(.button):not(.ecom-plugin-download):not(.ecom-plugin-card) { text-decoration:underline; text-underline-offset:.18em; }
.ecom-footer p a { text-decoration:underline; text-underline-offset:.18em; }
.ecom-footer :is(a,button),.ecom-footer-legal a { min-height:24px; }
.ecom-footer-legal a { display:inline-flex; align-items:center; }
.ecom-accessibility-controls { text-align:center; padding:8px 20px 24px; background:#fff; }
.ecom-motion-toggle { background:#fff; border:1px solid #59677a; border-radius:6px; color:#334155; font:inherit; font-size:.875rem; line-height:1.5; min-height:44px; margin:0; padding:8px 16px; text-transform:none; letter-spacing:0; }
.ecom-motion-toggle[hidden] { display:none !important; }
.ecom-booking-badge { position:fixed; right:20px; bottom:80px; z-index:999; border-radius:24px; background:#f08a00; color:#fff !important; font:700 14px/1.5 Lato,sans-serif; padding:12px 20px; box-shadow:0 2px 8px #0003; }
.ecom-booking-badge:hover { background:#ed9a22; text-decoration:underline; }
.ecom-form-notice:focus { outline:3px solid #174ea6; outline-offset:4px; }
.ecom-footer-newsletter { min-width:0; }
html[data-ecom-motion-paused="true"] *,html[data-ecom-motion-paused="true"] *::before,html[data-ecom-motion-paused="true"] *::after { animation-play-state:paused !important; transition:none !important; }
html[data-ecom-motion-paused="true"] { scroll-behavior:auto !important; }
html[data-ecom-motion-paused="true"] img.ecom-process-icon[src$=".gif"] { visibility:hidden; }
@media(prefers-reduced-motion:reduce) {
 *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
 html { scroll-behavior:auto !important; }
 img.ecom-process-icon[src$=".gif"] { visibility:hidden; }
}
@media(max-width:849px) { .ecom-booking-badge { display:none; } }
@media(max-width:549px) { .ecom-calendly,.calendly-inline-widget { min-width:0 !important; } }

/* Accessible colour treatment is limited to the animation preference button. */
body #main .ecom-motion-toggle { background:#a34f00; border-color:#a34f00; color:#fff; font-weight:700; margin-top:4px; }
body #main .ecom-motion-toggle:hover { background:#803e00; border-color:#803e00; color:#fff; }

body #main .ecom-motion-toggle { font-size:16px; padding:11px 20px; min-height:48px; }
/* Honor both motion preferences even on this animated control. */
html[data-ecom-motion-paused="true"] .ecom-motion-toggle::before,
html[data-ecom-motion-paused="true"] .ecom-motion-toggle::after,
html[data-ecom-motion-paused="true"] .ecom-motion-toggle .sparkle-inner::before,
html[data-ecom-motion-paused="true"] .ecom-motion-toggle .sparkle-inner::after { opacity:0 !important; }
@media(prefers-reduced-motion:reduce) {
 .ecom-motion-toggle::before,.ecom-motion-toggle::after,.ecom-motion-toggle .sparkle-inner::before,.ecom-motion-toggle .sparkle-inner::after { opacity:0 !important; }
}

/* Heading-inspired ombre, restricted to the animation preference control. */
body #main .ecom-motion-toggle { background:var(--ecom-action-fill); border-color:#8b501f; color:#fff; }
body #main .ecom-motion-toggle:hover { background:var(--ecom-action-hover); border-color:#754019; color:#fff; }

/* Approved bronze/amber ombre for primary actions across the site. */
html body #wrapper #main :is(.button.primary:not(.icon),.button.white:not(.icon):not(.is-outline),.btn-sparkle-animated:not(.icon):not(.is-outline),.ecom-plugin-download,.ecom-blog-button,.ecom-motion-toggle,button[type="submit"],input[type="submit"]),
html body #wrapper #header :is(.button.primary:not(.icon),.button.white:not(.icon):not(.is-outline),.btn-sparkle-animated:not(.icon):not(.is-outline),.ecom-plugin-download,.ecom-blog-button,.ecom-motion-toggle,button[type="submit"],input[type="submit"]),
html body .ecom-footer input[type="submit"],
html body .ecom-booking-badge { background:var(--ecom-action-fill) !important; color:#fff !important; border-color:#8b501f !important; }
html body #wrapper #main :is(.button.primary:not(.icon),.button.white:not(.icon):not(.is-outline),.btn-sparkle-animated:not(.icon):not(.is-outline),.ecom-plugin-download,.ecom-blog-button,.ecom-motion-toggle,button[type="submit"],input[type="submit"]):is(:hover,:focus-visible),
html body #wrapper #header :is(.button.primary:not(.icon),.button.white:not(.icon):not(.is-outline),.btn-sparkle-animated:not(.icon):not(.is-outline),.ecom-plugin-download,.ecom-blog-button,.ecom-motion-toggle,button[type="submit"],input[type="submit"]):is(:hover,:focus-visible),
html body .ecom-footer input[type="submit"]:is(:hover,:focus-visible),
html body .ecom-booking-badge:is(:hover,:focus-visible) { background:var(--ecom-action-hover) !important; color:#fff !important; border-color:#754019 !important; }
html body #wrapper #main :is(.button.primary:not(.icon),.button.white:not(.icon):not(.is-outline),.btn-sparkle-animated:not(.icon):not(.is-outline),.ecom-plugin-download,.ecom-blog-button,.ecom-motion-toggle,button[type="submit"],input[type="submit"]) :is(span,i),
html body #wrapper #header :is(.button.primary:not(.icon),.button.white:not(.icon):not(.is-outline),.btn-sparkle-animated:not(.icon):not(.is-outline),.ecom-plugin-download,.ecom-blog-button,.ecom-motion-toggle,button[type="submit"],input[type="submit"]) :is(span,i) { color:#fff !important; background:transparent !important; }

/* Secondary actions keep a clear outline with readable bronze labels. */
html body #wrapper #main .button.is-outline:not(.icon),
html body #wrapper #main .button.is-outline:not(.icon):is(:hover,:focus-visible) { background:#fff !important; color:#7f552f !important; border-color:#7f552f !important; }
html body #wrapper #main .button.is-outline:not(.icon) :is(span,i),
html body #wrapper #main .button.is-outline:not(.icon):is(:hover,:focus-visible) :is(span,i) { background:transparent !important; color:#7f552f !important; }
/* Keep decorative sparkles without a bright wash over the white label. */
html body #wrapper #main .btn-sparkle-animated .btn-bg::before { opacity:0 !important; }

/* Service-card actions need button spacing after receiving the shared fill. */
html body #wrapper #main .ecom-services-section .icon-box-text .button {
 display:inline-flex; align-items:center; justify-content:center; gap:8px;
 min-height:46px; max-width:100%; width:auto; padding:12px 16px !important;
 border:1px solid #8b501f; border-radius:8px; font-size:15px !important;
 line-height:1.4 !important; font-weight:700; text-transform:none !important;
 letter-spacing:0; text-align:left; white-space:normal; box-shadow:none;
 margin-bottom:0;
}
html body #wrapper #main .ecom-services-section .icon-box-text .button span { min-width:0; overflow-wrap:normal; }
html body #wrapper #main .ecom-services-section .icon-box-text .button i { flex:0 0 auto; margin:0 !important; font-size:16px; }

/* Timeline markers match the approved accessible button palette. */
html body #wrapper #main .ecom-process-section .ecom-step-number { background:var(--ecom-action-fill) !important; color:#fff !important; }

/* Trial: logo-inspired bronze and amber for the reusable closing section. */
html body #wrapper #main .ecom-build { background:#7f552f !important; }
html body #wrapper #main .ecom-build .ecom-build-stage { background:linear-gradient(115deg,#7f552f 0%,#a36525 52%,#7f552f 100%) !important; }
html body #wrapper #main .ecom-build .ecom-build-stage::before { background:radial-gradient(ellipse,rgba(38,20,8,.15) 1px,transparent 1.6px) 0 0 / 6px 7px !important; }
html body #wrapper #main .ecom-build .ecom-build-ticker,
html body #wrapper #main .ecom-build .ecom-ticker-viewport { background:linear-gradient(110deg,#654125,#7f552f) !important; border-color:rgba(255,255,255,.3); }
html body #wrapper #main .ecom-build .ecom-build-copy :is(h2,p) { color:#fff !important; }
html body #wrapper #main .ecom-build .ecom-build-button--primary { border-color:#fff !important; }

/* Trial logo-orange dots, kept soft to preserve white-copy contrast. */
html body #wrapper #main .ecom-build .ecom-build-stage::before { background:radial-gradient(ellipse,rgba(240,138,0,.06) 1px,transparent 1.6px) 0 0 / 6px 7px !important; }

/* Extend the approved palette to the technology strip and portfolio labels. */
html body #wrapper #main .ecom-ticker-viewport { background:var(--ecom-action-fill) !important; color:#fff; }
html body #wrapper #main .ecom-case-badge { background:var(--ecom-action-fill) !important; color:#fff !important; }
html body #wrapper #main .ecom-case-card { border-color:#d3bea5 !important; }

/* Stronger orange texture at the edges, quieter behind the reading area. */
html body #wrapper #main .ecom-build .ecom-build-stage::before {
 background:radial-gradient(ellipse,rgba(240,138,0,.45) 1.15px,transparent 1.75px) 0 0 / 6px 7px !important;
 -webkit-mask-image:radial-gradient(ellipse 65% 50% at 50% 48%,rgba(0,0,0,.12) 0%,rgba(0,0,0,.12) 85%,#000 100%);
 mask-image:radial-gradient(ellipse 65% 50% at 50% 48%,rgba(0,0,0,.12) 0%,rgba(0,0,0,.12) 85%,#000 100%);
}

/* Ecommerce line icons retain the existing floating tile treatment. */
html body #wrapper #main .ecom-build .ecom-build-symbol--left-1 { background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23fff7b0%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M5%207h14l1%2014H4L5%207Z%22%2F%3E%3Cpath%20d%3D%22M8%208V6a4%204%200%200%201%208%200v2%22%2F%3E%3C%2Fsvg%3E"); }
html body #wrapper #main .ecom-build .ecom-build-symbol--left-2 { background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23fff7b0%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M2%203h3l3%2012h11l3-9H6%22%2F%3E%3Cpath%20d%3D%22M8%2015l-1%203h13%22%2F%3E%3Ccircle%20cx%3D%229%22%20cy%3D%2221%22%20r%3D%221%22%2F%3E%3Ccircle%20cx%3D%2219%22%20cy%3D%2221%22%20r%3D%221%22%2F%3E%3C%2Fsvg%3E"); }
html body #wrapper #main .ecom-build .ecom-build-symbol--left-3 { background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23fff7b0%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m12%202%209%205v10l-9%205-9-5V7l9-5Z%22%2F%3E%3Cpath%20d%3D%22m3%207%209%205%209-5M12%2012v10M7.5%204.5l9%205V14%22%2F%3E%3C%2Fsvg%3E"); }
html body #wrapper #main .ecom-build .ecom-build-symbol--right-1 { background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23fff7b0%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%222%22%20y%3D%224%22%20width%3D%2220%22%20height%3D%2216%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22M2%209h20M6%2015h4m4%200h3%22%2F%3E%3C%2Fsvg%3E"); }
html body #wrapper #main .ecom-build .ecom-build-symbol--right-2 { background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23fff7b0%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%2010v11h18V10M2%206l2-4h16l2%204v4a2.5%202.5%200%200%201-5%200%202.5%202.5%200%200%201-5%200%202.5%202.5%200%200%201-5%200%202.5%202.5%200%200%201-5%200V6Z%22%2F%3E%3Cpath%20d%3D%22M2%206h20M9%2021v-7h6v7%22%2F%3E%3C%2Fsvg%3E"); }
html body #wrapper #main .ecom-build .ecom-build-symbol--right-3 { background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23fff7b0%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%203v18h18M7%2017v-4m5%204V9m5%208V5%22%2F%3E%3Cpath%20d%3D%22m6%209%205-4%204%201%206-4%22%2F%3E%3C%2Fsvg%3E"); }

/* Reduce the contrast between the dot texture and its faded reading area. */
html body #wrapper #main .ecom-build .ecom-build-stage::before {
 background:radial-gradient(ellipse,rgba(240,138,0,.22) 1.15px,transparent 1.75px) 0 0 / 6px 7px !important;
 -webkit-mask-image:radial-gradient(ellipse 65% 50% at 50% 48%,rgba(0,0,0,.25) 0%,rgba(0,0,0,.25) 85%,#000 100%);
 mask-image:radial-gradient(ellipse 65% 50% at 50% 48%,rgba(0,0,0,.25) 0%,rgba(0,0,0,.25) 85%,#000 100%);
}

/* Homepage service actions are text links, rather than filled buttons. */
html body #wrapper #main .ecom-services-section .ecom-home-card-row .icon-box-text a.button.primary,
html body #wrapper #main .ecom-services-section .ecom-home-card-row .icon-box-text a.button.primary:is(:hover,:focus-visible) {
 background:transparent !important; border:0 !important; box-shadow:none !important;
 color:#7f552f !important; border-radius:0; padding:8px 0 !important;
 min-height:44px; font-size:15px !important; line-height:1.4 !important; gap:8px;
}
html body #wrapper #main .ecom-services-section .ecom-home-card-row .icon-box-text a.button.primary :is(span,i) { color:#7f552f !important; background:transparent !important; }
html body #wrapper #main .ecom-services-section .ecom-home-card-row .icon-box-text a.button.primary:is(:hover,:focus-visible) span { text-decoration:underline; text-underline-offset:.2em; }

/* Preserve decorative GIF motion while matching the logo-orange palette. */
html body #wrapper #main .ecom-process-section .ecom-process-icon { filter:url("#ecom-logo-orange"); }

/* Shared action-button geometry, typography and interaction states. */
html body #wrapper #main :is(.button.primary:not(.icon):not(.is-link),.button.white:not(.icon):not(.is-outline):not(.is-link),.button.alt:not(.icon),.woocommerce a.button:not(.is-outline),.btn-sparkle-animated:not(.icon):not(.is-outline),.ecom-plugin-download,.ecom-blog-button,.ecom-motion-toggle,button[type="submit"],input[type="submit"]) {
 background:var(--ecom-action-fill) !important; color:#fff !important;
 border:1px solid #8b501f !important; border-radius:var(--ecom-action-radius) !important;
 min-height:48px !important; padding:12px 20px !important;
 font:700 16px/1.4 Lato,sans-serif !important; letter-spacing:0 !important;
 text-transform:none !important; text-decoration:none;
 display:inline-flex; align-items:center; justify-content:center; gap:8px;
 max-width:100%; white-space:normal; box-sizing:border-box;
}
html body #wrapper #main :is(.button.primary:not(.icon):not(.is-link),.button.white:not(.icon):not(.is-outline):not(.is-link),.button.alt:not(.icon),.woocommerce a.button:not(.is-outline),.btn-sparkle-animated:not(.icon):not(.is-outline),.ecom-plugin-download,.ecom-blog-button,.ecom-motion-toggle,button[type="submit"],input[type="submit"]):is(:hover,:focus-visible) { background:var(--ecom-action-hover) !important; color:#fff !important; }
html body #wrapper #main :is(.button.primary:not(.icon):not(.is-link),.button.white:not(.icon):not(.is-outline):not(.is-link),.button.alt:not(.icon),.woocommerce a.button:not(.is-outline),.btn-sparkle-animated:not(.icon):not(.is-outline),.ecom-plugin-download,.ecom-blog-button,.ecom-motion-toggle,button[type="submit"],input[type="submit"]) :is(span,i) { color:#fff !important; background:transparent !important; }

html body #wrapper #main .button.is-outline:not(.icon) {
 border-radius:var(--ecom-action-radius) !important; min-height:48px !important;
 padding:12px 20px !important; font:700 16px/1.4 Lato,sans-serif !important;
 letter-spacing:0 !important; text-transform:none !important; white-space:normal;
}
html body #wrapper #header .button:not(.icon):not(.is-link) {
 border-radius:var(--ecom-action-radius) !important; min-height:44px;
 padding:10px 16px; font:700 14px/1.4 Lato,sans-serif; text-transform:none; letter-spacing:0;
}
html body .ecom-footer input[type="submit"] {
 border-radius:var(--ecom-action-radius); min-height:48px; padding:12px 16px;
 font:700 16px/1.4 Lato,sans-serif; letter-spacing:0; text-transform:none;
}
html body .ecom-footer input[type="email"] { min-height:48px; }
html body .ecom-booking-badge { border-radius:var(--ecom-action-radius); min-height:44px; padding:10px 16px; box-sizing:border-box; }
html body #wrapper #main .ecom-share-links :is(a,button) {
 border-radius:var(--ecom-action-radius); color:var(--ecom-action-ink);
 border-color:#a68a6d; min-height:44px; font-size:15px;
}
html body #wrapper #main .ecom-share-links :is(a,button):is(:hover,:focus-visible) { color:#6b4326; border-color:#7f552f; background:#fff8ee; }
/* Service-card links intentionally retain their text-only presentation. */
html body #wrapper #main .ecom-services-section .ecom-home-card-row .icon-box-text a.button.primary,
html body #wrapper #main .ecom-services-section .ecom-home-card-row .icon-box-text a.button.primary:is(:hover,:focus-visible) {
 background:transparent !important; color:#7f552f !important; border:0 !important;
 border-radius:0 !important; padding:8px 0 !important; min-height:44px !important;
 font-size:15px !important; box-shadow:none !important; justify-content:flex-start;
}
html body #wrapper #main .ecom-services-section .ecom-home-card-row .icon-box-text a.button.primary :is(span,i) { color:#7f552f !important; }
/* Klaviyo renders a JavaScript button rather than a native submit control. */
html body .ecom-footer-newsletter .klaviyo-form-button {
 background:var(--ecom-action-fill) !important; color:#fff !important;
 border:1px solid #8b501f !important; border-radius:var(--ecom-action-radius) !important;
 min-height:48px !important; padding:12px 16px !important;
 font:700 16px/1.4 Lato,sans-serif !important; letter-spacing:0 !important;
 text-transform:none !important; box-sizing:border-box !important;
}
html body .ecom-footer-newsletter .klaviyo-form-button:is(:hover,:focus-visible) { background:var(--ecom-action-hover) !important; color:#fff !important; }
html body .ecom-footer-newsletter input[type="email"] { min-height:48px !important; }

/* Both technology tickers use the same approved bronze-orange gradient. */
html body #wrapper #main .ecom-build .ecom-build-ticker,
html body #wrapper #main .ecom-build .ecom-ticker-viewport { background:var(--ecom-action-fill) !important; }
