.modal-overlay{position:fixed;inset:0;background:#000000e0;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:20px}.modal-content{background:#111;border:1px solid rgba(201,168,76,.15);border-radius:10px;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;position:relative;box-shadow:0 24px 80px #000000b3;scrollbar-width:thin;scrollbar-color:#333 #111}.modal-content--wide{max-width:840px}.modal-gallery{background:#0a0a0a;position:relative}.modal-gallery-main{width:100%;height:360px;overflow:hidden}.modal-gallery-main img{width:100%;height:100%;object-fit:cover;display:block;transition:opacity .3s ease}.modal-gallery-thumbs{display:flex;gap:6px;padding:10px;overflow-x:auto;background:#0a0a0a;border-bottom:1px solid rgba(255,255,255,.06);scrollbar-width:thin;scrollbar-color:#333 #0a0a0a}.modal-gallery-thumb{flex-shrink:0;width:68px;height:50px;border:2px solid transparent;border-radius:3px;overflow:hidden;cursor:pointer;padding:0;background:none;opacity:.5;transition:opacity .2s,border-color .2s}.modal-gallery-thumb img{width:100%;height:100%;object-fit:cover;display:block}.modal-gallery-thumb:hover,.modal-gallery-thumb.active{opacity:1;border-color:#c9a84c}.modal-gallery-main{position:relative}.gallery-arrow{position:absolute;top:50%;transform:translateY(-50%);background:#0000008c;border:1px solid rgba(255,255,255,.15);color:#fff;font-size:2rem;line-height:1;width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s,transform .2s;z-index:10;padding:0}.gallery-arrow:hover{background:#c9a84cb3;transform:translateY(-50%) scale(1.08)}.gallery-arrow--prev{left:12px}.gallery-arrow--next{right:12px}.gallery-counter{position:absolute;bottom:12px;right:14px;background:#0009;color:#ffffffbf;font-family:Josefin Sans,sans-serif;font-size:.68rem;letter-spacing:.1em;padding:4px 10px;border-radius:20px;pointer-events:none}.modal-close{position:absolute;top:16px;right:16px;background:#00000080;border:1px solid rgba(255,255,255,.1);font-size:1.1rem;cursor:pointer;color:#d4d4d4;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s;z-index:1001}.modal-close:hover{background:#c9a84c33;color:#c9a84c;border-color:#c9a84c66}.modal-header{padding:32px 30px 24px;color:#fff;border-radius:10px 10px 0 0;position:relative}.modal-header h2{font-family:Playfair Display,serif;font-size:1.9rem;font-weight:700;margin:0 40px 0 0;line-height:1.2}.modal-header-meta{margin-top:8px;display:flex;gap:16px;font-family:Josefin Sans,sans-serif;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;opacity:.8}.modal-body{padding:28px 30px 32px}.modal-section{margin-bottom:28px}.modal-section:last-child{margin-bottom:0}.modal-section h4{font-family:Josefin Sans,sans-serif;font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:#ffffff73;margin-bottom:14px;font-weight:600}.modal-section p{font-family:Josefin Sans,sans-serif;font-size:.88rem;color:#fff;line-height:1.75;letter-spacing:.02em}.modal-section ul{list-style:none;padding:0;margin:0}.modal-section ul li{font-family:Josefin Sans,sans-serif;font-size:.85rem;color:#fff;margin-bottom:8px;display:flex;gap:8px;align-items:flex-start;letter-spacing:.02em}.modal-info-chips{display:flex;gap:10px;flex-wrap:wrap}.modal-chip{display:flex;align-items:center;gap:6px;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:20px;padding:6px 14px;font-family:Josefin Sans,sans-serif;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:#d4d4d4}.modal-chip-icon{font-size:.9rem}.amenities-list{display:grid!important;grid-template-columns:1fr 1fr;gap:8px 12px;list-style:none!important;padding:0!important;margin:0!important}.amenities-list li{font-family:Josefin Sans,sans-serif!important;font-size:.8rem!important;letter-spacing:.03em;color:#fff!important;display:flex!important;align-items:center;gap:7px}.amenities-list li:before{content:"✓";color:#c9a84c;font-weight:700;flex-shrink:0}.guest-selector{display:flex;align-items:center;gap:0;background:#ffffff0a;border:1px solid rgba(201,168,76,.25);border-radius:6px;overflow:hidden;width:fit-content}.guest-step-btn{background:none;border:none;color:#c9a84c;font-size:1.3rem;width:42px;height:42px;cursor:pointer;transition:background .2s;display:flex;align-items:center;justify-content:center}.guest-step-btn:hover:not(:disabled){background:#c9a84c26}.guest-step-btn:disabled{color:#444;cursor:not-allowed}.guest-count-display{font-family:Josefin Sans,sans-serif;font-size:1rem;color:#fff;min-width:80px;text-align:center;padding:0 10px;border-left:1px solid rgba(201,168,76,.2);border-right:1px solid rgba(201,168,76,.2);height:42px;display:flex;align-items:center;justify-content:center;gap:5px}.guest-count-display span{font-family:Josefin Sans,sans-serif;font-size:.65rem;letter-spacing:.08em;color:#d4d4d480;text-transform:uppercase}.modal-dates-bar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;background:#ffffff0a;border:1px solid rgba(201,168,76,.15);border-radius:6px;padding:14px 18px}.modal-date-item{display:flex;flex-direction:column;gap:3px}.modal-date-label{font-family:Josefin Sans,sans-serif;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:#c9a84c}.modal-date-value{font-family:Josefin Sans,sans-serif;font-size:.88rem;color:#fff;letter-spacing:.03em}.modal-dates-arrow{color:#c9a84c80;font-size:1.2rem;text-align:center}.price-section{background:linear-gradient(135deg,#1a1a1a,#0f0f0f);border:1px solid rgba(201,168,76,.2);padding:24px;border-radius:8px}.price-section h4{color:#c9a84c!important;margin-bottom:10px}.price-display{font-family:Playfair Display,serif;font-size:2.6rem;font-weight:700;color:#e8c97a;margin-bottom:6px;line-height:1}.price-per-night-label{font-family:Josefin Sans,sans-serif;font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:#d4d4d473;margin-bottom:16px}.price-breakdown{display:flex;flex-direction:column;gap:5px;margin-bottom:20px;padding:12px 14px;background:#ffffff08;border-radius:5px;border:1px solid rgba(255,255,255,.05)}.price-breakdown span{font-family:Josefin Sans,sans-serif;font-size:.72rem;letter-spacing:.04em;color:#fff9}.unavailable-message{color:#f0f0f099;font-family:Cormorant Garamond,serif;font-size:1.05rem;font-style:italic;text-align:center;padding:20px}.btn-reserve-now{width:100%;padding:14px;background:#c9a84c;color:#0a0a0a;border:none;border-radius:5px;font-family:Josefin Sans,sans-serif;font-size:.82rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;cursor:pointer;transition:background .25s,transform .2s;text-decoration:none;display:block}.btn-reserve-now:hover{background:#e8c97a;transform:translateY(-1px)}.reservation-page{min-height:100vh;background:#0a0a0a;padding:100px 60px;color:#f0f0f0}.reservation-container{max-width:900px;margin:0 auto}.reservation-page h1{font-family:Playfair Display,serif;font-size:2.4rem;font-weight:700;margin-bottom:50px;text-align:center;color:#f0f0f0}.reservation-summary{background:#ffffff08;border:1px solid rgba(201,168,76,.2);padding:40px;border-radius:8px;margin-bottom:50px}.reservation-summary h3{font-family:Playfair Display,serif;font-size:1.4rem;color:#c9a84c;margin-bottom:30px;font-weight:700}.summary-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.summary-item{display:flex;justify-content:space-between;align-items:center;padding:15px;border-bottom:1px solid rgba(201,168,76,.1)}.summary-item .label{font-family:Josefin Sans,sans-serif;font-size:.8rem;letter-spacing:.1em;color:#f0f0f080;text-transform:uppercase}.summary-item .value{font-family:Cormorant Garamond,serif;font-size:1.1rem;color:#f0f0f0}.summary-item.highlight{background:#c9a84c14;border-radius:4px;border:1px solid rgba(201,168,76,.25)}.summary-item.highlight .label{color:#c9a84c;font-weight:700}.summary-item.highlight .value{color:#e8c97a;font-size:1.3rem;font-weight:700}.guest-information{background:#ffffff08;border:1px solid rgba(201,168,76,.2);padding:40px;border-radius:8px}.guest-information h3{font-family:Playfair Display,serif;font-size:1.4rem;color:#c9a84c;margin-bottom:30px;font-weight:700}.reservation-form{display:flex;flex-direction:column;gap:25px}.form-group{display:flex;flex-direction:column}.form-group label{font-family:Josefin Sans,sans-serif;font-size:.78rem;letter-spacing:.15em;text-transform:uppercase;color:#f0f0f099;margin-bottom:10px;font-weight:400}.form-group input{padding:14px;background:#ffffff0d;border:1px solid rgba(201,168,76,.25);border-radius:4px;font-family:Cormorant Garamond,serif;font-size:1rem;color:#f0f0f0;transition:border-color .2s}.form-group input:focus{outline:none;border-color:#c9a84c;background:#ffffff14}.form-group input::placeholder{color:#f0f0f04d}.btn-continue{padding:14px;background:#c9a84c;color:#0a0a0a;border:none;border-radius:4px;font-family:Josefin Sans,sans-serif;font-size:.85rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;cursor:pointer;transition:background .25s,transform .2s;margin-top:20px}.btn-continue:hover{background:#e8c97a;transform:translateY(-2px)}.payment-component{background:#ffffff08;border:1px solid rgba(201,168,76,.2);padding:40px;border-radius:8px}.payment-header{margin-bottom:36px}.payment-header h3{font-family:Playfair Display,serif;font-size:1.4rem;color:#c9a84c;margin-bottom:10px;font-weight:700}.payment-amount{font-family:Cormorant Garamond,serif;font-size:1.15rem;color:#f0f0f0;margin:0}.payment-form{display:flex;flex-direction:column;gap:24px}.phone-input{padding:12px;background:#ffffff0d;border:1px solid rgba(201,168,76,.25);border-radius:4px;font-family:Cormorant Garamond,serif;font-size:1rem;color:#f0f0f0;transition:border-color .2s}.phone-input:focus{outline:none;border-color:#c9a84c;background:#ffffff14}.hint{font-family:Josefin Sans,sans-serif;font-size:.72rem;color:#f0f0f073;letter-spacing:.05em;margin-top:5px;margin-bottom:0}.error-message{background:#ef44441a;color:#fca5a5;padding:14px;border-radius:4px;border-left:3px solid #ef4444;font-family:Cormorant Garamond,serif;font-size:.95rem}.btn-pay-mpesa{padding:14px;background:#10b981;color:#fff;border:none;border-radius:4px;font-family:Josefin Sans,sans-serif;font-size:.85rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;cursor:pointer;transition:background .25s,transform .2s}.btn-pay-mpesa:hover:not(:disabled){background:#059669;transform:translateY(-2px)}.btn-pay-mpesa:disabled{background:#10b98166;cursor:not-allowed}.payment-info{background:#10b98112;border:1px solid rgba(16,185,129,.25);padding:20px;border-radius:4px;margin-top:20px}.payment-info h4{font-family:Playfair Display,serif;font-size:1rem;color:#6ee7b7;margin-bottom:14px;font-weight:700}.payment-info ol{margin:0;padding-left:20px;font-family:Cormorant Garamond,serif;font-size:.95rem;color:#f0f0f099;line-height:1.8}.payment-info li{margin-bottom:6px}.payment-waiting{display:flex;flex-direction:column;align-items:center;gap:18px;padding:40px 20px;text-align:center}.mpesa-spinner{width:48px;height:48px;border:3px solid rgba(201,168,76,.15);border-top-color:#c9a84c;border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.waiting-msg{font-size:1rem;font-weight:600;color:#c9a84c}.waiting-sub{font-size:.85rem;opacity:.6}.payment-failed{display:flex;flex-direction:column;align-items:center;gap:18px;padding:30px 20px;text-align:center}.confirmation-container{background:#ffffff08;border:1px solid rgba(201,168,76,.2);padding:60px 40px;border-radius:8px;text-align:center;max-width:700px;margin:0 auto}.success-icon{font-size:4.5rem;color:#10b981;margin-bottom:16px;animation:bounce .6s ease}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-18px)}}.confirmation-container h2{font-family:Playfair Display,serif;font-size:2.3rem;color:#c9a84c;margin-bottom:36px;font-weight:700}.confirmation-details{background:#0000004d;padding:28px;border-radius:8px;margin-bottom:28px;text-align:left;border:1px solid rgba(201,168,76,.15)}.confirmation-details h3{font-family:Playfair Display,serif;font-size:1.2rem;color:#c9a84c;margin-bottom:22px;font-weight:700}.detail-row{display:flex;justify-content:space-between;align-items:center;padding:11px 0;border-bottom:1px solid rgba(201,168,76,.08);font-family:Cormorant Garamond,serif}.detail-row:last-child{border-bottom:none}.detail-row .label{color:#f0f0f080;font-size:.95rem}.detail-row .value{color:#f0f0f0;font-size:1rem;font-weight:700}.detail-row.highlight{background:#c9a84c14;padding:14px;border-radius:4px;border-bottom:1px solid rgba(201,168,76,.2);margin:18px 0}.detail-row.highlight .label{color:#c9a84c}.detail-row.highlight .value{color:#e8c97a;font-size:1.2rem}.confirmation-message{font-family:Cormorant Garamond,serif;font-size:1.05rem;color:#f0f0f099;margin-bottom:28px;font-style:italic}.btn-back-arrow{display:inline-flex;align-items:center;gap:8px;background:transparent;border:1px solid rgba(201,168,76,.35);color:#c9a84c;padding:10px 20px;border-radius:4px;font-family:Josefin Sans,sans-serif;font-size:.85rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background .25s,border-color .25s,transform .2s;margin-bottom:24px}.btn-back-arrow:hover{background:#c9a84c1a;border-color:#c9a84c;transform:translate(-3px)}.btn-back-home{padding:14px 40px;background:#c9a84c;color:#0a0a0a;border:none;border-radius:4px;font-family:Josefin Sans,sans-serif;font-size:.85rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;cursor:pointer;transition:background .25s,transform .2s}.btn-back-home:hover{background:#e8c97a;transform:translateY(-2px)}@media(max-width:768px){.reservation-page{padding:60px 20px}.reservation-page h1{font-size:1.7rem}.summary-grid{grid-template-columns:1fr}.modal-content{border-radius:8px}.modal-body{padding:22px 18px 28px}.modal-gallery-main{height:240px}.guest-information,.payment-component{padding:28px 18px}.confirmation-container{padding:36px 18px}.confirmation-container h2{font-size:1.7rem}.amenities-list{grid-template-columns:1fr}.modal-dates-bar{grid-template-columns:1fr;gap:8px}.modal-dates-arrow{display:none}}
