:root{--black: #0d0d0d;--dark: #1a1a1a;--gray-900: #2d2d2d;--gray-700: #5a5a5a;--gray-500: #8a8a8a;--gray-300: #b0b0b0;--gray-100: #e8e8e8;--gray-50: #f5f5f5;--white: #ffffff;--border: rgba(0,0,0,.07);--border-light: rgba(0,0,0,.04);--radius: 16px;--radius-sm: 10px;--radius-xs: 6px;--serif: "Playfair Display", serif;--sans: "Inter", -apple-system, sans-serif;--ease: cubic-bezier(.25, .46, .45, .94);--ease-out: cubic-bezier(.16, 1, .3, 1);--bg: var(--gray-50);--bg-alt: var(--gray-50);--bg-card: var(--white);--text: var(--black);--text-dim: var(--gray-700);--text-faint: var(--gray-500)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--sans);background:var(--white);color:var(--dark);overflow-x:hidden;line-height:1.6;font-weight:400}img{max-width:100%;display:block}a{text-decoration:none;color:inherit}button{cursor:pointer;font-family:inherit}.container{max-width:1200px;margin:0 auto;padding:0 32px}.main-content{padding-top:80px;min-height:100vh}h2{font-family:var(--serif);font-size:clamp(30px,4vw,48px);font-weight:600;line-height:1.1;color:var(--black)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 32px;border-radius:50px;font-size:13px;font-weight:500;border:none;transition:all .35s var(--ease);font-family:inherit;letter-spacing:.02em;cursor:pointer}.btn--black{background:var(--black);color:var(--white)}.btn--black:hover{background:var(--dark);transform:translateY(-2px);box-shadow:0 12px 30px #0000001f}.btn--outline{background:transparent;color:var(--black);border:1.5px solid var(--black)}.btn--outline:hover{background:var(--black);color:var(--white);transform:translateY(-2px)}.btn--full{width:100%}.nav{position:fixed;top:0;left:0;right:0;z-index:1000;padding:20px 0;transition:all .5s var(--ease)}.nav-link{font-size:12px;color:#ffffffd9;letter-spacing:.08em;font-weight:400;transition:color .3s;position:relative;text-transform:uppercase;text-decoration:none}.nav-link:after{content:"";position:absolute;bottom:-3px;left:0;width:0;height:1.5px;background:var(--white);transition:width .35s var(--ease)}.nav-link:hover{color:var(--white)}.nav-link:hover:after{width:100%}.nav-link.active{color:var(--white)}.nav-link--phone{color:var(--white);font-weight:500}.nav-cta{padding:9px 24px;border-radius:50px;background:var(--white);color:var(--black);font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;transition:all .3s var(--ease);text-decoration:none}.nav-cta:hover{background:#ffffffd9;transform:translateY(-1px)}.nav-install-link{display:inline-flex;align-items:center;gap:6px;background:transparent;color:#ffffffb3;border:1px solid rgba(255,255,255,.2);padding:7px 14px;border-radius:50px;font-size:12px;font-weight:500;cursor:pointer;font-family:inherit;margin-left:8px;transition:all .2s}.nav-install-link:hover{color:var(--white);border-color:var(--white);background:#ffffff0f}.nav-burger span{display:block;width:22px;height:1.5px;background:var(--white);transition:all .3s var(--ease);border-radius:2px}.nav.scrolled{background:#fffffff2;-webkit-backdrop-filter:blur(24px) saturate(1.3);backdrop-filter:blur(24px) saturate(1.3);padding:12px 0;border-bottom:1px solid var(--border)}.nav.scrolled .nav-link{color:var(--gray-700)}.nav.scrolled .nav-link:after{background:var(--black)}.nav.scrolled .nav-link:hover,.nav.scrolled .nav-link.active,.nav.scrolled .nav-link--phone{color:var(--black)}.nav.scrolled .nav-cta{background:var(--black);color:var(--white)}.nav.scrolled .nav-cta:hover{background:var(--dark);box-shadow:0 6px 20px #00000014}.nav.scrolled .nav-install-link{color:var(--gray-700);border-color:var(--border)}.nav.scrolled .nav-install-link:hover{color:var(--black);border-color:var(--black);background:var(--gray-50)}.nav.scrolled .nav-burger span{background:var(--black)}.nav--inner{background:#fffffff2;-webkit-backdrop-filter:blur(24px) saturate(1.3);backdrop-filter:blur(24px) saturate(1.3);padding:12px 0;border-bottom:1px solid var(--border)}.nav--inner .nav-link{color:var(--gray-700)}.nav--inner .nav-link:after{background:var(--black)}.nav--inner .nav-link:hover,.nav--inner .nav-link.active,.nav--inner .nav-link--phone{color:var(--black)}.nav--inner .nav-cta{background:var(--black);color:var(--white)}.nav--inner .nav-cta:hover{background:var(--dark);box-shadow:0 6px 20px #00000014}.nav--inner .nav-install-link{color:var(--gray-700);border-color:var(--border)}.nav--inner .nav-install-link:hover{color:var(--black);border-color:var(--black);background:var(--gray-50)}.nav--inner .nav-burger span{background:var(--black)}.nav-inner{max-width:1200px;margin:0 auto;padding:0 32px;display:flex;align-items:center;justify-content:space-between}.nav-logo img{height:36px;transition:all .4s var(--ease)}.nav.scrolled .nav-logo img{height:30px}.nav-menu{display:flex;align-items:center;gap:32px}.nav-burger{display:none;flex-direction:column;gap:5px;background:none;border:none;padding:4px;cursor:pointer}.nav-burger.active span:first-child{transform:rotate(45deg) translate(4px,5px)}.nav-burger.active span:last-child{transform:rotate(-45deg) translate(4px,-5px)}.hero{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;margin-top:-80px}.hero-bg{position:absolute;top:0;right:0;bottom:0;left:0}.hero-bg img{width:100%;height:100%;object-fit:cover}.hero-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#000000b3,#0000004d 30%,#0000008c);z-index:1}.hero-content{position:relative;z-index:2;text-align:center;max-width:820px;padding:0 32px}.hero-badge{display:inline-block;font-size:10px;letter-spacing:4px;text-transform:uppercase;color:#ffffff80;font-weight:400;margin-bottom:32px;border:1px solid rgba(255,255,255,.1);padding:6px 18px;border-radius:50px}.hero h1{font-family:var(--serif);font-size:clamp(48px,8vw,100px);font-weight:600;line-height:1.05;letter-spacing:-.02em;margin-bottom:24px;color:var(--white)}.hero h1 em{font-style:italic;color:#fff9}.hero-content p{font-size:16px;color:#ffffff8c;max-width:520px;margin:0 auto 36px;line-height:1.7}.hero-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}.hero-actions .btn--outline{border-color:#fff3;color:var(--white)}.hero-actions .btn--outline:hover{background:var(--white);color:var(--black)}.section{padding:100px 0}.section--alt{background:var(--gray-50)}.section-center{text-align:center;margin-bottom:52px}.section-center p{color:var(--gray-700);font-size:14px;margin-top:8px;max-width:600px;margin-left:auto;margin-right:auto}.section-tag{display:inline-block;font-size:10px;letter-spacing:3.5px;text-transform:uppercase;color:var(--gray-700);font-weight:400;margin-bottom:14px}.home-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.home-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:all .4s var(--ease);display:block}.home-card:hover{transform:translateY(-4px);box-shadow:0 20px 50px #0000000f}.home-card img{width:100%;height:220px;object-fit:cover}.home-card-body{padding:28px 28px 32px}.home-card-tag{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--gray-700);font-weight:500}.home-card-body h3{font-family:var(--serif);font-size:22px;font-weight:600;margin:8px 0;color:var(--black)}.home-card-body p{color:var(--gray-700);font-size:13px;line-height:1.7}.cta-banner{padding:100px 0;background:var(--black);text-align:center;color:var(--white)}.cta-banner h2{font-family:var(--serif);font-size:clamp(28px,3.5vw,42px);margin-bottom:12px;color:var(--white)}.cta-banner p{color:var(--gray-300);font-size:15px;margin-bottom:28px}.cta-banner .btn--outline{border-color:#fff3;color:var(--white)}.cta-banner .btn--outline:hover{background:var(--white);color:var(--black)}.cta-banner-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}.about-visual img{width:100%;height:520px;object-fit:cover;border-radius:var(--radius)}.about-text h2{font-size:clamp(28px,3.5vw,42px);margin:12px 0 18px}.about-intro{font-size:16px;line-height:1.7;margin-bottom:14px;color:var(--dark)}.about-text p{color:var(--gray-700);font-size:14px;line-height:1.8;margin-bottom:12px}.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.service-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:32px;transition:all .4s var(--ease)}.service-card:hover{transform:translateY(-3px);box-shadow:0 16px 40px #0000000a}.service-card h3{font-family:var(--serif);font-size:18px;font-weight:600;margin-bottom:4px;color:var(--black)}.service-price{display:none}.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.gallery-item{border-radius:var(--radius-sm);overflow:hidden;aspect-ratio:1}.gallery-item:nth-child(1){grid-column:span 2;grid-row:span 2}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease-out)}.gallery-item:hover img{transform:scale(1.07)}.testimonials-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.testimonial-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:32px;transition:all .4s var(--ease)}.testimonial-card:hover{transform:translateY(-3px);box-shadow:0 16px 40px #0000000a}.testimonial-stars{color:var(--black);font-size:14px;letter-spacing:3px;margin-bottom:14px}.testimonial-text{color:var(--gray-700);font-size:14px;line-height:1.7;font-style:italic;margin-bottom:18px}.testimonial-name{font-size:13px;color:var(--gray-500);font-weight:500}.contact-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.contact-card{text-align:center;background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:36px 24px;transition:all .4s var(--ease)}.contact-card:hover{transform:translateY(-3px);box-shadow:0 16px 40px #0000000a}.contact-card i{font-size:24px;color:var(--black);margin-bottom:12px}.contact-card h3{font-size:11px;text-transform:uppercase;letter-spacing:2px;color:var(--gray-500);font-weight:400;margin-bottom:8px}.contact-card p{font-size:13px;line-height:1.6;color:var(--dark)}.contact-card a:hover{color:var(--black)}.book-section{padding-top:40px}.book-container{max-width:640px;margin:0 auto}.book-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:40px;min-height:400px}.steps{display:flex;align-items:center;margin-bottom:32px}.step{display:flex;align-items:center;gap:8px}.step-num{width:28px;height:28px;border-radius:50%;border:1.5px solid var(--gray-300);display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--gray-500);transition:all .35s var(--ease);flex-shrink:0}.step.active .step-num,.step.done .step-num{background:var(--black);border-color:var(--black);color:var(--white)}.step-label{font-size:12px;color:var(--gray-500);white-space:nowrap}.step.active .step-label{color:var(--black)}.step:not(:last-child):after{content:"";flex:1;height:1.5px;background:var(--border);margin:0 14px;border-radius:2px;min-width:30px}.step.active:after,.step.done:after{background:var(--black)}.book-step h2{font-family:var(--serif);font-size:22px;font-weight:600;margin-bottom:20px}.step-back{display:flex;align-items:center;gap:12px;margin-bottom:16px}.step-back button{background:transparent;border:1px solid var(--border);color:var(--gray-700);padding:6px 12px;border-radius:var(--radius-xs);font-size:12px;cursor:pointer;font-family:inherit}.step-back button:hover{border-color:var(--black);color:var(--black)}.step-back span{font-size:13px;color:var(--gray-500)}.calendar{max-width:380px;margin:0 auto}.cal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.cal-header button{background:var(--gray-50);border:1px solid var(--border);width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--gray-700);font-size:13px;cursor:pointer;transition:all .2s}.cal-header button:hover{background:var(--gray-100);border-color:var(--gray-300)}.cal-header span{font-family:var(--serif);font-size:18px;font-weight:600;color:var(--black)}.cal-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}.cal-day-header{font-size:11px;color:var(--gray-700);padding:8px 0;text-transform:uppercase;letter-spacing:1.5px;font-weight:500}.cal-week{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:14px;border-radius:50%;cursor:pointer;transition:all .2s var(--ease);border:none;background:transparent;color:var(--black);font-family:inherit}.cal-cell:hover{background:var(--gray-50)}.cal-cell.selected{background:var(--black);color:var(--white);font-weight:500}.cal-cell.past{color:var(--gray-300);cursor:default}.cal-cell.past:hover{background:transparent}.cal-cell.blocked{color:var(--gray-300);cursor:default}.cal-cell.blocked:hover{background:transparent}.cal-footnote{text-align:center;color:var(--gray-500);font-size:12px;margin-top:16px}.time-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.time-slot{padding:11px;border-radius:var(--radius-xs);border:1px solid var(--border);background:transparent;color:var(--black);font-size:13px;text-align:center;cursor:pointer;transition:all .2s var(--ease);font-family:inherit}.time-slot:hover{border-color:var(--black);background:var(--gray-50)}.time-slot.selected{border-color:var(--black);background:var(--black);color:var(--white);font-weight:500}.time-slot.taken{opacity:.15;cursor:default;pointer-events:none}.time-slot.blocked{opacity:.3;cursor:default;pointer-events:none}.book-form{display:flex;flex-direction:column;gap:16px}.bf-field{display:flex;flex-direction:column;gap:5px}.bf-field label{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--gray-700);font-weight:500}.bf-field .opt{color:var(--gray-500);text-transform:none;letter-spacing:0;font-weight:400}.bf-field input,.bf-field textarea,.bf-field select{padding:12px 14px;border-radius:var(--radius-xs);border:1px solid var(--border);background:var(--white);color:var(--black);font-size:14px;font-family:inherit;outline:none;transition:all .3s var(--ease);width:100%}.bf-field input:focus,.bf-field textarea:focus,.bf-field select:focus{border-color:var(--black);box-shadow:0 0 0 3px #0000000a}.bf-field input::placeholder,.bf-field textarea::placeholder{color:var(--gray-300)}.bf-field select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23000000' d='M6 8L0 0h12z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;background-size:10px;padding-right:40px;cursor:pointer}.field-error{font-size:12px;color:#e53e3e}.book-confirmed{text-align:center;padding:60px 36px}.confirmed-icon i{font-size:52px;color:#22c55e;margin-bottom:16px}.book-confirmed h2{font-family:var(--serif);font-size:28px;margin-bottom:8px}.confirmed-details{font-size:16px;margin-bottom:8px;color:var(--black)}.book-confirmed p{color:var(--gray-700);font-size:14px}.confirmed-actions{display:flex;gap:10px;justify-content:center;margin-top:20px;flex-wrap:wrap}.service-select-grid{display:flex;flex-direction:column;gap:8px}.service-select-btn{display:flex;align-items:center;justify-content:space-between;width:100%;padding:16px 18px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--white);cursor:pointer;transition:all .2s var(--ease);text-align:left;font-family:inherit}.service-select-btn:hover{border-color:var(--black);transform:translateY(-1px);box-shadow:0 4px 12px #0000000f}.service-select-btn.selected{border-color:var(--black);background:var(--black);color:var(--white)}.service-select-name{font-size:15px;font-weight:500;color:inherit}.service-select-btn i{font-size:12px;color:var(--gray-500);transition:color .2s}.service-select-btn:hover i{color:var(--black)}.service-select-btn.selected i{color:#fff9}.admin-login-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:48px 40px;text-align:center;margin:40px auto;max-width:400px;box-shadow:0 20px 60px #0000000a}.admin-login-card h2{font-family:var(--serif);font-size:26px;margin-bottom:8px;color:var(--black)}.admin-login-card .admin-setup-msg{padding:20px 0}.admin-login-card .admin-setup-msg code{background:var(--gray-50);color:var(--black);padding:2px 6px;border-radius:4px;font-size:12px;border:1px solid var(--border)}.admin-login-card .admin-setup-msg p{margin-bottom:0}.quick-book{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:24px;margin-bottom:24px}.qb-field{display:flex;flex-direction:column;gap:4px;margin-bottom:4px}.qb-field label{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--gray-700);font-weight:500}.qb-field input,.qb-field select{padding:10px 12px;border-radius:var(--radius-xs);border:1px solid var(--border);background:var(--white);color:var(--black);font-size:13px;font-family:inherit;outline:none;transition:all .3s var(--ease);width:100%}.qb-field input:focus,.qb-field select:focus{border-color:var(--black)}.qb-time{padding:6px 4px;font-size:11px;border:1px solid var(--border);border-radius:4px;background:transparent;color:var(--black);cursor:pointer;font-family:inherit;text-align:center;transition:all .2s}.qb-time:hover{border-color:var(--black)}.qb-time.selected{background:var(--black);color:var(--white);font-weight:500}.qb-time.taken,.qb-time.blocked{opacity:.4;cursor:not-allowed}.stat-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-sm);padding:24px 20px;text-align:center}.stat-num{display:block;font-family:var(--serif);font-size:32px;font-weight:600;color:var(--black)}.stat-label{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--gray-700)}.export-row{display:flex;gap:8px;margin-bottom:12px}.export-btn{display:inline-flex;align-items:center;gap:6px;padding:10px 18px;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-xs);color:var(--gray-700);font-size:12px;cursor:pointer;font-family:inherit;transition:all .2s}.export-btn:hover{border-color:var(--black);color:var(--black)}.bookings-table{width:100%;border-collapse:collapse;font-size:13px}.bookings-table th{text-align:left;padding:12px 8px;color:var(--gray-700);font-size:11px;text-transform:uppercase;letter-spacing:1px;border-bottom:1px solid var(--border);font-weight:500}.bookings-table td{padding:12px 8px;border-bottom:1px solid var(--border);color:var(--dark)}.footer{background:var(--black);color:var(--white);padding-top:60px}.footer-grid{display:grid;grid-template-columns:1.8fr 1fr 1fr 1fr;gap:48px;margin-bottom:36px}.footer-brand img{height:40px;margin-bottom:12px}.footer-brand p{font-size:13px;color:var(--gray-300);line-height:1.7;margin-bottom:14px;max-width:280px}.footer-phone{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--white);font-weight:500;margin-bottom:14px;transition:color .3s}.footer-phone:hover{color:var(--gray-300)}.footer-social{display:flex;gap:8px}.footer-social a{width:34px;height:34px;border-radius:50%;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;transition:all .3s;color:var(--gray-300)}.footer-social a:hover{background:var(--white);border-color:var(--white);color:var(--black)}.footer-cta{display:inline-block;margin-top:16px;padding:10px 24px;background:var(--white);color:var(--black);border-radius:50px;font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;transition:all .3s var(--ease);text-decoration:none}.footer-cta:hover{background:#ffffffd9;transform:translateY(-1px)}.footer-nav h4,.footer-hours h4{font-size:12px;text-transform:uppercase;letter-spacing:1.5px;margin-bottom:16px;color:var(--white);font-weight:500}.footer-nav a{display:block;font-size:13px;color:var(--gray-300);margin-bottom:8px;transition:all .3s}.footer-nav a:hover{color:var(--white);padding-left:3px}.footer-hours p{font-size:13px;color:var(--gray-300);margin-bottom:10px;display:flex;justify-content:space-between;max-width:180px}.footer-hours p span{color:var(--white)}.footer-bar{border-top:1px solid rgba(255,255,255,.08);padding:22px 0;display:flex;justify-content:center;flex-wrap:wrap;gap:10px}.footer-bar p{font-size:12px;color:var(--gray-500)}.install-prompt{position:fixed;left:16px;right:16px;bottom:16px;z-index:9000;background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;box-shadow:0 20px 50px #00000014;animation:slideUp .4s var(--ease-out)}.install-prompt-inner{display:flex;align-items:center;gap:14px}.install-icon{width:40px;height:40px;border-radius:10px;flex-shrink:0}.install-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.install-text strong{font-size:14px;font-weight:500;color:var(--black)}.install-text span{font-size:12px;color:var(--gray-700)}.install-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.btn-install{padding:8px 16px;border:none;border-radius:50px;background:var(--black);color:var(--white);font-size:12px;font-weight:500;cursor:pointer;font-family:inherit}.btn-install:hover{transform:translateY(-1px)}.btn-dismiss{width:28px;height:28px;border:none;border-radius:50%;background:transparent;color:var(--gray-500);font-size:18px;line-height:1;cursor:pointer}.btn-dismiss:hover{background:var(--gray-50);color:var(--black)}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.update-toast{position:fixed;left:16px;right:16px;bottom:16px;z-index:9000;background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;box-shadow:0 20px 50px #00000014;animation:slideUp .4s var(--ease-out)}.update-toast span{font-size:13px;color:var(--black)}.update-toast button{padding:6px 14px;border:none;border-radius:50px;background:var(--black);color:var(--white);font-size:12px;font-weight:500;cursor:pointer}@media (min-width: 640px){.install-prompt,.update-toast{left:auto;right:24px;bottom:24px;max-width:360px}}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:800;background:#fffffff5;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top:1px solid var(--border);display:flex;justify-content:space-around;align-items:center;padding:8px 0 max(8px,env(safe-area-inset-bottom))}.bn-tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;color:var(--gray-500);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;transition:color .2s;text-decoration:none}.bn-tab i{font-size:18px}.bn-tab:hover,.bn-tab.active{color:var(--black)}.bn-tab--cta{position:relative;margin-top:-16px}.bn-tab--cta:before{content:"";position:absolute;top:-8px;left:50%;transform:translate(-50%);width:36px;height:36px;background:var(--black);border-radius:50%;z-index:-1;box-shadow:0 4px 16px #0000001f}.bn-tab--cta i{color:var(--white);z-index:1}.bn-tab--cta span{color:var(--white);font-weight:500}.toast-container{position:fixed;bottom:24px;right:24px;z-index:9999;display:flex;flex-direction:column;gap:8px;max-width:320px}.toast{background:var(--white);border:1px solid var(--border);color:var(--black);padding:14px 20px;border-radius:var(--radius-sm);font-size:13px;opacity:0;transform:translateY(20px);transition:all .3s;box-shadow:0 12px 32px #00000014}.toast.show{opacity:1;transform:translateY(0)}.toast.danger{border-color:#e53e3e}.toast.success{border-color:#22c55e}.toast.info{border-color:#3b82f6}@media (max-width: 768px){.toast-container{left:16px;right:16px;max-width:none;bottom:80px}}@media (display-mode: standalone){.nav-install-link{display:none!important}body{padding-top:env(safe-area-inset-top)}.main-content{padding-top:calc(80px + env(safe-area-inset-top))}.hero{min-height:100dvh}}@media (display-mode: standalone) and (max-width: 768px){.nav-inner{padding:0 16px}.nav-logo img{height:30px}.nav-burger{display:none!important}.nav-menu{position:static;flex-direction:row;height:auto;background:transparent;padding:0;width:auto;box-shadow:none;gap:12px}.nav-menu a.nav-link,.nav-menu a.nav-cta{display:none}body.has-bottom-nav{padding-bottom:72px}}@media (display-mode: standalone) and (min-width: 769px){.bottom-nav{display:none}body.has-bottom-nav{padding-bottom:0}}@supports (padding: max(0px)){body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.install-prompt,.update-toast{left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom))}.bottom-nav{padding-bottom:max(8px,env(safe-area-inset-bottom))}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:5000;display:flex;align-items:center;justify-content:center;padding:24px}.modal-inner{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:40px 36px;max-width:440px;width:100%;text-align:center;animation:modalIn .4s var(--ease-out);position:relative;z-index:5001;box-shadow:0 30px 80px #00000014}@keyframes modalIn{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-inner h3{font-family:var(--serif);font-size:24px;font-weight:600;margin-bottom:6px}.modal-inner p{color:var(--gray-700);font-size:14px;margin-bottom:20px}.modal-actions{display:flex;gap:10px}.modal-actions .btn{flex:1}.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000040;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:4999}.backdrop.active{display:block}.ios-install-modal{text-align:left}.ios-install-icon{text-align:center;margin-bottom:14px}.ios-install-icon img{width:72px;height:72px;border-radius:16px;margin:0 auto;box-shadow:0 4px 16px #00000014}.ios-install-modal h3,.ios-install-modal p{text-align:center}.ios-install-later{display:block;width:100%;margin-top:10px;padding:10px;background:transparent;color:var(--gray-500);border:none;font-size:12px;cursor:pointer;font-family:inherit}.ios-install-later:hover{color:var(--black)}@media (max-width: 768px){.modal-actions{flex-direction:column}}.setup-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99999;display:flex;align-items:center;justify-content:center}.setup-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--white)}.setup-card{position:relative;max-width:420px;width:100%;padding:32px 28px;text-align:center;opacity:0;transform:translateY(20px);transition:all .8s var(--ease-out)}.setup-card--show{opacity:1;transform:translateY(0)}.setup-logo{margin-bottom:20px}.setup-logo img{width:80px;height:80px;border-radius:20px;box-shadow:0 8px 32px #00000014;animation:setupBounce .8s var(--ease-out)}@keyframes setupBounce{0%{transform:scale(0) rotate(-10deg);opacity:0}60%{transform:scale(1.1) rotate(2deg)}to{transform:scale(1) rotate(0);opacity:1}}.setup-card h1{font-family:var(--serif);font-size:28px;font-weight:600;line-height:1.2;margin-bottom:6px;color:var(--black);animation:setupFadeUp .6s .3s both var(--ease-out)}.setup-card h2{font-family:var(--serif);font-size:24px;font-weight:600;margin-bottom:8px;color:var(--black)}.setup-sub{color:var(--gray-700);font-size:14px;margin-bottom:28px;animation:setupFadeUp .6s .5s both var(--ease-out)}@keyframes setupFadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.setup-choices{display:flex;flex-direction:column;gap:10px;animation:setupFadeUp .6s .7s both var(--ease-out)}.setup-btn{display:flex;align-items:center;gap:14px;padding:16px 20px;border-radius:14px;border:1px solid var(--border);background:var(--white);color:var(--black);font-family:inherit;font-size:15px;cursor:pointer;text-align:left;transition:all .2s;width:100%}.setup-btn:hover{border-color:var(--black);transform:translateY(-1px);box-shadow:0 4px 12px #0000000a}.setup-btn i{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}.setup-btn span{display:block;font-weight:600;font-size:15px}.setup-btn small{display:block;font-size:12px;color:var(--gray-500);font-weight:400;margin-top:2px}.setup-btn--client i{background:var(--gray-50);color:var(--black)}.app-shell{min-height:100vh;background:var(--white);color:var(--dark);display:flex;flex-direction:column;max-width:480px;margin:0 auto;position:relative;box-shadow:0 0 40px #0000000a}.app-header{position:sticky;top:0;z-index:50;background:#fffffff2;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--border);padding:14px 18px;display:flex;align-items:center;justify-content:space-between;padding-top:max(14px,env(safe-area-inset-top))}.app-header-logo img{height:30px}.app-header-actions{display:flex;gap:6px}.app-header-call,.app-header-exit{width:38px;height:38px;border-radius:50%;background:var(--gray-50);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--gray-700);font-size:14px;text-decoration:none;transition:all .2s}.app-header-call:hover,.app-header-exit:hover{color:var(--black);border-color:var(--black)}.app-header-call{color:var(--black)}.app-main{flex:1;padding:20px 16px 100px;overflow-x:hidden}.app-tabbar{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:480px;z-index:50;background:#fffffff5;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top:1px solid var(--border);display:flex;justify-content:space-around;padding:10px 0 max(10px,env(safe-area-inset-bottom))}.app-tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 4px;color:var(--gray-500);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;text-decoration:none;transition:color .2s}.app-tab i{font-size:18px}.app-tab.active{color:var(--black)}.app-tab.active i{transform:scale(1.1)}.app-home-hero{text-align:center;padding:40px 0 32px}.app-home-hero h1{font-family:var(--serif);font-size:42px;font-weight:600;line-height:1.05;margin-bottom:12px;color:var(--black)}.app-home-hero p{color:var(--gray-700);font-size:14px;margin-bottom:24px;padding:0 16px}.app-cta-primary{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:16px 24px;background:var(--black);color:var(--white);border:none;border-radius:50px;font-size:15px;font-weight:500;font-family:inherit;letter-spacing:.02em;text-decoration:none;cursor:pointer;transition:all .2s}.app-cta-primary:hover{background:var(--dark);transform:translateY(-1px);box-shadow:0 8px 24px #00000014}.app-cta-primary:disabled{opacity:.5;cursor:not-allowed}.app-section{margin-top:20px;display:flex;flex-direction:column;gap:10px}.app-tile{display:flex;align-items:center;gap:14px;padding:16px 18px;background:var(--white);border:1px solid var(--border);border-radius:14px;text-decoration:none;color:var(--black);transition:all .2s}.app-tile:hover{border-color:var(--black);transform:translateY(-1px);box-shadow:0 4px 12px #0000000a}.app-tile-icon{width:44px;height:44px;border-radius:12px;background:var(--gray-50);display:flex;align-items:center;justify-content:center;flex-shrink:0}.app-tile-icon i{color:var(--black);font-size:18px}.app-tile div{flex:1;min-width:0}.app-tile strong{display:block;font-size:15px;font-weight:500;margin-bottom:2px}.app-tile span{display:block;font-size:12px;color:var(--gray-700)}.app-tile-arrow{color:var(--gray-300);font-size:12px}.app-hours{background:var(--white);border:1px solid var(--border);border-radius:14px;padding:20px}.app-hours h3{font-size:14px;font-weight:500;margin-bottom:12px;display:flex;align-items:center;gap:8px}.app-hours h3 i{color:var(--black);font-size:13px}.app-hours ul{list-style:none;padding:0}.app-hours li{display:flex;justify-content:space-between;padding:6px 0;font-size:13px;color:var(--gray-700)}.app-hours li span:last-child{color:var(--black);font-weight:500}.app-call-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:16px;padding:12px;background:var(--gray-50);border:1px solid var(--border);border-radius:50px;color:var(--black);font-size:14px;font-weight:500;text-decoration:none;transition:all .2s}.app-call-btn:hover{background:var(--gray-100)}.app-card{background:var(--white);border:1px solid var(--border);border-radius:14px;padding:24px 20px;margin-bottom:12px}.app-card h2{font-family:var(--serif);font-size:22px;font-weight:600;margin-bottom:8px}.app-card h3{font-size:14px;font-weight:500;margin-bottom:8px;display:flex;align-items:center;gap:8px}.app-card h3 i{color:var(--black);font-size:13px}.app-card-center{text-align:center}.app-service-list{display:flex;flex-direction:column;gap:6px}.app-service-btn{display:flex;align-items:center;justify-content:space-between;width:100%;padding:14px 16px;border:1px solid var(--border);border-radius:10px;background:var(--white);cursor:pointer;transition:all .2s;text-align:left;font-family:inherit;font-size:14px;color:var(--black)}.app-service-btn:hover{border-color:var(--black)}.app-service-btn.selected{border-color:var(--black);background:var(--black);color:var(--white)}.app-service-btn i{font-size:11px;color:var(--gray-500)}.app-service-btn:hover i{color:var(--black)}.app-service-btn.selected i{color:#fff9}.app-book-header{margin-bottom:16px}.app-book-header h2{font-family:var(--serif);font-size:28px;font-weight:600;margin-bottom:16px}.app-stepper{display:flex;gap:8px}.app-step{display:flex;align-items:center;gap:6px;flex:1;padding:8px 0;opacity:.4}.app-step.active,.app-step.done{opacity:1}.app-step-num{width:24px;height:24px;border-radius:50%;border:1.5px solid var(--gray-300);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:500;flex-shrink:0;background:transparent;color:var(--gray-500)}.app-step.active .app-step-num,.app-step.done .app-step-num{background:var(--black);border-color:var(--black);color:var(--white)}.app-step-num i{font-size:9px}.app-step-label{font-size:12px;font-weight:500;color:var(--black)}.app-back-row{display:flex;align-items:center;gap:10px;margin-bottom:16px}.app-back-btn{display:inline-flex;align-items:center;gap:4px;background:transparent;border:1px solid var(--border);color:var(--gray-700);padding:5px 10px;border-radius:16px;font-size:11px;font-family:inherit;cursor:pointer}.app-back-btn:hover{color:var(--black);border-color:var(--black)}.app-summary{font-size:13px;color:var(--gray-700);font-weight:500}.app-cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.app-cal-head strong{font-family:var(--serif);font-size:16px}.app-cal-head button{width:32px;height:32px;background:transparent;border:1px solid var(--border);color:var(--gray-700);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer}.app-cal-head button:hover{color:var(--black);border-color:var(--black)}.app-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:4px}.app-cal-dow{text-align:center;font-size:10px;color:var(--gray-700);padding:4px 0;text-transform:uppercase;letter-spacing:1px}.app-cal-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:14px;border-radius:50%;background:transparent;border:none;color:var(--black);font-family:inherit;cursor:pointer;transition:all .15s}.app-cal-cell:hover:not(:disabled){background:var(--gray-50)}.app-cal-cell.selected{background:var(--black);color:var(--white)}.app-cal-cell.past{color:var(--gray-300);cursor:not-allowed}.app-cal-cell.blocked{color:var(--gray-300);opacity:.5}.app-cal-cell.empty{cursor:default}.app-time-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.app-time{padding:10px 4px;border-radius:10px;border:1px solid var(--border);background:transparent;color:var(--black);font-size:12px;text-align:center;cursor:pointer;font-family:inherit;transition:all .15s}.app-time:hover:not(:disabled){border-color:var(--black);color:var(--black)}.app-time.selected{background:var(--black);color:var(--white);border-color:var(--black);font-weight:500}.app-time.taken{opacity:.25;cursor:not-allowed;text-decoration:line-through}.app-form{display:flex;flex-direction:column;gap:14px}.app-field{display:flex;flex-direction:column;gap:5px}.app-field label{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--gray-700);font-weight:500}.app-field-opt{text-transform:none;letter-spacing:0;color:var(--gray-500);font-weight:400}.app-field input,.app-field textarea,.app-field select{padding:13px 14px;border-radius:10px;border:1px solid var(--border);background:var(--white);color:var(--black);font-size:15px;font-family:inherit;outline:none;transition:all .2s;width:100%}.app-field input:focus,.app-field textarea:focus,.app-field select:focus{border-color:var(--black)}.app-field select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23000000' d='M6 8L0 0h12z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:10px;padding-right:36px;cursor:pointer}.app-field-error{font-size:12px;color:#e53e3e}.app-booking-view{padding-top:20px}.app-confirmed-icon{text-align:center;margin-bottom:12px}.app-confirmed-icon i{font-size:56px;color:#22c55e}.app-booking-view h2{text-align:center;font-family:var(--serif);font-size:26px;font-weight:600;margin-bottom:12px}.app-confirmed-date{text-align:center;margin-bottom:16px}.app-confirmed-date strong{display:block;font-size:22px;font-family:var(--serif);color:var(--black);margin-bottom:4px}.app-confirmed-date span{font-size:14px;color:var(--gray-700)}.app-confirmed-status{text-align:center;margin-bottom:20px}.app-confirmed-status span{display:inline-block;padding:4px 14px;border-radius:50px;font-size:12px;font-weight:500;text-transform:capitalize;background:var(--gray-50);color:var(--black)}.app-booking-meta{display:flex;flex-direction:column;gap:10px;padding:16px;background:var(--gray-50);border-radius:10px;border:1px solid var(--border)}.app-meta-row{display:flex;align-items:center;gap:12px}.app-meta-row>i{width:32px;height:32px;border-radius:50%;background:var(--gray-100);display:flex;align-items:center;justify-content:center;color:var(--black);font-size:12px;flex-shrink:0}.app-meta-row small{display:block;font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--gray-500)}.app-meta-row strong{display:block;font-size:14px;color:var(--black)}.app-confirmed-actions{display:flex;gap:8px;margin-top:16px}.app-btn-secondary{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px;background:transparent;border:1px solid var(--border);border-radius:10px;color:var(--gray-700);font-size:12px;text-decoration:none;transition:all .2s}.app-btn-secondary:hover{border-color:var(--black);color:var(--black)}.app-link-back{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;margin-top:14px;padding:10px;background:transparent;border:none;color:var(--gray-700);font-size:12px;text-decoration:none}.app-link-back:hover{color:var(--black)}.app-lookup{padding-top:8px}.app-lookup .app-form{margin-top:8px}.app-section-label{font-size:12px;text-transform:uppercase;letter-spacing:1.5px;color:var(--gray-700);font-weight:500;margin:18px 0 8px;padding-left:4px}.app-booking-row{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--white);border:1px solid var(--border);border-radius:12px;text-decoration:none;color:var(--black);margin-bottom:8px;transition:all .2s}.app-booking-row:hover{border-color:var(--black);box-shadow:0 4px 12px #0000000a}.app-booking-row-icon{width:40px;height:40px;border-radius:50%;background:var(--gray-50);display:flex;align-items:center;justify-content:center;flex-shrink:0}.app-booking-row-body{flex:1;min-width:0}.app-booking-row-body strong{display:block;font-size:14px}.app-booking-row-body span{display:block;font-size:12px;color:var(--gray-700);text-transform:capitalize}.app-booking-row-status{padding:3px 10px;border-radius:50px;font-size:11px;background:var(--black);color:var(--white);font-weight:500;text-transform:capitalize;flex-shrink:0}.app-about-card p{font-size:14px;line-height:1.7;color:var(--gray-700)}.app-link-action{color:var(--black);font-size:15px;text-decoration:none;font-weight:500;margin-top:4px;display:inline-block}.app-hours-list,.app-services-list{list-style:none;padding:0;margin:0}.app-hours-list li{display:flex;justify-content:space-between;padding:7px 0;font-size:13px;color:var(--gray-700)}.app-hours-list li span:last-child{color:var(--black);font-weight:500}.app-services-list li{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px solid var(--border);font-size:13px;color:var(--gray-700)}.app-services-list li:last-child{border-bottom:none}.app-services-list strong{font-weight:500;color:var(--black)}.app-services-list span{color:var(--gray-500);font-size:12px}@media (display-mode: standalone){.app-shell{box-shadow:none;max-width:100%}.app-tabbar{max-width:100%}}@media (max-width: 1024px){.services-grid,.testimonials-grid{grid-template-columns:repeat(2,1fr)}.gallery-grid{grid-template-columns:repeat(3,1fr)}.gallery-item:nth-child(1){grid-column:span 1;grid-row:span 1}.footer-grid,.contact-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 900px){.about-grid{grid-template-columns:1fr}.time-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width: 768px){.nav-menu{position:fixed;top:0;right:-100%;width:260px;height:100vh;background:var(--black);flex-direction:column;padding:100px 28px 28px;gap:28px;transition:right .4s var(--ease);box-shadow:-10px 0 40px #0000004d}.nav-menu.open{right:0}.nav-menu .nav-link{color:#ffffffb3}.nav-menu .nav-link:after{background:var(--white)}.nav-menu .nav-link:hover,.nav-menu .nav-link.active,.nav-menu .nav-link--phone{color:var(--white)}.nav-menu .nav-cta{background:var(--white);color:var(--black)}.nav-menu .nav-install-link{color:#ffffffb3;border-color:#fff3}.nav-menu .nav-install-link:hover{color:var(--white);border-color:var(--white)}.nav.scrolled .nav-menu .nav-link{color:#ffffffb3}.nav.scrolled .nav-menu .nav-link:after{background:var(--white)}.nav.scrolled .nav-menu .nav-link:hover,.nav.scrolled .nav-menu .nav-link.active{color:var(--white)}.nav-burger{display:flex}.container{padding:0 20px}.home-grid,.services-grid,.testimonials-grid{grid-template-columns:1fr}.gallery-grid{grid-template-columns:repeat(2,1fr)}.time-grid{grid-template-columns:repeat(3,1fr)}.contact-grid{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr;gap:32px}.about-visual img{height:300px}.book-card{padding:24px}}@media (max-width: 480px){.time-grid{grid-template-columns:repeat(2,1fr)}}
