/* ============================================================
   Public Polish — Amelia-inspired microinteractions
   ============================================================ */

/* Accessibility */
.spa-modal *:focus-visible,
.spa-book-btn:focus-visible,
.spa-plan-cta:focus-visible {
    outline: 3px solid #2563EB;
    outline-offset: 3px;
    border-radius: 4px;
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration:.01ms !important; transition-duration:.01ms !important; }
}

/* Loading button state */
.spa-btn-loading { pointer-events:none; position:relative; color:transparent !important; }
.spa-btn-loading::after {
    content:'';
    position:absolute;
    top:50%; left:50%;
    width:16px; height:16px;
    margin:-8px 0 0 -8px;
    border:2px solid rgba(255,255,255,.4);
    border-top-color:#fff;
    border-radius:50%;
    animation:am-spin .7s linear infinite;
}
@keyframes am-spin { to { transform:rotate(360deg); } }

/* FAB */
.spa-fab {
    position:fixed;
    bottom:24px; right:24px;
    z-index:9000;
    display:flex;
    align-items:center;
    gap:8px;
    padding:14px 22px;
    background:linear-gradient(135deg,#2563EB,#1D4ED8);
    color:#fff;
    border:none;
    border-radius:100px;
    font-size:.9rem;
    font-weight:700;
    cursor:pointer;
    box-shadow:0 6px 24px rgba(37,99,235,.45);
    transition:transform .2s, box-shadow .2s;
    font-family:inherit;
}
.spa-fab:hover { transform:translateY(-3px) scale(1.03); box-shadow:0 10px 32px rgba(37,99,235,.55); }
@media (min-width:769px) { .spa-fab--mobile-only { display:none; } }

/* Scrollbar */
.spa-modal__body::-webkit-scrollbar { width:4px; }
.spa-modal__body::-webkit-scrollbar-track { background:transparent; }
.spa-modal__body::-webkit-scrollbar-thumb { background:#E5E3EE; border-radius:100px; }
.spa-modal__body::-webkit-scrollbar-thumb:hover { background:#8C849E; }

/* Print */
@media print {
    .spa-modal-overlay, .spa-fab, .spa-plan-cta, .spa-book-btn { display:none !important; }
    .spa-plan-card { box-shadow:none; border:1px solid #ccc; }
}
