/* GROUNDWRKS additions layered on top of the original theme styles. */
:root {
  --gw-primary: #111111;
  --gw-secondary: #000000;
  --gw-headline: #0a0a0a;
  --gw-dark: #0d0d0d;
  --gw-body: #5c5c5c;
  --gw-line: #e2e2e2;
  --gw-muted: #8a8a8a;
  --gw-error: #A3271F;
  --gw-success: #2F6B3A;
  --gw-ease: cubic-bezier(.22, .61, .36, 1);
}

/* ---------- Logo sizing: keep the wordmark crisp and proportioned at every breakpoint */
[data-id="3b0b8e1"] img { width: 260px; max-width: 100%; height: auto; }
/* ---------- Hero calls to action */
.gw-hero-ctas { margin-top: 28px; --gap: 14px; gap: 14px; flex-wrap: wrap; }
.gw-hero-ctas .elementor-button { min-width: 200px; text-align: center; justify-content: center; }
.gw-hero-ctas [data-id="134c3b3-hero"] .elementor-button { background: rgba(255, 255, 255, .72); color: var(--gw-secondary); box-shadow: inset 0 0 0 1px var(--gw-secondary); backdrop-filter: blur(4px); }
.gw-hero-ctas [data-id="134c3b3-hero"] .elementor-button:hover { background: var(--gw-secondary); color: #fff; }
@media (max-width: 767px) {
  .gw-hero-ctas { width: 100%; }
  .gw-hero-ctas .elementor-widget-button, .gw-hero-ctas .elementor-button { width: 100%; }
}

/* ---------- Polished button hover states (site-wide) */
.elementor-button, .uicore-btn, .forminator-button-submit {
  transition: background-color .35s var(--gw-ease), color .35s var(--gw-ease), box-shadow .35s var(--gw-ease), transform .35s var(--gw-ease) !important;
}
.elementor-button:hover, .uicore-btn:hover, .forminator-button-submit:hover { transform: translateY(-2px); box-shadow: 0 10px 24px -12px rgba(0, 0, 0, .55); }
.elementor-button:active, .uicore-btn:active { transform: translateY(0); }
.elementor-button:focus-visible, .uicore-btn:focus-visible, a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 2px solid var(--gw-primary); outline-offset: 3px;
}

/* ---------- Image entrances and hover */
.gw-img { transition: transform 1.1s var(--gw-ease), opacity 1.1s var(--gw-ease), filter 1.1s var(--gw-ease); }
.gw-anim .gw-img:not(.gw-in) { opacity: 0; transform: scale(1.04); filter: blur(6px); }
.elementor-widget-image { overflow: hidden; }
.elementor-widget-image:hover .gw-img.gw-in { transform: scale(1.025); }

/* Staggered list items */
.gw-anim .elementor-widget-uicore-icon-list li { transition: opacity .7s var(--gw-ease), transform .7s var(--gw-ease); transition-delay: calc(var(--gw-i, 0) * 60ms); }
.gw-anim .elementor-widget-uicore-icon-list:not(.gw-in) li { opacity: 0; transform: translateX(-12px); }

/* Service type cards: gentle lift */
.e-con:has(> .elementor-widget-image + .elementor-widget-heading) { transition: transform .5s var(--gw-ease), box-shadow .5s var(--gw-ease); }
.e-con:has(> .elementor-widget-image + .elementor-widget-heading):hover { transform: translateY(-4px); box-shadow: 0 22px 40px -28px rgba(0, 0, 0, .6); }

/* Portfolio cards */
.gw-illustrative { display: inline-block; margin-top: 6px; padding: 3px 10px; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: #fff; background: rgba(0, 0, 0, .55); border-radius: 2px; }
.bdt-post-grid-item { transition: box-shadow .5s var(--gw-ease); }
.bdt-post-grid-item:hover { box-shadow: 0 26px 50px -30px rgba(0, 0, 0, .75); }

/* Illustrative notice */
.gw-note { margin-top: 1.2em; padding: 14px 18px; border-left: 3px solid var(--gw-primary); background: rgba(0, 0, 0, .07); font-size: .92em; line-height: 1.6; }
.gw-intro { max-width: 860px; margin: 0 auto 40px; padding: 0 20px; }
.gw-inline-cta { font-weight: 600; color: var(--gw-primary); border-bottom: 1px solid currentColor; transition: color .3s var(--gw-ease); }
.gw-inline-cta:hover { color: var(--gw-secondary); }

/* ---------- Floating WhatsApp button (bottom-left so it never covers the theme's back-to-top control) */
.gw-wa-float {
  position: fixed; left: 20px; bottom: 20px; z-index: 90;
  display: inline-flex; align-items: center; gap: 0; height: 52px; padding: 0 15px;
  border-radius: 26px; background: var(--gw-secondary); color: #fff; font-size: 22px; line-height: 1;
  box-shadow: 0 12px 26px -12px rgba(0, 0, 0, .55);
  transition: background-color .3s var(--gw-ease), transform .3s var(--gw-ease), gap .35s var(--gw-ease), opacity .4s var(--gw-ease);
}
.gw-wa-float svg { width: 22px; height: 22px; flex: none; }
.gw-wa-float__label { max-width: 0; overflow: hidden; white-space: nowrap; font-size: 13px; font-weight: 600; letter-spacing: .04em; transition: max-width .45s var(--gw-ease); }
.gw-wa-float:hover, .gw-wa-float:focus-visible { background: var(--gw-primary); color: #fff; gap: 10px; transform: translateY(-2px); }
.gw-wa-float:hover .gw-wa-float__label, .gw-wa-float:focus-visible .gw-wa-float__label { max-width: 140px; }
.gw-wa-float.gw-hidden { opacity: 0; pointer-events: none; transform: translateY(12px); }
@media (max-width: 767px) { .gw-wa-float { left: 14px; bottom: 14px; height: 48px; padding: 0 13px; } }

/* ---------- Contact list icons injected into the original icon list */
.elementor-widget-uicore-icon-list .ui-e-icon svg { width: 1em; height: 1em; }
.elementor-social-icon-phone, .elementor-social-icon-whatsapp { background-color: var(--gw-primary); }
.elementor-social-icon svg[viewBox="0 0 24 24"] { fill: currentColor; }

/* ---------- Quote form (extends the original Forminator styles) */
.gw-form-intro { margin-bottom: 18px; }
.gw-quote-form { display: block !important; }
.gw-quote-form .forminator-row { display: flex; flex-wrap: wrap; margin: 0 -10px 18px; }
.gw-quote-form .forminator-col { padding: 0 10px; box-sizing: border-box; }
.gw-quote-form .forminator-col-6 { flex: 0 0 50%; max-width: 50%; }
.gw-quote-form .forminator-col-12, .gw-quote-form .forminator-col:not([class*="forminator-col-"]) { flex: 0 0 100%; max-width: 100%; }
@media (max-width: 767px) { .gw-quote-form .forminator-col-6 { flex-basis: 100%; max-width: 100%; margin-bottom: 18px; } .gw-quote-form .forminator-row { margin-bottom: 0; } .gw-quote-form .forminator-row-last { margin-top: 18px; } }
.gw-quote-form .forminator-label { display: block; margin-bottom: 6px; }
.gw-quote-form .forminator-input, .gw-quote-form .forminator-textarea { width: 100%; box-sizing: border-box; }
.gw-select { appearance: none; -webkit-appearance: none; padding-right: 40px !important; cursor: pointer;
  background: #fff url("/assets/brand/select-arrow.svg") no-repeat right 14px center / 12px 8px; }
.gw-file { display: block; width: 100%; padding: 14px; border: 1px dashed var(--gw-line); background: #fff; font: inherit; color: var(--gw-body); cursor: pointer; box-sizing: border-box; }
.gw-file::file-selector-button { margin-right: 14px; padding: 8px 14px; border: 0; background: var(--gw-secondary); color: #fff; font: inherit; font-size: 13px; cursor: pointer; }
.gw-hint { display: block; margin-top: 6px; font-size: 13px; color: #8a8a8a; }
.gw-error { display: block; min-height: 0; margin-top: 6px; font-size: 13px; color: var(--gw-error); }
.gw-error:empty { display: none; }
.gw-quote-form .gw-invalid .forminator-input, .gw-quote-form .gw-invalid .forminator-textarea, .gw-quote-form .gw-invalid .gw-file { border-color: var(--gw-error) !important; box-shadow: 0 0 0 1px var(--gw-error); }
.gw-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.gw-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 22px; }
.gw-quote-form .forminator-button-submit { position: relative; cursor: pointer; }
.gw-quote-form.gw-busy .forminator-button-submit { opacity: .7; pointer-events: none; }
.gw-quote-form.gw-busy .forminator-button-submit::after { content: ""; display: inline-block; width: 14px; height: 14px; margin-left: 10px; vertical-align: -2px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: gw-spin .8s linear infinite; }
@keyframes gw-spin { to { transform: rotate(360deg); } }
.gw-wa-prepare { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; color: var(--gw-primary); border-bottom: 1px solid transparent; transition: border-color .3s var(--gw-ease), color .3s var(--gw-ease); }
.gw-wa-prepare:hover { color: var(--gw-secondary); border-color: currentColor; }
.gw-wa-prepare svg { width: 18px; height: 18px; }
.gw-form-status { display: none; margin-bottom: 20px; padding: 16px 18px; border-left: 3px solid; line-height: 1.6; }
.gw-form-status.is-error { display: block; border-color: var(--gw-error); background: rgba(163, 39, 31, .06); color: #5a1a15; }
.gw-form-status.is-success { display: block; border-color: var(--gw-success); background: rgba(47, 107, 58, .07); color: #1e4426; }
.gw-form-status.is-info { display: block; border-color: var(--gw-primary); background: rgba(0, 0, 0, .07); color: var(--gw-dark); }
.gw-form-status a { font-weight: 600; text-decoration: underline; }
/* reCAPTCHA v3 badge, rendered inline inside the form */
/* The badge floats bottom right (Google's default); keep the back-to-top control clear of it */
body:has(.grecaptcha-badge) #uicore-back-to-top { bottom: 92px !important; }

/* Next steps panel (replaces the map column on the contact pages) */
.gw-next-steps { display: grid; gap: 0; height: 100%; }
.gw-next-steps img { width: 100%; height: 100%; max-height: 420px; object-fit: cover; display: block; }
.gw-next-steps__panel { padding: 34px 32px; background: var(--gw-dark); color: #d6d6d6; }
.gw-next-steps__panel h3 { margin: 0 0 16px; color: #fff; font-size: 24px; }
.gw-next-steps__panel ol { margin: 0 0 18px; padding-left: 1.2em; }
.gw-next-steps__panel li { margin-bottom: 10px; line-height: 1.6; }
.gw-next-steps__panel strong { color: #fff; }
.gw-next-steps__panel a { color: #fff; text-decoration: underline; }

/* ---------- Legal / text pages */
.gw-legal { max-width: 820px; margin: 0 auto; padding: 80px 20px 100px; }
.gw-legal h2 { margin: 1.8em 0 .6em; font-size: 26px; color: var(--gw-headline); }
.gw-legal p, .gw-legal li { line-height: 1.75; }
.gw-legal a { color: var(--gw-primary); text-decoration: underline; }
.gw-legal__updated { color: #8a8a8a; font-size: 14px; }
.gw-credits { columns: 2; column-gap: 40px; padding-left: 1.1em; }
.gw-credits li { break-inside: avoid; margin-bottom: 6px; text-transform: capitalize; }
@media (max-width: 767px) { .gw-credits { columns: 1; } .gw-legal { padding: 56px 16px 72px; } }

/* ---------- Respect reduced-motion preferences */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .gw-anim .gw-img:not(.gw-in), .gw-anim .elementor-widget-uicore-icon-list:not(.gw-in) li { opacity: 1; transform: none; filter: none; }
  .elementor-invisible { visibility: visible !important; }
}

/* ---------- Mobile & tablet redesign */
.gw-mobile-bar { display: none; }
@media (max-width: 1024px) {
  /* Shorter page-title band on inner pages */
  .elementor-516 .elementor-element.elementor-element-0139f27 { --min-height: 58vh !important; min-height: 58vh !important; --padding-bottom: 40px !important; }
}
@media (max-width: 767px) {
  /* Hero: full-screen, bold monochrome headline */
  .elementor-element.elementor-element-d03f9fe { --min-height: 100svh !important; min-height: 100svh !important; --padding-top: 96px !important; --padding-bottom: 56px !important; }
  .elementor-element-d62ff64 .elementor-heading-title { font-size: 44px !important; line-height: 1 !important; letter-spacing: -.03em; color: #000 !important; }
  .elementor-element-80a5d89 { font-size: 16px !important; line-height: 1.6; max-width: 100% !important; width: 100% !important; color: #222; }
  .elementor-widget-heading h2.elementor-heading-title { font-size: clamp(30px, 8.6vw, 38px) !important; line-height: 1.1 !important; letter-spacing: -.02em; }

  /* Bottom quick-contact bar replaces the floating button on phones */
  .gw-wa-float { display: none !important; }
  .gw-mobile-bar { display: grid; grid-template-columns: 1fr 1fr 1.25fr; position: fixed; left: 0; right: 0; bottom: 0; z-index: 998; background: #000; padding-bottom: env(safe-area-inset-bottom); box-shadow: 0 -8px 24px -12px rgba(0, 0, 0, .5); transition: transform .35s var(--gw-ease); }
  .gw-mobile-bar a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; height: 60px; color: #fff !important; font-size: 12px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; border-right: 1px solid rgba(255, 255, 255, .12); }
  .gw-mobile-bar a svg { width: 20px; height: 20px; }
  .gw-mobile-bar .gw-mobile-bar__quote { background: #fff; color: #000 !important; border-right: 0; }
  html.gw-menu-open .gw-mobile-bar { transform: translateY(110%); }
  /* Room for the bottom bar, on the dark footer rather than as a white strip below it */
  #uicore-tb-footer { padding-bottom: calc(60px + env(safe-area-inset-bottom)); background: #070707; }
  #uicore-back-to-top { bottom: calc(76px + env(safe-area-inset-bottom)) !important; }
}
html.gw-menu-open .gw-wa-float { visibility: hidden; }
html.gw-menu-open #uicore-back-to-top { opacity: 0 !important; pointer-events: none !important; }
.gw-quote-form .forminator-button-submit { background: #000 !important; color: #fff !important; }
.gw-quote-form .forminator-button-submit:hover { background: #2a2a2a !important; }

/* ---------- Mobile refinements (round 2) */
.gw-swipe-hint { display: none; }
@media (max-width: 767px) {
  /* Readable body copy */
  .elementor-widget-text-editor, .elementor-widget-text-editor p { font-size: 15px; line-height: 1.65; }
  .elementor-widget-text-editor p + p { margin-top: .8em; }

  /* Paired buttons share the row evenly */
  .e-con:not(.gw-hero-ctas):has(> .elementor-widget-button + .elementor-widget-button) { flex-direction: row !important; flex-wrap: nowrap !important; gap: 10px !important; width: 100%; }
  .e-con:not(.gw-hero-ctas):has(> .elementor-widget-button + .elementor-widget-button) > .elementor-widget-button { flex: 1 1 0; min-width: 0; }
  .e-con:not(.gw-hero-ctas):has(> .elementor-widget-button + .elementor-widget-button) .elementor-button { width: 100%; justify-content: center; text-align: center; padding-left: 10px; padding-right: 10px; }
  .elementor-button { min-height: 46px; display: inline-flex !important; align-items: center; }

  /* Counters in one row */
  .elementor-element.elementor-element-c5c13b7 { display: grid !important; grid-template-columns: repeat(3, 1fr) !important; gap: 8px !important; }
  .elementor-element-c5c13b7 .elementor-counter-number-wrapper { font-size: 40px !important; line-height: 1.1; }
  .elementor-element-c5c13b7 .elementor-counter-title { font-size: 12px !important; line-height: 1.35; letter-spacing: .02em; }

  /* Standards slider: keep text clear of the arrows */
  .elementor-widget-uicore-testimonial-slider .ui-e-content { padding: 0 30px; }

  /* Swipeable card rows (service types, values) */
  .gw-swipe { display: flex !important; flex-wrap: nowrap !important; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; gap: 14px !important; padding-bottom: 6px !important; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .gw-swipe::-webkit-scrollbar { display: none; }
  .gw-swipe > .e-con { flex: 0 0 84% !important; width: 84% !important; max-width: 84% !important; scroll-snap-align: start; }
  .gw-swipe-hint { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 14px; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; opacity: .9; }
  .gw-swipe-hint__track { flex: 1; height: 2px; background: currentColor; opacity: .2; position: relative; }
  .gw-swipe-hint__bar { position: absolute; left: 0; top: 0; bottom: 0; background: currentColor; opacity: 1; transition: width .25s var(--gw-ease); }

  /* Contact pages: the icon list already offers call and WhatsApp */
  [data-id="c926f41"] { display: none !important; }
}

/* ---------- Site header: single row, transparent over the hero, solid once scrolled */
:root { --gw-header-h: 84px; }
.gw-header { position: fixed; top: 0; left: 0; right: 0; z-index: 1000; height: var(--gw-header-h); color: #111; transition: background-color .35s var(--gw-ease), box-shadow .35s var(--gw-ease), height .35s var(--gw-ease); }
html.gw-scrolled .gw-header { --gw-header-h: 68px; background: rgba(255, 255, 255, .94); -webkit-backdrop-filter: saturate(1.4) blur(16px); backdrop-filter: saturate(1.4) blur(16px); box-shadow: 0 1px 0 rgba(0, 0, 0, .08); }
.gw-header__inner { max-width: 1360px; height: 100%; margin: 0 auto; padding: 0 36px; display: flex; align-items: center; gap: 28px; }
.gw-header__logo { flex: none; display: flex; align-items: center; }
.gw-header__logo img { height: 27px; width: auto; display: block; transition: filter .35s var(--gw-ease); }
.gw-nav { flex: 1; display: flex; justify-content: center; }
.gw-nav__list { display: flex; align-items: center; gap: 4px; list-style: none; margin: 0; padding: 0; }
.gw-nav__list > li { position: relative; }
.gw-nav__list > li > a { position: relative; display: inline-flex; align-items: center; gap: 6px; height: 44px; padding: 0 14px; font-size: 15px; font-weight: 500; letter-spacing: .005em; color: #111 !important; }
.gw-nav__list > li > a::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: 9px; height: 1.5px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform .35s var(--gw-ease); }
.gw-nav__list > li > a:hover::after, .gw-nav__list > li > a:focus-visible::after, .gw-nav__list > li.is-current > a::after { transform: scaleX(1); }
.gw-nav__has-sub > a::after { right: 34px; }
.gw-nav__chev { width: 14px; height: 14px; transition: transform .3s var(--gw-ease); }
.gw-nav__has-sub:hover .gw-nav__chev, .gw-nav__has-sub:focus-within .gw-nav__chev { transform: rotate(180deg); }
.gw-nav__sub { position: absolute; top: calc(100% + 8px); left: 50%; width: 340px; margin: 0; padding: 8px; list-style: none; background: #fff; border: 1px solid #ececec; box-shadow: 0 28px 56px -28px rgba(0, 0, 0, .4); opacity: 0; visibility: hidden; transform: translate(-50%, 8px); transition: opacity .25s var(--gw-ease), transform .25s var(--gw-ease), visibility .25s; }
.gw-nav__sub::before { content: ""; position: absolute; left: 0; right: 0; top: -14px; height: 14px; }
.gw-nav__has-sub:hover .gw-nav__sub, .gw-nav__has-sub:focus-within .gw-nav__sub { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.gw-nav__sub a { display: block; padding: 12px 14px; color: #111 !important; transition: background-color .2s var(--gw-ease); }
.gw-nav__sub a:hover, .gw-nav__sub a:focus-visible, .gw-nav__sub a[aria-current="page"] { background: #f3f3f3; }
.gw-nav__sub strong { display: block; font-size: 15px; font-weight: 600; }
.gw-nav__sub span { display: block; margin-top: 2px; font-size: 13px; color: #777; }
.gw-header__actions { flex: none; display: flex; align-items: center; gap: 20px; }
.gw-header__phone { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; color: #111 !important; white-space: nowrap; }
.gw-header__phone svg { width: 16px; height: 16px; }
.gw-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 46px; padding: 0 24px; background: #000; color: #fff !important; font-size: 13px; font-weight: 600; letter-spacing: .07em; text-transform: uppercase; white-space: nowrap; transition: background-color .3s var(--gw-ease), transform .3s var(--gw-ease); }
.gw-btn:hover { background: #2a2a2a; transform: translateY(-1px); }
.gw-burger { display: none; }

/* Full-screen menu (phones and tablets) */
.gw-menu { position: fixed; inset: 0; z-index: 999; display: flex; flex-direction: column; padding: calc(var(--gw-header-h) + 20px) 24px calc(24px + env(safe-area-inset-bottom)); overflow-y: auto; background: #050505; color: #fff; opacity: 0; visibility: hidden; transition: opacity .35s var(--gw-ease), visibility .35s; }
html.gw-menu-open .gw-menu { opacity: 1; visibility: visible; }
html.gw-menu-open .gw-header { background: #050505; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
html.gw-menu-open .gw-header__logo img { filter: invert(1); }
html.gw-menu-open .gw-header__cta { opacity: 0; pointer-events: none; }
.gw-menu__list { list-style: none; margin: 0; padding: 0; }
.gw-menu__list li { opacity: 0; transform: translateY(14px); transition: opacity .45s var(--gw-ease), transform .45s var(--gw-ease); transition-delay: calc(var(--i) * 40ms + 60ms); }
html.gw-menu-open .gw-menu__list li { opacity: 1; transform: none; }
.gw-menu__list a { display: flex; align-items: baseline; gap: 14px; padding: 13px 0; border-bottom: 1px solid rgba(255, 255, 255, .1); color: #fff !important; font-size: 26px; font-weight: 600; letter-spacing: -.02em; line-height: 1.15; }
.gw-menu__list a small { min-width: 24px; font-size: 12px; font-weight: 500; letter-spacing: .06em; color: rgba(255, 255, 255, .45); }
.gw-menu__list .is-sub a { padding: 10px 0 10px 38px; font-size: 17px; font-weight: 500; color: rgba(255, 255, 255, .72) !important; }
.gw-menu__list a[aria-current="page"] { text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 1.5px; }
.gw-menu__foot { margin-top: auto; padding-top: 28px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.gw-menu__foot .gw-btn { grid-column: 1 / -1; height: 54px; background: #fff; color: #000 !important; }
.gw-menu__ghost { display: flex; align-items: center; justify-content: center; gap: 8px; height: 50px; border: 1px solid rgba(255, 255, 255, .3); color: #fff !important; font-size: 14px; font-weight: 600; }
.gw-menu__ghost svg { width: 18px; height: 18px; }

@media (max-width: 1240px) { .gw-header__phone { display: none; } .gw-nav__list > li > a { padding: 0 11px; } }
@media (max-width: 1024px) {
  :root, html.gw-scrolled .gw-header { --gw-header-h: 64px; }
  .gw-header__inner { padding: 0 16px; gap: 12px; }
  .gw-nav { display: none; }
  .gw-header__logo img { height: 24px; }
  .gw-header__actions { margin-left: auto; gap: 8px; }
  .gw-header__cta { height: 38px; padding: 0 14px; font-size: 12px; }
  .gw-burger { position: relative; display: inline-flex; flex-direction: column; align-items: flex-end; justify-content: center; gap: 6px; width: 44px; height: 44px; padding: 0 10px; margin-right: -10px; background: none; border: 0; cursor: pointer; }
  .gw-burger span { display: block; width: 24px; height: 2px; background: #000; transition: transform .35s var(--gw-ease), width .35s var(--gw-ease), background-color .35s; }
  .gw-burger span:nth-child(2) { width: 16px; }
  html.gw-menu-open .gw-burger span { background: #fff; width: 24px; }
  html.gw-menu-open .gw-burger span:first-child { transform: translateY(4px) rotate(45deg); }
  html.gw-menu-open .gw-burger span:nth-child(2) { transform: translateY(-4px) rotate(-45deg); }
}
@media (max-width: 767px) {
  /* The bottom bar already offers "Get a quote" on phones */
  .gw-header__cta { display: none; }
  .grecaptcha-badge { bottom: calc(74px + env(safe-area-inset-bottom)) !important; }
  body:has(.grecaptcha-badge) #uicore-back-to-top { bottom: calc(150px + env(safe-area-inset-bottom)) !important; }
}
@media (min-width: 1025px) { .gw-menu { display: none; } }

/* ---------- Home hero: dark photograph, white type (round 3) */
.elementor-element-d62ff64 .elementor-heading-title, .elementor-element-80a5d89, .elementor-element-80a5d89 p { color: #fff !important; }
.elementor-element-80a5d89 { opacity: .86; }
.elementor-element-d62ff64 .elementor-heading-title span { color: #a3a3a3 !important; }
.gw-hero-ctas [data-id="34f6998-hero"] .elementor-button { background: #fff !important; color: #000 !important; }
.gw-hero-ctas [data-id="34f6998-hero"] .elementor-button:hover { background: #e6e6e6 !important; }
.gw-hero-ctas [data-id="134c3b3-hero"] .elementor-button { background: rgba(255, 255, 255, .06) !important; color: #fff !important; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .7) !important; }
.gw-hero-ctas [data-id="134c3b3-hero"] .elementor-button:hover { background: #fff !important; color: #000 !important; }
.gw-hero-ctas .elementor-button-text { color: inherit !important; }
/* Header reads white while it sits over the dark hero */
html:not(.gw-scrolled):not(.gw-menu-open) body.home .gw-header__logo img { filter: invert(1); }
html:not(.gw-scrolled):not(.gw-menu-open) body.home .gw-nav__list > li > a,
html:not(.gw-scrolled):not(.gw-menu-open) body.home .gw-header__phone { color: #fff !important; }
html:not(.gw-scrolled):not(.gw-menu-open) body.home .gw-header__cta { background: #fff; color: #000 !important; }
html:not(.gw-scrolled):not(.gw-menu-open) body.home .gw-burger span { background: #fff; }
html:not(.gw-scrolled):not(.gw-menu-open) body.home .gw-header { background: linear-gradient(rgba(0, 0, 0, .35), rgba(0, 0, 0, 0)); }
.gw-recaptcha-site { position: absolute; width: 0; height: 0; overflow: hidden; }

@media (max-width: 767px) {
  /* Portrait crop of the hero photograph; copy sits low, over the darkest part */
  .elementor-38 .elementor-element.elementor-element-d03f9fe:not(.elementor-motion-effects-element-type-background),
  .elementor-38 .elementor-element.elementor-element-d03f9fe > .elementor-motion-effects-container > .elementor-motion-effects-layer { background-image: url("/assets/bg/hero-p.webp") !important; background-position: center 30% !important; }
  .elementor-element.elementor-element-d03f9fe { justify-content: flex-end !important; --padding-top: 110px !important; --padding-bottom: calc(92px + env(safe-area-inset-bottom)) !important; }
  .elementor-element.elementor-element-e7f591f { width: 100% !important; max-width: 100% !important; justify-content: flex-end !important; }
  .elementor-element-d62ff64 .elementor-heading-title { color: #fff !important; font-size: clamp(40px, 12vw, 52px) !important; }
  .elementor-element-80a5d89, .elementor-element-80a5d89 p { color: rgba(255, 255, 255, .86) !important; font-size: 15px !important; }
  .gw-hero-ctas { flex-direction: column !important; gap: 10px !important; margin-top: 20px !important; }
  .gw-hero-ctas .elementor-button { min-height: 52px; font-weight: 600; letter-spacing: .06em; }
}

/* ---------- Project galleries: even grid, visible captions, before / after (round 4) */
.gw-gallery { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px 18px; margin: 0 !important; }
.gw-gallery > .bdt-ep-advanced-image-gallery-item { width: auto !important; padding: 0 !important; margin: 0 !important; position: relative !important; left: auto !important; top: auto !important; transform: none !important; }
.gw-gallery .bdt-ep-advanced-image-gallery-thumbnail { aspect-ratio: 4 / 5; overflow: hidden; background: #eee; }
.gw-gallery .bdt-ep-advanced-image-gallery-thumbnail img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s var(--gw-ease); }
.gw-gallery .bdt-ep-advanced-image-gallery-item:hover .bdt-ep-advanced-image-gallery-thumbnail img { transform: scale(1.04); }
.gw-gallery .bdt-ep-advanced-image-gallery-inner { position: relative; }
.gw-gallery .bdt-overlay { bottom: auto; aspect-ratio: 4 / 5; }
.gw-cap { margin: 10px 0 0; font-size: 13px; line-height: 1.45; color: #555; }
.gw-compare { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin: 8px 0 34px; }
.gw-compare__item { position: relative; margin: 0; }
.gw-compare__item img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; display: block; }
.gw-compare__item figcaption { margin-top: 10px; font-size: 13px; line-height: 1.45; color: #555; }
.gw-compare__tag { position: absolute; top: 12px; left: 12px; z-index: 1; padding: 6px 12px; background: #000; color: #fff; font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.gw-compare__item + .gw-compare__item .gw-compare__tag { background: #fff; color: #000; }
@media (max-width: 767px) {
  .gw-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 10px; }
  .gw-cap, .gw-compare__item figcaption { font-size: 12px; }
  .gw-compare { gap: 10px; }
}
.gw-cap { text-align: left; }
.gw-compare { max-width: 760px; }
