body{flex-direction:column;align-items:center;margin:0;padding:0;display:flex}.section-head{text-align:center;width:100%;margin-bottom:2rem;padding-bottom:1.5rem;position:relative}.section-head:after{content:"";background-color:#ccc;width:100vw;height:1px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.section-head .main-heading{font-size:var(--font-size-main-heading);margin-bottom:.5rem;font-weight:600;display:block}.section-head .sub-heading{color:var(--secondary-color);font-size:var(--font-size-base);max-width:60ch;margin:.5rem auto 0;line-height:1.4;display:block}.promo-note strong{font-weight:var(--font-weight-bold)}.title-image-container{text-align:center;width:100%;margin:0;padding:0}.title-image{width:100%;height:auto;margin:0;padding:0;display:block}.container{flex-direction:row;gap:20px;width:100%;max-width:1200px;margin-top:20px;margin-bottom:5rem;padding:0 20px;display:flex}.booking-container{background-color:#fff;border-radius:10px;width:60%;padding:30px;box-shadow:0 0 10px #0000001a}.summary-container{background-color:#fff;border-radius:10px;width:40%;max-height:calc(100vh - 40px);padding:20px;position:relative;overflow-y:auto;box-shadow:0 0 15px #0000001a}.booking-title{text-align:center;margin-bottom:20px}.calendar-nav{justify-content:space-between;align-items:center;display:flex}#prev-month-button{order:1}#next-month-button{order:2;margin-left:auto}.calendar-nav button{cursor:pointer;background-color:#0000;border:none;font-size:2em}.calendar-nav button:focus{outline:none}.calendar{flex-direction:row;justify-content:space-between;gap:20px;display:flex}.calendar .month{flex-shrink:0;width:45%}.calendar h3{text-align:center;font-size:var(--font-size-large);margin-bottom:10px}.calendar .days{grid-template-columns:repeat(7,1fr);gap:5px;display:grid}.calendar .day{text-align:center;cursor:pointer;border-radius:50%;width:35px;height:35px;padding:0;font-size:1em;line-height:35px;display:inline-block;position:relative}.calendar .day.disabled{color:#ccc;cursor:default;pointer-events:none;background-color:#0000!important}.calendar .day.booked,.calendar .day.past{color:#d3d3d3;pointer-events:none;background-color:#0000;text-decoration:line-through}.calendar .day.invalid{background-color:var(--secondary-color);color:#fff;animation:.5s shake}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}50%{transform:translate(5px)}75%{transform:translate(-5px)}}.calendar .day.selected,.calendar .day:hover{background-color:var(--secondary-color);color:#fff}.calendar .day.in-range{background-color:var(--secondary-extreme-light);color:#000}.calendar .day-wrapper{flex-direction:column;align-items:center;display:flex}.calendar .day-wrapper span{display:block}.calendar .day-wrapper .weekday{color:#666;font-size:.8em}.price-per-night{justify-content:space-between;margin-bottom:20px;font-size:24px;font-weight:700;display:flex}.date-display{border-bottom:1px solid #ccc;justify-content:space-between;padding:10px 0;font-size:16px;display:flex}#display-check-in,#display-check-out{font-size:16px;font-weight:700}.guests-selector{margin-bottom:20px;position:relative}.guests-selector button{text-align:left;cursor:pointer;background-color:#fff;border:1px solid #ccc;border-radius:5px;justify-content:space-between;align-items:center;width:100%;padding:10px;font-size:14px;display:flex}.guests-dropdown{z-index:10;background-color:#fff;border:1px solid #ccc;border-radius:10px;width:100%;padding:15px;font-size:14px;display:none;position:absolute;top:100%;left:0;box-shadow:0 0 15px #0000001a}.guests-dropdown.active{display:block}.guests-dropdown div{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.guests-dropdown label{color:#333;font-weight:700}.guest-counter{align-items:center;display:flex}.guest-counter button{cursor:pointer;color:#333;background-color:#f0f0f0;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:18px;transition:background-color .3s;display:flex}.guest-counter button:hover{background-color:#ddd}.guest-counter span{text-align:center;width:20px;margin:0 15px;font-size:16px}.progress-bar{justify-content:space-between;align-items:center;width:100%;max-width:1200px;margin-bottom:20px;padding-left:12px;padding-right:12px;display:flex}.step{align-items:center;display:flex;position:relative}.step .circle{color:#fff;background-color:#ccc;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:16px;font-weight:700;display:flex}.step.completed .circle{background-color:var(--secondary-color)}.step span{color:#333;margin-left:10px;font-size:14px}.line{background-color:#ccc;flex-grow:1;height:1px;margin:0 10px}.step.completed span{color:var(--secondary-color);font-weight:700}#reserve-button{background-color:var(--secondary-color);color:#fff;cursor:pointer;border:none;border-radius:5px;width:100%;margin-top:20px;padding:12px;font-size:16px;transition:background-color .3s}#reserve-button:hover{background-color:var(--secondary-light)}.disclaimer{text-align:center;color:#888;margin:15px 0;font-size:14px}.cost-breakdown p{justify-content:space-between;margin:5px 0;font-size:14px;display:flex}.cost-breakdown .total{margin-top:10px;font-size:18px;font-weight:700}.villa-note{color:#666;border-top:1px solid #ccc;margin-top:15px;padding-top:10px;font-size:14px;line-height:1.4}.promo-code{flex-direction:column;margin-bottom:20px;display:flex}.promo-code label{margin-bottom:5px;font-size:14px;font-weight:700}.promo-code-input-container{gap:10px;display:flex}.promo-code-input-container .promo-code-input-container{flex-direction:column;gap:8px}.promo-code input{border:1px solid #ccc;border-radius:5px;flex:1;padding:10px;font-size:16px}#apply-promo-button{color:#fff;cursor:pointer;background-color:#06c;border:none;border-radius:5px;padding:12px;font-size:16px;transition:background-color .3s}#apply-promo-button:disabled{cursor:not-allowed;background-color:#ccc}#apply-promo-button:enabled:hover{background-color:#005bb5}.promo-feedback{color:red;margin-top:10px;font-size:14px}.promo-feedback.success{color:green}#promo-applied-section{background:var(--primary-color);border:1px solid #e1e6e1;border-radius:5px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;padding:15px;display:flex}#promo-applied-section .promo-banner__content{flex-direction:column;flex:1;display:flex}#promo-applied-section .promo-banner__title{font-size:16px;font-weight:700;line-height:1}#promo-applied-section .promo-percent-line{color:#333;margin-top:2px;font-size:14px}#promo-applied-section .promo-banner__sub{color:#555;margin-top:4px;font-size:13px;line-height:1.2}#promo-applied-section .promo-amount{font-weight:700}#promo-applied-section .promo-banner__remove{appearance:none;color:#333;cursor:pointer;background:#0000000a;border:1px solid #0000001f;border-radius:10px;padding:6px 10px;font-size:13px;text-decoration:none;transition:background .15s,border-color .15s,transform 50ms}#promo-applied-section .promo-banner__remove:hover{background:#0000000f;border-color:#0000002e}#promo-applied-section .promo-banner__remove:active{transform:translateY(1px)}.close-dropdown{text-align:right;cursor:pointer;color:#06c;margin-top:10px;font-size:14px}.close-dropdown:hover{text-decoration:underline}.booking-error{color:#b30738;background-color:#ffe4eb;border-left:5px solid #b30738;border-radius:3px;margin-top:15px;padding:15px;font-size:15px;font-weight:500;display:none}.booking-error.visible{display:block}@media (width<=768px){.container{flex-direction:column;gap:10px}.booking-container,.summary-container{width:100%}.calendar{flex-direction:column}.calendar .month{width:100%}.price-per-night{font-size:20px}.date-display,.guests-selector button,.guest-counter span{font-size:14px}#reserve-button{padding:10px;font-size:14px}#promo-applied-section{align-items:flex-start;gap:10px}.promo-code-input-container{flex-direction:column;gap:8px}#apply-promo-button{box-sizing:border-box;width:100%;margin-top:4px}}.tooltip{color:#fff;pointer-events:none;opacity:0;z-index:1000;background:#000;border-radius:5px;padding:5px 10px;font-size:14px;transition:opacity .3s;position:absolute}.tooltip.visible{opacity:1}.footer{align-self:stretch;width:100%}.footer-container{width:100%;max-width:1200px;margin:0 auto}@media (width<=480px){.calendar-nav button{font-size:1.5em}.calendar .day{width:30px;height:30px;line-height:30px}.price-per-night{font-size:18px}.date-display{font-size:12px}#reserve-button{padding:8px;font-size:12px}}@media (width<=930px){.container{flex-direction:column;align-items:center}.booking-container,.summary-container{width:100%;max-width:600px}.booking-container{margin-bottom:20px}}.cost-breakdown .total{border-top:1px solid #e6e6e6;justify-content:space-between;align-items:baseline;gap:12px;margin-top:12px;padding:10px 0 4px;font-size:16px;display:flex}#total-cost{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;font-size:clamp(18px,2.2vw,24px);font-weight:800;line-height:1.1}.incl{color:#666;text-align:right;grid-column:1/-1;justify-content:flex-end;align-items:center;gap:6px;width:100%;margin-top:-6px;font-size:12px;display:flex}.step.active .circle{background:var(--secondary-color);color:#fff;border-color:var(--secondary-color);box-shadow:0 0 0 4px color-mix(in srgb, var(--secondary-color) 25%, transparent)}.progress-bar .line{background:linear-gradient(90deg, var(--secondary-color), var(--secondary-light));height:3px}.cost-breakdown .discount-row{color:#b30738;justify-content:space-between;margin:5px 0 0;font-size:14px;display:flex}.cost-breakdown .discount-row #discount-value{font-variant-numeric:tabular-nums;white-space:nowrap}.promo-feedback{border-left:5px solid #0000;border-radius:8px;align-items:center;gap:8px;margin-top:10px;padding:10px 12px;font-size:15px;line-height:1.3;transition:opacity .3s;display:none}.promo-feedback.visible{display:flex}.promo-feedback .icon{font-variation-settings:"wght" 600;font-family:Material Symbols Outlined;font-size:20px;line-height:1}.promo-feedback.success{color:#0f5132;background:#d1e7dd;border-left-color:#0f5132}.promo-feedback.error{color:#842029;background:#f8d7da;border-left-color:#842029}.promo-feedback.fade-out{opacity:0}#promo-applied-section .promo-percent{color:var(--secondary-color);font-size:18px;font-weight:800}@media (width<=992px){.step{text-align:center;flex-direction:column;align-items:center}.step-label{margin-top:6px;font-size:13px;margin-left:0!important}}@media (width<=768px){.progress-bar{padding-left:20px;padding-right:20px}.step .circle{width:32px;height:32px;font-size:15px}.line{margin:0 8px}.label-full{display:none}.label-short{display:inline}.step-label{font-size:12px}}@media (width<=450px){.progress-bar{padding-left:15px;padding-right:15px}.step-label{display:none}.line{margin:0 6px}}@media (width<=380px){.step .circle{width:28px;height:28px;font-size:13px}.line{margin:0 5px}}@media (width>=769px){.label-full{display:inline}.label-short{display:none}}
