@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap";:root{color-scheme:light;--sand:#fff7dd;--clay:#b7e5cd;--cocoa:#8abeb9;--truffle:#4f6f84;--espresso:#305669;--accent:#8abeb9;--accent-warm:#c1785a;--accent-muted:#8abeb938;--stroke:#3056692e;font-family:Plus Jakarta Sans,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*,:before,:after{box-sizing:border-box}body{background:radial-gradient(circle at top, #b7e5cd73, transparent 55%), var(--sand);min-height:100vh;color:var(--espresso);font-family:var(--font,"Plus Jakarta Sans", sans-serif);letter-spacing:.01em;margin:0}img{max-width:100%;height:auto}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}.screen-shell{max-width:1100px;margin:0 auto;padding:2.5rem 1rem 4rem}.app-card{background:#ffffff59;border-radius:32px;padding:1px;position:relative;overflow:hidden}.app-card:before{content:"";border-radius:inherit;-webkit-mask-composite:xor;background:linear-gradient(125deg,#8abeb9d9,#c1785a8c);padding:1px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-composite:exclude;mask-mode:match-source,match-source}.app-card__body{border-radius:inherit;z-index:1;backdrop-filter:blur(12px);background:#fffdf5e6;padding:2.5rem clamp(1.5rem,5vw,3rem) 2.75rem;position:relative}.app-grid{gap:1rem;display:grid}.section-head{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.section-head span{color:var(--truffle);font-size:.95rem}.service-grid,.location-grid,.staff-grid{gap:1rem;display:grid}.flow-section{transition:opacity .22s}.flow-section[data-enabled=false]{opacity:.35;pointer-events:none}.service-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.location-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.staff-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.tile{border:1px solid var(--stroke);color:var(--espresso);text-align:left;background:#ffffffa6;border-radius:20px;padding:1.25rem;transition:transform .22s,border-color .22s,background .22s,box-shadow .22s,outline .22s;box-shadow:0 10px 24px #2d3a4b14}.tile:focus-visible,.tile:hover{transform:translateY(-2px)}.tile:focus-visible{outline-offset:2px;outline:3px solid #8abeb9bf;box-shadow:0 16px 30px #2d3a4b26}.service-tile{background:linear-gradient(150deg,#fff2eff2,#ffdbb6e6);border-color:#f7a5a580;padding-bottom:2.5rem;position:relative;box-shadow:0 18px 35px #1a2a4f26}.service-tile:after{content:none}.service-tile h3{color:#1a2a4f}.service-tile p{color:#1a2a4fbf}.service-tile .chip{color:#1a2a4f;background:#f7a5a54d}.service-tile[data-muted=true]{opacity:.4}.service-tile[data-muted=true]:hover,.service-tile[data-muted=true]:focus-visible{opacity:1;border-color:var(--accent);transform:translateY(-2px);box-shadow:0 12px 28px #2d3a4b1f}.tile[aria-pressed=true]{border-color:var(--accent);background:#fff7ddf2;box-shadow:0 16px 36px #2d3a4b33}.tile h3{color:var(--espresso);margin:0 0 .35rem;font-size:1.15rem}.tile p{color:var(--truffle);margin:0;font-size:.95rem}.chip{background:var(--accent-muted);color:var(--truffle);border-radius:999px;align-items:center;gap:.25rem;padding:.2rem .6rem;font-size:.85rem;display:inline-flex}.flow-gap{margin-top:2.5rem}.progress-bar{gap:.25rem;margin-bottom:2rem;display:flex}.progress-step{background:#2d3a4b33;border-radius:999px;flex:1;height:6px;position:relative;overflow:hidden}.progress-step span{border-radius:inherit;transform:scaleX(var(--progress,0));transform-origin:0;background:linear-gradient(90deg,#8abeb9e6,#c1785ad9);transition:transform .26s;position:absolute;inset:0}.calendar-shell{background:#ffffff80;border:1px solid #2d3a4b1f;border-radius:24px;flex-direction:column;gap:1.5rem;margin-top:1.5rem;padding:1.5rem;display:flex}.calendar-month{background:#fff9;border:1px solid #2d3a4b14;border-radius:24px;padding:1rem}.calendar-head{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.calendar-nav{align-items:center;gap:.5rem;display:inline-flex}.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:.65rem;display:grid}.calendar-day{cursor:pointer;background:#ffffffb3;border:1px solid #2d3a4b29;border-radius:18px;flex-direction:column;justify-content:space-between;align-items:flex-start;min-height:82px;padding:.8rem;transition:border-color .2s,background .2s,color .2s;display:flex}.calendar-day strong{color:var(--espresso);font-size:1rem}.calendar-day span{color:var(--truffle);font-size:.8rem}.calendar-day[data-status=booked]{color:var(--truffle);opacity:.5;cursor:not-allowed;background:#2d3a4b14;border-color:#2d3a4b33}.calendar-day[data-status=limited]{border-color:var(--accent);background:#8abeb940}.calendar-day[data-status=available]:hover,.calendar-day[data-status=available]:focus-visible{border-color:var(--accent)}.calendar-day[data-selected=true]{border-color:var(--accent);color:var(--espresso);background:#fbf3d1cc;box-shadow:0 10px 25px #2d3a4b2e}.calendar-legend{color:var(--truffle);flex-wrap:wrap;gap:.6rem 1.5rem;margin-top:1rem;font-size:.9rem;display:flex}.legend-dot{border:2px solid #0000;border-radius:50%;width:14px;height:14px;margin-right:.4rem}.legend-item{align-items:center;display:inline-flex}.legend-item[data-status=available] .legend-dot{border-color:var(--accent)}.legend-item[data-status=limited] .legend-dot{border-color:var(--truffle);background:#8abeb973}.legend-item[data-status=booked] .legend-dot{background:#2d3a4b33;border-color:#2d3a4b4d}.context-panel{background:#fbf3d1b3;border:1px dashed #2d3a4b40;border-radius:20px;gap:.4rem;margin-top:2rem;padding:1.25rem;display:grid}.context-panel strong{color:var(--truffle);font-size:.95rem}.context-panel span{color:var(--espresso);font-weight:600}.booking-submit,.booking-history-panel{background:#ffffffbf;border:1px solid #3056691f;border-radius:28px;margin-top:3rem;padding:1.5rem;box-shadow:0 18px 40px #1a2a4f17}.booking-submit__head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.booking-submit__head h2{margin:0}.booking-submit__head p{color:var(--truffle);margin:.35rem 0 0}.booking-form{flex-direction:column;gap:1.5rem;margin-top:1.5rem;display:flex}.form-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;display:grid}.form-field{color:var(--truffle);flex-direction:column;gap:.4rem;font-size:.95rem;font-weight:600;display:flex}.form-field input,.form-field textarea{font:inherit;color:var(--espresso);background:#ffffffe6;border:1px solid #30566933;border-radius:14px;padding:.9rem 1rem}.form-field textarea{resize:vertical;min-height:110px}.form-field--wide{grid-column:1/-1}.booking-action{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.booking-hint{color:var(--truffle);margin:0;font-size:.85rem}.booking-message{min-height:1.25rem;color:var(--espresso);font-weight:600}.booking-message[data-variant=success]{color:var(--accent)}.booking-message[data-variant=error]{color:#d7263d}.booking-history{gap:.85rem;margin:1.25rem 0 0;padding:0;list-style:none;display:grid}.booking-history li{background:#ffffffe6;border:1px solid #30566926;border-radius:18px;flex-direction:column;gap:.2rem;padding:.9rem 1rem;font-size:.95rem;display:flex}.booking-history small{color:var(--truffle);font-size:.8rem}.time-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;display:grid}.time-tile{background:linear-gradient(150deg,#ffdbb64d,#fff2efb3);border-color:#c1785a66}.time-tile h3{color:#1a2a4f;margin:0;font-size:1rem}.time-tile p{color:#1a2a4fbf;margin:.35rem 0 0;font-size:.85rem}.site-footer{color:#f4f4f4;background:#0c2b4e;border-radius:24px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;width:100%;margin-top:2.5rem;padding:1.5rem;display:flex;box-shadow:0 14px 30px #0c2b4e40}.site-footer a{color:#f4f4f4;margin-right:1rem;font-weight:600;text-decoration:none}.site-footer a:hover{color:#1d546c;text-decoration:underline}.hero{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:2.5rem;display:flex}.hero h1{color:var(--espresso);margin:0;font-size:clamp(2rem,4vw,3rem)}.hero-title{flex-direction:column;gap:.15rem;margin:0;display:flex}.hero-title__brand{font-size:clamp(2.4rem,5vw,3.5rem);line-height:1}.hero-title__tagline{letter-spacing:.2em;text-transform:uppercase;color:var(--truffle);font-size:1rem}.hero p{color:var(--truffle);max-width:520px;margin:.5rem 0 0}.hero-cta{align-items:center;gap:.75rem;margin-bottom:1rem;display:inline-flex}.cta-label{color:var(--espresso);text-transform:uppercase;letter-spacing:.08em;background:#b7e5cd73;border-radius:999px;padding:.45rem 1rem;font-size:.75rem;font-weight:600}.cta-button{background:var(--truffle);color:#fff;letter-spacing:.04em;text-transform:uppercase;border:none;border-radius:999px;padding:.55rem 1.3rem;font-weight:600;transition:transform .18s,box-shadow .18s,background .18s;box-shadow:0 8px 20px #2d3a4b33}.cta-button:hover,.cta-button:focus-visible{background:var(--cocoa);color:var(--espresso);transform:translateY(-1px);box-shadow:0 12px 28px #2d3a4b40}.badge{color:var(--truffle);background:#ffffff73;border:1px solid #2d3a4b33;border-radius:999px;align-items:center;gap:.5rem;padding:.6rem 1.1rem;font-weight:600;display:inline-flex}.badge--ghost{background:#8abeb926}.step-label{text-transform:uppercase;letter-spacing:.2em;color:var(--truffle);margin-bottom:.5rem;font-size:.9rem}.calendar-weekdays{color:var(--truffle);text-transform:uppercase;letter-spacing:.08em;grid-template-columns:repeat(7,minmax(0,1fr));gap:.65rem;margin-bottom:.5rem;font-size:.85rem;display:grid}.calendar-weekdays span{text-align:center}.calendar-placeholder{visibility:hidden}.staff-meta{color:var(--truffle);justify-content:space-between;align-items:center;margin-top:.65rem;font-size:.85rem;display:flex}.staff-meta strong{color:var(--espresso)}.staff-chip-group{flex-wrap:wrap;gap:.4rem;margin-top:.6rem;display:flex}.availability-note{color:var(--truffle);margin-top:1rem;font-size:.9rem}@media (width<=768px){.screen-shell{padding:2rem 1rem 3rem}.app-card__body{padding:2rem 1.25rem 2.25rem}.hero{flex-direction:column;align-items:flex-start}.calendar-day{min-height:72px}}.fade-enter-active[data-v-e1a42185],.fade-leave-active[data-v-e1a42185]{transition:opacity .3s,transform .3s}.fade-enter-from[data-v-e1a42185]{opacity:0;transform:translateY(10px)}.fade-leave-to[data-v-e1a42185]{opacity:0;transform:translateY(-10px)}.fade-move[data-v-e1a42185]{transition:transform .3s}.service-tile[data-v-e1a42185]:focus-visible{outline-offset:2px;outline:2px solid #5d688a}.fade-enter-active[data-v-95583540],.fade-leave-active[data-v-95583540]{transition:opacity .3s,transform .3s}.fade-enter-from[data-v-95583540]{opacity:0;transform:translateY(10px)}.fade-leave-to[data-v-95583540]{opacity:0;transform:translateY(-10px)}.fade-move[data-v-95583540]{transition:transform .3s}.location-header[data-v-95583540]{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.location-header h3[data-v-95583540]{margin:0}.demo-badge[data-v-95583540]{text-transform:uppercase;letter-spacing:.05em;background-color:var(--accent-warm);color:#fff;border-radius:9999px;padding:.125rem .5rem;font-size:.625rem;font-weight:600;display:inline-block}.location-tile[data-v-95583540]:focus-visible{outline-offset:2px;outline:2px solid #5d688a}.location-tile[data-v-95583540]:disabled{opacity:.5;cursor:not-allowed}.fade-enter-active[data-v-ae5cdde4],.fade-leave-active[data-v-ae5cdde4]{transition:opacity .3s,transform .3s}.fade-enter-from[data-v-ae5cdde4]{opacity:0;transform:translateY(10px)}.fade-leave-to[data-v-ae5cdde4]{opacity:0;transform:translateY(-10px)}.fade-move[data-v-ae5cdde4]{transition:transform .3s}.staff-tile[data-v-ae5cdde4]:focus-visible{outline-offset:2px;outline:2px solid #5d688a}.staff-tile[data-v-ae5cdde4]:disabled{opacity:.5;cursor:not-allowed}.calendar-skeleton[data-v-bc8e5266]{padding:1rem 0}.skeleton-grid[data-v-bc8e5266]{grid-template-columns:repeat(7,1fr);gap:.5rem;display:grid}.skeleton-day[data-v-bc8e5266]{aspect-ratio:1;background:linear-gradient(90deg,#e0e0e0 25%,#f0f0f0 50%,#e0e0e0 75%) 0 0/200% 100%;border-radius:4px;animation:1.5s infinite skeleton-loading-bc8e5266}@keyframes skeleton-loading-bc8e5266{0%{background-position:200% 0}to{background-position:-200% 0}}.calendar-day[data-v-bc8e5266]:focus-visible{outline-offset:2px;z-index:1;outline:2px solid #5d688a}@media (width<=480px){.calendar-day[data-v-bc8e5266]{min-height:44px;padding:.4rem .125rem}.calendar-day span[data-v-bc8e5266]{display:none}}.badge[data-v-bc8e5266]:focus-visible{outline-offset:2px;outline:2px solid #5d688a}.badge[data-v-bc8e5266]:disabled{opacity:.5;cursor:not-allowed}.calendar-error[data-v-bc8e5266]{text-align:center;background:#fff0f0;border:1px solid #fcc;border-radius:4px;margin-top:1rem;padding:1rem}.calendar-error p[data-v-bc8e5266]{color:#d32f2f;margin:0 0 .5rem}.retry-button[data-v-bc8e5266]{color:#fff;cursor:pointer;background:#5d688a;border:none;border-radius:4px;padding:.5rem 1rem;font-weight:500;transition:background .2s}.retry-button[data-v-bc8e5266]:hover{background:#4a5570}.retry-button[data-v-bc8e5266]:focus-visible{outline-offset:2px;outline:2px solid #5d688a}.calendar-month[data-v-bc8e5266]{animation:.3s fade-in-bc8e5266}@keyframes fade-in-bc8e5266{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fade-enter-active[data-v-fab288ae],.fade-leave-active[data-v-fab288ae]{transition:opacity .3s,transform .3s}.fade-enter-from[data-v-fab288ae]{opacity:0;transform:translateY(10px)}.fade-leave-to[data-v-fab288ae]{opacity:0;transform:translateY(-10px)}.fade-move[data-v-fab288ae]{transition:transform .3s}.time-tile[data-v-fab288ae]:focus-visible{outline-offset:2px;outline:2px solid #5d688a}.time-tile[data-v-fab288ae]:disabled{opacity:.5;cursor:not-allowed}.time-tile[aria-checked=true][data-v-fab288ae]:before{content:"✓";color:#fff;background:#5d688a;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:12px;font-weight:700;display:flex;position:absolute;top:8px;right:8px}.time-tile[data-v-fab288ae]{position:relative}.empty-state[data-v-fab288ae]{text-align:center;color:#5d688a;background:#f5f5f5;border-radius:8px;padding:2rem}.empty-state p[data-v-fab288ae]{margin:0;font-size:1rem}.context-panel[data-v-8e8891e9]{position:sticky;top:20px}.context-panel>div[data-selected=true][data-v-8e8891e9]{opacity:1}.context-panel>div[data-selected=false][data-v-8e8891e9]{opacity:.6}.context-panel>div[data-v-8e8891e9]{transition:opacity .3s}.context-panel>div[data-selected=true] strong[data-v-8e8891e9]:before{content:"✓ ";color:#5d688a;font-weight:700}.field-error[data-v-565afe08]{color:#d32f2f;margin-top:.25rem;font-size:.875rem;display:block}.form-field input[aria-invalid=true][data-v-565afe08],.form-field textarea[aria-invalid=true][data-v-565afe08]{border-color:#d32f2f}.form-field input:focus[aria-invalid=true][data-v-565afe08],.form-field textarea:focus[aria-invalid=true][data-v-565afe08]{outline-color:#d32f2f}abbr[title][data-v-565afe08]{color:#d32f2f;text-decoration:none}.spinner[data-v-565afe08]{vertical-align:middle;border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:14px;height:14px;margin-right:.5rem;animation:.6s linear infinite spin-565afe08;display:inline-block}@keyframes spin-565afe08{to{transform:rotate(360deg)}}.cta-button[data-v-565afe08]:disabled{opacity:.6;cursor:not-allowed}.cta-button[data-v-565afe08]:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 4px 12px #5d688a4d}.cta-button[data-v-565afe08]:not(:disabled):active{transform:translateY(0)}.cta-button[data-v-565afe08]{transition:all .2s}.booking-message[data-variant=success][data-v-565afe08]{color:#2e7d32;background:#e8f5e9;border-left:3px solid #2e7d32;border-radius:4px;padding:.75rem}.booking-message[data-variant=error][data-v-565afe08]{color:#d32f2f;background:#ffebee;border-left:3px solid #d32f2f;border-radius:4px;padding:.75rem}.booking-message[data-variant=info][data-v-565afe08]{color:#1976d2;background:#e3f2fd;border-left:3px solid #1976d2;border-radius:4px;padding:.75rem}@keyframes success-pulse-565afe08{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.booking-message[data-variant=success][data-v-565afe08]{animation:.6s success-pulse-565afe08}.form-field input[data-v-565afe08]:focus-visible,.form-field textarea[data-v-565afe08]:focus-visible{outline-offset:2px;outline:2px solid #5d688a}.privacy-notice[data-v-565afe08]{color:#425c70;margin:-.5rem 0 0;font-size:.875rem}.privacy-notice a[data-v-565afe08]{color:#305669;font-weight:600}.review-dialog[data-v-565afe08]{color:#305669;background:#fffdf5;border:1px solid #305669;border-radius:1rem;width:min(100% - 2rem,38rem);padding:0;box-shadow:0 1.5rem 4rem #1a2a4f52}.review-dialog[data-v-565afe08]::backdrop{background:#0c2b4e9e}.review-dialog__content[data-v-565afe08]{padding:1.5rem}.review-dialog h3[data-v-565afe08],.review-dialog p[data-v-565afe08]{margin-top:0}.review-details[data-v-565afe08]{gap:.75rem;margin:1.5rem 0;display:grid}.review-details>div[data-v-565afe08]{border-bottom:1px solid #c3d0d7;grid-template-columns:minmax(7rem,.4fr) 1fr;gap:1rem;padding-bottom:.75rem;display:grid}.review-details dt[data-v-565afe08]{font-weight:700}.review-details dd[data-v-565afe08]{overflow-wrap:anywhere;margin:0}.review-actions[data-v-565afe08]{flex-wrap:wrap;justify-content:flex-end;gap:.75rem;display:flex}.review-edit[data-v-565afe08]{color:#305669;border:1px solid #305669;border-radius:999px;padding:.55rem 1.3rem;font-weight:600}.review-edit[data-v-565afe08]:focus-visible,.review-dialog .cta-button[data-v-565afe08]:focus-visible{outline-offset:3px;outline:3px solid #305669}.booking-flow[data-v-6ad47b3c]{position:relative}.loading-state[data-v-6ad47b3c],.error-state[data-v-6ad47b3c]{text-align:center;justify-content:center;align-items:center;min-height:300px;padding:3rem 1.5rem;display:flex}.loading-state p[data-v-6ad47b3c]{color:#5d688a;font-size:1.125rem;animation:2s ease-in-out infinite pulse-6ad47b3c}.error-state p[data-v-6ad47b3c]{color:#d64545;background-color:#fff5f5;border:1px solid #fecaca;border-radius:.5rem;padding:1.5rem;font-size:1.125rem}@keyframes pulse-6ad47b3c{0%,to{opacity:1}50%{opacity:.5}}.progress-step span[data-v-6ad47b3c]{transition:all .4s cubic-bezier(.4,0,.2,1)}
