.service-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:2rem;transition:opacity .2s ease}body[data-navigating=true] .service-grid{opacity:.55;pointer-events:none}.service-card{position:relative;display:flex;flex-direction:column;background:var(--color-paper, var(--color-cream));border-radius:var(--radius-xl);overflow:hidden;text-decoration:none;color:inherit;transition:transform .28s ease,box-shadow .28s ease;box-shadow:var(--shadow-card, 0 4px 16px -8px rgba(0, 0, 0, .15))}.service-card:hover{transform:translateY(-4px)}.service-card:hover .service-card-image img{transform:scale(1.04)}.service-card-image{aspect-ratio:3 / 2;overflow:hidden;background:var(--color-paper-warm, var(--color-surface-secondary, var(--color-cream)))}.service-card-image img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}.service-card-meta{display:flex;flex-direction:column;gap:.5rem;padding:1rem 1rem 1.5rem;flex:1}.service-card-name{margin:0;font-family:var(--font-display);font-size:1.125rem;line-height:1.25;color:var(--color-ink)}.service-card-tagline{margin:0;font-family:var(--font-body);font-size:.875rem;color:var(--color-ink-soft, var(--color-mute));line-height:1.45}.service-card-price{display:flex;align-items:center;gap:.75rem;margin-top:auto;padding-top:.75rem;font-family:var(--font-body);font-size:.875rem;color:var(--color-mute)}.service-card-price span+span:before{content:"·";padding-right:.75rem;color:var(--color-rule)}.booking-filter-bar{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:2rem}.booking-filter-chip{padding:.5rem 1rem;border:1px solid var(--color-rule);border-radius:var(--radius-pill, 999px);background:var(--color-paper, var(--color-cream));color:var(--color-ink);font-family:var(--font-body);font-size:.875rem;text-decoration:none;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease}.booking-filter-chip:hover{border-color:var(--color-ink)}.booking-filter-chip--active{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-paper)}.availability-calendar{display:flex;flex-direction:column;gap:1.5rem}.availability-filters{display:flex;flex-wrap:wrap;gap:1rem}.availability-filters>*{flex:1 1 12rem}.availability-staff{display:flex;flex-direction:column;gap:.5rem}.availability-staff-label{font-family:var(--font-display);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-ink-soft, var(--color-mute))}.availability-staff-select{width:100%;padding:.75rem 1rem;font-family:var(--font-body);font-size:.9375rem;border:1px solid var(--color-rule);border-radius:var(--radius-sm);background:var(--color-paper, var(--color-cream));color:var(--color-ink);box-sizing:border-box}.availability-staff-select:focus{outline:none;border-color:var(--color-accent)}.availability-week-nav{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--color-rule)}.availability-week-label{font-family:var(--font-display);font-size:1rem;color:var(--color-ink);flex:1;text-align:center}.availability-nav-btn{padding:.75rem 1rem;background:transparent;border:1px solid var(--color-rule);border-radius:var(--radius-sm);color:var(--color-ink);font-family:var(--font-body);font-size:.875rem;cursor:pointer;transition:background-color .15s ease,border-color .15s ease}.availability-nav-btn:hover:not(:disabled){background:var(--color-paper-warm, var(--color-cream));border-color:var(--color-ink)}.availability-nav-btn:disabled{opacity:.35;cursor:not-allowed}.availability-day-strip{display:grid;grid-template-columns:repeat(7,1fr);gap:.75rem}.availability-day{display:flex;flex-direction:column;align-items:center;gap:2px;padding:.75rem 0;border:1px solid var(--color-rule);border-radius:var(--radius-sm);background:var(--color-paper, var(--color-cream));color:var(--color-ink);font-family:var(--font-body);cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease}.availability-day-name{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-mute)}.availability-day-num{font-size:1rem;font-weight:600}.availability-day--has-slots:hover{border-color:var(--color-accent)}.availability-day--empty{opacity:.4;cursor:not-allowed}.availability-day--selected{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-paper)}.availability-day--selected .availability-day-name{color:var(--color-paper)}.availability-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:.75rem}.availability-loading,.availability-empty,.availability-error{font-family:var(--font-body);font-size:.9375rem;color:var(--color-ink-soft, var(--color-mute));padding:1.5rem 0;text-align:center}.availability-empty{display:flex;flex-direction:column;align-items:center;gap:1rem}.availability-error{color:var(--color-error, var(--color-accent))}.time-slot{padding:.75rem 1rem;border:1px solid var(--color-rule);border-radius:var(--radius-sm);background:var(--color-paper, var(--color-cream));color:var(--color-ink);font-family:var(--font-body);font-size:.875rem;text-align:center;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease}.time-slot-time{font-weight:500}.time-slot--available{border-color:var(--color-ink)}.time-slot--available:hover{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-paper)}.time-slot--selected{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-paper);font-weight:600}.booking-form{display:flex;flex-direction:column;gap:1.5rem;padding:2rem;border:1px solid var(--color-rule);border-radius:var(--radius-md);background:var(--color-paper-warm, var(--color-paper, var(--color-cream)))}.booking-form-summary{display:flex;flex-direction:column;gap:.5rem;padding-bottom:1rem;border-bottom:1px solid var(--color-rule)}.booking-form-summary strong{font-family:var(--font-display);font-size:1.125rem;color:var(--color-ink)}.booking-form-summary span{font-family:var(--font-body);font-size:.9375rem;color:var(--color-ink-soft, var(--color-mute))}.booking-form-change{align-self:flex-start;margin-top:.5rem;background:none;border:none;padding:0;font-family:var(--font-body);font-size:.8125rem;color:var(--color-mute);text-decoration:underline;cursor:pointer}.booking-form-change:hover{color:var(--color-ink)}.booking-field{display:flex;flex-direction:column;gap:.5rem}.booking-label{font-family:var(--font-display);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-ink-soft, var(--color-mute))}.booking-required{color:var(--color-accent)}.booking-input{width:100%;padding:.75rem 1rem;font-family:var(--font-body);font-size:.9375rem;border:1px solid var(--color-rule);border-radius:var(--radius-sm);background:var(--color-paper, var(--color-cream));color:var(--color-ink);transition:border-color .15s ease;box-sizing:border-box}.booking-input:focus{outline:none;border-color:var(--color-accent)}textarea.booking-input{resize:vertical;min-height:6rem}.booking-error{font-family:var(--font-body);font-size:.875rem;color:var(--color-error, var(--color-accent));padding:.75rem 1rem;border:1px solid var(--color-error, var(--color-accent));border-radius:var(--radius-sm)}.booking-cta{display:inline-flex;align-items:center;justify-content:center;width:100%;padding:1rem 2rem;font-family:var(--font-display);font-size:.9375rem;font-weight:500;background:var(--color-accent);color:var(--color-paper);border:1px solid var(--color-accent);border-radius:var(--radius-sm);cursor:pointer;transition:opacity .15s ease}.booking-cta:hover:not(:disabled){opacity:.9}.booking-cta:disabled{opacity:.5;cursor:not-allowed}.booking-field-hint{font-size:.82rem;color:var(--color-mute);margin-bottom:.5rem}.booking-optional{font-size:.8rem;color:var(--color-mute);font-weight:400}.co-participant-search{position:relative}.co-participant-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--color-paper);border:1px solid var(--color-rule);border-radius:var(--radius-md);box-shadow:var(--shadow-card);list-style:none;z-index:200;overflow:hidden;max-height:220px;overflow-y:auto}.co-participant-option{display:flex;align-items:center;gap:.75rem;width:100%;padding:.65rem 1rem;background:none;border:none;cursor:pointer;text-align:left;transition:background .1s}.co-participant-option:hover{background:#c9a84c14}.co-participant-avatar{width:2.25rem;height:2.25rem;border-radius:50%;background:var(--color-accent);color:var(--ebony, #1a1a2e);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1rem;overflow:hidden;flex-shrink:0}.co-participant-avatar--sm{width:1.8rem;height:1.8rem;font-size:.85rem}.co-participant-avatar img{width:100%;height:100%;object-fit:cover}.co-participant-name{font-weight:600;font-size:.9rem;color:var(--color-ink)}.co-participant-email{font-size:.78rem;color:var(--color-mute)}.co-participant-selected{display:flex;align-items:center;gap:.75rem;background:#c9a84c14;border:1px solid rgba(201,168,76,.3);border-radius:var(--radius-md);padding:.65rem .85rem}.co-participant-remove{margin-left:auto;background:none;border:none;font-size:1.25rem;line-height:1;color:var(--color-mute);cursor:pointer;padding:0 .25rem}.co-participant-remove:hover{color:var(--color-ink)}.co-participant-loading{display:block;font-size:.8rem;color:var(--color-mute);padding:.35rem 0}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--paper: #f7f3e8;--paper-dark: #ede8d4;--paper-card: #fefcf5;--pencil: #1a150e;--pencil-mid: #6b5a48;--pencil-light: #9a8878;--gold: #c49238;--gold-light: #d4a84e;--text: var(--pencil);--text-muted: var(--pencil-mid);--bg: var(--paper);--card-bg: var(--paper-card);--border: #c0b4a0;--radius: 4px;--ebony: var(--pencil);--ivory: var(--paper);--color-accent: var(--gold);--color-paper: var(--paper-card);--color-cream: var(--paper);--color-ink: var(--pencil);--color-mute: var(--pencil-light);--color-rule: var(--border);--color-ink-soft: var(--pencil-mid);--color-error: #c43030;--font-display: "Caveat", cursive;--font-body: "Patrick Hand", cursive;--radius-sm: 4px;--radius-md: 6px;--radius-xl: 8px;--radius-pill: 999px;--shadow-card: 2px 3px 10px rgba(40,28,16,.1)}html,body{font-family:Patrick Hand,cursive;background-color:var(--paper);background-image:linear-gradient(to right,transparent 88px,rgba(218,140,140,.4) 88px,rgba(218,140,140,.4) 89px,transparent 89px),repeating-linear-gradient(transparent,transparent 27px,rgba(197,212,232,.7) 27px,rgba(197,212,232,.7) 28px);color:var(--pencil);min-height:100vh;display:flex;flex-direction:column;font-size:1.05rem;line-height:1.65}main{flex:1}nav{display:flex;align-items:center;justify-content:space-between;padding:.85rem 2rem;background:var(--paper-dark);border-bottom:1.5px solid rgba(197,212,232,.9);box-shadow:0 1px 4px #281c100f;position:sticky;top:0;z-index:100}.logo{font-family:Caveat,cursive;font-size:1.6rem;font-weight:700;color:var(--pencil);text-decoration:none;letter-spacing:.01em}.nav-links{display:flex;gap:.25rem}.nav-links a{font-family:Patrick Hand,cursive;color:var(--pencil-mid);text-decoration:none;padding:.4rem .9rem;border-radius:3px;font-size:1rem;transition:all .15s}.nav-links a:hover{color:var(--pencil);background:#1a150e0f}.nav-links a.active{color:var(--pencil);font-weight:700;border-bottom:2px solid var(--pencil);border-radius:0}.nav-login{background:var(--pencil)!important;color:var(--paper)!important;padding:.35rem 1rem!important;border-radius:3px!important;font-weight:700!important;border-bottom:none!important}.nav-login:hover{background:var(--pencil-mid)!important;color:var(--paper)!important}.nav-logout{color:var(--pencil-light)!important;font-size:.9rem!important}footer{text-align:center;padding:1.5rem;font-size:.9rem;border-top:1.5px solid rgba(197,212,232,.9);background:var(--paper-dark);color:var(--pencil-light);font-family:Patrick Hand,cursive}h1,h2,h3{font-family:Caveat,cursive;font-weight:700;letter-spacing:.01em}@media(max-width:640px){nav{padding:.65rem 1rem}.logo{font-size:1.35rem}.nav-links a{padding:.35rem .6rem;font-size:.9rem}}
