/* ==========================================================================
   Accessibility — skip link, focus outlines, cookie banner
   Loaded LAST in cascade to override template outline:none rules.
   ========================================================================== */

/* ── Skip-to-content link ── */
.skip-to-content {
    position: absolute;
    left: -9999px;
    top: auto;
    width: 1px;
    height: 1px;
    overflow: hidden;
    z-index: 10000;
    padding: 14px 24px;
    background: #da3302;
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    text-decoration: none;
    border-radius: 0 0 6px 0;
}

.skip-to-content:focus {
    position: fixed;
    left: 0;
    top: 0;
    width: auto;
    height: auto;
    overflow: visible;
}

/* ── Focus-visible outlines ──
   Overrides all template outline:none rules without modifying vendor CSS. */
*:focus-visible {
    outline: 3px solid #0b4e92 !important;
    outline-offset: 2px;
}

/* White outlines on dark backgrounds */
.footer-one *:focus-visible,
.banner-two *:focus-visible,
.cta-one *:focus-visible,
.page-header *:focus-visible,
.mobile-nav__content *:focus-visible,
.xs-sidebar-widget *:focus-visible,
#ws *:focus-visible {
    outline-color: #fff !important;
}

/* ── Cookie consent banner ── */
.cookie-banner {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 9999;
    background: #1a1a2e;
    color: #ccc;
    padding: 18px 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    flex-wrap: wrap;
    font-size: 14px;
    line-height: 1.5;
    box-shadow: 0 -2px 10px rgba(0, 0, 0, .3);
}

.cookie-banner p {
    margin: 0;
    flex: 1 1 400px;
}

.cookie-banner a {
    color: #fff;
    text-decoration: underline;
}

.cookie-banner__actions {
    display: flex;
    gap: 12px;
    flex-shrink: 0;
}

.cookie-banner__btn {
    display: inline-block;
    padding: 10px 24px;
    border: none;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    text-decoration: none;
    line-height: 1;
}

.cookie-banner__btn--accept {
    background: #da3302;
    color: #fff;
}

.cookie-banner__btn--accept:hover {
    background: #b82b02;
}

.cookie-banner__btn--info {
    background: transparent;
    color: #fff;
    border: 1px solid rgba(255, 255, 255, .3);
}

.cookie-banner__btn--info:hover {
    border-color: #fff;
}

/* ── Page header: force white text on dark background image ── */
.page-header__inner h1,
.page-header__inner h2,
.page-header__inner p,
.page-header__inner .thm-breadcrumb li,
.page-header__inner .thm-breadcrumb li a {
    color: #fff !important;
}

/* ── Contrast fixes for text on dark backgrounds ── */

/* CTA & Why Choose: orange accent <span> in headings (large text, needs 3:1) */
.cta-one__content h2 span,
.why-choose-two .sec-title__title span {
    color: #ff6b35 !important;
}

/* Why Choose: tagline label on dark blue bg (small text, needs 4.5:1) */
.why-choose-two .sec-title__tagline .text,
.why-choose-two .sec-title__tagline .text h4 {
    color: rgba(255, 255, 255, .85) !important;
}

/* Banner: <strong> wrapper on dark bg inherits wrong color */
.banner-two__tab-box strong {
    color: #fff !important;
}

/* Footer: phone link — orange on dark blue fails */
.footer-one__about-contact-info .text-box h4 a {
    color: #fff !important;
}

/* Footer: link hover state — orange on dark blue needs better contrast */
.footer-one__quick-links-list li a:hover {
    color: #ff7f50 !important;
}

@media (max-width: 576px) {
    .cookie-banner {
        flex-direction: column;
        text-align: center;
        padding: 16px;
    }

    .cookie-banner__actions {
        width: 100%;
        justify-content: center;
    }
}
