button,input,textarea,select{font:inherit}
button{cursor:pointer}button:disabled{cursor:not-allowed}
button:focus-visible,a:focus-visible{outline:3px solid #8FD3AE;outline-offset:4px}
.ng-label{display:block;font-size:16px;font-weight:600;color:#3E544D;margin:16px 0 8px}
.ng-step-content>.ng-label:first-child{margin-top:0}
#booking-form{min-height:520px;display:flex;flex-direction:column}
#booking-form input:not([type=checkbox]),#booking-form textarea{width:100%;font-size:19px;padding:16px 18px;border:2px solid #D3DDD6;border-radius:14px;background:#FAFCFA;color:#16302A;min-width:0}
#booking-form textarea{resize:vertical;line-height:1.4;min-height:120px}
.ng-progress{display:flex;justify-content:space-between;gap:12px;font-size:16px;font-weight:600;color:#5A6F68}
.ng-bars{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:10px}
.ng-bars span{height:6px;border-radius:3px;background:#E3E9E4}.ng-bars .active{background:#1E7A52}
#step-title{font-size:30px;font-weight:700;letter-spacing:-.02em;margin:22px 0 18px;line-height:1.15;outline:none}
.ng-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.ng-option{border:2px solid #D3DDD6;border-radius:14px;background:#fff;color:#16302A;padding:16px 18px;text-align:left;font-size:19px;font-weight:600}
.ng-option small{display:block;font-size:14px;font-weight:400;margin-top:4px;line-height:1.4}
.ng-option.selected{border-color:#1E7A52;background:#E2F2E8}
.ng-conditions{margin-top:0}.ng-fieldset{border:0;padding:0;margin:0;min-width:0}
.ng-required{font-size:12px;font-weight:500;background:#EEF3EF;padding:4px 7px;border-radius:5px;margin-left:4px;white-space:nowrap}
.ng-upload{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:2px dashed #8FA89A;border-radius:16px;background:#F5F9F6;padding:22px 14px;text-align:center;cursor:pointer}
.ng-upload:hover,.ng-upload.dragover{border-color:#1E7A52;background:#E2F2E8}
.ng-upload-icon{font-size:28px;line-height:1;color:#1E7A52}
.ng-upload strong{font-size:18px}.ng-upload small{font-size:14px;color:#5A6F68}.ng-filehint{font-size:12px;color:#5A6F68}
#booking-form .ng-upload input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.ng-upload:focus-within{outline:3px solid #8FD3AE;outline-offset:3px}
.ng-previews{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}
.ng-preview{position:relative;width:calc((100% - 20px)/3);aspect-ratio:1;border-radius:12px;overflow:hidden;background:#EEF3EF;border:1px solid #D3DDD6}
.ng-preview img{width:100%;height:100%;object-fit:cover}.ng-preview button{position:absolute;right:5px;top:5px;border:0;border-radius:50%;background:#fff;color:#16302A;font-size:24px;width:32px;height:32px;display:grid;place-items:center;box-shadow:0 1px 8px #0002}
.ng-help{font-size:14px;color:#5A6F68;line-height:1.55;margin:12px 0 0}
.ng-address-grid{display:grid;grid-template-columns:130px minmax(0,1fr);gap:10px}
.ng-map-placeholder{margin-top:18px;background:#EEF3EF;border:2px solid #D3DDD6;border-radius:16px;padding:22px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px}
.ng-map-copy{display:flex;flex-direction:column;gap:6px}.ng-map-copy span{font-size:30px;color:#1E7A52}.ng-map-copy small,.ng-map-placeholder>small{font-size:13px;color:#5A6F68;line-height:1.4}
.ng-map-button{background:#fff;border:1px solid #D3DDD6;border-radius:10px;padding:10px 16px;color:#16302A;font-size:14px}
.ng-days{display:flex;overflow-x:auto;gap:8px;padding:2px 2px 8px;scrollbar-width:thin}
.ng-day{flex:none;width:70px;border:2px solid #D3DDD6;border-radius:14px;background:#fff;color:#16302A;padding:10px 0}
.ng-day small{display:block;font-size:13px}.ng-day strong{display:block;font-size:24px;line-height:1.2}
.ng-day.selected{background:#16302A;border-color:#16302A;color:#fff}.ng-day:disabled{background:#F1F3F1;color:#A3B0AA}
.ng-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.ng-slot{border:2px solid #D3DDD6;border-radius:12px;background:#fff;color:#16302A;padding:12px 6px;font-size:19px}
.ng-slot small{display:block;font-size:13px;margin-top:3px}
.ng-slot.selected{background:#1E7A52;border-color:#1E7A52;color:#fff}.ng-slot:disabled{background:#E6EAE7;border-color:#E6EAE7;color:#738078}.ng-slot:disabled strong{text-decoration:line-through}
.ng-contact-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;background:#EEF3EF;padding:6px;border-radius:14px}
.ng-contact-tabs button{padding:14px;border:0;border-radius:10px;background:transparent;color:#5A6F68;font-size:18px;font-weight:600}
.ng-contact-tabs .selected{background:#fff;color:#16302A;box-shadow:0 1px 4px #16302A26}
.ng-summary{margin-top:18px;background:#F2F6F3;border-radius:14px;padding:16px 18px;font-size:16px;line-height:1.7;color:#3E544D}
.ng-summary strong{color:#16302A}
.ng-privacy{display:flex;gap:10px;align-items:flex-start;margin-top:18px;font-size:14px;color:#3E544D;line-height:1.55}
.ng-privacy input{flex:none;width:20px;height:20px;margin:2px 0 0;accent-color:#1E7A52}
.ng-error{font-size:16px;line-height:1.5;color:#B23A2A;font-weight:500;margin:14px 0 0;overflow-wrap:anywhere}.ng-error:empty{display:none}
.ng-actions{display:flex;gap:10px;margin-top:auto;padding-top:22px}
.ng-primary{flex:1;background:#1E7A52;color:#fff;border:0;border-radius:16px;padding:20px;font-size:21px;font-weight:700}.ng-primary:hover{background:#16302A}.ng-primary:disabled{opacity:.65}
.ng-secondary{background:#fff;color:#16302A;border:2px solid #D3DDD6;border-radius:14px;padding:14px 18px;font-size:18px;font-weight:600}
.ng-success{min-height:520px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.ng-success p{font-size:18px;line-height:1.6;color:#3E544D}.ng-success .ng-help{font-size:14px}
.ng-success-icon{width:88px;height:88px;border-radius:50%;background:#1E7A52;color:#fff;display:grid;place-items:center;font-size:45px}.ng-success .ng-secondary{margin-top:20px}
.ng-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.ng-marquee{display:flex;width:max-content;gap:40px;animation:ngMarquee 40s linear infinite}.ng-marquee span{font-size:28px;font-weight:700;white-space:nowrap}
.ng-marquee span:after{content:' •';padding-left:40px}
.ng-legal{max-width:850px;margin:0 auto;padding:48px 24px 80px;font-size:17px;line-height:1.8}.ng-legal h1{font-size:42px;letter-spacing:-.03em;line-height:1.2}.ng-legal h2{font-size:25px;margin-top:32px}.ng-legal address{font-style:normal}
@media(max-width:600px){.ng-address-grid{grid-template-columns:105px minmax(0,1fr)}#booking-form input:not([type=checkbox]){padding:14px 12px}.ng-option{padding:14px 12px;font-size:17px}.ng-required{font-size:10px}.ng-actions{flex-wrap:wrap}.ng-primary{font-size:19px}header img{max-width:190px;height:auto!important}header>div{padding:12px 18px!important}header a[href="#formular"]{font-size:15px!important;padding:12px 16px!important}header a[href^="tel:"] span:last-child{font-size:17px!important}#hero-word{font-size:clamp(40px,12vw,70px)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

/* Every booking step occupies the same card; only its contents transition. */
#formular{height:580px;padding:28px!important;overflow:hidden}
#booking-root{height:100%}
#booking-form{height:100%;min-height:0}
.ng-step-content{min-height:0}
#booking-form input:not([type=checkbox]),#booking-form textarea{font-size:18px;padding:13px 16px}
#booking-form textarea{resize:none;height:120px}
#step-title{font-size:28px;margin:20px 0 18px}
.ng-option,.ng-slot,.ng-day,.ng-contact-tabs button,.ng-primary,.ng-secondary{transition:background .18s,border-color .18s,color .18s,box-shadow .18s}
.ng-intro{font-size:17px;color:#3E544D;line-height:1.5;margin:0 0 18px}
.ng-preview{height:80px;aspect-ratio:auto;animation:ngStepIn .25s ease-out}
.ng-upload{padding:12px 14px;gap:4px}
.ng-options{grid-template-columns:repeat(2,minmax(0,1fr))}
.ng-option{min-width:0}.ng-option small{overflow-wrap:anywhere}
#booking-form[data-step="contact"] .ng-label{margin-top:12px}
#booking-form[data-step="contact"] .ng-help{margin-top:8px}
#booking-form[data-step="contact"] .ng-contact-tabs button{padding:8px}
#booking-form[data-step="contact"] .ng-summary{padding-top:10px;padding-bottom:10px}
.ng-map-placeholder{padding:14px;gap:8px}
.ng-map-copy span{display:none}
.ng-contact-tabs button{padding:10px}
.ng-summary{margin-top:14px;padding:12px 16px;font-size:14px;line-height:1.6;overflow-wrap:anywhere}
.ng-privacy{margin-top:14px;font-size:13px;line-height:1.5}
.ng-error{font-size:14px;line-height:1.4;margin-top:10px}
.ng-actions{padding-top:16px;flex:none}
.ng-primary{padding:16px;font-size:20px}
.ng-secondary{padding:12px 16px;font-size:17px}
.ng-success{height:100%;min-height:0}
.ng-success-mark{position:relative;width:84px;height:84px;flex:none}
.ng-success-ring{position:absolute;inset:0;border-radius:50%;background:#5FC48E;animation:ngRing 1s ease-out .25s both}
.ng-success-icon{position:relative;width:84px;height:84px;animation:ngPop .55s cubic-bezier(.2,1.4,.4,1) both}
.ng-success-icon path{stroke-dasharray:32;stroke-dashoffset:32;animation:ngDraw .38s ease-out .28s forwards}
.ng-success #step-title{font-size:30px;margin:22px 0 0;animation:ngStepIn .5s .2s both}
.ng-success .ng-success-copy{font-size:17px;line-height:1.5;color:#3E544D;max-width:32ch;margin:12px 0 0;animation:ngStepIn .5s .3s both}
.ng-receipt{display:flex;width:100%;max-width:400px;text-align:left;overflow:hidden;border:2px solid #D3DDD6;border-radius:18px;margin-top:22px;animation:ngStepIn .5s .4s both}
.ng-receipt-date{background:#16302A;color:#fff;padding:12px 18px;text-align:center;flex:none;display:flex;flex-direction:column;justify-content:center}
.ng-receipt-date small{font-size:13px}.ng-receipt-date strong{font-size:32px;line-height:1.15}
.ng-receipt-info{padding:14px 16px;display:flex;flex-direction:column;justify-content:center;min-width:0;gap:3px}
.ng-receipt-info small{font-size:13px;color:#5A6F68}.ng-receipt-info strong{font-size:25px;color:#16302A}.ng-receipt-info span{font-size:14px;color:#3E544D;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ng-success .ng-success-reference{font-size:13px;line-height:1.6;animation:ngStepIn .5s .5s both}
.ng-success .ng-secondary{margin-top:20px;animation:ngStepIn .5s .6s both}
.ng-spinner{display:inline-block;width:16px;height:16px;border:2px solid #ffffff60;border-top-color:#fff;border-radius:50%;margin-right:5px;vertical-align:-2px;animation:ngSpin .7s linear infinite}
#hero-article,#hero-word{display:inline-block;will-change:transform,opacity}
#top{scroll-margin-top:80px}
.ng-hero-grid{padding-top:28px!important;padding-bottom:36px!important;align-items:start!important;gap:40px!important}
.ng-hero-copy h1{font-size:clamp(46px,5.6vw,74px)!important;margin-top:24px!important;line-height:1.06!important}
.ng-hero-copy>p{font-size:21px!important;margin-top:24px!important}
.ng-hero-copy>div:nth-of-type(2){margin-top:28px!important}
.ng-hero-copy>div:nth-of-type(3){margin-top:24px!important}
@media(max-width:600px){#formular{height:600px;padding:22px!important}.ng-hero-grid{gap:28px!important}.ng-success #step-title{font-size:27px}.ng-receipt-date{padding:12px 14px}.ng-receipt-info{padding:12px}.ng-receipt-info strong{font-size:23px}.ng-actions{flex-wrap:nowrap}.ng-secondary{font-size:15px;padding:12px}.ng-primary{font-size:18px}.ng-map-placeholder{padding:10px}.ng-map-copy small{display:none}}
@media(min-width:960px) and (max-height:760px){.ng-hero-copy h1{font-size:clamp(46px,5.1vw,68px)!important}.ng-hero-copy>p{font-size:20px!important}.ng-hero-copy>div:nth-of-type(2)>div:first-child{font-size:52px!important}.ng-hero-copy>div:nth-of-type(3) a{font-size:18px!important;padding:14px 18px!important}}
@media(prefers-reduced-motion:reduce){.ng-success-icon path{stroke-dashoffset:0}}
@media(max-width:600px){header a[href="#formular"],header a[href="/#formular"]{display:none}header>div{flex-wrap:nowrap!important}}
@keyframes ngStepIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes ngPop{from{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}
@keyframes ngRing{from{opacity:.4;transform:scale(1)}to{opacity:0;transform:scale(1.65)}}
@keyframes ngDraw{to{stroke-dashoffset:0}}
@keyframes ngSpin{to{transform:rotate(360deg)}}
