
salon mio mio
isn’t selfish • it’s essential • it’s mio mio
events mio mio

hair care mio mio

the shift mio mio
it started as a feeling,
an intuition
and a need for change.
now it’s about to be a full-on change in noe valley
as salon mio mio starts to glow
introducing three new artists
joining an original crew of brilliant ones —
and collaborative knowledge noe valley hasn’t seen in years.
the floor’s alive. the colors are almost full.
the energy is unapologetic, fun, and chic.
this isn’t just a growth spurt,
it’s a new era.
two chairs left.
stylists you’re feeling it too.
be the independent artist you’ve always wanted to be.
freedom with support.
and if you’re craving something new…
we’re not out in the ‘burbs.
we’re not downtown.
we’re the heart of noe valley.
and we’re just getting started.
stylists & appts mio mio







// Restore saved states and support deep-linking (#artist=name) window.addEventListener('DOMContentLoaded', () => { document.querySelectorAll('.blurb[role="region"]').forEach(region => { const saved = sessionStorage.getItem(region.id); if (saved === 'true') { region.classList.remove('collapsed'); const btn = document.querySelector(`[aria-controls="${region.id}"]`); if (btn) btn.setAttribute('aria-expanded','true'); } }); const m = location.hash.match(/artist=([a-z]+)/i); if (m) { const id = `blurb-${m[1].toLowerCase()}`; const region = document.getElementById(id); if (region) { region.classList.remove('collapsed'); const btn = document.querySelector(`[aria-controls="${id}"]`); if (btn) btn.setAttribute('aria-expanded','true'); region.scrollIntoView({behavior:'smooth', block:'center'}); } } }); // Unified toggle handler + persistence document.addEventListener('click', e => { const btn = e.target.closest('.toggle-blurb'); if (!btn) return; const region = document.getElementById(btn.getAttribute('aria-controls')) || btn.closest('.stylist-card').querySelector('.blurb'); const expanded = btn.getAttribute('aria-expanded') === 'true'; btn.setAttribute('aria-expanded', String(!expanded)); region.classList.toggle('collapsed', expanded); btn.textContent = expanded ? 'about' : 'hide'; if (region.id) sessionStorage.setItem(region.id, String(!expanded)); });