:root{
  --red:#a00f12;--red2:#c31b20;--brown:#3d2518;--muted:#735b4b;--line:#ead8bd;
  --gold:#d3a34a;--soft:#fff8f2;--white:#fff;--shadow:0 12px 32px rgba(61,37,24,.12);
  --app-height:100dvh;
}
*{box-sizing:border-box}
html,body{margin:0;background:#fff;color:var(--brown);font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
body.booking-fast-page{min-height:100vh;min-height:100dvh;overflow:hidden}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
.fast-shell{width:min(680px,100%);height:var(--app-height);min-height:100dvh;margin:0 auto;display:flex;flex-direction:column;overflow:hidden;background:#fff}
.fast-header{position:relative;flex:0 0 auto;padding:8px 16px 10px;border-bottom:1px solid #efe4d6;background:#fff;text-align:center;z-index:10}
.fast-logo{display:block;width:190px;height:74px;object-fit:contain;margin:0 auto}
.fast-title{font-weight:1000;font-size:21px;line-height:1.05;color:#5b1712}
.fast-subtitle{margin-top:4px;font-size:12px;line-height:1.3;font-weight:750;color:var(--muted)}
.fast-close{position:absolute;right:12px;top:12px;width:40px;height:40px;border:1px solid #eadbca;border-radius:50%;background:#fff;color:#5b3427;font-size:29px;line-height:1;cursor:pointer;box-shadow:0 5px 14px rgba(61,37,24,.08)}
.is-embedded .fast-close{display:none}
.fast-progress{height:4px;margin:10px -16px 8px;background:#f0e6da;overflow:hidden}
.fast-progress span{display:block;width:33.333%;height:100%;background:linear-gradient(90deg,#b31015,#d3a34a);transition:width .25s ease}
.fast-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}
.fast-steps span{padding:6px 4px;border-radius:999px;background:#f7f3ee;color:#8b7564;font-size:10.5px;font-weight:900;white-space:nowrap}
.fast-steps span.is-active{background:#5b1712;color:#fff}
.fast-steps span.is-done{background:#f3e4c8;color:#6c471e}
.fast-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scroll-padding-bottom:150px;padding:18px 14px 28px;background:#fff}
.fast-step{display:none}
.fast-step.is-active{display:block;animation:fastIn .2s ease}
@keyframes fastIn{from{opacity:.3;transform:translateY(6px)}to{opacity:1;transform:none}}
.fast-heading{text-align:center;margin:0 auto 16px;max-width:560px}
.fast-heading h1{margin:0;color:#4e1714;font-size:25px;line-height:1.05;font-weight:1000;letter-spacing:-.02em}
.fast-heading p{margin:7px 0 0;color:#735b4b;font-size:13px;line-height:1.4;font-weight:700}
.fast-choice-card{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:80px;margin:0 0 10px;padding:13px 14px;border:1px solid #ead8bd;border-radius:18px;background:#fff;box-shadow:0 7px 18px rgba(64,39,23,.06)}
.fast-choice-label{display:flex;align-items:center;gap:10px;min-width:0}
.fast-choice-label>span:last-child{display:flex;flex-direction:column;min-width:0}
.fast-choice-label strong{font-size:15px;line-height:1.1;color:#352016}
.fast-choice-label small{margin-top:4px;font-size:10.5px;line-height:1.2;color:#8b7260;font-weight:700}
.fast-icon{display:grid;place-items:center;width:39px;height:39px;flex:0 0 39px;border-radius:50%;background:#fff3ea;font-size:19px}
.people-stepper{display:grid;grid-template-columns:42px 54px 42px;align-items:center;border:1px solid #ead8bd;border-radius:15px;overflow:hidden;background:#fff}
.people-stepper button{height:44px;border:0;background:#fff;color:#861317;font-size:26px;font-weight:900;cursor:pointer}
.people-stepper output{display:grid;place-items:center;height:44px;border-left:1px solid #eee1d0;border-right:1px solid #eee1d0;font-size:20px;font-weight:1000}
.fast-control-card{cursor:pointer}
.fast-native-control{width:min(220px,48%);height:46px;padding:0 11px;border:1px solid #dbc5a6;border-radius:13px;background:#fff;color:#352016;font-size:15px;font-weight:850;outline:none}
.fast-native-control:focus{border-color:#a00f12;box-shadow:0 0 0 3px rgba(160,15,18,.10)}
.fast-inline-info{margin:12px 2px 0;padding:10px 12px;border-radius:13px;background:#fff8f2;color:#684a39;font-size:12px;line-height:1.4;font-weight:800}
.fast-error{display:none;margin:12px 0 0;padding:10px 12px;border-radius:12px;background:#fde7e2;color:#9c1116;font-size:12px;font-weight:850}
.fast-error.show{display:block}
.promo-list{display:grid;gap:10px}
.promo-card{position:relative;display:grid;grid-template-columns:92px 1fr;gap:12px;align-items:stretch;padding:10px;border:2px solid #ead8bd;border-radius:18px;background:#fff;box-shadow:0 7px 18px rgba(64,39,23,.06);cursor:pointer}
.promo-card.is-selected{border-color:#a00f12;box-shadow:0 0 0 3px rgba(160,15,18,.08),0 7px 18px rgba(64,39,23,.07)}
.promo-card.is-disabled{opacity:.55;cursor:not-allowed}
.promo-thumb{position:relative;width:92px;height:108px;padding:0;border:0;border-radius:13px;overflow:hidden;background:#f3eadf;cursor:zoom-in}
.promo-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.promo-thumb:after{content:"⌕";position:absolute;right:6px;bottom:6px;width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.94);color:#7e1417;font-size:16px;font-weight:1000}
.promo-copy{padding:5px 2px;min-width:0}
.promo-copy strong{display:block;color:#4d1815;font-size:17px;line-height:1.15}
.promo-copy p{margin:6px 0 0;color:#6f5544;font-size:12px;line-height:1.35;font-weight:700}
.promo-badge{display:inline-flex;margin-top:8px;padding:5px 8px;border-radius:999px;background:#f3e4c8;color:#6e471f;font-size:9.5px;font-weight:1000;text-transform:uppercase}
.promo-selected-label{position:absolute;top:8px;right:8px;padding:5px 7px;border-radius:999px;background:#a00f12;color:#fff;font-size:9px;font-weight:1000}
.no-promo-card{margin-top:10px;padding:13px;border:1px solid #ead8bd;border-radius:16px;background:#fff;cursor:pointer}
.no-promo-card.is-selected{border:2px solid #a00f12;background:#fff9f7}
.no-promo-card strong{display:block;font-size:14px}
.no-promo-card span{display:block;margin-top:3px;color:#806755;font-size:11px;font-weight:700}
.fast-form{display:grid;gap:13px}
.fast-form label{display:block}
.fast-form label>span:first-child{display:block;margin:0 0 6px;color:#45281d;font-size:13px;font-weight:950}
.fast-form em{font-style:normal;color:#927b6a;font-size:10px;font-weight:800}
.fast-form input,.fast-form textarea{width:100%;border:1px solid #dbc5a6;border-radius:14px;background:#fff;color:#342017;outline:none;font-size:16px;line-height:1.2}
.fast-form input{height:52px;padding:0 13px}
.fast-form textarea{min-height:84px;padding:12px 13px;resize:vertical}
.fast-form input:focus,.fast-form textarea:focus{border-color:#a00f12;box-shadow:0 0 0 3px rgba(160,15,18,.10)}
.fast-form label>small{display:block;margin-top:5px;color:#8a7362;font-size:10.5px;line-height:1.35;font-weight:700}
.phone-wrap{display:grid;grid-template-columns:52px 1fr;border:1px solid #dbc5a6;border-radius:14px;overflow:hidden;background:#fff}
.phone-wrap:focus-within{border-color:#a00f12;box-shadow:0 0 0 3px rgba(160,15,18,.10)}
.phone-wrap>span{display:grid;place-items:center;border-right:1px solid #eadfce;color:#6f5544;font-weight:900}
.phone-wrap input{border:0!important;border-radius:0!important;box-shadow:none!important}
.privacy-check{display:grid!important;grid-template-columns:22px 1fr;gap:9px;align-items:start;margin-top:2px;padding:11px;border:1px solid #ead8bd;border-radius:13px;background:#fffaf5}
.privacy-check input{width:20px!important;height:20px!important;margin:0}
.privacy-check span{margin:0!important;font-size:11px!important;line-height:1.4!important;font-weight:750!important;color:#6f5544!important}
.privacy-check a{color:#8e1115;font-weight:900}
.field-invalid{border-color:#c20f15!important;box-shadow:0 0 0 3px rgba(194,15,21,.10)!important}
.group-invalid{outline:2px solid #c20f15;outline-offset:2px}
.fast-summary{margin:14px 0 0;padding:13px;border:1px solid #ead8bd;border-radius:15px;background:#fffaf5}
.summary-row{display:flex;justify-content:space-between;gap:14px;padding:6px 0;border-bottom:1px dashed #eadfce;font-size:12px}
.summary-row:last-child{border-bottom:0}
.summary-row span{color:#866d5b}.summary-row strong{text-align:right;color:#3c2519}
.fast-footer{flex:0 0 auto;display:flex;gap:9px;padding:9px 12px calc(10px + env(safe-area-inset-bottom));border-top:1px solid #eadfce;background:rgba(255,255,255,.98);box-shadow:0 -8px 22px rgba(61,37,24,.06);z-index:20}
.fast-btn{min-height:54px;border-radius:16px;font-weight:1000;font-size:15px;cursor:pointer}
.fast-btn.primary{flex:1;border:0;background:linear-gradient(180deg,#c4191e,#97080c);color:#fff;box-shadow:0 8px 18px rgba(151,8,12,.22)}
.fast-btn.secondary{width:112px;border:1px solid #dbc5a6;background:#fff;color:#5a3623}
.fast-btn:disabled{opacity:.55;cursor:wait}
.fast-confirmation{text-align:center;padding:12px 2px 26px}
.fast-ok{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 12px;border-radius:50%;background:#e8f5e5;color:#3b7b38;font-size:34px;font-weight:1000}
.fast-confirmation h1{margin:0;color:#4d1815;font-size:26px}.fast-confirmation p{margin:7px 0 13px;color:#735b4b;font-size:13px;font-weight:750}
.fast-code{display:inline-block;margin:0 auto 12px;padding:10px 16px;border-radius:13px;background:#5a351f;color:#fff;font-size:21px;font-weight:1000;letter-spacing:.08em}
.fast-secondary-link{display:block;width:100%;max-width:420px;margin:9px auto 0;padding:13px;border:1px solid #dbc5a6;border-radius:14px;background:#fff;color:#7e1417;text-decoration:none;font-size:13px;font-weight:950}
.promo-lightbox{position:fixed;inset:0;z-index:5000;display:flex;align-items:center;justify-content:center;padding:14px;background:rgba(20,12,8,.91);opacity:0;visibility:hidden;pointer-events:none;transition:.18s}
.promo-lightbox.is-open{opacity:1;visibility:visible;pointer-events:auto}
.promo-lightbox-dialog{position:relative;width:min(620px,94vw);max-height:94vh;display:flex;align-items:center;justify-content:center}
.promo-lightbox img{max-width:100%;max-height:92vh;width:auto;height:auto;border-radius:14px;background:#fff;box-shadow:0 20px 60px rgba(0,0,0,.42)}
.promo-lightbox-close{position:absolute;top:-8px;right:-4px;width:42px;height:42px;border:2px solid #fff;border-radius:50%;background:#a00f12;color:#fff;font-size:28px;line-height:1;cursor:pointer}
@media(max-width:520px){
  .fast-header{padding-top:5px}.fast-logo{width:170px;height:66px}.fast-title{font-size:19px}.fast-body{padding:14px 11px 24px}.fast-heading h1{font-size:23px}
  .fast-choice-card{min-height:74px;padding:11px}.fast-choice-label small{max-width:150px}.fast-native-control{width:46%;font-size:14px}.people-stepper{grid-template-columns:38px 48px 38px}
  .promo-card{grid-template-columns:78px 1fr}.promo-thumb{width:78px;height:98px}.fast-btn.secondary{width:98px}
}
@media(min-width:681px){
  body.booking-fast-page{padding:18px;background:#f5f1ec}.fast-shell{border:1px solid #e6d8c7;border-radius:24px;box-shadow:var(--shadow)}
  body.booking-fast-page.is-embedded{padding:0;background:#fff}.is-embedded .fast-shell{border:0;border-radius:0;box-shadow:none}
}

.fast-time-button{display:flex;align-items:center;justify-content:center;cursor:pointer;text-align:center}
.time-picker-modal{position:fixed;inset:0;z-index:99999;width:100vw;height:100dvh;display:flex;align-items:flex-end;justify-content:center;background:rgba(20,12,8,.45);opacity:0;visibility:hidden;pointer-events:none;transition:.18s}
.time-picker-modal.is-open{opacity:1;visibility:visible;pointer-events:auto}
.time-picker-sheet{position:relative;width:min(680px,100%);max-height:72dvh;overflow:hidden;border-radius:24px 24px 0 0;background:#fff;box-shadow:0 -18px 50px rgba(0,0,0,.22);padding:16px 14px calc(18px + env(safe-area-inset-bottom))}
.time-picker-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:2px 2px 13px;border-bottom:1px solid #eee1d0}
.time-picker-head>div{display:flex;flex-direction:column}.time-picker-head strong{font-size:21px;color:#4d1815}.time-picker-head span{margin-top:3px;font-size:12px;color:#806755;font-weight:750}
.time-picker-close{width:40px;height:40px;border:1px solid #ead8bd;border-radius:50%;background:#fff;color:#5b3427;font-size:27px;line-height:1;cursor:pointer}
.time-picker-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;overflow-y:auto;max-height:calc(72dvh - 92px);padding:14px 2px 2px}
.time-slot{min-height:48px;border:1px solid #dbc5a6;border-radius:13px;background:#fff;color:#4b2d1e;font-size:15px;font-weight:950;cursor:pointer}
.time-slot.is-selected{border-color:#a00f12;background:#a00f12;color:#fff;box-shadow:0 6px 16px rgba(160,15,18,.18)}
.time-slot:active{transform:translateY(1px)}
.time-picker-empty{grid-column:1/-1;padding:20px 12px;text-align:center;color:#806755;font-size:13px;font-weight:800}
@media(max-width:430px){.time-picker-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.time-slot{min-height:46px}}
