.elementor-kit-5{--e-global-color-primary:#0E3A5F;--e-global-color-secondary:#0C1A2A;--e-global-color-text:#383838;--e-global-color-accent:#0E9E94;--e-global-color-tealdeep:#0A6E66;--e-global-color-teallight:#4FC3B8;--e-global-color-tealsoft:#E4F3F1;--e-global-color-cream:#F6F3EB;--e-global-color-stone:#E7E2D6;--e-global-color-textmuted:#6B6B6B;--e-global-color-white:#FFFFFF;--e-global-color-white40:rgba(255, 255, 255, 0.4);--e-global-color-glassnavy:rgba(14, 58, 95, 0.4);--e-global-color-glasswhite:rgba(255, 255, 255, 0.1);--e-global-color-7d71c64:#174D78;--e-global-color-98e06b2:#EDEDED;--e-global-color-976a00e:#E8E5DE;--e-global-typography-primary-font-family:"Plus Jakarta Sans";--e-global-typography-primary-font-size:130px;--e-global-typography-primary-font-weight:700;--e-global-typography-primary-line-height:136px;--e-global-typography-primary-letter-spacing:-2.6px;--e-global-typography-secondary-font-family:"Plus Jakarta Sans";--e-global-typography-secondary-font-size:50px;--e-global-typography-secondary-font-weight:500;--e-global-typography-secondary-line-height:60px;--e-global-typography-secondary-letter-spacing:-1px;--e-global-typography-text-font-family:"Be Vietnam Pro";--e-global-typography-text-font-size:16px;--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:28px;--e-global-typography-text-letter-spacing:0px;--e-global-typography-accent-font-family:"Plus Jakarta Sans";--e-global-typography-accent-font-size:12px;--e-global-typography-accent-font-weight:600;--e-global-typography-accent-text-transform:uppercase;--e-global-typography-accent-line-height:26px;--e-global-typography-accent-letter-spacing:0.96px;--e-global-typography-heading1-font-family:"Plus Jakarta Sans";--e-global-typography-heading1-font-size:72px;--e-global-typography-heading1-font-weight:700;--e-global-typography-heading1-line-height:78px;--e-global-typography-heading1-letter-spacing:-1.5px;--e-global-typography-marquee-font-family:"Plus Jakarta Sans";--e-global-typography-marquee-font-size:96px;--e-global-typography-marquee-font-weight:500;--e-global-typography-marquee-line-height:96px;--e-global-typography-marquee-letter-spacing:-3.84px;--e-global-typography-statlarge-font-family:"Plus Jakarta Sans";--e-global-typography-statlarge-font-size:72px;--e-global-typography-statlarge-font-weight:400;--e-global-typography-statlarge-line-height:72px;--e-global-typography-statlarge-letter-spacing:-3.6px;--e-global-typography-statsmall-font-family:"Plus Jakarta Sans";--e-global-typography-statsmall-font-size:40px;--e-global-typography-statsmall-font-weight:400;--e-global-typography-statsmall-line-height:40px;--e-global-typography-statsmall-letter-spacing:-1px;--e-global-typography-heading3-font-family:"Plus Jakarta Sans";--e-global-typography-heading3-font-size:36px;--e-global-typography-heading3-font-weight:700;--e-global-typography-heading3-line-height:42px;--e-global-typography-heading3-letter-spacing:-0.5px;--e-global-typography-herosubtitle-font-family:"Plus Jakarta Sans";--e-global-typography-herosubtitle-font-size:30px;--e-global-typography-herosubtitle-font-weight:600;--e-global-typography-herosubtitle-line-height:40px;--e-global-typography-herosubtitle-letter-spacing:-0.3px;--e-global-typography-cardheading-font-family:"Plus Jakarta Sans";--e-global-typography-cardheading-font-size:24px;--e-global-typography-cardheading-font-weight:600;--e-global-typography-cardheading-line-height:30px;--e-global-typography-cardheading-letter-spacing:0px;--e-global-typography-quote-font-family:"Be Vietnam Pro";--e-global-typography-quote-font-size:22px;--e-global-typography-quote-font-weight:400;--e-global-typography-quote-line-height:32px;--e-global-typography-quote-letter-spacing:0px;--e-global-typography-heading4-font-family:"Plus Jakarta Sans";--e-global-typography-heading4-font-size:20px;--e-global-typography-heading4-font-weight:600;--e-global-typography-heading4-line-height:26px;--e-global-typography-heading4-letter-spacing:0px;--e-global-typography-cardtitle-font-family:"Be Vietnam Pro";--e-global-typography-cardtitle-font-size:18px;--e-global-typography-cardtitle-font-weight:500;--e-global-typography-cardtitle-line-height:26px;--e-global-typography-cardtitle-letter-spacing:0px;--e-global-typography-lead-font-family:"Be Vietnam Pro";--e-global-typography-lead-font-size:17px;--e-global-typography-lead-font-weight:400;--e-global-typography-lead-line-height:28px;--e-global-typography-lead-letter-spacing:0px;--e-global-typography-bodysmall-font-family:"Be Vietnam Pro";--e-global-typography-bodysmall-font-size:15px;--e-global-typography-bodysmall-font-weight:400;--e-global-typography-bodysmall-line-height:28px;--e-global-typography-bodysmall-letter-spacing:0px;--e-global-typography-sidenav-font-family:"Plus Jakarta Sans";--e-global-typography-sidenav-font-size:16px;--e-global-typography-sidenav-font-weight:500;--e-global-typography-sidenav-line-height:32px;--e-global-typography-sidenav-letter-spacing:0px;--e-global-typography-navlink-font-family:"Plus Jakarta Sans";--e-global-typography-navlink-font-size:14px;--e-global-typography-navlink-font-weight:600;--e-global-typography-navlink-line-height:20px;--e-global-typography-navlink-letter-spacing:0px;--e-global-typography-caption-font-family:"Be Vietnam Pro";--e-global-typography-caption-font-size:14px;--e-global-typography-caption-font-weight:400;--e-global-typography-caption-line-height:28px;--e-global-typography-caption-letter-spacing:0px;--e-global-typography-button-font-family:"Plus Jakarta Sans";--e-global-typography-button-font-size:15px;--e-global-typography-button-font-weight:700;--e-global-typography-button-text-transform:none;--e-global-typography-button-line-height:24px;--e-global-typography-button-letter-spacing:0px;}.elementor-kit-5 e-page-transition{background-color:#FFBC7D;}.elementor-kit-5 button,.elementor-kit-5 input[type="button"],.elementor-kit-5 input[type="submit"],.elementor-kit-5 .elementor-button{font-family:var( --e-global-typography-button-font-family ), Sans-serif;font-size:var( --e-global-typography-button-font-size );font-weight:var( --e-global-typography-button-font-weight );text-transform:var( --e-global-typography-button-text-transform );line-height:var( --e-global-typography-button-line-height );letter-spacing:var( --e-global-typography-button-letter-spacing );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1440px;}.e-con{--container-max-width:1440px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-kit-5 button,.elementor-kit-5 input[type="button"],.elementor-kit-5 input[type="submit"],.elementor-kit-5 .elementor-button{font-size:var( --e-global-typography-button-font-size );line-height:var( --e-global-typography-button-line-height );letter-spacing:var( --e-global-typography-button-letter-spacing );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-5 button,.elementor-kit-5 input[type="button"],.elementor-kit-5 input[type="submit"],.elementor-kit-5 .elementor-button{font-size:var( --e-global-typography-button-font-size );line-height:var( --e-global-typography-button-line-height );letter-spacing:var( --e-global-typography-button-letter-spacing );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}:root { --e-gv-98eb12e:#0E3A5F; --navy:#0E3A5F; --ink:#0C1A2A; --accent-teal:#0E9E94; --teal-deep:#0A6E66; --teal-light:#4FC3B8; --teal-soft:#E4F3F1; --cream:#F6F3EB; --stone:#E7E2D6; --text-body:#383838; --text-muted:#6B6B6B; --white:#FFFFFF; --white-40:rgba(255,255,255,0.4); --glass-navy:rgba(14,58,95,0.4); --glass-white:rgba(255,255,255,0.1); --font-heading:Plus Jakarta Sans; --font-body:Be Vietnam Pro; --border-hairline:#E7E2D6; --hover-white:#EDEDED; }
/* Start custom CSS *//* ===== Dolphin buttons - one source of truth, driven by the Kit globals ===== */
.btn-primary .elementor-button,
.btn-accent .elementor-button,
.btn-white .elementor-button,
.btn-surface .elementor-button,
.btn-secondary .elementor-button{
  border-radius:0;
  padding:16px 28px;
  border:1px solid transparent;
  font-family:var(--e-global-typography-button-font-family);
  font-weight:var(--e-global-typography-button-font-weight);
  font-size:var(--e-global-typography-button-font-size);
  line-height:var(--e-global-typography-button-line-height);
  letter-spacing:var(--e-global-typography-button-letter-spacing);
  transition:filter .15s ease;
}
.btn-primary   .elementor-button{ background-color:var(--e-global-color-primary);   color:var(--e-global-color-white); }
.btn-accent    .elementor-button{ background-color:var(--e-global-color-accent);    color:var(--e-global-color-secondary); }
.btn-white     .elementor-button{ background-color:var(--e-global-color-white);     color:var(--e-global-color-secondary); }
.btn-surface   .elementor-button{ background-color:var(--e-global-color-cream);     color:var(--e-global-color-secondary); }
.btn-secondary .elementor-button{ background-color:var(--e-global-color-white);     color:var(--e-global-color-secondary); border-color:var(--e-global-color-stone); }
.btn-primary   .elementor-button:hover,
.btn-accent    .elementor-button:hover,
.btn-white     .elementor-button:hover,
.btn-surface   .elementor-button:hover,
.btn-secondary .elementor-button:hover{ filter:brightness(0.93); }

/* Dolphin marquee (animated infinite scroll) */
@keyframes dolphin-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.dolphin-marquee { overflow: hidden; max-width: 100%; }
.dolphin-marquee__track { display: flex; align-items: center; gap: 48px; width: max-content; will-change: transform; animation: dolphin-marquee 45s linear infinite; }
.dolphin-marquee:hover .dolphin-marquee__track { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) { .dolphin-marquee__track { animation: none; transform: none; } }

/* Dolphin marquee - id-attribute fallback (_cssid prop renders id="..."; use when class hooks unavailable) */
#dolphin-marquee { overflow: hidden; max-width: 100%; }
#dolphin-marquee-track { display: flex; align-items: center; gap: 48px; width: max-content; will-change: transform; animation: dolphin-marquee 45s linear infinite; }
#dolphin-marquee:hover #dolphin-marquee-track { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) { #dolphin-marquee-track { animation: none; transform: none; } }
/* Buttons never wrap */
.btn-primary, .btn-accent, .btn-white, .btn-surface, .btn-secondary, .elementor-button { white-space: nowrap; }

/* Cards grid: symmetric wrapping (4 across -> 2x2 -> single column) */
.d-cards-grid { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 32px !important; }
.d-cards-grid > * { min-width: 0 !important; }
.d-cards-grid > * > * { width: 100% !important; max-width: 100% !important; }
@media (max-width: 1280px) { .d-cards-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 560px) { .d-cards-grid { grid-template-columns: minmax(0, 1fr) !important; } }

/* Service-card stack: depth recede cue (pure CSS scroll-driven; sticky itself = builder styles) */
@supports (animation-timeline: view()) {
  @media (min-width: 1025px) and (prefers-reduced-motion: no-preference) {
    .d-stack { timeline-scope: --dcard2, --dcard3, --dcard4, --dcard5, --dcard6; }
    .d-stack > :nth-child(2) { view-timeline: --dcard2 block; }
    .d-stack > :nth-child(3) { view-timeline: --dcard3 block; }
    .d-stack > :nth-child(4) { view-timeline: --dcard4 block; }
    .d-stack > :nth-child(5) { view-timeline: --dcard5 block; }
    .d-stack > :nth-child(6) { view-timeline: --dcard6 block; }
    @keyframes dolphin-recede { to { filter: blur(6px); transform: scale(.94); } }
    .d-stack > :nth-child(1) { animation: dolphin-recede both linear; animation-timeline: --dcard2; animation-range: cover -120px cover calc(100vh - 120px); }
    .d-stack > :nth-child(2) { animation: dolphin-recede both linear; animation-timeline: --dcard3; animation-range: cover -120px cover calc(100vh - 120px); }
    .d-stack > :nth-child(3) { animation: dolphin-recede both linear; animation-timeline: --dcard4; animation-range: cover -120px cover calc(100vh - 120px); }
    .d-stack > :nth-child(4) { animation: dolphin-recede both linear; animation-timeline: --dcard5; animation-range: cover -120px cover calc(100vh - 120px); }
    .d-stack > :nth-child(5) { animation: dolphin-recede both linear; animation-timeline: --dcard6; animation-range: cover -120px cover calc(100vh - 120px); }
  }
}



/* Card swap pair - component-instance fix: tier-card roots (cell > *) carry their own bg, so swap it too */

/* Sitewide: kill horizontal scroll. clip + !important: a wp.com platform sheet sets body{overflow-x:hidden},
   which turns body into the scroll container and BREAKS position:sticky sitewide. Keep this rule winning. */
html, body { overflow-x: clip !important; }
@supports not (overflow-x: clip) { html, body { overflow-x: hidden !important; } }

/* Breadcrumb chip - fully self-contained on the breadcrumbs widget, so copy/paste between pages just works */
.elementor-widget-breadcrumbs { width: auto; max-width: 100%; text-align: center; font-size: 0; line-height: 0; }
.elementor-widget-breadcrumbs p { margin: 0; display: inline-block; background: var(--teal-soft); padding: 0 16px; font-family: var(--font-heading); font-weight: 600; font-size: 12px; line-height: 26px; letter-spacing: .96px; text-transform: uppercase; color: var(--teal-deep); }
.elementor-widget-breadcrumbs a { color: inherit; text-decoration: none; }
.elementor-widget-breadcrumbs a:hover { text-decoration: underline; }

/* Why-Dolphin benefit columns: 3 equal rows - 1fr tracks equalise every card to the tallest */
#dolphin-why-col-a, #dolphin-why-col-c { display: grid !important; grid-template-rows: repeat(3, 1fr); }
#dolphin-why-col-a > *, #dolphin-why-col-c > * { display: flex !important; flex-direction: column; }
#dolphin-why-col-a > * > *, #dolphin-why-col-c > * > * { flex: 1 1 auto; }

/* Full-height Google Map card: give the map card CSS ID "dolphin-map" (its row must stretch / siblings set the height) */
#dolphin-map { height: 100%; display: flex; flex-direction: column; }
#dolphin-map > * { flex: 1 1 auto; min-height: 0; }
#dolphin-map .elementor-widget-container, #dolphin-map .elementor-custom-embed { height: 100%; display: flex; }
#dolphin-map iframe { width: 100% !important; height: 100% !important; min-height: 445px; display: block; border: 0; }

/* ===== Form placeholders - the atomic class schema can't express ::placeholder, so adjust HERE ===== */
/* dark/glass fields: solid white */
.white-glove-form::placeholder, .white-glove-form-message::placeholder { color: #FFFFFF !important; opacity: .95; }
/* cream/light fields: muted ink */
.service-form-field::placeholder, .service-form-field-message::placeholder { color: #6B6B6B !important; opacity: 1; }
/* typed text on cream fields (otherwise inherits white inside navy panels) */
.service-form-field, .service-form-field-message { color: #0C1A2A; }
/* date fields on dark glass: dark scheme for the closed state */
.white-glove-form[type="date"] { color-scheme: dark; }

/* Contact quote panel: glass blur + tab active state + form swap */
#dolphin-quote-form { scroll-margin-top: 110px; }
#dolphin-quote-tabs > * { cursor: pointer; }
#dolphin-tab-quick { background-color: var(--accent-teal); }
#dolphin-tab-quick p { color: #FFFFFF; }
body.dolphin-general-active #dolphin-tab-quick p { color: var(--ink); }
body.dolphin-general-active #dolphin-tab-general p { color: #FFFFFF; }
body.dolphin-general-active #dolphin-tab-quick { background-color: transparent; }
body.dolphin-general-active #dolphin-tab-general { background-color: var(--accent-teal); }
#dolphin-form-general { display: none; }
body.dolphin-general-active #dolphin-form-general { display: flex; }
body.dolphin-general-active #dolphin-form-quick { display: none; }

/* Guard: any wrapper around a breadcrumbs widget must never paint its own pill (survives paste/undo) */
.e-con:has(> .elementor-widget-breadcrumbs) { background: transparent !important; padding: 0 !important; height: auto !important; }


/* (footer-69 email-wrap rule removed 2026-07-22, superseded by the V4 footer rules below) */


/* form legal links on brand (inherit label colour, underlined) */
form a, .e-form a, .e-form-base a { color: inherit !important; text-decoration: underline; }
form a:hover, .e-form a:hover, .e-form-base a:hover { opacity: .8; }


/* ===================== DR V4 HEADER (theme-builder location) ===================== */
/* Trigger <button> reset (UA styles), padding/colours stay on local styles */
.elementor-location-header #dr-nav button { background: none; border: 0; cursor: pointer; }
/* Dropdown panels: V4 base styles set display on atomic elements via compound .elementor-kit-5s,
   so both the hide and the reveal need !important; source order decides between these two. */
.elementor-location-header #dr-nav > div:has(> button) > :last-child { display: none !important; }
.elementor-location-header #dr-nav > div:has(> button):hover > :last-child,
.elementor-location-header #dr-nav > div:has(> button):focus-within > :last-child { display: flex !important; }
/* caret on the dropdown trigger labels */
.elementor-location-header #dr-nav > div:has(> button) > button p::after {
  content: "▾"; margin-inline-start: 6px; font-size: 10px; }
/* hover colours: navy top-level links on the white bar -> teal-deep; white dropdown panels -> teal-deep */
.elementor-location-header #dr-nav > div > button:hover p,
.elementor-location-header #dr-nav > a:hover p { color: #0A6E66; }
.elementor-location-header #dr-nav > div > div a:hover p { color: #0A6E66; }
/* burger sheet is white: force readable colours + panel-style hover there */
.elementor-location-header.dr-open #dr-nav p { color: #0E3A5F !important; }
.elementor-location-header.dr-open #dr-nav a:hover p { color: #0A6E66 !important; }
/* keyboard focus */
.elementor-location-header a:focus-visible,
.elementor-location-header button:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
/* The header is white and Hello forces button:focus text to #fff, so pin the ring to navy (else currentColor is white on white). */
.elementor-location-header a:focus-visible, .elementor-location-header button:focus-visible { outline-color: #0E3A5F; }

@media (max-width: 1024px) {
  /* nav collapses behind the burger */
  .elementor-location-header #dr-nav { display: none !important; }
  .elementor-location-header.dr-open #dr-nav {
    display: flex !important; position: absolute; inset-block-start: calc(100% + 8px);
    inset-inline: 0; flex-direction: column; align-items: stretch; gap: 0;
    background: #FFFFFF; border: 1px solid #E7E2D6; padding: 8px; z-index: 120;
    max-height: calc(100vh - 140px); overflow: auto;
  }
  /* dropdown groups render always-expanded inside the sheet; triggers become plain labels */
  .elementor-location-header.dr-open #dr-nav > div:has(> button) > :last-child {
    display: flex !important; position: static !important; min-width: 0;
    border: 0 !important; padding-block: 0; padding-inline-start: 12px;
  }
  .elementor-location-header #dr-nav button { pointer-events: none; }
  .elementor-location-header #dr-nav > div:has(> button) > button p::after { content: ""; }
}

/* ===================== DR V4 FOOTER ===================== */
.elementor-location-footer a[href^="mailto:"] p { overflow-wrap: anywhere; min-width: 0; }


/* ===================== LIGHTBOX POSITION FIX ===================== */
/* Elementor's dialog JS occasionally writes an inline top/left of 50%/50% onto the
   full-size (100% x 100%) lightbox content, which shoves the centred video off the
   bottom-right of the screen. Force the content box to fill the overlay so the video
   (centred inside it via its own translate) lands in the middle of the viewport. */
.elementor-lightbox .dialog-widget-content { top: 0 !important; left: 0 !important; }


/* ===================== CONTACT CHANNEL BUTTON WRAP ===================== */
/* The channel-card button (comp 3944, e.g. the full email address at 20px) is wider than
   its card at tablet/desktop and overflowed the viewport. Cap it to its card and let the
   label wrap instead of spilling off-screen. */
.e-a9b1206-c034ab8 { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }


/* Service Card slots 4-5: hide a tick row whose paragraph is empty (no instance override) */
.e-fdf9171-a478704:not(:has(p:not(:empty))), .e-7117ee0-eb3c56f:not(:has(p:not(:empty))), .e-beab208-2577a9c:not(:has(p:not(:empty))), .e-eb9fbd5-34de761:not(:has(p:not(:empty))) { display: none !important; }

/* White header bar (2026-09-12): hairline under it so it separates from the page below */
.elementor-location-header .e-hvroot-2f8e404 { border-block-end: 1px solid #E7E2D6; }

/* White header (2026-09-14): below 1025px the bar sits in the flow instead of overlaying,
   so each hero's own top padding becomes the real gap under it. The wrapper is sticky so the bar stays visible when scrolling (Angela, 14 Sep); desktop is a fixed overlay. */
@media (max-width: 1024px) {
  .elementor-location-header { position: sticky; inset-block-start: 0; z-index: 1000; }
  .elementor-location-header .e-hvroot-2f8e404 { position: static !important; }
}

/* Header scroll-reveal (Olly, 14 Sep): the bar slides away while scrolling down and returns as soon as the visitor scrolls up.
   The header template carries the tiny script that toggles .dr-nav-hidden on the location wrapper. */
.elementor-location-header .e-hvroot-2f8e404 { transition: transform .28s ease; }
@media (min-width: 1025px) { .elementor-location-header.dr-nav-hidden .e-hvroot-2f8e404 { transform: translateY(-100%); } }
@media (max-width: 1024px) {
  .elementor-location-header { transition: transform .28s ease; }
  .elementor-location-header.dr-nav-hidden { transform: translateY(-100%); }
}

/* BAR badge in the header (Angela, 16 Sep; made visible on as many screens as possible). The wrapper crops the 957x362 badge image:
   --sx/--sy/--sw/--sh is the source rectangle shown. --sw 878 = full badge (BAR roundel + CTSI logo), --sw 316 = BAR roundel only.
   Height comes from a padding-top ratio box on ::after (not aspect-ratio; Elementor uses .e-con::before for overlays) so it follows the width when the badge shrinks, in every browser.
   Full badge: 1150px and up (199px, shrinking only as far as needed; Elementor's .e-div-block-base min-width 30px is the real floor), tablets, and phones 480 to 767px. Roundel: 1025 to 1149px and phones 360 to 479px.
   Desktop bands start at 1024.02px, not 1025px, so zoomed or scaled viewports between 1024 and 1025px are covered.
   Hidden only below 360px. 1025 to 1279px tightens menu and button padding; phones tighten Get a Quote and the burger and let both logos shrink. */
.elementor .e-hvbarwrap-3b7d1c2 { --sx: 39; --sy: 38; --sw: 878; --sh: 282; position: relative; display: block; overflow: hidden; width: 199px; flex: 0 1 auto; padding: 0; }
.elementor .e-hvbarwrap-3b7d1c2::after { content: ""; display: block; position: static; width: auto; height: 0; padding-top: calc(var(--sh) / var(--sw) * 100%); }
.elementor .e-hvbarwrap-3b7d1c2 img { position: absolute; top: 0; left: 0; display: block; max-width: none; height: auto; width: calc(957 / var(--sw) * 100%); margin: calc(var(--sy) / var(--sw) * -100%) 0 0 calc(var(--sx) / var(--sw) * -100%); }
@media (min-width: 1024.02px) and (max-width: 1279px) {
  .elementor [data-id="hvsvct"], .elementor [data-id="hvloct"], .elementor [data-id="hvpl0"], .elementor [data-id="hvpl1"], .elementor [data-id="hvpl2"], .elementor [data-id="hvpl3"] { padding-inline: 8px !important; }
  .elementor [data-id="hvbtncall"], .elementor [data-id="hvbtnquote"] { padding-inline: 16px !important; }
  .elementor .e-hvbrandgrp-be5af7d { gap: 14px !important; }
}
@media (min-width: 1024.02px) and (max-width: 1149px) { .elementor .e-hvbarwrap-3b7d1c2 { --sw: 316; width: 63px; flex: none; } }
@media (min-width: 1024.02px) and (max-width: 1079px) { .elementor .e-hvbarwrap-3b7d1c2 { width: 56px; } }
@media (max-width: 767px) {
  .elementor .e-hvbrandgrp-be5af7d { gap: 10px !important; }
  .elementor .e-hvbrand-851aa3f { flex: 0 1 124px !important; width: 124px !important; min-width: 100px !important; }
  .elementor .e-ab64a42-7a098e7 { flex: none !important; width: 100% !important; height: auto !important; min-width: 0 !important; }
  .elementor [data-id="hvbtnquote"] { padding-inline: 16px !important; }
  .elementor [data-id="hvburger"] { padding-inline: 8px !important; }
  .elementor .e-hvbarwrap-3b7d1c2 { --sw: 316; width: 45px; }
}
@media (min-width: 480px) and (max-width: 767px) { .elementor .e-hvbarwrap-3b7d1c2 { --sw: 878; width: 125px; } }
@media (max-width: 389px) { .elementor [data-id="hvbtnquote"] { padding-inline: 12px !important; } }
@media (max-width: 359px) { .elementor .e-hvbarwrap-3b7d1c2 { display: none !important; } }
@media (max-width: 304px) { .elementor .e-hvbrand-851aa3f { min-width: 0 !important; } }
/* Burger: the Hello theme paints every button:hover/:focus #c36 pink, and phones keep :hover after a tap. Keep it clear; keyboard focus shows the navy outline set with the header focus rules. */
.elementor [data-id="hvburger"]:hover, .elementor [data-id="hvburger"]:focus, .elementor [data-id="hvburger"]:active { background-color: transparent !important; }
/* Narrow desktop (1025 to 1079px): Dolphin logo steps down to 50px so the full nav and both buttons fit. */
@media (min-width: 1024.02px) and (max-width: 1079px) { .elementor-location-header .e-ab64a42-7a098e7 { height: 50px !important; } }
/* BAR member badge in the accreditation rows (Angela, 24 Sep). The row component crops photos with object-fit cover, which would clip a round badge, so these four instances show it whole. */
.elementor [data-id="0gymqf6"] img, .elementor [data-id="0ziared"] img, .elementor [data-id="02qhw4h"] img, .elementor [data-id="1vl0jgi"] img { object-fit: contain !important; }

/* Pin 360 (24 Sep): vehicle Included Row 1 now carries a portrait car photo (media 4991); keep the car in the landscape crop */
.elementor [data-id="1ios225"] img { object-position: center 88% !important; }

/* ===== Client Reviews Slider (component, built 2026-09-25) =====
   Layout is native (grid) inside the component. These rules only handle which review shows.
   Before the script runs, the first review shows. Once it runs (.is-ready), only .is-active shows.
   In the Elementor editor every review is listed, so all the copy can be seen and edited. */
.reviews-author, .reviews-quote { transition: opacity .45s ease; }
.reviews-slider:not(.is-ready) .reviews-slide ~ .reviews-slide .reviews-author,
.reviews-slider:not(.is-ready) .reviews-slide ~ .reviews-slide .reviews-quote,
.reviews-slider.is-ready .reviews-slide:not(.is-active) .reviews-author,
.reviews-slider.is-ready .reviews-slide:not(.is-active) .reviews-quote { opacity: 0; pointer-events: none; }
.reviews-prev, .reviews-next { cursor: pointer; }
.reviews-prev:focus-visible, .reviews-next:focus-visible { outline: 2px solid var(--navy, #0E3A5F); outline-offset: 2px; }
.reviews-slider.is-single .reviews-prev, .reviews-slider.is-single .reviews-next { display: none; }
@media (min-width: 1025px) and (max-width: 1366px) { .elementor .reviews-slider .reviews-quote { min-height: 360px; } }
@media (prefers-reduced-motion: reduce) { .reviews-author, .reviews-quote { transition: none; } }
body.elementor-editor-active .reviews-slider .reviews-slides { display: flex !important; flex-direction: column; gap: 32px; grid-column: 1 / -1; grid-row: 4; padding: 0 !important; }
body.elementor-editor-active .reviews-slider .reviews-slide { display: flex !important; flex-wrap: wrap; gap: 16px 32px; align-items: flex-start; padding: 0 !important; }
body.elementor-editor-active .reviews-slider .reviews-author { flex: 0 0 200px; min-height: 0 !important; }
body.elementor-editor-active .reviews-slider .reviews-quote { flex: 1 1 280px; min-height: 0 !important; margin: 0 !important; }
body.elementor-editor-active .reviews-slider .reviews-author,
body.elementor-editor-active .reviews-slider .reviews-quote { opacity: 1 !important; pointer-events: auto !important; }
/* A review whose quote is empty is hidden, so a page can show fewer than five reviews. */
.elementor .reviews-slider .reviews-slide:has(.reviews-quote:empty) > * { display: none; }
/* ===== end Client Reviews Slider ===== */

/* ===================== 2026-09-30 final-sweep fixes ===================== */
/* House Removals "What we can't take on" (navy Card Swap Card 3566, House page only via container 5194ed1):
   show a cross (Phosphor x-circle, same weight as the tick) instead of the tick. Other pages keep the tick. */
.elementor .elementor-element-5194ed1 :is(.e-43ff7d9c-59cee75, .e-91c4722-beee238, .e-aadcf62-4be024c, .e-99670d9-e8d39dd) > svg { visibility: hidden; }
.elementor .elementor-element-5194ed1 :is(.e-43ff7d9c-59cee75, .e-91c4722-beee238, .e-aadcf62-4be024c, .e-99670d9-e8d39dd) { background: center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='24'%3E%3Ccircle cx='128' cy='128' r='96'/%3E%3Cline x1='160' y1='96' x2='96' y2='160'/%3E%3Cline x1='160' y1='160' x2='96' y2='96'/%3E%3C/svg%3E"); }
/* Contact channel cards (component 3944): scale the email address to its card so it stays on one line
   (text column is the size container; phones are unaffected). */
.elementor .e-ff8fef7-56bf6d3 { container-type: inline-size; }
.elementor a.e-a9b1206-c034ab8[href^="mailto:"] { font-size: clamp(13px, 6.1cqi, 20px); }/* End custom CSS */