/* ==========================================================================
   Accessibility — WCAG 2.1 Level AA
   Skip navigation, focus states, reduced motion, screen reader utilities.
   ========================================================================== */

/* --- Skip Navigation --- */
.skip-nav-link {
    position: absolute;
    top: -100px;
    left: var(--isc-space-md);
    background: var(--isc-bg-stone);
    color: #FFFFFF;
    padding: var(--isc-space-sm) var(--isc-space-md);
    font-family: var(--isc-font-body);
    font-size: 0.875rem;
    font-weight: var(--isc-fw-regular);
    border-radius: 0 0 var(--isc-radius-sm) var(--isc-radius-sm);
    z-index: var(--isc-z-skip-nav);
    text-decoration: none;
    transition: top var(--isc-transition-fast);
}

.skip-nav-link:focus {
    top: 0;
    outline: var(--isc-focus-ring);
    outline-offset: var(--isc-focus-offset);
}

/* --- Focus States — all interactive elements --- */
:focus-visible {
    outline: var(--isc-focus-ring);
    outline-offset: var(--isc-focus-offset);
    border-radius: 2px;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible,
summary:focus-visible {
    outline: var(--isc-focus-ring);
    outline-offset: var(--isc-focus-offset);
}

/* Remove outline for mouse users — only show for keyboard */
:focus:not(:focus-visible) {
    outline: none;
}

/* --- Minimum Touch Targets (44×44px) --- */
button,
a,
input[type="submit"],
input[type="button"],
input[type="reset"],
.elementor-button {
    min-height: var(--isc-touch-min);
}

/* Inline links exempt from min-height but padded for tap */
p a, li a, td a {
    min-height: auto;
    padding-top: 2px;
    padding-bottom: 2px;
}

/* --- Screen Reader Only --- */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* --- Reduced Motion --- */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

/* --- High Contrast Mode --- */
@media (forced-colors: active) {
    .skip-nav-link,
    button,
    a {
        border: 1px solid transparent;
    }
}

/* --- Keyboard Navigation Indicator --- */
body.using-keyboard :focus-visible {
    outline: var(--isc-focus-ring);
    outline-offset: var(--isc-focus-offset);
}

/* ==========================================================================
   Floating WhatsApp FAB
   ========================================================================== */
.isc-whatsapp-fab {
    position: fixed;
    bottom: var(--isc-space-xl);
    right: var(--isc-space-lg);
    z-index: var(--isc-z-fixed);
    width: 56px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #25D366;
    color: #FFFFFF;
    border-radius: 50%;
    box-shadow: var(--isc-shadow-md);
    text-decoration: none;
    transition: transform var(--isc-transition-fast), box-shadow var(--isc-transition-fast), bottom var(--isc-transition-fast);
}

.isc-whatsapp-fab:visited {
    color: #FFFFFF;
}

.isc-whatsapp-fab svg {
    width: 28px;
    height: 28px;
}

.isc-whatsapp-fab:hover {
    color: #FFFFFF;
    box-shadow: var(--isc-shadow-lg);
}

.isc-whatsapp-fab:active {
    transform: scale(0.95);
    box-shadow: var(--isc-shadow-sm);
}

.isc-whatsapp-fab:focus-visible {
    border-radius: 50%;
}

@media (prefers-reduced-motion: no-preference) {
    .isc-whatsapp-fab:hover {
        transform: scale(1.1);
    }
}

/* Shift FAB up when sticky CTA bar is visible */
body.has-sticky-cta .isc-whatsapp-fab {
    bottom: calc(var(--isc-space-xl) + 60px);
}

/* ==========================================================================
   Sticky CTA Bar
   ========================================================================== */
.isc-sticky-cta {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: var(--isc-z-sticky);
    background-color: var(--isc-ink-black);
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    transform: translateY(100%);
    transition: transform var(--isc-transition-base);
}

.isc-sticky-cta.is-visible {
    transform: translateY(0);
}

.isc-sticky-cta__inner {
    max-width: var(--isc-max-width);
    margin-inline: auto;
    padding: var(--isc-space-sm) var(--isc-gutter);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--isc-space-lg);
}

.isc-sticky-cta__btn {
    padding: var(--isc-space-xs) var(--isc-space-xl);
    font-size: var(--isc-fs-caption);
    min-height: 40px;
}

.isc-sticky-cta__phone {
    display: inline-flex;
    align-items: center;
    gap: var(--isc-space-xs);
    color: var(--isc-pale-stone);
    text-decoration: none;
    font-size: var(--isc-fs-caption);
    min-height: 40px;
    transition: color var(--isc-transition-fast);
}

.isc-sticky-cta__phone:hover {
    color: #FFFFFF;
}

.isc-sticky-cta__whatsapp {
    display: inline-flex;
    align-items: center;
    gap: var(--isc-space-xs);
    color: #25D366;
    text-decoration: none;
    font-size: var(--isc-fs-caption);
    min-height: 40px;
    transition: color var(--isc-transition-fast);
}

.isc-sticky-cta__whatsapp:hover {
    color: #FFFFFF;
}

/* Admin bar offset */
body.admin-bar .isc-sticky-cta {
    /* WP admin bar is 32px on desktop, 46px on mobile */
}

/* Hide sticky bar on very small screens where it crowds the viewport */
@media (max-height: 500px) {
    .isc-sticky-cta {
        display: none;
    }
}
