.reservation-page{min-height:100vh;background:#f5f5f5;padding:2rem 1rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.reservation-container{max-width:1200px;margin:0 auto}.reservation-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:2rem;gap:2rem;background:#ffffff;border-radius:1rem;overflow:hidden;box-shadow:0 10px 25px rgba(0,0,0,.1)}.reservation-form{padding:2rem;background:#ffffff}.reservation-form__title{font-size:1.5rem;font-weight:700;color:var(--secondary-color);margin-bottom:2rem;text-align:center}.reservation-form__section{margin-bottom:2rem}.reservation-form__section-title{display:flex;align-items:center;gap:.5rem;font-size:1.125rem;font-weight:600;color:var(--secondary-color);margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid var(--primary-color)}.reservation-form__icon{color:var(--primary-color)}.reservation-form__field{margin-bottom:1rem}.reservation-form__field-group{display:grid;grid-template-columns:1fr 1fr;grid-gap:1rem;gap:1rem}.reservation-form__label{display:block;font-size:.875rem;font-weight:500;color:var(--secondary-color);margin-bottom:.5rem}.reservation-form__input,.reservation-form__textarea{width:100%;padding:.75rem;border:1px solid #d1d5db;border-radius:.5rem;font-size:1rem;color:var(--secondary-color);background:#ffffff;transition:all .3s ease;box-sizing:border-box}.reservation-form__input:focus,.reservation-form__textarea:focus{outline:none}.reservation-form__input--error,.reservation-form__input:focus,.reservation-form__textarea:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(255,45,84,.1)}.reservation-form__textarea{resize:vertical;min-height:100px}.reservation-form__error{display:block;color:var(--primary-color);font-size:.75rem;margin-top:.25rem}.reservation-form__progress{margin-bottom:2rem}.reservation-form__progress-bar{width:100%;height:4px;background:#e5e7eb;border-radius:2px;overflow:hidden;margin-bottom:1rem}.reservation-form__progress-fill{height:100%;background:var(--primary-color);transition:width .3s ease}.reservation-form__progress-steps{display:flex;justify-content:space-between;align-items:center}.reservation-form__progress-steps span{width:2rem;height:2rem;border-radius:50%;background:#e5e7eb;color:#6b7280;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.875rem;transition:all .3s ease}.reservation-form__progress-steps span.active{background:var(--primary-color);color:#ffffff}.reservation-form__passenger-control{display:flex;align-items:center;gap:1rem;margin-top:.5rem}.reservation-form__passenger-btn{width:2.5rem;height:2.5rem;border:1px solid var(--primary-color);background:#ffffff;color:var(--primary-color);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;font-weight:600;font-size:1.125rem}.reservation-form__passenger-btn:hover{background:var(--primary-color);color:#ffffff}.reservation-form__passenger-count{min-width:2rem;text-align:center;font-weight:600;font-size:1.125rem;color:var(--secondary-color)}.reservation-form__confirmation{background:#f8fafc;padding:1.5rem;border-radius:.75rem;border:1px solid #e2e8f0}.reservation-form__confirmation h3{color:var(--secondary-color);margin-bottom:1rem;font-size:1.25rem}.reservation-form__summary{display:flex;flex-direction:column;gap:.75rem}.reservation-form__summary p{margin:0;color:#6b7280;line-height:1.5}.reservation-form__summary strong{color:var(--secondary-color);font-weight:600}.reservation-form__actions{display:flex;gap:1rem;justify-content:space-between;margin-top:2rem}.reservation-form__btn-primary{flex:1 1;padding:1rem;background:var(--primary-color);color:#ffffff;border:none;border-radius:.5rem;font-size:1rem;font-weight:600;text-transform:uppercase;cursor:pointer;transition:all .3s ease}.reservation-form__btn-primary:hover:not(:disabled){background:#e11d48;transform:translateY(-2px);box-shadow:0 4px 12px rgba(255,45,84,.3)}.reservation-form__btn-primary:disabled{background:#fca5a5;cursor:not-allowed;transform:none;box-shadow:none}.reservation-form__error-message{background:#fef2f2;border:1px solid #fecaca;color:#dc2626;padding:1rem;border-radius:.5rem;margin-top:1rem;text-align:center;font-weight:500}.reservation-form__btn-secondary{flex:1 1;padding:1rem;background:#ffffff;color:var(--secondary-color);border:1px solid #d1d5db;border-radius:.5rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease}.reservation-form__btn-secondary:hover{border-color:var(--primary-color);color:var(--primary-color)}.reservation-summary{background:#f8fafc;padding:2rem;border-left:1px solid #e5e7eb;width:100%;box-sizing:border-box;overflow:hidden}.reservation-summary__banner{background:var(--secondary-color);color:#ffffff;padding:1rem;text-align:center;font-weight:700;font-size:1.125rem;text-transform:uppercase;margin-bottom:1.5rem;border-radius:.5rem}.reservation-summary__image-container{height:200px;width:100%;border-radius:.75rem;overflow:hidden;margin-bottom:1.5rem;background:#f8fafc;position:relative;box-sizing:border-box}.reservation-summary__yacht-image{width:100%;height:100%;object-fit:cover;object-position:center;border-radius:.75rem}.reservation-summary__swiper{width:100%;height:100%;border-radius:.75rem;overflow:hidden}.reservation-summary__swiper .swiper-wrapper{height:100%}.reservation-summary__swiper .swiper-slide{height:100%;width:100%;display:flex;align-items:center;justify-content:center}.reservation-summary__swiper .swiper-slide img{width:100%;height:100%;object-fit:cover;object-position:center;border-radius:.75rem}.reservation-summary__swiper .swiper-button-next,.reservation-summary__swiper .swiper-button-prev{color:white;background:rgba(0,0,0,.5);border-radius:50%;width:32px;height:32px;margin-top:-16px}.reservation-summary__swiper .swiper-button-next:after,.reservation-summary__swiper .swiper-button-prev:after{font-size:12px;font-weight:700}.reservation-summary__swiper .swiper-button-next{right:10px}.reservation-summary__swiper .swiper-button-prev{left:10px}.reservation-summary__swiper .swiper-pagination{bottom:10px}.reservation-summary__swiper .swiper-pagination-bullet{background:rgba(255,255,255,.5);opacity:1;width:6px;height:6px;margin:0 3px}.reservation-summary__swiper .swiper-pagination-bullet-active{background:var(--primary-color)}.reservation-summary__loading{background:#f8fafc;border-radius:.75rem;width:100%}.reservation-summary__title{font-size:1.25rem;font-weight:600;color:var(--secondary-color);margin-bottom:1rem}.reservation-summary__info{margin-bottom:1.5rem}.reservation-summary__row{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;border-bottom:1px solid #e5e7eb}.reservation-summary__row:last-child{border-bottom:none}.reservation-summary__label{font-weight:500;color:#6b7280}.reservation-summary__value{font-weight:600;color:var(--secondary-color)}.reservation-summary__passengers{display:flex;align-items:center;gap:.5rem}.reservation-summary__passenger-btn{width:2rem;height:2rem;border:1px solid var(--primary-color);background:#ffffff;color:var(--primary-color);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;font-weight:600}.reservation-summary__passenger-btn:hover{background:var(--primary-color);color:#ffffff}.reservation-summary__passenger-count{min-width:2rem;text-align:center;font-weight:600;color:var(--secondary-color)}.reservation-summary__language{margin-top:1.5rem}.reservation-summary__language-label{display:block;font-size:.875rem;font-weight:500;color:var(--secondary-color);margin-bottom:.5rem}.reservation-summary__language-select{width:100%;padding:.75rem;border:1px solid #d1d5db;border-radius:.5rem;font-size:1rem;color:var(--secondary-color);background:#ffffff;cursor:pointer}.reservation-summary__language-select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(255,45,84,.1)}.reservation-summary__loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:200px;color:#6b7280}.reservation-summary__spinner{width:2rem;height:2rem;border:3px solid #e5e7eb;border-top:3px solid var(--primary-color);border-radius:50%;animation:reservation-spin 1s linear infinite;margin-bottom:1rem}@keyframes reservation-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.reservation-summary__description{color:#6b7280;font-size:.875rem;line-height:1.5;margin-bottom:1rem;padding:.75rem;background:#f8fafc;border-radius:.5rem;border-left:3px solid var(--primary-color)}.reservation-summary__yacht-specs{background:#f8fafc;border-radius:.5rem;padding:1rem;margin-bottom:1rem;border:1px solid #e5e7eb}.reservation-summary__spec{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid #e5e7eb}.reservation-summary__spec:last-child{border-bottom:none}.reservation-summary__spec-label{font-weight:600;color:#374151;font-size:.875rem}.reservation-summary__spec-value{color:#6b7280;font-size:.875rem;text-align:right}.reservation-summary__characteristics{margin-top:1rem;padding-top:1rem;border-top:1px solid #e5e7eb}.reservation-summary__characteristics-title{font-size:.875rem;font-weight:600;color:#374151;margin-bottom:.75rem}.reservation-summary__characteristics-list{display:flex;flex-wrap:wrap;gap:.5rem}.reservation-summary__characteristic-item{background:var(--primary-color)}.reservation-summary__characteristic-item,.reservation-summary__characteristic-more{color:white;padding:.25rem .75rem;border-radius:1rem;font-size:.75rem;font-weight:500}.reservation-summary__characteristic-more{background:#6b7280}.reservation-success-page{min-height:100vh;background:linear-gradient(135deg,#f8fafc,#e2e8f0);display:flex;align-items:center;justify-content:center;padding:1rem}.reservation-success-container{max-width:1000px;width:100%}.reservation-success-card{background:#ffffff;border-radius:1rem;box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);overflow:hidden;border:1px solid #e5e7eb;display:flex;min-height:450px}.reservation-success-header{color:white;padding:1.5rem 1.25rem 1.25rem;text-align:center;position:relative;flex:0 0 35%;display:flex;flex-direction:column;justify-content:center;align-items:center}.reservation-success-header,.reservation-success-header:after{background:linear-gradient(135deg,var(--primary-color),#ff6b9d)}.reservation-success-header:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:15px;-webkit-clip-path:polygon(0 0,100% 0,100% 100%,0 80%);clip-path:polygon(0 0,100% 0,100% 100%,0 80%)}.reservation-success-icon{margin-bottom:1rem;animation:reservation-success-bounce .6s ease-out}@keyframes reservation-success-bounce{0%{transform:scale(.3);opacity:0}50%{transform:scale(1.05)}70%{transform:scale(.9)}to{transform:scale(1);opacity:1}}.reservation-success-title{font-size:1.5rem;font-weight:700;margin-bottom:.5rem;text-shadow:0 2px 4px rgba(0,0,0,.1)}.reservation-success-subtitle{font-size:1rem;opacity:.9;margin:0}.reservation-success-content{padding:1.25rem;flex:1 1;display:flex;flex-direction:column;justify-content:center}.reservation-success-folio{text-align:center;margin-bottom:1rem;padding:.75rem;background:#f8fafc;border-radius:.5rem;border:2px solid #e5e7eb}.reservation-success-folio-label{font-size:.75rem;color:#6b7280;font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem}.reservation-success-folio-number{font-size:2rem;font-weight:800;color:var(--primary-color);font-family:Courier New,monospace;text-shadow:0 2px 4px rgba(0,0,0,.1)}.reservation-success-details{margin-bottom:1rem}.reservation-success-section-title{font-size:.875rem;font-weight:600;color:#1f2937;margin-bottom:.75rem;text-align:center}.reservation-success-info-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:.5rem;gap:.5rem}.reservation-success-info-item{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:#f8fafc;border-radius:.375rem;border:1px solid #e5e7eb;transition:all .2s ease}.reservation-success-info-item:hover{background:#f1f5f9;border-color:var(--primary-color);transform:translateY(-1px)}.reservation-success-info-icon{color:var(--primary-color);flex-shrink:0}.reservation-success-info-content{display:flex;flex-direction:column;gap:.25rem;flex:1 1}.reservation-success-info-label{font-size:.875rem;color:#6b7280;font-weight:500}.reservation-success-info-value{font-size:1rem;color:#1f2937;font-weight:600}.reservation-success-description{margin-top:1rem;padding:1rem;background:#fef3c7;border-radius:.5rem;border-left:4px solid #f59e0b}.reservation-success-description-title{font-size:.875rem;font-weight:600;color:#92400e;margin-bottom:.5rem}.reservation-success-description-text{color:#92400e;margin:0;line-height:1.4;font-size:.875rem}.reservation-success-email-notice{display:flex;gap:.5rem;padding:.75rem;background:#dbeafe;border-radius:.375rem;border-left:4px solid #3b82f6;margin-bottom:1rem}.reservation-success-email-icon{color:#3b82f6;flex-shrink:0;margin-top:.25rem}.reservation-success-email-content{flex:1 1}.reservation-success-email-title{font-size:1rem;font-weight:600;color:#1e40af;margin-bottom:.5rem}.reservation-success-email-text{color:#1e40af;margin-bottom:.5rem;line-height:1.5}.reservation-success-email-subtext{color:#1e40af;font-size:.875rem;margin:0;opacity:.8}.reservation-success-actions{text-align:center}.reservation-success-accept-btn{display:inline-flex;align-items:center;gap:.5rem;background:linear-gradient(135deg,var(--primary-color),#ff6b9d);color:white;border:none;padding:.75rem 1.25rem;border-radius:.375rem;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 6px rgba(0,0,0,.1)}.reservation-success-accept-btn:hover{transform:translateY(-2px);box-shadow:0 8px 15px rgba(0,0,0,.2);background:linear-gradient(135deg,var(--primary-dark),#ff5a8a)}.reservation-success-accept-btn:active{transform:translateY(0)}.reservation-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;text-align:center}.reservation-loading__spinner{width:40px;height:40px;border:4px solid #f3f4f6;border-top:4px solid var(--primary-color);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.reservation-loading p{color:var(--secondary-color);font-size:1rem;margin:0}@media (max-width:768px){.reservation-success-page{padding:.5rem;min-height:100vh}.reservation-success-container{max-width:100%}.reservation-success-card{border-radius:.75rem;flex-direction:column;min-height:auto}.reservation-success-header{padding:1.5rem 1rem 1rem;flex:none;display:block}.reservation-success-title{font-size:1.25rem}.reservation-success-subtitle{font-size:.875rem}.reservation-success-content{padding:1rem;flex:none;display:block}.reservation-success-folio{padding:.75rem;margin-bottom:1rem}.reservation-success-folio-number{font-size:1.75rem}.reservation-success-info-grid{grid-template-columns:1fr;gap:.5rem}.reservation-success-info-item{padding:.5rem;gap:.5rem}.reservation-success-info-icon{width:16px;height:16px}.reservation-success-info-label{font-size:.75rem}.reservation-success-info-value{font-size:.875rem}.reservation-success-email-notice{flex-direction:column;gap:.5rem;padding:.75rem}.reservation-success-email-icon{width:20px;height:20px}.reservation-success-email-text,.reservation-success-email-title{font-size:.875rem}.reservation-success-email-subtext{font-size:.75rem}.reservation-success-accept-btn{padding:.75rem 1.25rem;font-size:.875rem;width:100%;justify-content:center}}@media (max-width:480px){.reservation-success-page{padding:.25rem}.reservation-success-header{padding:1rem .75rem .75rem}.reservation-success-title{font-size:1.125rem}.reservation-success-content{padding:.75rem}.reservation-success-folio-number{font-size:1.5rem}.reservation-success-info-grid{grid-template-columns:1fr;gap:.5rem}.reservation-success-info-item{padding:.5rem;flex-direction:column;text-align:center;gap:.25rem}.reservation-success-info-content{align-items:center}}@media (max-width:768px){.reservation-grid{grid-template-columns:1fr}.reservation-summary{border-left:none;border-top:1px solid #e5e7eb}.reservation-form__field-group,.reservation-summary__amenities-list{grid-template-columns:1fr}.reservation-form__title{font-size:1.25rem}}@media (max-width:480px){.reservation-page{padding:1rem .5rem}.reservation-form,.reservation-summary{padding:1rem}}