@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;700&family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400&display=swap&subset=latin,latin-ext";:root{--bg-light:#faf8f5;--bg-light-alt:#f0ebe4;--bg-white:#ffffff;--accent-gold:#30a46c;--accent-gold-hover:#258a59;--text-dark:#2c2824;--text-dark-muted:#6b6560;--font-heading:"Playfair Display", serif;--font-body:"Inter", sans-serif;--transition-fast:.2s ease;--transition-normal:.3s ease}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-light);color:var(--text-dark);font-family:var(--font-body);line-height:1.6}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:400;color:var(--text-dark);margin-bottom:1rem}.btn{display:inline-block;padding:12px 30px;font-family:var(--font-body);font-size:1rem;cursor:pointer;border:1px solid transparent;transition:all var(--transition-normal);background:transparent;color:var(--text-dark);text-transform:uppercase;letter-spacing:1px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-gold{background-color:#e4dca2;color:#2c2c2c;border-color:#e4dca2}.btn-gold:hover:not(:disabled){background-color:#d4cc8e;border-color:#d4cc8e}.btn-outline{border-color:#bbb;color:var(--text-dark-muted);padding:10px 22px;font-size:.9rem;letter-spacing:.04em}.btn-outline:hover:not(:disabled){background-color:var(--accent-gold);border-color:var(--accent-gold);color:var(--bg-white)}.booking-page-container{padding:40px 20px;max-width:940px;margin:0 auto}.booking-card-wide{background:var(--bg-white);border:1px solid #e8e2da;padding:40px;box-shadow:0 4px 20px #0000000f}.step-indicator{display:flex;align-items:center;margin-bottom:36px}.step-item{display:flex;align-items:center;flex:1;position:relative}.step-circle{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;border:2px solid #ddd;background:#fff;color:#bbb;flex-shrink:0;z-index:1}.step-item.active .step-circle{border-color:var(--accent-gold);color:var(--accent-gold)}.step-item.done .step-circle{border-color:var(--accent-gold);background:var(--accent-gold);color:#fff}.step-label{font-size:12px;color:#bbb;margin-left:8px;white-space:nowrap}.step-item.active .step-label{color:var(--accent-gold);font-weight:700}.step-item.done .step-label{color:var(--text-dark-muted)}.step-line{flex:1;height:2px;background:#ddd;margin:0 8px}.step-item.done .step-line{background:var(--accent-gold)}.booking-nav{display:flex;justify-content:space-between;align-items:center;margin-top:28px;padding-top:20px;border-top:1px solid #eee}.booking-step-hint{color:var(--text-dark-muted);font-size:.9rem;margin-bottom:16px}.booking-loading{text-align:center;padding:40px;color:var(--text-dark-muted)}.booking-error{background:#fef2f2;border:1px solid #fca5a5;color:#b91c1c;padding:12px 16px;border-radius:4px;margin-bottom:16px;font-size:.9rem}.cal-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.cal-nav-btn{background:none;border:1px solid #ddd;width:34px;height:34px;border-radius:50%;cursor:pointer;font-size:18px;color:var(--text-dark);line-height:1;transition:all var(--transition-fast)}.cal-nav-btn:hover{border-color:var(--accent-gold);color:var(--accent-gold)}.cal-two-months{display:grid;grid-template-columns:1fr 1fr;gap:24px}.cal-month-title{text-align:center;font-weight:700;color:var(--text-dark);margin-bottom:10px;font-size:.95rem}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.cal-day-label{text-align:center;font-size:.75rem;color:var(--text-dark-muted);padding:4px 0;font-weight:700}.cal-cell{text-align:center;padding:5px 2px 4px;font-size:.85rem;border-radius:4px;cursor:default;-webkit-user-select:none;-moz-user-select:none;user-select:none;line-height:1.2;display:flex;flex-direction:column;align-items:center;gap:2px}.cal-dot{display:block;width:5px;height:5px;border-radius:50%;flex-shrink:0}.cal-dot-cheap{background:#22c55e}.cal-dot-expensive{background:#ef4444}.cal-empty{visibility:hidden}.cal-available{cursor:pointer;color:var(--text-dark);transition:background var(--transition-fast)}.cal-available:hover{background:#c2a68933}.cal-disabled{color:#ccc;text-decoration:line-through;background:#fafafa}.cal-selected{background:var(--accent-gold)!important;color:#fff!important;font-weight:700}.cal-in-range,.cal-in-hover{background:#c2a68933}.booking-price-preview{margin-top:20px;padding:16px;background:var(--bg-light);border:1px solid #e8e2da;border-radius:4px}.price-preview-row{display:flex;justify-content:space-between;font-size:.9rem;color:var(--text-dark-muted);margin-bottom:4px}.price-preview-total{display:flex;justify-content:space-between;font-size:1rem;color:var(--text-dark);border-top:1px solid #e8e2da;padding-top:8px;margin-top:6px}.total-price{color:var(--accent-gold);font-size:1.05rem}.booking-info-panel{margin-top:32px;padding-top:24px;border-top:1px solid #e8e2da;display:flex;flex-direction:column;gap:20px}.booking-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media (max-width:480px){.booking-info-grid{grid-template-columns:1fr}}.booking-info-item{background:var(--bg-light);border:1px solid #e8e2da;border-radius:4px;padding:12px 14px;display:flex;flex-direction:column;gap:4px}.booking-info-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.07em;color:var(--text-dark-muted);font-weight:600}.booking-info-value{font-size:.9rem;color:var(--text-dark);line-height:1.5}.booking-info-section{font-size:.9rem;color:var(--text-dark);line-height:1.6}.booking-info-section p{margin:0 0 8px}.booking-info-section ul{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:4px}.booking-info-section-title{font-size:.8rem;text-transform:uppercase;letter-spacing:.07em;color:var(--text-dark-muted);margin:0 0 10px;font-weight:600}.booking-info-highlight{background:#f9f6f1;border:1px solid #e8e2da;border-radius:4px;padding:12px 16px}.booking-info-highlight p{margin:0;font-style:italic}.booking-rules{background:#f9f6f1;border:1px solid #e8e2da;border-radius:8px;padding:16px 20px;margin-top:24px}.booking-rules-title{font-size:.85rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dark-muted);margin:0 0 10px}.booking-rules-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.booking-rules-list li{font-size:.88rem;color:var(--text-dark);line-height:1.5}.booking-section-title{font-size:1rem;color:var(--text-dark);text-transform:uppercase;letter-spacing:.08em;margin:0 0 16px;padding-bottom:8px;border-bottom:1px solid #e8e2da}.booking-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 24px}.booking-form-grid .full-width{grid-column:1 / -1}.form-group{margin-bottom:20px}.form-label{display:block;margin-bottom:8px;color:var(--text-dark);font-size:.9rem}.form-control{width:100%;padding:12px 15px;background-color:var(--bg-light);border:1px solid #ddd5cb;color:var(--text-dark);font-family:var(--font-body)!important;font-size:1rem!important;transition:border-color var(--transition-normal)}.form-control:focus{outline:none;border-color:var(--accent-gold)}textarea.form-control{min-height:100px;resize:vertical}.form-control-error{border-color:#dc2626!important}.form-error-msg{font-size:.78rem;color:#dc2626;margin-top:2px;display:block}.entity-toggle{display:inline-flex;border:1px solid #ddd;border-radius:4px;overflow:hidden}.entity-btn{padding:9px 20px;background:#faf8f5;border:none;cursor:pointer;font-size:.9rem;color:var(--text-dark-muted);transition:all var(--transition-fast)}.entity-btn.active{background:var(--accent-gold);color:#fff}.entity-btn:not(.active):hover{background:#f0ebe4}.summary-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:24px}.summary-card{background:var(--bg-light);border:1px solid #e8e2da;padding:16px;border-radius:4px}.summary-card h4{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dark-muted);margin:0 0 10px;padding-bottom:6px;border-bottom:1px solid #e8e2da}.summary-card dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:4px 10px;font-size:.85rem}.summary-card dt{color:var(--text-dark-muted);white-space:nowrap}.summary-card dd{margin:0;color:var(--text-dark);word-break:break-word}.price-breakdown{margin-bottom:24px}.price-breakdown h4{font-size:.85rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dark-muted);margin:0 0 10px}.price-table{width:100%;border-collapse:collapse;font-size:.88rem}.price-table th{text-align:left;padding:8px 12px;background:var(--bg-light);border-bottom:2px solid var(--accent-gold);color:var(--text-dark-muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.05em}.price-table td{padding:7px 12px;border-bottom:1px solid #eee;color:var(--text-dark)}.price-table tfoot td{border-top:2px solid #e8e2da;border-bottom:none;padding-top:10px}.price-table .price-special td{color:var(--accent-gold)}.price-note{font-size:.8rem;color:var(--accent-gold);margin:6px 0 0}.price-meta{font-size:.82rem;color:var(--text-dark-muted);margin-bottom:10px}.price-preview-disclaimer{font-size:.78rem;color:var(--text-dark-muted);font-style:italic;margin-top:8px}.price-preview-discount{color:#b45309!important}.price-discount-row td{color:#b45309;font-style:italic}.booking-info-note{background:#fffbf0;border:1px solid #e8d98a;border-left:4px solid #d4b84a;color:#7a6020;padding:12px 16px;border-radius:4px;font-size:.88rem;margin-bottom:20px;line-height:1.5}.extras-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;margin-bottom:8px}.extra-item{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border:1px solid #e8e2da;border-radius:4px;cursor:pointer;background:var(--bg-light);transition:border-color var(--transition-fast),background var(--transition-fast)}.extra-item:hover{border-color:#c2a689;background:#faf6f1}.extra-item.selected{border-color:var(--accent-gold);background:#f0faf5}.extra-checkbox{margin-top:2px;width:16px;height:16px;flex-shrink:0;accent-color:var(--accent-gold);cursor:pointer}.extra-info{display:flex;flex-direction:column;gap:3px}.extra-name{font-size:.92rem;color:var(--text-dark);font-weight:600}.extra-price{font-size:.8rem;color:var(--text-dark-muted)}.booking-inquiry-note{background:#fffbf0;border:1px solid #e8d98a;border-left:4px solid #d4b84a;color:#7a6020;padding:12px 16px;border-radius:4px;font-size:.88rem;margin-top:20px;line-height:1.5}.extras-summary{margin-bottom:24px;padding:16px;background:var(--bg-light);border:1px solid #e8e2da;border-radius:4px}.extras-summary h4{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dark-muted);margin:0 0 10px;padding-bottom:6px;border-bottom:1px solid #e8e2da}.extras-summary-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.extras-summary-list li{display:flex;justify-content:space-between;align-items:baseline;font-size:.88rem;gap:12px}.extras-summary-list .extra-name{color:var(--text-dark)}.extras-summary-list .extra-price{color:var(--text-dark-muted);white-space:nowrap}.booking-confirmed{text-align:center;padding:20px 0}.confirmed-icon{width:64px;height:64px;border-radius:50%;background:var(--accent-gold);color:#fff;font-size:28px;display:flex;align-items:center;justify-content:center;margin:0 auto 20px}.booking-confirmed h2{color:var(--text-dark);margin-bottom:12px}.booking-confirmed p{color:var(--text-dark-muted);max-width:480px;margin:0 auto 10px}@media (max-width:768px){.booking-card-wide{padding:20px 16px}.cal-two-months,.booking-form-grid,.summary-grid{grid-template-columns:1fr}.step-label{display:none}}