:root{--booking-navy:#082846;--booking-deep:#061c33;--booking-gold:#dda72f;--booking-line:#dce5ec;--booking-text:#142c43;--booking-muted:#6f8092}
.booking-page{background:#f4f7fa;color:var(--booking-text);min-height:70vh}
.booking-hero{min-height:360px;background-image:linear-gradient(90deg,rgba(5,25,45,.92),rgba(5,25,45,.48),rgba(5,25,45,.15)),var(--booking-hero);background-size:cover;background-position:center;display:flex;align-items:center;padding:48px max(28px,calc((100% - 1320px)/2))}
.booking-hero>div{max-width:700px;color:#fff}
.booking-hero span,.booking-results-head span,.guest-form-intro>span{display:block;color:#f2bd3c;font-size:12px;font-weight:900;letter-spacing:.18em}
.booking-hero h1{font:700 clamp(38px,5vw,68px)/1.04 Georgia,serif;margin:12px 0}
.booking-hero p{font-size:18px;color:#dce7ef;line-height:1.55}
.booking-shell{width:min(1320px,calc(100% - 32px));margin:-38px auto 70px;position:relative}
.booking-steps{background:#fff;border:1px solid var(--booking-line);border-radius:18px 18px 0 0;display:grid;grid-template-columns:repeat(3,1fr);padding:18px 24px;box-shadow:0 22px 60px rgba(6,32,57,.12)}
.booking-steps>div{display:flex;align-items:center;gap:11px;color:#8a98a5}
.booking-steps>div+div{border-left:1px solid var(--booking-line);padding-left:25px}
.booking-steps i{font-style:normal;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#edf2f6;font-weight:900}
.booking-steps span,.booking-steps b,.booking-steps small{display:block}
.booking-steps small{font-size:11px;margin-top:2px}
.booking-steps .active{color:var(--booking-navy)}
.booking-steps .active i{background:var(--booking-gold);color:var(--booking-navy)}
.booking-search{background:#fff;border:1px solid var(--booking-line);border-top:0;border-radius:0 0 18px 18px;padding:20px 24px;display:grid;grid-template-columns:1fr 1fr .75fr 1.1fr;gap:12px}
.booking-search label,.guest-grid label{display:block}
.booking-search label span,.guest-grid label>span{display:block;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:#64798c;margin:0 0 7px}
.booking-search input,.booking-search select,.guest-grid input,.guest-grid select,.guest-grid textarea{width:100%;border:1px solid #cdd9e3;border-radius:10px;background:#fbfdff;color:var(--booking-navy);font:700 15px Arial,sans-serif;padding:13px 14px;outline:none}
.booking-search input:focus,.booking-search select:focus,.guest-grid input:focus,.guest-grid select:focus,.guest-grid textarea:focus{border-color:#bd8712;box-shadow:0 0 0 3px rgba(221,167,47,.14)}
.booking-search button{align-self:end;min-height:47px;border:0;border-radius:10px;background:linear-gradient(135deg,#edc257,#dca42d);color:var(--booking-navy);font-weight:900;font-size:14px;cursor:pointer}
.booking-search button b{margin-left:8px}
.booking-alert{margin:18px 0 0;padding:15px 18px;border-radius:12px;font-weight:700}
.booking-alert.error{background:#fff0f0;border:1px solid #efc8c8;color:#ad3039}
.booking-results-head{display:flex;justify-content:space-between;align-items:end;gap:20px;padding:46px 4px 20px}
.booking-results-head h2{font:700 34px Georgia,serif;color:var(--booking-navy);margin:7px 0}
.booking-results-head p{margin:0;color:var(--booking-muted)}
.booking-results-head>a{color:var(--booking-navy);font-weight:900;text-decoration:none;border-bottom:2px solid var(--booking-gold);padding-bottom:5px}
.booking-room-list{display:grid;gap:17px}
.booking-room-card{display:grid;grid-template-columns:320px minmax(0,1fr) 220px;background:#fff;border:1px solid var(--booking-line);border-radius:18px;overflow:hidden;box-shadow:0 10px 32px rgba(9,38,64,.06);transition:.2s}
.booking-room-card:hover,.booking-room-card.selected{transform:translateY(-2px);border-color:#d2a23a;box-shadow:0 18px 45px rgba(9,38,64,.12)}
.booking-room-card figure{min-height:230px;margin:0;background-size:cover;background-position:center;position:relative}
.booking-room-card figure span{position:absolute;left:15px;top:15px;background:#e4f7ec;color:#08724c;border-radius:20px;padding:7px 11px;font-size:11px;font-weight:900}
.room-copy{padding:27px}
.room-copy>span{color:#a97813;font-size:11px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.room-copy h3{font:700 28px Georgia,serif;color:var(--booking-navy);margin:7px 0 10px}
.room-copy p{color:#687d8f;line-height:1.55;margin:0}
.room-amenities{display:flex;gap:8px 15px;flex-wrap:wrap;margin-top:18px}
.room-amenities span{font-size:12px;color:#476073}
.room-price{padding:27px 24px;border-left:1px solid var(--booking-line);display:flex;flex-direction:column;justify-content:center}
.room-price small,.room-price span{color:#718396}
.room-price strong{font:700 31px Georgia,serif;color:var(--booking-navy);margin:5px 0}
.room-price span{font-size:11px}
.room-price a{margin-top:20px;background:var(--booking-navy);color:#fff;text-decoration:none;text-align:center;border-radius:9px;padding:13px 10px;font-weight:900}
.booking-room-card.selected .room-price a{background:var(--booking-gold);color:var(--booking-navy)}
.booking-empty{background:#fff;border:1px dashed #c8d6e1;border-radius:18px;text-align:center;padding:60px 20px}
.booking-empty>span{font-size:34px;color:var(--booking-gold)}
.booking-empty h3{font:700 27px Georgia,serif;margin:12px 0}
.booking-empty p{color:var(--booking-muted)}
.booking-empty a{display:inline-block;margin-top:10px;color:var(--booking-navy);font-weight:900}
.guest-form-section{display:grid;grid-template-columns:.8fr 1.2fr;background:#fff;border:1px solid var(--booking-line);border-radius:20px;overflow:hidden;margin-top:28px;box-shadow:0 20px 55px rgba(7,31,54,.1)}
.guest-form-intro{padding:34px;background:linear-gradient(145deg,#071f39,#123c62);color:#fff}
.guest-form-intro h2{font:700 33px Georgia,serif;margin:9px 0}
.guest-form-intro>p{color:#cbd9e5;line-height:1.55}
.chosen-summary{background:#fff;color:var(--booking-navy);border-radius:14px;overflow:hidden;margin-top:25px}
.chosen-summary figure{height:150px;margin:0;background-size:cover;background-position:center}
.chosen-summary div{padding:17px}
.chosen-summary small,.chosen-summary b,.chosen-summary span,.chosen-summary strong{display:block}
.chosen-summary small{color:#a77610;font-size:10px;font-weight:900;letter-spacing:.1em}
.chosen-summary b{font:700 23px Georgia,serif;margin:5px 0}
.chosen-summary span{font-size:12px;color:#718396}
.chosen-summary strong{margin-top:10px;font-size:20px}
.guest-form{padding:34px}
.guest-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}
.guest-grid .wide{grid-column:1/-1}
.guest-grid textarea{min-height:115px;resize:vertical;font-weight:500}
.booking-consent{display:flex;gap:10px;align-items:flex-start;margin:20px 0;color:#5f7487;font-size:12px;line-height:1.5}
.booking-consent input{margin-top:3px}
.send-room-request{width:100%;border:0;border-radius:11px;background:linear-gradient(135deg,#edc257,#dca42d);color:var(--booking-navy);padding:15px 18px;display:flex;justify-content:space-between;gap:15px;font-weight:900;cursor:pointer}
.send-room-request b{font-size:12px}
.booking-success{width:min(940px,calc(100% - 32px));margin:-48px auto 80px;position:relative;background:#fff;border:1px solid var(--booking-line);border-radius:22px;padding:42px;text-align:center;box-shadow:0 25px 70px rgba(5,30,53,.16)}
.success-mark{width:66px;height:66px;border-radius:50%;background:#def5e8;color:#078050;display:grid;place-items:center;font-size:31px;font-weight:900;margin:0 auto 18px}
.booking-success>span{color:#078050;font-size:11px;font-weight:900;letter-spacing:.14em}
.booking-success h2{font:700 35px Georgia,serif;color:var(--booking-navy);margin:8px 0}
.booking-success>p{color:#687c8e}
.success-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:25px 0}
.success-grid div{background:#f5f8fb;border-radius:11px;padding:15px}
.success-grid small,.success-grid b{display:block}
.success-grid small{color:#798b9b;font-size:10px;text-transform:uppercase}
.success-grid b{margin-top:6px;color:var(--booking-navy)}
.success-actions{display:flex;justify-content:center;gap:10px}
.success-actions a{border:1px solid #cedae4;color:var(--booking-navy);text-decoration:none;border-radius:9px;padding:12px 18px;font-weight:900}
.success-actions a.primary{background:var(--booking-navy);color:#fff}
.booking-page+.mh-footer{margin-top:0}
@media(max-width:960px){.booking-search{grid-template-columns:1fr 1fr}
.booking-room-card{grid-template-columns:260px 1fr}
.room-price{grid-column:1/-1;border-left:0;border-top:1px solid var(--booking-line);display:grid;grid-template-columns:1fr 1fr auto;align-items:center;gap:10px}
.room-price a{margin:0}
.guest-form-section{grid-template-columns:1fr}
.chosen-summary{display:grid;grid-template-columns:160px 1fr}
.chosen-summary figure{height:100%}
.success-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){.booking-hero{min-height:300px;padding:36px 20px}
.booking-hero h1{font-size:39px}
.booking-shell{width:min(100% - 18px,1320px);margin-top:-24px}
.booking-steps{padding:13px 10px}
.booking-steps>div{gap:6px}
.booking-steps>div+div{padding-left:8px}
.booking-steps i{width:28px;height:28px}
.booking-steps b{font-size:11px}
.booking-steps small{display:none}
.booking-search{grid-template-columns:1fr;padding:17px}
.booking-results-head{display:block;padding-top:34px}
.booking-results-head h2{font-size:28px}
.booking-results-head>a{display:inline-block;margin-top:14px}
.booking-room-card{grid-template-columns:1fr}
.booking-room-card figure{min-height:220px}
.room-copy{padding:21px}
.room-price{display:block;padding:21px;border-top:1px solid var(--booking-line)}
.room-price a{display:block;margin-top:16px}
.guest-form-intro,.guest-form{padding:22px}
.guest-grid{grid-template-columns:1fr}
.guest-grid .wide{grid-column:auto}
.chosen-summary{grid-template-columns:110px 1fr}
.send-room-request{display:block}
.send-room-request b{display:block;margin-top:5px}
.booking-success{padding:28px 18px}
.success-grid{grid-template-columns:1fr}
.success-actions{display:grid}
.success-actions a{display:block}
.nav{position:relative}
}

.booking-date-field>span{display:block;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:#64798c;margin:0 0 7px}
.booking-date-trigger{width:100%;min-height:47px!important;display:flex!important;align-items:center;justify-content:space-between;border:1px solid #cdd9e3!important;border-radius:10px!important;background:#fbfdff!important;color:var(--booking-navy)!important;padding:12px 14px!important;font-size:14px!important;text-align:left;box-shadow:none!important}
.booking-date-trigger:hover,.booking-date-trigger:focus{border-color:#bd8712!important;box-shadow:0 0 0 3px rgba(221,167,47,.14)!important}
.booking-date-trigger i{width:30px;height:30px;border-radius:8px;background:#fff2c9;color:#a56e00;display:grid;place-items:center;font-style:normal}
.booking-search>button[type=submit]{align-self:end;min-height:47px}
.booking-calendar{position:fixed;inset:0;z-index:10000;display:none}
.booking-calendar.open{display:block}
.booking-calendar-backdrop{position:absolute;inset:0;border:0;background:rgba(3,18,33,.72);backdrop-filter:blur(7px)}
.booking-calendar-dialog{position:relative;width:min(910px,calc(100% - 28px));max-height:calc(100vh - 32px);overflow:auto;margin:16px auto;background:#fff;border-radius:22px;box-shadow:0 35px 100px rgba(0,0,0,.28)}
.booking-calendar-dialog>header{display:flex;justify-content:space-between;gap:24px;padding:25px 28px 19px;background:linear-gradient(135deg,#071f39,#123e67);color:#fff}
.booking-calendar-dialog>header span{font-size:10px;font-weight:900;letter-spacing:.17em;color:#f1bd3f}
.booking-calendar-dialog>header h2{font:700 29px Georgia,serif;margin:6px 0}
.booking-calendar-dialog>header p{margin:0;color:#c9d7e3;font-size:13px}
.booking-calendar-x{width:38px;height:38px;border:1px solid rgba(255,255,255,.23);border-radius:50%;background:rgba(255,255,255,.08);color:#fff;font-size:24px;cursor:pointer}
.booking-calendar-selection{display:grid;grid-template-columns:1fr auto 1fr auto;align-items:center;gap:10px;padding:18px 28px;background:#f7f9fb;border-bottom:1px solid #e3eaf0}
.booking-calendar-selection button{border:1px solid #d8e2ea;background:#fff;border-radius:11px;padding:11px 13px;text-align:left;color:var(--booking-navy);cursor:pointer}
.booking-calendar-selection button.active{border-color:#d9a52e;box-shadow:0 0 0 3px rgba(221,167,47,.13)}
.booking-calendar-selection small,.booking-calendar-selection b{display:block}
.booking-calendar-selection small{font-size:9px;color:#788b9b;letter-spacing:.09em}
.booking-calendar-selection b{margin-top:4px}
.booking-calendar-selection>span{font-size:20px;color:#9aaab8}
.booking-calendar-selection em{font-style:normal;background:#e9f7ef;color:#08714c;border-radius:20px;padding:8px 11px;font-size:11px;font-weight:900}
.booking-calendar-toolbar{display:flex;justify-content:space-between;align-items:center;padding:17px 28px 5px}
.booking-calendar-toolbar button{width:38px;height:38px;border:1px solid #d9e3eb;border-radius:10px;background:#fff;color:var(--booking-navy);cursor:pointer;font-size:18px}
.booking-calendar-toolbar button:disabled{opacity:.3;cursor:not-allowed}
.booking-calendar-toolbar strong{font:700 17px Georgia,serif}
.booking-calendar-months{display:grid;grid-template-columns:1fr 1fr;gap:28px;padding:12px 28px 22px}
.booking-calendar-month h3{font:700 17px Georgia,serif;text-align:center;margin:0 0 13px;color:var(--booking-navy)}
.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,1fr)}
.calendar-weekdays span{text-align:center;color:#8797a6;font-size:9px;font-weight:900;padding:7px}
.calendar-days button{aspect-ratio:1;border:0;background:transparent;color:#1a344c;border-radius:50%;font-weight:800;cursor:pointer;position:relative}
.calendar-days button:hover:not(:disabled){background:#fff1c8;color:#8b5d00}
.calendar-days button.outside{color:#aeb9c2}
.calendar-days button:disabled{color:#d4dbe0;cursor:not-allowed;text-decoration:line-through}
.calendar-days button.today:not(.selected){box-shadow:inset 0 0 0 1px #d6a22d}
.calendar-days button.in-range{border-radius:0;background:#fff3d1}
.calendar-days button.selected{background:var(--booking-navy);color:#fff;border-radius:50%}
.booking-calendar-dialog>footer{display:flex;align-items:center;justify-content:space-between;gap:15px;border-top:1px solid #e3eaf0;padding:17px 28px}
.booking-calendar-dialog>footer p{margin:0;color:#60768a;font-size:11px}
.booking-calendar-dialog>footer p i{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--booking-navy);margin-right:5px}
.booking-calendar-dialog>footer p span{margin-left:13px;color:#91a0ad}
.booking-calendar-dialog>footer>div{display:flex;gap:8px}
.calendar-secondary,.calendar-primary{border-radius:9px;padding:11px 17px;font-weight:900;cursor:pointer}
.calendar-secondary{background:#fff;border:1px solid #cfdae3;color:var(--booking-navy)}
.calendar-primary{background:linear-gradient(135deg,#edc257,#dca42d);border:1px solid #dca42d;color:var(--booking-navy)}
.calendar-primary:disabled{opacity:.45;cursor:not-allowed}
.booking-calendar-open{overflow:hidden}
@media(max-width:700px){
 .booking-calendar-dialog{width:100%;height:100%;max-height:none;margin:0;border-radius:0}
 .booking-calendar-dialog>header,.booking-calendar-selection,.booking-calendar-toolbar,.booking-calendar-months,.booking-calendar-dialog>footer{padding-left:17px;padding-right:17px}
 .booking-calendar-selection{grid-template-columns:1fr auto 1fr}
 .booking-calendar-selection em{grid-column:1/-1;text-align:center}
 .booking-calendar-months{grid-template-columns:1fr}
 .booking-calendar-dialog>footer{position:sticky;bottom:0;background:#fff}
 .booking-calendar-dialog>footer p{display:none}
 .booking-calendar-dialog>footer>div{width:100%}
 .booking-calendar-dialog>footer button{flex:1}
}
