.msv-booking{--navy:#17324d;--blue:#2e6f9e;--sand:#f4eee4;max-width:920px;margin:30px auto;color:#1f2933;font-family:inherit}.msv-booking *{box-sizing:border-box}.msv-progress{display:flex;gap:8px;margin:0 0 18px}.msv-progress span{flex:1;padding:10px;text-align:center;background:#e7ebef;color:#64717d;border-radius:6px;font-size:14px}.msv-progress span.active{background:var(--navy);color:#fff}.msv-step{display:none;background:#fff;border:1px solid #dce2e8;border-radius:12px;padding:clamp(20px,4vw,38px);box-shadow:0 12px 30px rgba(23,50,77,.08)}.msv-step.active{display:block}.msv-step h2{margin-top:0;color:var(--navy)}.msv-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:22px 0}.msv-grid label{display:flex;flex-direction:column;gap:7px;font-weight:600}.msv-grid input,.msv-grid textarea{width:100%;border:1px solid #b8c2cc;border-radius:7px;padding:12px;font:inherit;background:#fff}.msv-wide{grid-column:1/-1}.msv-primary,.msv-secondary{border:0;border-radius:7px;padding:12px 19px;font:inherit;font-weight:700;cursor:pointer;margin:4px}.msv-primary{background:var(--navy);color:#fff}.msv-primary:hover{background:var(--blue)}.msv-secondary{background:#e7ebef;color:var(--navy)}.msv-primary:disabled{opacity:.65;cursor:wait}.msv-unit{display:flex;justify-content:space-between;gap:20px;align-items:center;border:1px solid #dce2e8;border-radius:10px;padding:18px;margin:12px 0}.msv-unit h3,.msv-unit p{margin:0 0 5px}.msv-unit>div:last-child{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.msv-unit small{color:#64717d}.msv-unit button{margin-top:8px}.msv-consent{display:block;margin:14px 0}.msv-payment-note{font-size:14px;color:#64717d}.msv-payment-note,.msv-empty{background:var(--sand);border-radius:7px;padding:12px}.msv-summary{display:flex}.msv-summary,.msv-success{background:#edf6f0;border-left:4px solid #2d7a4b;padding:16px;margin:16px 0}.msv-summary span,#msv-summary span{display:block;margin-top:4px}#msv-message{color:#9c2f21;font-weight:600;margin-top:14px}.msv-success{text-align:center;border-left:0;border-top:4px solid #2d7a4b;border-radius:10px}@media(max-width:640px){.msv-grid{grid-template-columns:1fr}.msv-wide{grid-column:auto}.msv-progress span{font-size:12px;padding:8px 3px}.msv-unit{align-items:flex-start;flex-direction:column}.msv-unit>div:last-child{align-items:flex-start;width:100%}.msv-unit button{width:100%}}
#msv-summary{background:#edf6f0;border-left:4px solid #2d7a4b;padding:16px;margin:16px 0}

/* Apartment galleries and enlarged photo viewer */
.msv-grid select{width:100%;border:1px solid #b8c2cc;border-radius:7px;padding:12px;font:inherit;background:#fff}.msv-unit-type{color:#2e6f9e;font-weight:700;font-size:13px}
.msv-unit{display:grid;grid-template-columns:190px minmax(180px,1fr) auto;gap:18px;align-items:center;padding:14px}
.msv-unit-info{min-width:0}.msv-unit-price{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.msv-unit-price button{margin-top:8px}
.msv-gallery{position:relative;display:grid;grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr;gap:3px;height:120px;border-radius:8px;overflow:hidden;background:#e7ebef}
.msv-gallery button{border:0;padding:0!important;margin:0!important;cursor:zoom-in;overflow:hidden;background:#dce2e8}.msv-gallery button:first-of-type{grid-column:1;grid-row:1/3}.msv-gallery button:nth-of-type(2){grid-column:2;grid-row:1}.msv-gallery button:nth-of-type(3){grid-column:2;grid-row:2}.msv-gallery button:only-of-type{grid-column:1/3;grid-row:1/3}.msv-gallery button:nth-last-of-type(1):nth-of-type(2){grid-column:2;grid-row:1/3}
.msv-gallery img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .2s}.msv-gallery button:hover img{transform:scale(1.05)}
.msv-gallery span{position:absolute;right:7px;bottom:7px;background:rgba(23,50,77,.88);color:#fff;padding:4px 7px;border-radius:5px;font-size:11px;pointer-events:none}
.msv-no-photo{height:120px;border-radius:8px;background:#eef1f4;color:#64717d;display:grid;place-items:center;font-size:13px}
.msv-lightbox{display:none;position:fixed;inset:0;z-index:999999;background:rgba(4,12,20,.92);align-items:center;justify-content:center;padding:40px}.msv-lightbox.open{display:flex}
.msv-lightbox img{display:block;max-width:min(1100px,88vw);max-height:88vh;object-fit:contain;border-radius:8px;box-shadow:0 15px 50px rgba(0,0,0,.5)}
.msv-lightbox button{position:absolute;border:0;border-radius:50%;background:rgba(255,255,255,.92);color:#17324d;width:46px;height:46px;font-size:34px;line-height:1;cursor:pointer}.msv-lightbox-close{right:22px;top:22px}.msv-lightbox-prev{left:22px;top:50%}.msv-lightbox-next{right:22px;top:50%}.msv-no-scroll{overflow:hidden}
@media(max-width:760px){.msv-unit{display:grid;grid-template-columns:1fr;align-items:start}.msv-gallery,.msv-no-photo{width:100%;height:190px}.msv-unit-price{align-items:flex-start;width:100%}.msv-unit-price button{width:100%}.msv-lightbox{padding:15px}.msv-lightbox-prev{left:8px}.msv-lightbox-next{right:8px}}
.msv-payment-choice{border:1px solid #dce2e8;border-radius:8px;margin:18px 0;padding:14px 16px}.msv-payment-choice legend{font-weight:700;padding:0 6px}.msv-payment-choice label{display:block;margin:7px 0}#msv-paypal-buttons,#msv-card-buttons,#msv-balance-paypal-buttons,#msv-balance-card-buttons{max-width:460px;margin:12px 0 18px}.msv-paypal-availability{font-size:13px;color:#64717d}
.msv-discount{display:inline-block!important;color:#216e3a;font-weight:700;background:#edf6f0;border-radius:5px;padding:4px 7px}.msv-original-price{text-decoration:line-through;color:#7b8792!important}

/* Direct apartment booking page */
.msv-direct-room{display:grid;grid-template-columns:minmax(220px,320px) minmax(0,1fr);gap:22px;align-items:center;border:1px solid #dce2e8;border-radius:10px;padding:14px;margin:20px 0;background:#fbfcfd}.msv-direct-room .msv-gallery,.msv-direct-room .msv-no-photo{height:180px}.msv-direct-room h3{margin:0 0 8px;color:var(--navy)}.msv-direct-room p{margin:4px 0}.msv-direct-room strong{display:block;margin-top:10px;color:var(--navy)}
@media(max-width:640px){.msv-direct-room{grid-template-columns:1fr}.msv-direct-room .msv-gallery,.msv-direct-room .msv-no-photo{height:200px}}
.msv-date-display{width:100%;min-height:49px;border:1px solid #b8c2cc;border-radius:7px;padding:12px;background:#fff;color:#1f2933;font:inherit;text-align:left;cursor:pointer}.msv-date-display:hover{border-color:var(--blue);box-shadow:0 0 0 1px var(--blue)}
.msv-date-calendar{width:min(100%,520px);max-width:100%;overflow:hidden;margin:4px 0 22px;padding:15px;border:1px solid #cbd5df;border-radius:10px;background:#fff;box-shadow:0 8px 24px rgba(23,50,77,.1)}.msv-date-calendar.loading{opacity:.55;pointer-events:none}.msv-date-toolbar{display:grid;grid-template-columns:42px minmax(0,1fr) 42px;align-items:center;margin-bottom:10px;text-align:center}.msv-date-toolbar button{min-width:0;border:0;border-radius:6px;padding:8px;background:#e7ebef;color:var(--navy);cursor:pointer}.msv-date-weekdays,.msv-date-days{display:grid;width:100%;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.msv-date-weekdays span{min-width:0;text-align:center;color:#64717d;font-size:11px;font-weight:700}.msv-date-days button,.msv-date-days .blank{display:block;width:100%!important;min-width:0!important;max-width:100%;aspect-ratio:1/1;min-height:38px;margin:0!important;padding:0!important}.msv-date-days button{border:1px solid transparent;border-radius:7px;background:#f4f7f9;color:#1f2933;font-weight:600;line-height:1;cursor:pointer}.msv-date-days button:hover{border-color:var(--blue)}.msv-date-days button.unavailable{background:#d9dde1;color:#7a838c;text-decoration:line-through}.msv-date-days button.past{background:#f7f7f7;color:#c2c6ca;cursor:not-allowed}.msv-date-days button.check-in,.msv-date-days button.check-out{background:var(--navy);color:#fff;text-decoration:none}.msv-date-help{margin:10px 0 0;color:#64717d;font-size:12px}
.msv-age-rule{margin:0 0 10px;padding:10px;border-radius:7px;background:#eef5fa;color:#294b68;font-size:13px}.msv-age-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.msv-age-grid label{display:flex;flex-direction:column;gap:7px;font-weight:600}.msv-privacy-note{margin:8px 0 16px;padding:11px 13px;border-left:4px solid var(--blue);background:#eef5fa;color:#405263;font-size:13px}
@media(max-width:640px){.msv-date-calendar{width:100%;max-width:none;padding:12px}.msv-date-weekdays,.msv-date-days{gap:3px}.msv-date-days button,.msv-date-days .blank{min-height:34px;font-size:12px}.msv-age-grid{grid-template-columns:1fr}}
