/**
 * Café 86 Franchise — WCAG 2.1 AA overlay
 * Skip link, focus, landmarks helpers, reduced motion, and form alerts.
 */

.skip-link,
.screen-reader-text {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    word-wrap: normal !important;
}

.skip-link:focus,
.skip-link:focus-visible,
.screen-reader-text:focus,
.screen-reader-text:focus-visible {
    clip: auto !important;
    clip-path: none;
    height: auto;
    width: auto;
    margin: 0;
    overflow: visible;
    top: 0.5rem;
    left: 0.5rem;
    z-index: 100000;
    padding: 0.75rem 1.25rem;
    background: #1a1a1a;
    color: #fff;
    font-weight: 700;
    text-decoration: none;
    border: 2px solid #fff;
    border-radius: 0.25rem;
    outline: 3px solid #0066cc;
    outline-offset: 2px;
}

.sr-only,
.visually-hidden,
.elementor-screen-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:not([tabindex="-1"]):focus-visible,
.hfe-nav-menu__toggle:focus-visible,
.hfe-menu-item:focus-visible,
.elementor-button:focus-visible,
.elementor-social-icon:focus-visible,
.gform_button:focus-visible {
    outline: 3px solid #0066cc !important;
    outline-offset: 2px !important;
    box-shadow: 0 0 0 5px #fff !important;
}

/* Theme link color is white (header). Keep content links readable on light backgrounds. */
.elementor-widget-text-editor a,
.elementor-widget-heading a,
.entry-content a,
footer a,
.site-footer a,
#contact a:not(.elementor-social-icon):not(.elementor-button),
.elementor-element-6c6da00 a,
.elementor-element-a255b58 a,
.elementor-element-303b098 a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

.elementor-element-6c6da00 a,
.elementor-element-a255b58 a {
    color: #111111 !important;
}

.elementor-element-6c6da00 a:hover,
.elementor-element-6c6da00 a:focus,
.elementor-element-a255b58 a:hover,
.elementor-element-a255b58 a:focus {
    color: #111111 !important;
}

.elementor-element-04ba96f .elementor-heading-title,
.elementor-element-a255b58 .elementor-heading-title {
    color: inherit;
}

main a:not(.elementor-button):not(.hfe-menu-item):not(.elementor-social-icon) {
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

.hfe-nav-menu__toggle,
.elementor-social-icon,
.elementor-button,
.gform_button {
    min-width: 44px;
    min-height: 44px;
}

.hfe-nav-menu__toggle {
    cursor: pointer;
}

.elementor-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

#franchise-form-alert {
    margin: 0 0 1rem;
    padding: 0.75rem 1rem;
    border: 2px solid transparent;
    border-radius: 0.25rem;
    font-weight: 600;
}

#franchise-form-alert.is-success {
    background: #e6f4ea;
    border-color: #0b6b2c;
    color: #0b6b2c;
}

#franchise-form-alert.is-error {
    background: #fdecea;
    border-color: #8a1f11;
    color: #8a1f11;
}

#franchise-form-alert:focus-visible {
    outline: 3px solid #0066cc;
    outline-offset: 2px;
}

.gfield input,
.gfield textarea {
    max-width: 100%;
}

.gfield input:focus-visible,
.gfield textarea:focus-visible {
    border-color: #0066cc;
}

#franchise-recaptcha iframe {
    max-width: 100%;
}

.gform_validation_container {
    position: absolute !important;
    left: -10000px !important;
    top: auto !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

a[target="_blank"]:not(.elementor-social-icon):not(.ast-builder-social-element):not(.no-external-indicator)::after {
    content: " \2197";
    font-size: 0.75em;
    speak: never;
}

html {
    scroll-padding-top: 6rem;
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto !important;
    }

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}
