
/* V7 · Figma UI + Motion */
:root{--v7-purple:#5c52f2;--v7-violet:#7d45eb;--v7-ink:#0e1329;--v7-muted:#65708a;--v7-line:#e9e9f5;--v7-soft:#f2efff}
body{background:linear-gradient(180deg,#fff 0,#fbfbff 55%,#f8f9ff 100%)}
.btn,.service-row,.metric-grid article,.panel-card,.pick,.slots button{transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease,background .22s ease}
.btn:hover{transform:translateY(-2px)}.btn:active{transform:translateY(0) scale(.98)}
.primary{background:linear-gradient(135deg,var(--v7-purple),var(--v7-violet));box-shadow:0 12px 28px #6254ed30}
.hero-v2 h1{color:var(--v7-ink)}.hero-v2 h1 em{background:linear-gradient(90deg,var(--v7-violet),#489efb);-webkit-background-clip:text;color:transparent}
.calendar-card{animation:v7Rise .7s cubic-bezier(.2,.8,.2,1) both}.floating-note.top{animation:v7Note .7s .2s cubic-bezier(.2,.8,.2,1) both,v7Float 4s 1s ease-in-out infinite}
.panel-nav{box-shadow:8px 0 30px #38387808}.panel-nav nav button{transition:.2s}.panel-nav nav button:hover{background:#f7f5ff;color:var(--v7-purple);transform:translateX(2px)}
.metric-grid article{box-shadow:0 8px 25px #3f47800a}.metric-grid article:hover,.panel-card:hover{transform:translateY(-2px);box-shadow:0 16px 34px #3f478012;border-color:#ddd9ff}
.tab.on{animation:v7Tab .32s ease both}.service-row:hover{padding-left:8px}.slots button:hover{transform:translateY(-2px);background:var(--v7-purple);border-color:var(--v7-purple)}
.booking{animation:v7Rise .5s ease both}.booking .card{box-shadow:0 24px 70px #454b8114}.success{animation:v7Pop .45s cubic-bezier(.2,1.5,.5,1)}
.v7-loading{position:fixed;inset:0;background:#ffffffc9;backdrop-filter:blur(5px);display:grid;place-items:center;z-index:9999;opacity:0;pointer-events:none;transition:.2s}.v7-loading.show{opacity:1;pointer-events:auto}.v7-spinner{width:42px;height:42px;border:4px solid #e8e6ff;border-top-color:var(--v7-purple);border-radius:50%;animation:v7Spin .75s linear infinite}
@keyframes v7Rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}@keyframes v7Tab{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes v7Pop{0%{opacity:0;transform:scale(.65)}100%{opacity:1;transform:scale(1)}}@keyframes v7Float{50%{transform:translateY(-7px)}}@keyframes v7Note{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes v7Spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
