/* Reviewed site styling and accessible motion/navigation controls.
 * Live reference inspected 31 October 2026. Enabled for standard builds. */

/* 1. Keep the existing title rectangles, type metrics and padding. A dark
 * one-pixel contour preserves white-letter contrast over the moving footage. */
body .elementor-42 .elementor-element-70b44e0 :is(.elementor-widget-heading,.elementor-widget-animated-headline) > .elementor-widget-container {
  background: rgb(21 84 123 / 40%) !important;
}
body .elementor-42 .elementor-element-70b44e0 :is(.elementor-heading-title,.elementor-headline) {
  text-shadow: -1px -1px 0 #082b43, 0 -1px 0 #082b43, 1px -1px 0 #082b43, -1px 0 0 #082b43, 1px 0 0 #082b43, -1px 1px 0 #082b43, 0 1px 0 #082b43, 1px 1px 0 #082b43;
}

/* 2. Use the existing motion-control row; never resize the hero or its video. */
body .bubble-motion-controls { gap: 8px; flex-wrap: wrap; }
body .bubble-motion-controls .hero-playback-control { text-transform: none; letter-spacing: normal; padding: 8px; }

/* 3. Live dropdown hover is #2084c6. Keep a dark readable ink on it; top-level
 * links retain the live transparent background and orange underline. */
body .elementor-804 .elementor-nav-menu--main > .elementor-nav-menu > li > .elementor-item,
body .elementor-804 .elementor-nav-menu--main > .elementor-nav-menu > li > .submenu-toggle {
  background: transparent !important;
}
body .elementor-804 .elementor-nav-menu--main > .elementor-nav-menu > li > .elementor-item::before,
body .elementor-804 .elementor-nav-menu--main > .elementor-nav-menu > li > .elementor-item::after {
  background-color: #e99444;
}
body .elementor-804 .elementor-nav-menu--main .sub-menu > li:is(:hover,:focus-within) > :is(.elementor-sub-item,.submenu-toggle),
body .elementor-804 .elementor-nav-menu--dropdown li:is(:hover,:focus-within) > :is(.elementor-item,.elementor-sub-item,.submenu-toggle) {
  background: #2084c6 !important;
  color: #07121c !important;
}

/* 4. Original normal colors: warm orange for standard buttons, coral for the
 * home Contact CTA, and blue for home Learn More. Keep existing box metrics. */
body .elementor .elementor-widget-button .elementor-button,
body .elementor .elementor-widget-form .elementor-button {
  background: #e99444 !important;
  color: #07121c !important;
  transition: background-color .3s ease, color .3s ease, border-color .3s ease, transform .3s ease-out !important;
}
body .elementor-42 .elementor-element-ada8349 .elementor-button { background: #e95b44 !important; }
body .elementor-42 .elementor-element-3cb0745 .elementor-button { background: #2084c6 !important; }
body .elementor :is(.elementor-widget-button,.elementor-widget-form) .elementor-button * { color: inherit !important; }
body .elementor .elementor-button:hover,
body .elementor .elementor-button:focus-visible {
  background: #2084c6 !important;
  color: #07121c !important;
  text-decoration: none;
}
body .elementor .elementor-button:hover *, body .elementor .elementor-button:focus-visible * { color: #07121c !important; }

/* 5. Shared inner hero and archive title bars. Weight 700 is the live H2 weight;
 * preserve the H1 semantics and all existing type sizes/alignment. */
body .elementor-1170 .elementor-element-422a4ea5 > .elementor-widget-container,
body .elementor-1216 .elementor-element-192df065 > .elementor-widget-container {
  background-color: #2084c6 !important;
}
body .elementor-1170 .elementor-heading-title,
body .elementor-1216 .elementor-element-192df065 .elementor-heading-title {
  font-weight: 700 !important;
  letter-spacing: .01px;
  overflow-wrap: normal;
  text-wrap: wrap;
}

/* 6. Restore only the first blue footer information rectangle. Dark text is
 * necessary because the live small white text does not reach AA contrast. */
body .elementor-794 .elementor-element-f8e20fc { background: #2084c6eb !important; }
body .elementor-794 .elementor-element-f8e20fc :is(h2,h3,p,span,a) { color: #000 !important; }
body .elementor-794 .elementor-element-f8e20fc .elementor-widget-text-editor > .elementor-widget-container { color: #000 !important; }

@media (prefers-reduced-motion: reduce) {
  body .elementor .elementor-widget-button .elementor-button,
  body .elementor .elementor-widget-form .elementor-button { transition: none !important; }
}

/* Requested local review revisions: white lettering with AA-safe surfaces. */
body .elementor-42 .elementor-element-70b44e0 { position: relative; isolation: isolate; }
body .elementor-42 .elementor-element-70b44e0 > .local-hero-title-panel { position: absolute; z-index: -1; pointer-events: none; background: #15547b; }
body .elementor-42 .elementor-element-70b44e0 :is(.elementor-widget-heading,.elementor-widget-animated-headline) > .elementor-widget-container { background: transparent !important; }
body .elementor-42 .elementor-element-70b44e0 :is(.elementor-heading-title,.elementor-headline) { text-shadow: none; -webkit-text-stroke: 0; color: #fff !important; }
body .elementor .elementor-button.elementor-button { background: #b06017 !important; color: #fff !important; }
body .elementor-42 .elementor-element-ada8349 .elementor-button.elementor-button { background: #c14430 !important; }
body .elementor-42 .elementor-element-3cb0745 .elementor-button.elementor-button { background: #1d7bb9 !important; }
body .elementor .elementor-button.elementor-button:hover, body .elementor .elementor-button.elementor-button:focus-visible { background: #1d7bb9 !important; color: #fff !important; }
body .elementor .elementor-button.elementor-button *, body .elementor .elementor-button.elementor-button:hover *, body .elementor .elementor-button.elementor-button:focus-visible * { color: #fff !important; }
body .elementor-804 .elementor-nav-menu--main > .elementor-nav-menu > li:is(:hover,:focus-within) > :is(.elementor-item,.submenu-toggle) { color: #a55612 !important; }
body .elementor-804 .elementor-nav-menu--dropdown > .elementor-nav-menu > li:is(:hover,:focus-within) > :is(.elementor-item,.submenu-toggle) { color: #fff !important; background: #1d7bb9 !important; }
body .elementor-794 .elementor-element-f8e20fc { background: #1d7bb9 !important; }
body .elementor-794 .elementor-element-f8e20fc :is(h2,h3,p,span,a), body .elementor-794 .elementor-element-f8e20fc .elementor-widget-text-editor > .elementor-widget-container { color: #fff !important; }
body .elementor-42 :is(.elementor-element-fe038df,.elementor-element-83244a8) .elementor-heading-title { color: #15547b !important; background: #fff; }
/* Retain the original sand photo. A 25% base shade plus the requested 40%
   text-panel overlay guarantees white-text contrast even over white sand. */
body :is(.elementor-42,.elementor-13) .elementor-flip-box__back .elementor-flip-box__layer__overlay { background: rgb(0 0 0 / 25%) !important; }
body :is(.elementor-42,.elementor-13) .elementor-flip-box__back .elementor-flip-box__layer__inner { background: rgb(0 0 0 / 40%); padding: 12px; border-radius: 4px; }
body .elementor-1457 :is(.elementor-element-b9620ac,.elementor-element-a66ddca) { background: #1d7bb9 !important; }
body .elementor-42 .elementor-element-70b44e0 > .local-hero-title-panel { z-index: 0; }
body .elementor-42 .elementor-element-70b44e0 > .elementor-element { position: relative; z-index: 1; }

/* Latest local review: separate text playback, uniform orange copyright,
   and edge-to-edge inner hero imagery at every breakpoint. */
body .elementor-42 .elementor-element-70b44e0 > .local-hero-title-panel { background: rgb(21 84 123 / 30%); }
body .headline-playback-control, body .review-carousel-controls button { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; min-width: 44px; padding: 8px 14px; border: 2px solid #fff; border-radius: 6px; background: #15547b; color: #fff !important; font: 600 16px/1.5 Arial,sans-serif; cursor: pointer; }
body .headline-playback-control { display: flex; margin: 8px auto 0; }
body .elementor-794 .elementor-element-79983282 { background: #b06017 !important; }
body .elementor-1170 .elementor-element-6f100ce4::before,
body .elementor-1216 > .e-con::before { background-size: cover !important; background-position: center center !important; }
body .elementor-1170, body .elementor-1170 .elementor-element-6f100ce4 { width: 100%; max-width: none; }
body .review-carousel-controls { display: flex; justify-content: center; flex-wrap: wrap; align-items: center; gap: 12px; margin: 12px 0; }
body .review-carousel-controls button:hover, body .headline-playback-control:hover { background: #1d7bb9; }
body .accessible-reviews.local-review-carousel { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 20px; padding: 12px; }
body .accessible-reviews.local-review-carousel > li { flex: 0 0 calc((100% - 40px) / 3); min-width: 0; scroll-snap-align: start; }
@media(max-width:1024px) { body .accessible-reviews.local-review-carousel > li { flex-basis: calc((100% - 20px) / 2); } }
@media(max-width:767px) { body .accessible-reviews.local-review-carousel > li { flex-basis: 100%; } }
/* The blue tint itself is 30%. Darken only the footage beneath the rectangle
   to retain plain white text contrast without a stroke or an opaque panel. */
body .elementor-42 .elementor-element-70b44e0 > .local-hero-title-panel { backdrop-filter: brightness(.45); -webkit-backdrop-filter: brightness(.45); }
/* User reference: black icon controls, white rounded borders. */
body .review-carousel-controls button, body .headline-playback-control { width: 64px; height: 64px; padding: 16px; flex-shrink: 0; border: 2px solid #fff !important; border-radius: 12px; background: #111 !important; color: #fff !important; }
body .review-carousel-controls button:hover, body .headline-playback-control:hover { background: #303030 !important; }
body .review-carousel-controls svg, body .headline-playback-control svg { width: 28px; height: 28px; fill: none; stroke: currentColor; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
/* Final local review refinements. */
body .elementor-42 .elementor-element-70b44e0 > .local-hero-title-panel { background: rgb(21 84 123 / 20%); }
body .elementor-42 .elementor-element-7b454a0 { width: 100%; max-width: none; }
body .elementor-42 .elementor-element-7b454a0 > .elementor-background-video-container { position: absolute; inset: 0; width: 100%; height: 100%; overflow: hidden; }
body .elementor-42 .elementor-element-7b454a0 > .elementor-background-video-container > video { position: absolute; inset: 0; width: 100% !important; height: 100% !important; max-width: none !important; object-fit: cover; object-position: center; transform: none !important; }
body .local-review-shell { position: relative; padding-inline: 24px; }
body .local-review-shell .review-carousel-controls { margin: 8px 0 12px; }
body .local-review-shell .review-carousel-controls button { width: 48px; height: 48px; min-width: 44px; min-height: 44px; padding: 10px; border-radius: 9px; }
body .local-review-shell .review-carousel-controls svg { width: 22px; height: 22px; }
body .local-review-shell .review-carousel-controls button:first-child { position: absolute; left: 0; top: calc((100% - 68px) / 2); transform: translateY(-50%); z-index: 2; }
body .local-review-shell .review-carousel-controls button:nth-child(3) { position: absolute; right: 0; top: calc((100% - 68px) / 2); transform: translateY(-50%); z-index: 2; }
body .local-review-shell { padding-inline: 36px; }
body .elementor-42 :is(.elementor-element-fe038df,.elementor-element-83244a8) .elementor-heading-title { color: #fff !important; background: transparent !important; }
body .elementor-42 :is(.elementor-element-fe038df,.elementor-element-83244a8) > .elementor-widget-container { background: transparent !important; }
/* Review arrow reference: white circles and gray chevrons at card edges. */
body .local-review-shell .review-carousel-controls button:first-child,
body .local-review-shell .review-carousel-controls button:nth-child(3) {
  width: 44px; height: 44px; padding: 10px; border-radius: 50%;
  background: #fff !important; border: 1px solid #c9c9c9 !important;
  color: #606060 !important; box-shadow: 0 1px 3px rgb(0 0 0 / 6%);
}
body .local-review-shell .review-carousel-controls button:first-child:hover,
body .local-review-shell .review-carousel-controls button:nth-child(3):hover { background: #f2f2f2 !important; border-color: #606060 !important; }
body .local-review-shell .review-carousel-controls button:first-child svg,
body .local-review-shell .review-carousel-controls button:nth-child(3) svg { stroke-width: 2.5; }
/* Navigation: blue hover and persistent coral current-page/section state. */
body .elementor-804 :is(.elementor-nav-menu--main,.elementor-nav-menu--dropdown) > .elementor-nav-menu > li > :is(.elementor-item,.submenu-toggle) { color: #1d7bb9 !important; }
body .elementor-804 :is(.elementor-nav-menu--main,.elementor-nav-menu--dropdown) > .elementor-nav-menu > li:is(:hover,:focus-within) > :is(.elementor-item,.submenu-toggle) { color: #15547b !important; background: #e6f2fa !important; }
body .elementor-804 :is(.elementor-nav-menu--main,.elementor-nav-menu--dropdown) .sub-menu > li:is(:hover,:focus-within) > :is(.elementor-sub-item,.submenu-toggle) { color: #fff !important; background: #1d7bb9 !important; }
body .elementor-804 :is(.elementor-nav-menu--main,.elementor-nav-menu--dropdown) > .elementor-nav-menu > li:has(a[aria-current="page"]) > :is(.elementor-item,.submenu-toggle) { color: #ac3c2d !important; background: transparent !important; }
body .elementor-804 a[aria-current="page"] { text-decoration: underline !important; text-underline-offset: 5px; font-weight: 700; }
body .elementor-804 :is(.elementor-nav-menu--main,.elementor-nav-menu--dropdown) .sub-menu > li:has(> a[aria-current="page"]) > :is(.elementor-sub-item,.submenu-toggle) { color: #7b2c20 !important; background: #f7cec7 !important; }
/* Keep both card edges and arrow targets inside the viewport. */
body .local-review-shell { min-width: 0; max-width: 100%; box-sizing: border-box; }
body .accessible-reviews.local-review-carousel { scroll-padding-inline: 12px; box-sizing: border-box; }
body .accessible-reviews.local-review-carousel > li { box-sizing: border-box; overflow-wrap: anywhere; }
/* Main-site navigation parity: no pastel fill, extra underline or bolding. */
body .elementor-804 :is(.elementor-nav-menu--main,.elementor-nav-menu--dropdown) > .elementor-nav-menu > li > :is(.elementor-item,.submenu-toggle),
body .elementor-804 :is(.elementor-nav-menu--main,.elementor-nav-menu--dropdown) > .elementor-nav-menu > li:has(a[aria-current="page"]) > :is(.elementor-item,.submenu-toggle) { color: #1e7cba !important; background: transparent !important; }
body .elementor-804 :is(.elementor-nav-menu--main,.elementor-nav-menu--dropdown) > .elementor-nav-menu > li:is(:hover,:focus-within) > :is(.elementor-item,.submenu-toggle) { color: #cc4b38 !important; background: transparent !important; }
body .elementor-804 :is(.elementor-nav-menu--main,.elementor-nav-menu--dropdown) a { text-decoration: none !important; }
body .elementor-804 .elementor-item { font-weight: 600 !important; }
body .elementor-804 .elementor-sub-item { font-weight: 500 !important; color: #1e7cba !important; background: #fff !important; }
body .elementor-804 :is(.elementor-nav-menu--main,.elementor-nav-menu--dropdown) .sub-menu > li:is(:hover,:focus-within) > :is(.elementor-sub-item,.submenu-toggle) { color: #fff !important; background: #1e7cba !important; }
body .elementor-804 :is(.elementor-nav-menu--main,.elementor-nav-menu--dropdown) .sub-menu > li:has(> a[aria-current="page"]) > :is(.elementor-sub-item,.submenu-toggle) { color: #fff !important; background: #cc4b38 !important; }
body .elementor-804 .elementor-nav-menu--main > .elementor-nav-menu > li > .elementor-item::before,
body .elementor-804 .elementor-nav-menu--main > .elementor-nav-menu > li > .elementor-item::after { background-color: #1e7cba; }

/* Navigation AA: blue/white 4.52:1; coral/white 4.54:1.
   Scope stays inside the development-only review stylesheet. */
/* Motion controls: consistent mouse hover and keyboard focus contrast. */
body .bubble-motion-controls button:not(:disabled):is(:hover,:focus-visible) {
  background: #1e7cba !important;
  color: #fff !important;
  border-color: #15547b !important;
  text-decoration: none;
}
body .bubble-motion-controls button:not(:disabled):is(:hover,:focus-visible) * { color: inherit !important; }
@media (max-width: 359px) {
  body .elementor-1170 .elementor-heading-title { overflow-wrap: anywhere; }
}
@media (min-width: 768px) and (max-width: 1024px) {
  body .elementor-794 .elementor-social-icons-wrapper { display: flex !important; flex-wrap: nowrap; gap: 6px; justify-content: flex-start; align-items: center; }
  body .elementor-794 .elementor-social-icons-wrapper .elementor-grid-item { display: flex; margin: 0 !important; flex: 0 0 44px; }
  body .elementor-794 .elementor-social-icon { width: 44px !important; height: 44px !important; padding: 0 !important; display: inline-flex; align-items: center; justify-content: center; }
}
@media (max-width: 359px) {
  body .elementor-1216 .elementor-element-192df065 .elementor-heading-title { overflow-wrap: anywhere; }
}
body .ea11y-skip-to-content-link, body .ea11y-skip-to-content-link:visited, body .ea11y-skip-to-content-link:focus { color: #fff !important; background: #0b3554 !important; }
/* Sticky on every device, with anchor/focus clearance for the actual header. */
body .elementor-location-header { position: sticky !important; top: 0 !important; z-index: 1000; background: #fff; }
html { scroll-padding-top: calc(var(--local-header-height, 220px) + 16px); }
body :is(main,[id],a,button,input,select,textarea,summary) { scroll-margin-top: calc(var(--local-header-height, 220px) + 16px); }
body .bubble-motion-controls button { transition: none !important; }
/* Apply the same top-level hover/focus state even in the current section. */
body .elementor-804.elementor-804 :is(.elementor-nav-menu--main,.elementor-nav-menu--dropdown) > .elementor-nav-menu > li:is(:hover,:focus-within) > :is(.elementor-item,.submenu-toggle) { color: #cc4b38 !important; background: transparent !important; }
/* One scroll container for the entire mobile/tablet menu. Nested lists must
   allow scroll gestures to reach it rather than trapping them. */
@media (max-width: 1024px) {
  body .elementor-804 nav.elementor-nav-menu--dropdown {
    max-height: var(--menu-height, 65dvh) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior-y: contain;
    touch-action: pan-y;
    -webkit-overflow-scrolling: touch;
    scroll-padding-block: 8px;
  }
  body .elementor-804 nav.elementor-nav-menu--dropdown .sub-menu {
    overflow: visible !important;
    max-height: none !important;
    overscroll-behavior: auto;
    touch-action: pan-y;
  }
  body .elementor-804 nav.elementor-nav-menu--dropdown :is(a,button) { scroll-margin: 8px 0; }
}
@media (max-width: 1024px) {
  body .elementor-804 nav.elementor-nav-menu--dropdown { padding-bottom: 8px; box-sizing: border-box; }
}
