/*
 * Scoped design corrections for the local review build.
 * Selectors are limited to known Elementor widgets and templates so the
 * preserved page structure, spacing, typography and imagery remain unchanged.
 */

/* WCAG AA button colors: preserve the original palette while darkening only
 * fills/text that did not provide enough contrast. */
.elementor-element.elementor-element-1977286 .elementor-button,
.elementor-element.elementor-element-4abed10 .elementor-button {
    border-color: #c2410c !important;
    background-color: #c2410c !important;
    color: #fff !important;
    fill: #fff !important;
}

.elementor-element.elementor-element-1977286 .elementor-button:hover,
.elementor-element.elementor-element-1977286 .elementor-button:focus,
.elementor-element.elementor-element-4abed10 .elementor-button:hover,
.elementor-element.elementor-element-4abed10 .elementor-button:focus {
    border-color: #9a3412 !important;
    background-color: #9a3412 !important;
    color: #fff !important;
    fill: #fff !important;
}

:is(.elementor-37, .elementor-1366) :is(.elementor-element-2ea4c18, .elementor-element-e0fe684) .elementor-button,
.elementor-542 .elementor-element-b40f002 .elementor-button,
.elementor-510 :is(.elementor-element-e59e243, .elementor-element-9827b94) .elementor-button,
.elementor-364 .elementor-element-01e1987 .elementor-button,
.elementor-1362 :is(.elementor-element-01e1987, .elementor-element-7c9e19c) .elementor-button {
    border-color: #166534 !important;
    background-color: #166534 !important;
    color: #fff !important;
    fill: #fff !important;
}

:is(.elementor-37, .elementor-1366) :is(.elementor-element-2ea4c18, .elementor-element-e0fe684) .elementor-button:hover,
:is(.elementor-37, .elementor-1366) :is(.elementor-element-2ea4c18, .elementor-element-e0fe684) .elementor-button:focus,
.elementor-542 .elementor-element-b40f002 .elementor-button:hover,
.elementor-542 .elementor-element-b40f002 .elementor-button:focus,
.elementor-510 :is(.elementor-element-e59e243, .elementor-element-9827b94) .elementor-button:hover,
.elementor-510 :is(.elementor-element-e59e243, .elementor-element-9827b94) .elementor-button:focus,
.elementor-364 .elementor-element-01e1987 .elementor-button:hover,
.elementor-364 .elementor-element-01e1987 .elementor-button:focus,
.elementor-1362 :is(.elementor-element-01e1987, .elementor-element-7c9e19c) .elementor-button:hover,
.elementor-1362 :is(.elementor-element-01e1987, .elementor-element-7c9e19c) .elementor-button:focus {
    border-color: #14532d !important;
    background-color: #14532d !important;
    color: #fff !important;
    fill: #fff !important;
}

.elementor-7 .elementor-element-3de17a2 .elementor-button,
:is(.elementor-321, .elementor-1357) :is(.elementor-element-01e1987, .elementor-element-36c5da4, .elementor-element-7c9e19c) .elementor-button {
    border-color: #0369a1 !important;
    background-color: #0369a1 !important;
    color: #fff !important;
    fill: #fff !important;
}

.elementor-7 .elementor-element-3de17a2 .elementor-button:hover,
.elementor-7 .elementor-element-3de17a2 .elementor-button:focus,
:is(.elementor-321, .elementor-1357) :is(.elementor-element-01e1987, .elementor-element-36c5da4, .elementor-element-7c9e19c) .elementor-button:hover,
:is(.elementor-321, .elementor-1357) :is(.elementor-element-01e1987, .elementor-element-36c5da4, .elementor-element-7c9e19c) .elementor-button:focus {
    border-color: #075985 !important;
    background-color: #075985 !important;
    color: #fff !important;
    fill: #fff !important;
}

.elementor-7 .elementor-element-6123541 .elementor-button {
    border-color: #047857 !important;
    background-color: #047857 !important;
    color: #fff !important;
    fill: #fff !important;
}

.elementor-7 .elementor-element-bd55532 .elementor-button {
    border-color: #4338ca !important;
    background-color: #4338ca !important;
    color: #fff !important;
    fill: #fff !important;
}

.elementor-7 .elementor-element-bb57632 .elementor-button {
    border-color: #166534 !important;
    background-color: #166534 !important;
    color: #fff !important;
    fill: #fff !important;
}

.elementor-7 .elementor-element-7f8f384 .elementor-button {
    border-color: #0f766e !important;
    background-color: #0f766e !important;
    color: #fff !important;
    fill: #fff !important;
}

.elementor-7 .elementor-element-864974e .elementor-button {
    border-color: #92400e !important;
    background-color: #92400e !important;
    color: #fff !important;
    fill: #fff !important;
}

.elementor-7 :is(.elementor-element-982e164, .elementor-element-1ac6b69) .elementor-button {
    border-color: #c2410c !important;
    color: #c2410c !important;
    fill: #c2410c !important;
}

.elementor-681 .elementor-element-43c742d .elementor-button {
    border-color: #b91c1c !important;
    color: #b91c1c !important;
    fill: #b91c1c !important;
}

.elementor-37 .elementor-element-53fdabc .elementor-button {
    border-color: #0369a1 !important;
    color: #0369a1 !important;
    fill: #0369a1 !important;
}

.elementor-37 .elementor-element-b7cda98 .elementor-button {
    border-color: #92400e !important;
    color: #92400e !important;
    fill: #92400e !important;
}

.elementor-37 .elementor-element-d69afce .elementor-button {
    border-color: #b91c1c !important;
    color: #b91c1c !important;
    fill: #b91c1c !important;
}

.elementor-37 .elementor-element-0999636 .elementor-button {
    border-color: #0f766e !important;
    color: #0f766e !important;
    fill: #0f766e !important;
}

.elementor-37 .elementor-element-c8f605c .elementor-button {
    border-color: #c2410c !important;
    color: #c2410c !important;
    fill: #c2410c !important;
}

.elementor-459 .elementor-element-272e70b .elementor-button,
.elementor-364 .elementor-element-7c9e19c .elementor-button {
    border-color: #0f766e !important;
    background-color: #0f766e !important;
    color: #fff !important;
    fill: #fff !important;
}

.elementor-459 .elementor-element-272e70b .elementor-button:hover,
.elementor-459 .elementor-element-272e70b .elementor-button:focus,
.elementor-364 .elementor-element-7c9e19c .elementor-button:hover,
.elementor-364 .elementor-element-7c9e19c .elementor-button:focus {
    border-color: #115e59 !important;
    background-color: #115e59 !important;
    color: #fff !important;
    fill: #fff !important;
}

.elementor-element.elementor-element-3e3bd07 .elementor-button {
    border-color: #f0f9ff !important;
    color: #f0f9ff !important;
    fill: #f0f9ff !important;
}

.elementor-element.elementor-element-0cc558a .elementor-button {
    border-color: #c2410c !important;
    background-color: #7c2d12 !important;
    color: #fff !important;
    fill: #fff !important;
}

.elementor-element.elementor-element-0cc558a .elementor-button:hover,
.elementor-element.elementor-element-0cc558a .elementor-button:focus {
    border-color: #9a3412 !important;
    background-color: #9a3412 !important;
    color: #fff !important;
    fill: #fff !important;
}

.elementor-button:focus-visible {
    outline: 3px solid #fbbf24 !important;
    outline-offset: 3px !important;
}

/* Marina clearance: restore readable default, hover, focus and icon states. */
.elementor-411 .elementor-element.elementor-element-8451bad .elementor-button {
    background-color: #fff !important;
    border-color: #0d9488 !important;
    color: #0d9488 !important;
    fill: #0d9488 !important;
}

.elementor-411 .elementor-element.elementor-element-b18f0e6 .elementor-button {
    background-color: #fff !important;
    border-color: #c5c5c5 !important;
    color: #1e293b !important;
    fill: #0d9488 !important;
}

.elementor-411 .elementor-element.elementor-element-8451bad .elementor-button:hover,
.elementor-411 .elementor-element.elementor-element-8451bad .elementor-button:focus,
.elementor-411 .elementor-element.elementor-element-8451bad .elementor-button:focus-visible,
.elementor-411 .elementor-element.elementor-element-b18f0e6 .elementor-button:hover,
.elementor-411 .elementor-element.elementor-element-b18f0e6 .elementor-button:focus,
.elementor-411 .elementor-element.elementor-element-b18f0e6 .elementor-button:focus-visible {
    background-color: #0d9488 !important;
    border-color: #047857 !important;
    color: #fff !important;
    fill: #fff !important;
}

.elementor-411 .elementor-element.elementor-element-8451bad .elementor-button:focus-visible,
.elementor-411 .elementor-element.elementor-element-b18f0e6 .elementor-button:focus-visible {
    outline: 3px solid #fbbf24;
    outline-offset: 3px;
}

/* Shared city content: keep supplied HTML inside the preserved Elementor layout. */
:is(.elementor-1366, .elementor-1364, .elementor-1362, .elementor-1357) .boatfl-content-widget {
    max-width: 100%;
    min-width: 0;
}

:is(.elementor-1366, .elementor-1364, .elementor-1362, .elementor-1357) .boatfl-text-block {
    max-width: 100%;
    overflow-wrap: break-word;
    text-align: start;
    line-height: 1.65;
}

:is(.elementor-1366, .elementor-1364, .elementor-1362, .elementor-1357) .boatfl-text-block p {
    margin: 0 0 1em;
}

:is(.elementor-1366, .elementor-1364, .elementor-1362, .elementor-1357) .boatfl-text-block > :last-child {
    margin-bottom: 0;
}

:is(.elementor-1366, .elementor-1364, .elementor-1362, .elementor-1357) .boatfl-text-block h2 {
    color: inherit;
    font-family: inherit;
    font-size: clamp(1.35rem, 2vw, 1.7rem);
    font-weight: 700;
    line-height: 1.25;
    margin: 1.5em 0 0.55em;
}

:is(.elementor-1366, .elementor-1364, .elementor-1362, .elementor-1357) .boatfl-text-block h3 {
    color: inherit;
    font-family: inherit;
    font-size: 1.15em;
    font-weight: 600;
    line-height: 1.35;
    margin: 1.15em 0 0.45em;
}

:is(.elementor-1366, .elementor-1364, .elementor-1362, .elementor-1357) .boatfl-text-block h2:first-child,
:is(.elementor-1366, .elementor-1364, .elementor-1362, .elementor-1357) .boatfl-text-block h3:first-child {
    margin-top: 0;
}

:is(.elementor-1366, .elementor-1364, .elementor-1362, .elementor-1357) .boatfl-text-block ul,
:is(.elementor-1366, .elementor-1364, .elementor-1362, .elementor-1357) .boatfl-text-block ol {
    margin: 0 0 1em;
    padding-inline-start: 1.5em;
}

:is(.elementor-1366, .elementor-1364, .elementor-1362, .elementor-1357) .boatfl-text-block li {
    margin: 0 0 0.55em;
    padding-inline-start: 0.15em;
}

:is(.elementor-1366, .elementor-1364, .elementor-1362, .elementor-1357) .boatfl-text-block a {
    color: #0f766e !important;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.16em;
}

:is(.elementor-1366, .elementor-1364, .elementor-1362, .elementor-1357) .boatfl-text-block a:focus-visible {
    border-radius: 2px;
    outline: 3px solid #fbbf24;
    outline-offset: 3px;
}

/* Text blocks that inherited white type while sitting on a light background. */
.elementor-1364 .elementor-element.elementor-element-7c44851,
.elementor-1357 .elementor-element.elementor-element-7c44851 {
    color: #475569 !important;
}

/* CTA backgrounds and spacing are explicit so Elementor motion-layer state cannot hide them. */
.elementor-1366 .elementor-element.elementor-element-775745a {
    background-color: #ee551c !important;
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding-block: 72px !important;
    transition: border 0.3s, box-shadow 0.3s, transform 0.4s !important;
    --padding-top: 72px !important;
    --padding-bottom: 72px !important;
}

.elementor-1366 .elementor-element.elementor-element-775745a::after {
    content: "";
    position: absolute;
    z-index: 0;
    inset: 0;
    background: linear-gradient(106deg, #ee551c 0%, #f03f6b 100%);
    pointer-events: none;
}

.elementor-1366 .elementor-element.elementor-element-775745a > .e-con-inner {
    position: relative;
    z-index: 1;
}

.elementor-1366 .elementor-element.elementor-element-b0f1005,
.elementor-1366 .elementor-element.elementor-element-b0f1005 .boatfl-text-block {
    color: #fff !important;
}

.elementor-1366 .elementor-element.elementor-element-b0f1005 .boatfl-text-block a,
.elementor-1364 .elementor-element.elementor-element-c1b01ca .boatfl-text-block a,
.elementor-1362 .elementor-element.elementor-element-c1b01ca .boatfl-text-block a,
.elementor-1357 .elementor-element.elementor-element-c1b01ca .boatfl-text-block a {
    color: #fff !important;
}

.elementor-1362 .elementor-element.elementor-element-960ca9d {
    background-color: #121b2e !important;
    background-image: none !important;
}

.elementor-1364 .elementor-element.elementor-element-960ca9d,
.elementor-1362 .elementor-element.elementor-element-960ca9d,
.elementor-1357 .elementor-element.elementor-element-960ca9d {
    padding-block: 72px !important;
    --padding-top: 72px !important;
    --padding-bottom: 72px !important;
}

.elementor-1362 .elementor-element.elementor-element-c1b01ca,
.elementor-1362 .elementor-element.elementor-element-c1b01ca .boatfl-text-block {
    color: #fff !important;
}

/* Cross-service links appended to every city route, including protected routes. */
.boatfl-city-other-services {
    box-sizing: border-box;
    width: min(1180px, calc(100% - 40px));
    margin: 48px auto;
    padding: 44px;
    border: 1px solid #e2e8f0;
    border-radius: 18px;
    background: #f8fafc;
    color: #1e293b;
}

.boatfl-city-other-services h2 {
    margin: 0 0 24px;
    color: #242222;
    font-size: clamp(1.65rem, 3vw, 2.25rem);
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
}

.boatfl-city-other-services .elementor-icon-list-items {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none;
}

.boatfl-city-other-services .elementor-icon-list-item {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
}

.boatfl-city-other-services .elementor-icon-list-item::after {
    display: none !important;
}

.boatfl-city-other-services a {
    display: flex;
    box-sizing: border-box;
    min-height: 100%;
    align-items: center;
    justify-content: center;
    padding: 18px;
    border: 1px solid #cbd5e1;
    border-radius: 14px;
    background: #fff;
    color: #0f766e;
    font-weight: 700;
    line-height: 1.4;
    text-align: center;
    text-decoration: none !important;
    transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease;
}

.boatfl-city-other-services a:hover,
.boatfl-city-other-services a:focus {
    border-color: #047857;
    background: #0d9488;
    color: #fff;
}

.boatfl-city-other-services a:focus-visible {
    outline: 3px solid #fbbf24;
    outline-offset: 3px;
}

/* Priority service-area directory: links only to protected or approved routes. */
.elementor-459 .boatfl-service-area-directory {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    margin: 32px 0;
}

.elementor-459 .boatfl-area-group {
    min-width: 0;
    padding: 28px;
    border: 1px solid #dbe4ea;
    border-radius: 16px;
    background: #f8fafc;
}

.elementor-459 .boatfl-area-group h3 {
    margin: 0 0 18px;
    color: #1e293b;
    font-size: clamp(1.2rem, 2vw, 1.5rem);
    line-height: 1.25;
}

.elementor-459 .boatfl-area-group ul {
    columns: 2 190px;
    column-gap: 24px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.elementor-459 .boatfl-area-group li {
    break-inside: avoid;
    margin: 0 0 9px;
}

.elementor-459 .boatfl-area-group a {
    color: #0f766e;
    font-weight: 600;
    line-height: 1.35;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.15em;
}

.elementor-459 .boatfl-area-group a:hover,
.elementor-459 .boatfl-area-group a:focus {
    color: #075985;
}

.elementor-459 .boatfl-area-group a:focus-visible {
    border-radius: 2px;
    outline: 3px solid #fbbf24;
    outline-offset: 3px;
}

/* Pricing: the original secondary CTA rendered white text on white. */
.elementor-510 .elementor-element.elementor-element-4cc8cc9 .elementor-button {
    border: 2px solid #0f766e !important;
    background: #fff !important;
    color: #1e293b !important;
}

.elementor-510 .elementor-element.elementor-element-4cc8cc9 .elementor-button:hover,
.elementor-510 .elementor-element.elementor-element-4cc8cc9 .elementor-button:focus {
    border-color: #0f766e !important;
    background: #0f766e !important;
    color: #fff !important;
}

.elementor-510 .elementor-element.elementor-element-4cc8cc9 .elementor-button:focus-visible {
    outline: 3px solid #fbbf24;
    outline-offset: 3px;
}

@media (max-width: 767px) {
    :is(.elementor-1366, .elementor-1364, .elementor-1362, .elementor-1357) .boatfl-text-block ul,
    :is(.elementor-1366, .elementor-1364, .elementor-1362, .elementor-1357) .boatfl-text-block ol {
        padding-inline-start: 1.35em;
    }

    .elementor-1366 .elementor-element.elementor-element-775745a,
    .elementor-1364 .elementor-element.elementor-element-960ca9d,
    .elementor-1362 .elementor-element.elementor-element-960ca9d,
    .elementor-1357 .elementor-element.elementor-element-960ca9d {
        padding-block: 48px !important;
        padding-inline: 16px !important;
        --padding-top: 48px !important;
        --padding-bottom: 48px !important;
        --padding-left: 16px !important;
        --padding-right: 16px !important;
    }

    .boatfl-city-other-services {
        width: calc(100% - 32px);
        margin: 32px auto;
        padding: 30px 16px;
        border-radius: 14px;
    }

    .boatfl-city-other-services h2 {
        margin-bottom: 18px;
        text-align: start;
    }

    .boatfl-city-other-services .elementor-icon-list-items {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .boatfl-city-other-services a {
        justify-content: flex-start;
        min-height: 52px;
        padding: 14px 16px;
        text-align: start;
    }

    .elementor-459 .boatfl-service-area-directory {
        grid-template-columns: 1fr;
        gap: 16px;
        margin: 24px 0;
    }

    .elementor-459 .boatfl-area-group {
        padding: 22px 18px;
    }

    .elementor-459 .boatfl-area-group ul {
        columns: 1;
    }
}
