@import url("https://fonts.googleapis.com/css2?family=Fraunces:wght@600;700&family=Manrope:wght@400;500;600;700&display=swap");.booking-page{--ink:#1a2634;--muted:#5f6f7f;--brand:#7fc27e;--brand-dark:#2d6f43;--surface:#f4f7f1;--panel:#ffffff;--border:rgba(26,38,52,0.08);--shadow:0 24px 50px rgba(18,32,43,0.12);--accent-soft:rgba(127,194,126,0.18);--accent-strong:rgba(127,194,126,0.28);min-height:100vh;font-family:Manrope,Segoe UI,sans-serif;color:var(--ink);background:radial-gradient(circle at top left,#eef6e4 0,#f7f9fb 42%,#f3f6ee 100%)}.booking-page *{box-sizing:border-box}.booking-page .page{position:relative;min-height:100vh;display:block}.booking-page .page:after,.booking-page .page:before{content:"";position:absolute;border-radius:50%;opacity:.35;pointer-events:none}.booking-page .page:before{width:480px;height:480px;left:-120px;top:-140px;background:radial-gradient(circle,rgba(127,194,126,.35),transparent 70%)}.booking-page .page:after{width:380px;height:380px;right:-140px;bottom:80px;background:radial-gradient(circle,rgba(45,111,67,.22),transparent 70%)}.booking-page header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem 4vw 1rem;gap:1.5rem;position:relative;top:auto;background:#ffffff;border-bottom:1px solid rgba(26,38,52,.08);box-shadow:0 8px 24px rgba(18,32,43,.06);backdrop-filter:none;z-index:2}.booking-page .nav-toggle{display:none}.booking-page .nav-toggle-button{display:none;flex-direction:column;justify-content:center;gap:.35rem;width:42px;height:42px;border-radius:12px;border:1px solid var(--border);background:#ffffff;cursor:pointer}.booking-page .nav-toggle-button span{display:block;width:18px;height:2px;border-radius:999px;background:var(--ink)}.booking-page .brand{display:flex;align-items:center;gap:.85rem}.booking-page .brand img{width:170px;height:auto}.booking-page .brand span{font-size:.75rem;letter-spacing:.24em;text-transform:uppercase;color:rgba(26,38,52,.45)}.booking-page .nav{display:flex;gap:1rem;list-style:none;margin:0;padding:0;flex-wrap:wrap}.booking-page .nav a{text-decoration:none;color:var(--ink);font-weight:600;font-size:.95rem}.booking-page .nav a.active,.booking-page .nav a[aria-current=page]{color:var(--brand-dark)}.booking-page .header-actions{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}.booking-page .mobile-nav,.booking-page .mobile-nav-backdrop{display:none}.booking-page .booking-profile-menu{position:relative}.booking-page .booking-profile-menu .profile-trigger{display:inline-flex;align-items:center;gap:.6rem;padding:.4rem .8rem;border-radius:999px;border:1px solid var(--border);background:#ffffff;font-weight:600;color:var(--ink);cursor:pointer}.booking-page .booking-profile-menu .profile-avatar{width:34px;height:34px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:rgba(127,194,126,.2);color:var(--brand-dark)}.booking-page .booking-profile-menu .profile-avatar svg{width:18px;height:18px}.booking-page .booking-profile-menu .profile-name{font-size:.95rem;white-space:nowrap}.booking-page .booking-profile-menu .profile-caret{font-size:.8rem;opacity:.6}.booking-page .booking-profile-menu .profile-dropdown{position:absolute;right:0;top:calc(100% + .6rem);min-width:180px;background:#ffffff;border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);padding:.35rem;display:grid;gap:.15rem;z-index:10}.booking-page .booking-profile-menu .profile-item{display:inline-flex;align-items:center;gap:.5rem;width:100%;padding:.5rem .75rem;border-radius:10px;background:transparent;border:none;color:var(--ink);font-weight:600;text-decoration:none;cursor:pointer}.booking-page .booking-profile-menu .profile-item:hover{background:rgba(127,194,126,.14)}.booking-page .booking-profile-menu .signout.profile-item{margin:0;background:transparent}.booking-page .header-auth{display:flex;gap:.6rem;flex-wrap:wrap}.booking-page .shell{width:min(1140px,92vw);margin:0 auto;padding:1rem 0 4rem;position:relative;z-index:1;display:flex;flex-direction:column;gap:2.5rem}.booking-page .hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:2rem;align-items:stretch;padding:0;margin:0;background:none;border-radius:0;box-shadow:none;overflow:visible}.booking-page .card{background:var(--panel);border-radius:26px;border:1px solid var(--border);box-shadow:var(--shadow);padding:2rem}.booking-page .hero-card{display:flex;flex-direction:column;gap:1.5rem;animation:fadeUp .7s ease both}.booking-page .eyebrow{margin:0;font-size:.75rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(26,38,52,.5)}.booking-page h1{margin:0;font-family:Fraunces,serif;font-size:clamp(2.2rem,3.4vw,3rem);color:var(--ink)}.booking-page .hero-card p{margin:0;color:var(--muted);line-height:1.6}.booking-page .hero-actions{display:flex;flex-wrap:wrap;gap:.75rem}.booking-page .btn{border-radius:999px;padding:.75rem 1.5rem;border:1px solid transparent;font-weight:600;cursor:pointer;font-size:.95rem;text-decoration:none;display:inline-flex;align-items:center;gap:.35rem}.booking-page .btn.primary{background:var(--brand);color:#ffffff;box-shadow:0 16px 30px rgba(127,194,126,.35)}.booking-page .btn.ghost{background:transparent;color:var(--brand-dark);border-color:rgba(45,111,67,.2)}.booking-page .mini-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem}.booking-page .mini-card{background:var(--surface);border-radius:18px;padding:1rem 1.1rem;border:1px solid rgba(26,38,52,.05)}.booking-page .mini-card h3{margin:0 0 .35rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.14em;color:rgba(26,38,52,.45)}.booking-page .chip-group{display:flex;flex-wrap:wrap;gap:.45rem}.booking-page .chip-group input{position:absolute;opacity:0;pointer-events:none}.booking-page .chip-group label{padding:.45rem .9rem;border-radius:999px;background:#ffffff;border:1px solid rgba(26,38,52,.1);font-size:.85rem;font-weight:600;color:var(--muted);cursor:pointer;transition:all .2s ease}.booking-page .chip-group input:checked+label{background:var(--accent-soft);color:var(--brand-dark);border-color:rgba(45,111,67,.2)}.booking-page .steps-card{display:flex;flex-direction:column;gap:1.25rem;animation:fadeUp .7s ease .1s both}.booking-page .steps-card h2{margin:0;font-size:1.4rem;font-family:Fraunces,serif}.booking-page .step{display:grid;grid-template-columns:auto 1fr;gap:.8rem;align-items:start;padding:.85rem 1rem;border-radius:16px;background:var(--surface)}.booking-page .step span{width:36px;height:36px;border-radius:50%;background:var(--accent-strong);display:grid;place-items:center;font-weight:700;color:var(--brand-dark)}.booking-page .step h3{margin:0 0 .2rem;font-size:1rem}.booking-page .step p{margin:0;color:var(--muted);font-size:.9rem}.booking-page .filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.5rem}.booking-page .filters .card{animation:fadeUp .7s ease .2s both}.booking-page .filters h2{margin:0 0 1rem;font-family:Fraunces,serif;font-size:1.5rem}.booking-page .filter-group{display:grid;gap:.6rem;margin-bottom:1.2rem}.booking-page .filter-group h3{margin:0;font-size:.9rem;text-transform:uppercase;letter-spacing:.15em;color:rgba(26,38,52,.5)}.booking-page .filters .btn{width:100%;justify-content:center}.booking-page .slots-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.2rem}.booking-page .slots-header h2{margin:0;font-family:Fraunces,serif}.booking-page .badge{padding:.35rem .8rem;border-radius:999px;font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;background:var(--surface);color:rgba(26,38,52,.5);border:1px solid rgba(26,38,52,.08)}.booking-page .slots-empty{background:var(--surface);border-radius:18px;padding:1.5rem;border:1px dashed rgba(26,38,52,.2);text-align:center;display:grid;gap:1rem}.booking-page .slots-empty p{margin:0;color:var(--muted)}.booking-page .planner{display:grid;gap:1.5rem;animation:fadeUp .7s ease .15s both}.booking-page .planner-header{display:flex;justify-content:space-between;gap:1rem;align-items:center;flex-wrap:wrap}.booking-page .planner-header h2{margin:0;font-family:Fraunces,serif;font-size:1.6rem}.booking-page .planner-header p{margin:0;color:var(--muted);max-width:420px}.booking-page .planner-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem}.booking-page .planner-pane h3{margin:0 0 .8rem;font-size:1rem}.booking-page .worker-grid{display:grid;gap:.8rem}.booking-page .worker-option{text-align:left;border-radius:18px;border:1px solid rgba(26,38,52,.12);background:#ffffff;padding:.9rem 1rem;display:grid;gap:.35rem;cursor:pointer;transition:all .2s ease;font-family:inherit}.booking-page .worker-option strong{font-size:.95rem}.booking-page .worker-option span{color:var(--muted);font-size:.85rem}.booking-page .worker-option small{color:var(--muted);font-size:.8rem}.booking-page .worker-option.active{border-color:rgba(45,111,67,.35);background:var(--accent-soft);color:var(--brand-dark)}.booking-page .service-grid{display:grid;gap:.8rem}.booking-page .service-option{text-align:left;border-radius:18px;border:1px solid rgba(26,38,52,.12);background:#ffffff;padding:.9rem 1rem;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.75rem;cursor:pointer;transition:all .2s ease;font-family:inherit}.booking-page .service-icon{width:44px;height:44px;border-radius:12px;background:#f6f8f4;border:1px solid rgba(26,38,52,.12);padding:.35rem;-o-object-fit:contain;object-fit:contain}.booking-page .service-icon.placeholder{display:inline-flex;align-items:center;justify-content:center;font-weight:700;color:var(--brand-dark)}.booking-page .service-text{display:grid;gap:.2rem}.booking-page .service-option strong{font-size:.95rem}.booking-page .service-text span{color:var(--muted);font-size:.85rem}.booking-page .service-option.active{border-color:rgba(45,111,67,.35);background:var(--accent-soft);color:var(--brand-dark)}.booking-page .team-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.75rem}.booking-page .team-option{border-radius:16px;border:1px solid rgba(26,38,52,.12);background:#ffffff;padding:.75rem .9rem;cursor:pointer;font-weight:600;font-size:.9rem;color:var(--ink);transition:all .2s ease;font-family:inherit}.booking-page .team-option.active{border-color:rgba(45,111,67,.35);background:var(--accent-soft);color:var(--brand-dark)}.booking-page .planner-note{margin:.6rem 0 0;color:var(--muted);font-size:.85rem}.booking-page .calendar{display:grid;gap:.75rem}.booking-page .calendar-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.booking-page .calendar-header strong{font-size:.95rem}.booking-page .calendar-nav{border:1px solid rgba(26,38,52,.12);background:#ffffff;color:var(--brand-dark);border-radius:999px;width:32px;height:32px;display:grid;place-items:center;cursor:pointer;font-weight:700}.booking-page .calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.4rem}.booking-page .calendar-weekday{font-size:.7rem;text-transform:uppercase;letter-spacing:.15em;color:rgba(26,38,52,.45);text-align:center}.booking-page .calendar-cell{border-radius:12px;border:1px solid transparent;background:#ffffff;min-height:38px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;font-size:.85rem;line-height:1.1;cursor:pointer;transition:all .2s ease}.booking-page .calendar-cell.empty{background:transparent;border:none;cursor:default}.booking-page .calendar-cell.available{border-color:rgba(26,38,52,.12)}.booking-page .calendar-cell.selected{background:var(--accent-soft);border-color:rgba(45,111,67,.35);color:var(--brand-dark);font-weight:700}.booking-page .calendar-cell.closed{border-color:rgba(179,74,74,.2);background:rgba(179,74,74,.08);color:rgba(106,33,33,.95)}.booking-page .calendar-cell small{font-size:.55rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.booking-page .calendar-cell:disabled{opacity:.45;cursor:not-allowed}.booking-page .planner-availability{display:grid;gap:1rem}.booking-page .planner-hours{font-size:.85rem;color:var(--muted)}.booking-page .slot-time-grid{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-top:.6rem}.booking-page .multi-day-grid{display:grid;gap:.75rem}.booking-page .multi-day-row{background:#ffffff;border:1px solid rgba(26,38,52,.1);border-radius:16px;padding:.8rem .9rem}.booking-page .multi-day-meta{display:flex;justify-content:space-between;gap:.75rem;align-items:center;flex-wrap:wrap}.booking-page .multi-day-meta strong{font-size:.9rem}.booking-page .multi-day-meta span{color:var(--muted);font-size:.8rem}.booking-page .planner-availability-header{display:flex;justify-content:space-between;align-items:center;gap:1rem}.booking-page .planner-availability-header h3{margin:0;font-size:1rem}.booking-page .planner-availability-header span{color:var(--muted);font-size:.9rem}.booking-page .slots-list{display:grid;gap:1.25rem}.booking-page .slot-card{background:var(--surface);border-radius:18px;padding:1.4rem;border:1px solid rgba(26,38,52,.08);display:grid;gap:.75rem}.booking-page .slot-meta{display:flex;flex-wrap:wrap;gap:.6rem 1rem;align-items:center;justify-content:space-between}.booking-page .slot-time{margin:0;font-weight:600;font-size:1rem}.booking-page .slot-pill{padding:.25rem .7rem;border-radius:999px;background:#ffffff;border:1px solid rgba(26,38,52,.12);font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:rgba(26,38,52,.5)}.booking-page .slot-details{display:grid;gap:.35rem;color:var(--muted);font-size:.9rem}.booking-page .slot-details p{margin:0}.booking-page .slot-service{color:var(--muted)}.booking-page .slot-form{display:grid;gap:.75rem;margin-top:.4rem}.booking-page .slot-booking-list{display:grid;gap:.2rem}.booking-page .booking-auth-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin-bottom:1rem}.booking-page .booking-auth-tab{border:1px solid rgba(26,38,52,.12);background:#ffffff;color:var(--ink);border-radius:999px;padding:.55rem .75rem;font-size:.85rem;font-weight:700;cursor:pointer}.booking-page .booking-auth-tab.active{border-color:rgba(45,111,67,.25);background:var(--accent-soft);color:var(--brand-dark)}.booking-page .slot-service{margin:0;font-size:.85rem;font-weight:600;color:var(--brand-dark)}.booking-page .slot-field{width:100%;border-radius:14px;border:1px solid rgba(26,38,52,.15);background:#ffffff;padding:.7rem .9rem;font-size:.9rem;color:var(--ink)}.booking-page .slot-field:focus{outline:none;border-color:rgba(45,111,67,.35);box-shadow:0 0 0 3px rgba(127,194,126,.2)}.booking-page .slot-field::-moz-placeholder{color:rgba(26,38,52,.4)}.booking-page .slot-field::placeholder{color:rgba(26,38,52,.4)}.booking-page .slot-textarea{min-height:90px;resize:vertical}.booking-page .slot-options,.booking-page .slot-options-grid{display:grid;gap:.6rem}.booking-page .slot-option-input{position:absolute;opacity:0;pointer-events:none}.booking-page .slot-option-card{border-radius:16px;border:1px solid rgba(26,38,52,.12);background:#ffffff;padding:.75rem .9rem;display:grid;gap:.25rem;cursor:pointer;transition:all .2s ease}.booking-page .slot-option-input:checked+.slot-option-card{background:var(--accent-soft);border-color:rgba(45,111,67,.25);color:var(--brand-dark)}.booking-page .slot-option-top{display:flex;justify-content:space-between;gap:.5rem;font-size:.9rem;font-weight:600}.booking-page .slot-option-note{margin:0;font-size:.75rem;color:var(--muted)}.booking-page .slot-submit{width:100%;justify-content:center}.booking-page .slot-status{margin:0;font-size:.85rem;color:var(--brand-dark)}.booking-page .levels{display:grid;gap:1.5rem}.booking-page .levels-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.booking-page .levels-header h2{margin:0;font-family:Fraunces,serif;font-size:1.8rem}.booking-page .levels-header p{margin:0;color:var(--muted)}.booking-page .level-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.25rem}.booking-page .level-card{background:var(--panel);border-radius:22px;padding:1.6rem;border:1px solid var(--border);box-shadow:var(--shadow);display:grid;gap:.6rem;animation:fadeUp .7s ease .3s both}.booking-page .level-card h3{margin:0;font-family:Fraunces,serif;font-size:1.3rem}.booking-page .level-card .price{font-size:1.4rem;font-weight:700;color:var(--brand-dark)}.booking-page .level-card p{margin:0;color:var(--muted)}.booking-page .levels-empty{background:var(--surface);border-radius:18px;padding:1.2rem;border:1px dashed rgba(26,38,52,.2);color:var(--muted);text-align:center;grid-column:1/-1}.booking-page footer{text-align:center;padding:2rem 0 3rem;color:rgba(26,38,52,.45)}@media (max-width:900px){.booking-page .filters,.booking-page .hero{grid-template-columns:1fr}.booking-page header{padding:1.2rem 5vw}.booking-page .brand img{width:140px}.booking-page .header-actions{display:none}.booking-page .nav-toggle-button{display:inline-flex}.booking-page .mobile-nav,.booking-page .mobile-nav-backdrop{display:block}.booking-page .mobile-nav{position:fixed;top:0;right:0;width:min(320px,85vw);height:100%;background:#ffffff;border-left:1px solid var(--border);box-shadow:var(--shadow);padding:1.5rem;display:grid;gap:1.5rem;transform:translateX(100%);transition:transform .25s ease;z-index:30}.booking-page .mobile-nav .nav{flex-direction:column}.booking-page .mobile-auth{display:grid;gap:.75rem}.booking-page .nav-toggle:checked~.mobile-nav{transform:translateX(0)}.booking-page .mobile-nav-backdrop{position:fixed;inset:0;background:rgba(26,38,52,.35);z-index:20;opacity:0;pointer-events:none;transition:opacity .2s ease}.booking-page .nav-toggle:checked~.mobile-nav-backdrop{opacity:1;pointer-events:auto}}@media (max-width:640px){.booking-page .filters .card,.booking-page .hero-card,.booking-page .level-card,.booking-page .slot-card,.booking-page .steps-card{padding:1.5rem}.booking-page .levels-header,.booking-page .planner-header{flex-direction:column;align-items:flex-start}}@media (min-width:720px){.booking-page .slot-options-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.booking-page *{animation:none!important;transition:none!important}}