/* ==========================================================================
   Stayora — Accessibility, Focus & Structural Safeguards
   Loaded after style.css & responsive.css, before stayora-design.css.
   ========================================================================== */

:root {
    --stayora-focus-ring: #1B3D36;
    --stayora-focus-ring-light: #DFC592;
    --stayora-accent: #1B3D36;
    --stayora-accent-hover: #122B26;
    --stayora-muted: #555E68;
    --stayora-surface-soft: #FAF7F2;
    --stayora-border: #E4DDD0;
    --stayora-success-bg: #EBF6F0;
    --stayora-success-fg: #155B3E;
    --stayora-warn-bg: #FCEEEE;
    --stayora-warn-fg: #8C2626;
}

/* Skip to main content link for keyboard & screen-reader users */
.skip-link {
    position: fixed;
    top: -120px;
    left: 16px;
    z-index: 10000;
    padding: 12px 20px;
    background: #131C24;
    color: #FAF7F2 !important;
    font-weight: 600;
    font-size: 14px;
    border-radius: 8px;
    border: 1px solid #C5A367;
    text-decoration: none;
    box-shadow: 0 10px 28px rgba(19, 28, 36, 0.28);
    transition: top 0.18s ease;
}

.skip-link:focus {
    top: 14px;
    outline: 3px solid var(--stayora-focus-ring-light);
    outline-offset: 2px;
}

/* Visible keyboard focus across interactive controls */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[role="button"]:focus-visible {
    outline: 2px solid var(--stayora-focus-ring) !important;
    outline-offset: 2px;
}

.header-top a:focus-visible,
.hero-section a:focus-visible,
.breadcrumb-section a:focus-visible,
.footer-section a:focus-visible,
.footer-section button:focus-visible,
.mobile-menu-wrapper a:focus-visible,
.mobile-menu-wrapper button:focus-visible,
.cookie_consent_card a:focus-visible,
.cookie_consent_card button:focus-visible {
    outline: 2px solid var(--stayora-focus-ring-light) !important;
    outline-offset: 2px;
}

/* Prevent horizontal overflow on small screens */
html,
body {
    overflow-x: clip;
    max-width: 100%;
}

/* Smooth anchor scrolling for availability jump */
html {
    scroll-behavior: smooth;
}

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

#availability {
    scroll-margin-top: 96px;
}

/* Neutralise legacy template red wipe pseudo-element */
.btn.theme-btn::before {
    display: none !important;
    content: none !important;
}

/* Comfortable touch targets (44px minimum) */
.off-canvas-btn,
.offcanvas-btn-close button,
.search-card .form-control,
.search-card .form-select,
.search-card .search-btn,
.checkout_btn {
    min-height: 46px;
}

.off-canvas-btn {
    background: transparent;
    border: 1px solid var(--stayora-border);
    border-radius: 8px;
    padding: 8px 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.offcanvas-btn-close button {
    background: transparent;
    border: 0;
    color: inherit;
    padding: 8px 12px;
    cursor: pointer;
}

/* Availability Stock Badge */
.item-card .item-image {
    position: relative;
}

.room-stock-badge {
    position: absolute;
    top: 14px;
    left: 14px;
    padding: 6px 12px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.02em;
    line-height: 1.2;
    box-shadow: 0 4px 14px rgba(19, 28, 36, 0.16);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    z-index: 2;
}

.room-stock-badge.available {
    background: rgba(250, 247, 242, 0.95);
    color: var(--stayora-success-fg);
    border: 1px solid rgba(21, 91, 62, 0.22);
}

.room-stock-badge.unavailable {
    background: rgba(252, 238, 238, 0.96);
    color: var(--stayora-warn-fg);
    border: 1px solid rgba(140, 38, 38, 0.22);
}

/* Indicative rate tag */
.rate-status-tag {
    display: inline-block;
    padding: 3px 9px;
    margin-right: 6px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    background: #F4EFE6;
    color: #6B532B;
    border: 1px solid #E2D5BE;
    vertical-align: middle;
}

/* Confirmed room amenities list */
.amenity-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
    gap: 10px 18px;
}

.amenity-list li {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 14.5px;
    color: #1D242B;
    padding: 8px 12px;
    background: #FAF7F2;
    border: 1px solid #EAE2D3;
    border-radius: 8px;
}

.amenity-list li i {
    color: #1B3D36;
    font-size: 16px;
    flex-shrink: 0;
}

/* Table responsiveness for booking history */
.table-responsive {
    -webkit-overflow-scrolling: touch;
}
