/* Original public form compositions, with native form controls and local artwork. */
.booking-showcase,.booking-compact{--booking-unit:calc(100vw / 1200);position:relative;isolation:isolate;overflow:hidden}
.booking-showcase{padding:calc(60 * var(--booking-unit)) calc(26 * var(--booking-unit));background:radial-gradient(ellipse at 5% 95%,#b9a6e7 0,transparent 55%),radial-gradient(ellipse at 97% 5%,#baecf3 0,transparent 60%),#c2d4e8}
.booking-showcase .booking-dialog-grid{max-height:none;overflow:visible;gap:calc(10 * var(--booking-unit))}
.booking-showcase .booking-dialog-intro{min-height:calc(518 * var(--booking-unit));padding:calc(20 * var(--booking-unit)) calc(30 * var(--booking-unit)) calc(26 * var(--booking-unit))}
.booking-showcase .booking-dialog-intro :is(h2,.booking-display-title){font-size:calc(76 * var(--booking-unit));line-height:.85;letter-spacing:-.05em}
.booking-showcase .booking-dialog-caption{font-size:calc(16 * var(--booking-unit));gap:calc(20 * var(--booking-unit))}
.booking-showcase .booking-dialog-caption .messenger-links>a{width:calc(48 * var(--booking-unit));height:calc(48 * var(--booking-unit))}
.booking-showcase .booking-dialog-form{background:#17213844}
.booking-showcase .booking-dialog-form input:not([type=checkbox]):not([type=hidden]),.booking-showcase .booking-dialog-form textarea{background:#17213844}
.booking-compact{padding:calc(68 * var(--booking-unit)) 24px;background:url("booking-glow.49c08b1f0b85.svg") center/cover no-repeat,url("booking-ground.b22d78ff3d4a.svg") center/100% 100% no-repeat,#a4b0b3}
.booking-compact:before,.booking-compact:after{content:"";position:absolute;z-index:-1;pointer-events:none;background-size:contain;background-repeat:no-repeat}
.booking-compact:before{background-image:url("booking-ribbon-left.0d6b3b4882ec.webp");left:calc(-444 * var(--booking-unit));top:calc(-23 * var(--booking-unit));width:calc(631 * var(--booking-unit));height:calc(457 * var(--booking-unit))}
.booking-compact:after{background-image:url("booking-ribbon-right.7f9eb3c60da1.webp");left:calc(1008 * var(--booking-unit));top:calc(307 * var(--booking-unit));width:calc(591 * var(--booking-unit));height:calc(538 * var(--booking-unit))}
.booking-compact-card.booking-dialog-form{display:flex;flex-direction:column;position:relative;width:calc(570 * var(--booking-unit));max-width:100%;min-height:calc(640 * var(--booking-unit));margin:auto;background:white;color:#061134;border-top-color:#df81f0;padding:calc(25 * var(--booking-unit));backdrop-filter:none}
.booking-compact-card :is(h2,.booking-display-title){font-size:calc(54 * var(--booking-unit));font-weight:400;line-height:1.08;letter-spacing:-.05em;margin:0 0 calc(10 * var(--booking-unit));text-align:center}
.booking-compact-card>p{font-size:calc(16 * var(--booking-unit));line-height:1.3;text-align:center;margin:0 0 calc(30 * var(--booking-unit))}
.booking-compact-card form{flex:1;height:auto!important}
.booking-compact-card.booking-dialog-form input:not([type=checkbox]):not([type=hidden]),.booking-compact-card.booking-dialog-form textarea{background:#f0f0f0;color:#061134}
.booking-compact-card.booking-dialog-form input::placeholder,.booking-compact-card.booking-dialog-form textarea::placeholder{color:#9d9d9d}
.booking-compact-card .dialog-consent{color:#111}
.booking-compact-card .dialog-consent input{background:#d8d8d8;border-color:#d8d8d8}
.booking-compact-card .dialog-consent input:checked{background:#3454ef}
@media(max-width:1199px){
  .booking-showcase{padding:48px 20px}
  .booking-showcase .booking-dialog-intro{min-height:550px;padding:28px}
  .booking-showcase .booking-dialog-intro :is(h2,.booking-display-title){font-size:clamp(44px,6.3vw,74px)}
  .booking-showcase .booking-dialog-caption{font-size:16px}
  .booking-showcase .booking-dialog-caption .messenger-links>a{width:38px;height:38px}
  .booking-compact{padding:64px 24px}
  .booking-compact-card.booking-dialog-form{width:684px;min-height:700px;padding:30px}
  .booking-compact-card :is(h2,.booking-display-title){font-size:54px}
  .booking-compact-card>p{font-size:18px;margin-bottom:28px}
}
@media(max-width:760px){
  .booking-showcase{padding:30px 12px}
  .booking-showcase .booking-dialog-grid{gap:12px}
  .booking-showcase .booking-dialog-intro{min-height:260px;padding:24px}
  .booking-showcase .booking-dialog-intro :is(h2,.booking-display-title){font-size:48px;max-width:300px}
  .booking-showcase .booking-dialog-intro :is(h2,.booking-display-title) br{display:block}
  .booking-showcase .booking-dialog-caption{display:none}
  .booking-showcase .booking-dialog-form{min-height:450px}
  .booking-compact{padding:32px 12px}
  .booking-compact-card.booking-dialog-form{padding:24px 18px;min-height:590px}
  .booking-compact-card :is(h2,.booking-display-title){font-size:38px}
  .booking-compact-card>p{font-size:16px;margin-bottom:26px}
  .booking-compact:before{left:-130px;top:-60px;width:280px;height:220px}
  .booking-compact:after{left:auto;right:-130px;top:auto;bottom:-40px;width:280px;height:260px}
}
.booking-field-caption{font-size:14px;line-height:1.2;color:#3454ef;margin:0 0 -6px}
.booking-home-card select{width:100%;border:0;border-radius:16px;background:#f0f0f0;color:#5c5c5c;padding:20px 24px;min-height:72px;font:inherit;font-size:21px}
.booking-home-card .dialog-consent{font-size:15px}
.booking-home-card form>.button{margin-top:auto}
@media(max-width:760px){.booking-home-card select{min-height:54px;font-size:17px;padding:16px;border-radius:12px}.booking-home-card .dialog-consent{font-size:14px}.booking-field-caption{font-size:13px}.booking-home-card form>.button{margin-top:12px}}
/* Callback geometry follows the source's 320 / 640 / 1200 breakpoints. */
.callback-dialog{--cu:1px;--callback-top:max(68px,calc(50dvh - 320px));position:fixed;inset:0;padding:0;border:0;background:transparent;color:#000f33;width:100%;height:100%;max-width:none;max-height:none;overflow:auto;overscroll-behavior:contain;margin:0;border-radius:0}
.callback-dialog::backdrop{background:#102b4fcc}
.callback-stage{position:relative;isolation:isolate;min-height:100%;overflow:hidden;padding:var(--callback-top) 0 28px}
.callback-stage:before,.callback-stage:after,.callback-glow{content:"";position:absolute;z-index:-1;pointer-events:none;background-repeat:no-repeat;background-size:contain}
.callback-stage:before{width:631px;height:457px;left:calc(50% - 1044px);top:calc(var(--callback-top) - 91px);background-image:url("booking-ribbon-left.0d6b3b4882ec.webp");animation:callback-left 1s both}
.callback-stage:after{width:591px;height:538px;left:calc(50% + 408px);top:calc(var(--callback-top) + 239px);background-image:url("booking-ribbon-right.7f9eb3c60da1.webp");animation:callback-right 1s both}
.callback-glow{width:606px;height:606px;left:calc(50% - 303px);top:calc(var(--callback-top) + 17px);background:#bdb3ff;border-radius:50%;filter:blur(50px);animation:callback-glow 1s .3s both}
.callback-card{position:relative;width:570px;max-width:calc(100% - 24px);margin:auto;background:#fff;border-radius:20px;border-top:6px solid #dc7aee;padding:22px 25px 28px}
.callback-card h2{margin:0 0 10px;font:400 56px/1.06 'Helvetica Neue',Arial,sans-serif;letter-spacing:-.045em;text-align:center;color:#000f33}
.callback-price,.callback-address{font:400 16px/1.4 Arial,sans-serif;color:#424654;text-align:center;margin:0 0 8px}
.callback-address{margin-bottom:18px}
.callback-card .appointment-fields{display:flex;flex-direction:column;gap:8px}
.callback-card input:not([type=checkbox]):not([type=hidden]),.callback-card select{border:0;background:#f0f0f0;border-radius:12px;padding:20px;min-height:63px;font:400 16px/1.4 Arial,sans-serif;color:#616161}
.callback-card input::placeholder{color:#999}
.callback-card .booking-field-caption{font:400 12px/1.2 Arial,sans-serif;color:#225af2;margin:0 0 -3px}
.callback-card .dialog-consent{color:#000;font:400 12px/1.15 Arial,sans-serif;padding:6px 10px;gap:10px}
.callback-card .dialog-consent input{width:20px;height:20px;background:#d8d8d8;border-color:#d8d8d8}
.callback-card .dialog-consent input:checked{background:#3454ef;border-color:#3454ef}
.callback-card .button{align-self:center;margin:8px 0 0;width:166px;min-height:54px;padding:14px 24px;background:#3454ef;border-color:#6f83f0;border-radius:13px;gap:28px;font:500 16px/1.2 Arial,sans-serif}
.callback-card .button span{transition:translate .2s}
.callback-card .button:hover span{translate:4px 0}
.callback-dialog .booking-dialog-close{position:fixed;top:10px;right:10px;color:#fff;width:44px;height:44px;z-index:2;background:transparent;border:0;font-size:0}
.callback-dialog .booking-dialog-close:before,.callback-dialog .booking-dialog-close:after{content:"";position:absolute;left:6px;top:21px;width:32px;height:1.5px;background:currentColor;rotate:45deg}
.callback-dialog .booking-dialog-close:after{rotate:-45deg}
.callback-card .errorlist{margin:0;padding:0;list-style:none}
@keyframes callback-left{from{opacity:0;translate:-100px 0}to{opacity:1;translate:0 0}}
@keyframes callback-right{from{opacity:0;translate:100px 0}to{opacity:1;translate:0 0}}
@keyframes callback-glow{from{opacity:0;scale:.5}to{opacity:1;scale:1}}
@media(max-width:1199px){
 .callback-dialog{--cu:calc(100vw / 640);--callback-top:max(calc(55 * var(--cu)),calc(50dvh - 226.5 * var(--cu)))}
 .callback-card{width:calc(305 * var(--cu));max-width:none;border-width:calc(3 * var(--cu));border-radius:calc(20 * var(--cu));padding:calc(18 * var(--cu)) calc(15 * var(--cu)) calc(20 * var(--cu))}
 .callback-card h2{font-size:calc(31 * var(--cu));line-height:1;margin-bottom:calc(8 * var(--cu));white-space:nowrap}
 .callback-price,.callback-address{font-size:calc(16 * var(--cu));line-height:1.3;margin-bottom:calc(8 * var(--cu))}
 .callback-address{margin-bottom:calc(15 * var(--cu))}
 .callback-card .appointment-fields{gap:calc(8 * var(--cu))}
 .callback-card input:not([type=checkbox]):not([type=hidden]),.callback-card select{min-height:calc(40 * var(--cu));height:calc(40 * var(--cu));padding:0 calc(20 * var(--cu));border-radius:calc(8 * var(--cu));font-size:calc(12 * var(--cu))}
 .callback-card .booking-field-caption{font-size:calc(12 * var(--cu));line-height:1.1;margin-bottom:calc(-3 * var(--cu))}
 .callback-card .booking-optional{display:block}
 .callback-card .dialog-consent{font-size:calc(12 * var(--cu));line-height:1.08;gap:calc(8 * var(--cu));padding:calc(6 * var(--cu)) 0}
 .callback-card .dialog-consent input{width:calc(20 * var(--cu));height:calc(20 * var(--cu))}
 .callback-card .button{font-size:calc(14 * var(--cu));width:100%;min-height:calc(46 * var(--cu));padding:calc(12 * var(--cu)) calc(20 * var(--cu));border-radius:calc(8 * var(--cu));justify-content:space-between;margin-top:calc(8 * var(--cu))}
 .callback-stage:before{width:calc(291 * var(--cu));height:calc(211 * var(--cu));left:calc(-165 * var(--cu));top:calc(var(--callback-top) - 75 * var(--cu))}
 .callback-stage:after{width:calc(273 * var(--cu));height:calc(249 * var(--cu));left:calc(524 * var(--cu));top:calc(var(--callback-top) + 198 * var(--cu))}
 .callback-glow{width:calc(352 * var(--cu));height:calc(352 * var(--cu));left:calc(144 * var(--cu));top:calc(var(--callback-top) + 40 * var(--cu))}
}
@media(max-width:639px){
 .callback-dialog{--cu:calc(100vw / 320);--callback-top:max(calc(90 * var(--cu)),calc(50dvh - 254 * var(--cu)))}
 .callback-card{width:calc(300 * var(--cu))}
 .callback-stage:before{top:calc(var(--callback-top) - 187 * var(--cu))}
 .callback-stage:after{left:calc(150 * var(--cu));top:calc(var(--callback-top) + 396 * var(--cu))}
 .callback-glow{left:calc(-16 * var(--cu));top:calc(var(--callback-top) - 15 * var(--cu))}
}
@media(prefers-reduced-motion:reduce){.callback-stage:before,.callback-stage:after,.callback-glow{animation:none}.callback-card .button span{transition:none}}
