/* Voice search card (markup in em-public/includes/header.php, script em-assets/js/layout/voice-search.js) */
html.vs-open { overflow: hidden; }
.vs[hidden] { display: none; }
.vs { position: fixed; inset: 0; z-index: 100001; display: grid; place-items: center; padding: 16px; }
.vs-backdrop { position: absolute; inset: 0; background: rgba(17, 24, 39, .55); backdrop-filter: blur(3px); }
.vs-card { position: relative; width: min(400px, 100%); padding: 30px 24px 22px; border-radius: 24px; background: #fff; text-align: center; box-shadow: 0 24px 60px rgba(0, 0, 0, .25); animation: vsUp .22s ease both; }
.vs-x { position: absolute; top: 12px; right: 12px; width: 34px; height: 34px; border: 0; border-radius: 50%; background: #f3f4f6; color: #4b5563; cursor: pointer; }
.vs-orb { position: relative; width: 84px; height: 84px; margin: 6px auto 16px; display: grid; place-items: center; border-radius: 50%; background: var(--primary, #E97C43); color: #fff; font-size: 32px; }
.vs-orb::before, .vs-orb::after { content: ""; position: absolute; inset: 0; border-radius: 50%; border: 2px solid var(--primary, #E97C43); opacity: 0; }
.vs-orb.is-live::before { animation: vsRing 1.6s ease-out infinite; }
.vs-orb.is-live::after { animation: vsRing 1.6s ease-out .8s infinite; }
.vs-orb.is-error { background: #9ca3af; }
.vs-title { margin: 0 0 4px; font-size: 1.25rem; font-weight: 800; color: #111827; }
.vs-hint { margin: 0 0 12px; color: #6b7280; font-size: .92rem; }
.vs-said { min-height: 52px; padding: 12px 14px; border-radius: 14px; background: #f9fafb; color: #111827; font-size: 1.05rem; font-weight: 600; word-break: break-word; }
.vs-said:empty::before { content: "Your words appear here"; color: #9ca3af; font-weight: 400; }
.vs-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; margin-top: 16px; }
.vs-stop, .vs-again { padding: 9px 20px; border-radius: 12px; border: 1.5px solid #e5e7eb; background: #fff; font: inherit; font-weight: 700; color: #374151; cursor: pointer; }
.vs-again { background: var(--primary, #E97C43); border-color: var(--primary, #E97C43); color: #fff; }
.vs-again[hidden] { display: none; }
@keyframes vsUp { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes vsRing { 0% { opacity: .6; transform: scale(1); } 100% { opacity: 0; transform: scale(1.9); } }
@media (max-width: 575px) { .vs { place-items: end center; padding: 0; } .vs-card { width: 100%; border-radius: 24px 24px 0 0; } }
@media (prefers-reduced-motion: reduce) { .vs-card, .vs-orb::before, .vs-orb::after { animation: none; } }
.vs-orb.is-think { animation: vsThink 1.1s ease-in-out infinite; }
@keyframes vsThink { 50% { transform: scale(.92); opacity: .75; } }
.vs-orb.is-live { animation: vsBreath 1.8s ease-in-out infinite; }
.vs-wave { display: flex; justify-content: center; align-items: center; gap: 4px; height: 26px; margin: -4px 0 10px; opacity: 0; transition: opacity .2s; }
.vs.is-listening .vs-wave { opacity: 1; }
.vs-wave i { width: 4px; height: 6px; border-radius: 3px; background: var(--primary, #E97C43); }
.vs.is-listening .vs-wave i { animation: vsBar 1s ease-in-out infinite; }
.vs-wave i:nth-child(2) { animation-delay: .12s; } .vs-wave i:nth-child(3) { animation-delay: .24s; } .vs-wave i:nth-child(4) { animation-delay: .36s; }
.vs-wave i:nth-child(5) { animation-delay: .24s; } .vs-wave i:nth-child(6) { animation-delay: .12s; }
@keyframes vsBar { 0%, 100% { height: 6px; } 50% { height: 24px; } }
@keyframes vsBreath { 50% { transform: scale(1.06); } }
@media (prefers-reduced-motion: reduce) { .vs-orb.is-live, .vs.is-listening .vs-wave i { animation: none; } }
