:root{--bg:#080b09;--panel:#111612;--panel2:#171d18;--line:rgba(255,255,255,.12);--text:#f5f2e9;--muted:#98a098;--lime:#d8ff57;--danger:#ff715f;--shadow:0 24px 70px rgba(0,0,0,.34)}
*{box-sizing:border-box}html{color-scheme:dark}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 80% 4%,rgba(216,255,87,.09),transparent 22rem),linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px),var(--bg);background-size:auto,54px 54px,54px 54px,auto;color:var(--text);font-family:"DM Sans",sans-serif;-webkit-font-smoothing:antialiased}
button,input,textarea{font:inherit}button{color:inherit}a{color:inherit}
.booking-header{position:sticky;top:0;z-index:50;min-height:68px;padding:10px 14px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:rgba(8,11,9,.82);backdrop-filter:blur(18px)}
.booking-brand{display:flex;align-items:center;gap:10px;text-decoration:none}.booking-brand>span{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;color:var(--bg);background:var(--lime);font:800 .78rem/1 "Syne",sans-serif;transform:rotate(-5deg);box-shadow:inset -6px -7px 12px rgba(0,0,0,.14)}.booking-brand div{display:flex;flex-direction:column}.booking-brand strong{font:700 .8rem/1 "Syne",sans-serif;letter-spacing:.08em}.booking-brand small{margin-top:5px;color:var(--muted);font-size:.52rem;letter-spacing:.14em}.close-booking{width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--line);border-radius:12px;text-decoration:none;color:var(--muted);font-size:1.4rem}
.booking-header-actions{display:flex;align-items:center;gap:9px}
.booking-lang{position:relative}
.booking-lang summary{list-style:none;cursor:pointer;height:40px;min-width:44px;padding:0 10px;display:grid;place-items:center;border:1px solid var(--line);border-radius:12px;color:var(--muted);font-size:.72rem;font-weight:800;letter-spacing:.04em}
.booking-lang summary::-webkit-details-marker{display:none}
.booking-lang[open] summary{color:var(--lime);border-color:rgba(216,255,87,.4)}
.booking-lang-panel{position:absolute;top:48px;right:0;display:grid;gap:2px;padding:6px;border:1px solid var(--line);border-radius:13px;background:var(--panel);box-shadow:0 30px 80px rgba(0,0,0,.5);z-index:60}
.booking-lang-panel a{padding:9px 18px;border-radius:9px;text-decoration:none;color:var(--muted);font-size:.72rem;font-weight:700}
.booking-lang-panel a[aria-current="true"]{color:var(--lime);background:rgba(216,255,87,.08)}
.booking-shell{width:min(100% - 22px,980px);margin:auto;padding:40px 0 90px}.booking-intro{padding:8px 5px 34px}.booking-kicker{color:var(--lime);font-size:.61rem;font-weight:800;letter-spacing:.18em}.booking-intro h1{margin:14px 0 18px;font:700 clamp(3rem,14vw,5.8rem)/.86 "Syne",sans-serif;letter-spacing:-.065em}.booking-intro h1 em{color:var(--lime);font-style:normal}.booking-intro p{max-width:570px;margin:0;color:var(--muted);line-height:1.65;font-size:.92rem}
.booking-card{position:relative;overflow:hidden;scroll-margin-top:82px;border:1px solid var(--line);border-radius:24px;background:rgba(17,22,18,.94);box-shadow:var(--shadow),inset 0 1px rgba(255,255,255,.05)}
.step-progress{position:relative;padding:18px 12px;display:grid;grid-template-columns:repeat(5,1fr);border-bottom:1px solid var(--line)}.step-progress-line{position:absolute;left:10%;right:10%;top:35px;height:1px;background:var(--line)}.step-progress-line:after{content:"";display:block;width:var(--progress,0%);height:100%;background:var(--lime);box-shadow:0 0 10px rgba(216,255,87,.45);transition:width .45s ease}.step-progress button{position:relative;z-index:2;padding:0;border:0;background:transparent;display:grid;justify-items:center;gap:7px}.step-progress button span{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;color:var(--muted);background:var(--panel);font-size:.64rem;font-weight:800;transition:.3s ease}.step-progress button small{color:#697069;font-size:.51rem}.step-progress button.is-active span,.step-progress button.is-done span{border-color:var(--lime);color:var(--bg);background:var(--lime)}.step-progress button.is-active small{color:var(--text)}
#bookingForm{padding:28px 18px 18px}.form-step{display:none;animation:stepIn .42s cubic-bezier(.2,.8,.2,1)}.form-step.is-active{display:block}@keyframes stepIn{from{opacity:0;transform:translateX(22px);filter:blur(4px)}}.step-heading{margin-bottom:25px}.step-heading>span{color:var(--lime);font-size:.58rem;font-weight:800;letter-spacing:.14em}.step-heading h2{margin:8px 0 10px;font:650 2rem/1 "Syne",sans-serif;letter-spacing:-.04em}.step-heading p{margin:0;color:var(--muted);line-height:1.55;font-size:.84rem}
.field{display:block;margin-top:16px}.field>span{display:block;margin-bottom:8px;color:var(--muted);font-size:.72rem;font-weight:700}.field>span small{color:#626962;font-weight:500}.field input,.field textarea{width:100%;padding:16px;border:1px solid var(--line);border-radius:14px;outline:0;color:var(--text);background:rgba(255,255,255,.035);transition:border-color .2s,box-shadow .2s,background .2s}.field input:focus,.field textarea:focus{border-color:rgba(216,255,87,.6);background:rgba(216,255,87,.035);box-shadow:0 0 0 3px rgba(216,255,87,.08)}.honeypot{position:absolute!important;left:-9999px!important}
.choice-grid{display:grid;gap:10px}.choice-card{width:100%;min-height:82px;padding:12px;display:grid;grid-template-columns:52px 1fr 30px;align-items:center;gap:13px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.025);text-align:left}.choice-card>i{width:52px;height:52px;display:grid;place-items:center;border:1px solid var(--line);border-radius:15px;color:var(--lime);background:var(--panel2);font:700 1.2rem/1 "Syne",sans-serif;font-style:normal}.choice-card span{display:flex;flex-direction:column}.choice-card small{color:var(--muted);font-size:.52rem;letter-spacing:.12em}.choice-card strong{margin-top:5px;font:600 1rem/1 "Syne",sans-serif}.choice-card>b{width:26px;height:26px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;color:transparent}.choice-card.is-selected{border-color:var(--lime);background:rgba(216,255,87,.07)}.choice-card.is-selected>b{color:var(--bg);background:var(--lime);border-color:var(--lime)}
.select-field{display:block}.select-field>span{display:block;margin-bottom:8px;color:var(--muted);font-size:.72rem;font-weight:700}.select-field select{width:100%;min-height:56px;padding:0 44px 0 15px;border:1px solid var(--line);border-radius:14px;outline:0;color:var(--text);background-color:rgba(255,255,255,.035);background-image:linear-gradient(45deg,transparent 50%,var(--lime) 50%),linear-gradient(135deg,var(--lime) 50%,transparent 50%);background-position:calc(100% - 20px) 24px,calc(100% - 14px) 24px;background-size:6px 6px,6px 6px;background-repeat:no-repeat;appearance:none}.select-field select:focus{border-color:rgba(216,255,87,.6);box-shadow:0 0 0 3px rgba(216,255,87,.08)}.select-field select:disabled{opacity:.45}.select-field option{color:#111;background:#f5f2e9}.select-field option.is-open{color:#177a3c;font-weight:700}.select-field option.is-full{color:#c62828}.select-field>small{display:block;margin-top:8px;color:var(--muted);font-size:.61rem;line-height:1.4}
.service-list{display:grid;gap:9px}.service-choice{width:100%;min-height:76px;padding:15px;display:grid;grid-template-columns:1fr auto 26px;align-items:center;gap:12px;border:1px solid var(--line);border-radius:15px;background:rgba(255,255,255,.025);text-align:left}.service-choice>span{display:flex;flex-direction:column;gap:6px}.service-choice strong{font:600 .9rem/1.2 "Syne",sans-serif}.service-choice small{color:var(--muted);font-size:.65rem}.service-choice>b{color:var(--lime);font-size:.82rem;white-space:nowrap}.service-choice>i{width:25px;height:25px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;color:transparent;font-style:normal}.service-choice.is-selected{border-color:var(--lime);background:rgba(216,255,87,.07)}.service-choice.is-selected>i{color:var(--bg);background:var(--lime);border-color:var(--lime)}
.loading-slots{min-height:130px;display:grid;place-content:center;justify-items:center;gap:12px;color:var(--muted);font-size:.74rem}.loading-slots i{width:34px;height:34px;border:2px solid var(--line);border-top-color:var(--lime);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-slots.is-hidden{display:none}.slot-grid{display:block}.time-select-grid{display:grid;gap:14px}.time-select-single{grid-template-columns:1fr!important}.time-select-field{padding:14px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.022)}.time-select-field>span{color:var(--lime);font:700 .7rem/1 "Syne",sans-serif}
.availability-help{margin-top:14px;display:grid;gap:10px}.empty-card,.suggestion-card{padding:15px;border:1px solid var(--line);border-radius:15px;background:rgba(255,255,255,.025)}.empty-card strong,.suggestion-card strong{display:block;font:600 .9rem/1.25 "Syne",sans-serif}.empty-card p,.suggestion-card p{margin:7px 0 0;color:var(--muted);font-size:.72rem;line-height:1.45}.suggestion-card button,.waitlist-button{width:100%;margin-top:12px;padding:12px;border:1px solid rgba(216,255,87,.35);border-radius:11px;color:var(--lime);background:rgba(216,255,87,.06);font-weight:700;font-size:.72rem}.note-field{margin-top:24px}
.booking-summary{margin-top:18px;padding:15px;display:none;border:1px solid rgba(216,255,87,.28);border-radius:15px;background:rgba(216,255,87,.045)}.booking-summary.is-visible{display:grid;gap:8px}.booking-summary div{display:flex;justify-content:space-between;gap:15px;font-size:.72rem}.booking-summary span{color:var(--muted)}
.consent-card{margin-top:18px;padding:15px;display:grid;gap:11px;border:1px solid var(--line);border-radius:17px;background:rgba(255,255,255,.022)}.consent-heading{padding:2px 2px 5px}.consent-heading>span{color:var(--lime);font-size:.55rem;font-weight:800;letter-spacing:.14em}.consent-heading h3{margin:6px 0 0;font:650 1.1rem/1.1 "Syne",sans-serif}.consent-notice{padding:14px;display:grid;grid-template-columns:31px 1fr;align-items:start;gap:11px;border:1px solid rgba(216,255,87,.22);border-radius:14px;background:rgba(216,255,87,.045)}.consent-notice-icon{width:31px;height:31px;display:grid;place-items:center;border-radius:9px;color:var(--bg);background:var(--lime);font-size:.88rem;font-weight:900}.consent-notice p,.consent-service-note{margin:0;color:var(--muted);font-size:.67rem;line-height:1.62}.consent-notice strong{color:var(--text)}.consent-notice a{color:var(--text);text-decoration-color:rgba(216,255,87,.5);text-underline-offset:2px}.consent-service-note{padding:0 2px;color:#7f877f;font-size:.62rem}
.form-message{display:none;margin-top:15px;padding:12px;border-radius:12px;font-size:.76rem}.form-message.is-error{display:block;color:#ffb4aa;border:1px solid rgba(255,113,95,.3);background:rgba(255,113,95,.08)}.form-message.is-success{display:block;color:var(--lime);border:1px solid rgba(216,255,87,.3);background:rgba(216,255,87,.06)}
.step-actions{position:sticky;bottom:0;z-index:5;margin:26px -18px -18px;padding:13px 18px calc(13px + env(safe-area-inset-bottom));display:grid;grid-template-columns:.72fr 1.28fr;gap:9px;border-top:1px solid var(--line);background:rgba(17,22,18,.92);backdrop-filter:blur(18px)}.primary-action,.secondary-action{min-height:52px;padding:10px 15px;display:flex;align-items:center;justify-content:center;gap:14px;border-radius:13px;text-decoration:none;font-weight:800;font-size:.78rem}.primary-action{border:0;color:var(--bg);background:var(--lime)}.primary-action span{font-size:1rem}.secondary-action{border:1px solid var(--line);color:var(--muted);background:transparent}.secondary-action:disabled{opacity:.35}.confirm-action{display:none}
.success-panel{display:none;min-height:590px;padding:42px 20px;text-align:center;place-content:center;justify-items:center}.success-panel.is-visible{display:grid;animation:stepIn .5s ease}.success-icon{width:74px;height:74px;display:grid;place-items:center;border-radius:50%;color:var(--bg);background:var(--lime);font:800 1.8rem/1 "Syne",sans-serif;box-shadow:0 0 0 16px rgba(216,255,87,.06)}.success-panel>span{margin-top:28px;color:var(--lime);font-size:.58rem;font-weight:800;letter-spacing:.16em}.success-panel h2{margin:10px 0;font:700 2.5rem/1 "Syne",sans-serif;letter-spacing:-.05em}.success-panel p{max-width:480px;margin:0 0 24px;color:var(--muted);line-height:1.6;font-size:.84rem}.success-panel .primary-action{width:100%;max-width:360px}.success-home{margin-top:16px;color:var(--muted);font-size:.72rem}.booking-footer{padding:28px 5px 0;display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:.61rem}.booking-footer strong{color:var(--lime)}
.legal-close{font-size:1.05rem}.legal-shell{width:min(100% - 22px,820px);margin:auto;padding:26px 0 80px}.legal-card{overflow:hidden;border:1px solid var(--line);border-radius:24px;background:rgba(17,22,18,.94);box-shadow:var(--shadow)}.legal-hero{padding:26px 18px;border-bottom:1px solid var(--line);background:radial-gradient(circle at 90% 0,rgba(216,255,87,.12),transparent 18rem)}.legal-hero>span{color:var(--lime);font-size:.57rem;font-weight:800;letter-spacing:.15em}.legal-hero h1{margin:10px 0 13px;font:700 clamp(2rem,9vw,3.6rem)/.98 "Syne",sans-serif;letter-spacing:-.05em}.legal-hero p{margin:0;color:var(--muted);font-size:.8rem;line-height:1.6}.legal-hero small{display:block;margin-top:15px;color:#6f776f;font-size:.59rem}.legal-content{padding:8px 18px}.legal-content section{padding:20px 0;border-bottom:1px solid var(--line)}.legal-content section:last-child{border-bottom:0}.legal-content h2{margin:0 0 10px;font:650 1rem/1.25 "Syne",sans-serif}.legal-content p{margin:8px 0;color:var(--muted);font-size:.76rem;line-height:1.72}.legal-content strong{color:var(--text)}.legal-contact{padding-bottom:8px!important}.legal-back{margin:8px 18px 24px}
@media(min-width:700px){.booking-header{padding-inline:28px}.booking-shell{padding-top:70px}.booking-intro{text-align:center}.booking-intro p{margin-inline:auto}.booking-card{border-radius:30px}#bookingForm{padding:48px}.step-progress{padding:24px 40px}.step-progress-line{left:14%;right:14%;top:41px}.choice-grid{grid-template-columns:repeat(2,1fr)}.service-list{grid-template-columns:repeat(2,1fr)}.time-select-grid{grid-template-columns:repeat(2,1fr)}.consent-card{padding:20px}.step-actions{margin:34px -48px -48px;padding:16px 48px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
