Skip to content Skip to sidebar Skip to footer

Reserve Your Experience

Join us at Surrey's most talked about venue

Simply select your details and start your journey with us

Step 1 of 3 0% Complete
1
Your Details
2
Preferences
👤

Tell us about yourself

We'll need a few details to get started

Must be 18 or older
🎉

Special touches

Any special occasions or requests?

Dietary requirements, seating preferences, etc.
💳

Secure your booking

Almost there! Just need payment details

Booking Deposit

We'll only charge if you don't show up

£0.00

Booking Confirmed!

Check your email for confirmation details

.ivory-booking-isolated * { box-sizing: border-box; } .ivory-wrapper { max-width: 900px; margin: 40px auto; padding: 20px; } /* Hero */ .ivory-hero { text-align: center; margin-bottom: 48px; } .ivory-hero-icon { font-size: 48px; margin-bottom: 16px; display: block; } .ivory-hero-title { font-size: 42px; font-weight: 400; color: #2c2c2c; margin: 0 0 12px 0; font-family: Georgia, serif; display: block; } .ivory-hero-subtitle { font-size: 20px; color: #666; margin: 0 0 8px 0; display: block; } .ivory-hero-text { font-size: 16px; color: #999; margin: 0; display: block; } /* Progress Bar */ .ivory-progress-wrapper { margin-bottom: 40px; } .ivory-progress-info { display: flex; justify-content: space-between; margin-bottom: 12px; font-size: 14px; } .ivory-progress-step-text { color: #666; font-weight: 600; } .ivory-progress-percent { color: #eec45f; font-weight: 600; } .ivory-progress-track { height: 6px; background: linear-gradient(to right, #f5f5f5, #e8e8e8); border-radius: 10px; overflow: hidden; margin-bottom: 32px; box-shadow: inset 0 1px 3px rgba(0,0,0,0.1); } .ivory-progress-fill { height: 100%; background: linear-gradient(90deg, #eec45f 0%, #d4a745 100%); border-radius: 10px; width: 0%; transition: width 0.5s ease; } .ivory-progress-bar { display: flex; justify-content: space-between; position: relative; } .ivory-progress-bar::before { content: ''; position: absolute; top: 20px; left: 60px; right: 60px; height: 2px; background: #e8e8e8; z-index: 0; } .ivory-progress-step { flex: 1; text-align: center; position: relative; z-index: 1; } .ivory-progress-circle { width: 44px; height: 44px; border-radius: 50%; background: #f5f5f5; margin: 0 auto 10px; display: flex; align-items: center; justify-content: center; font-weight: 600; font-size: 16px; border: 3px solid #fff; box-shadow: 0 2px 8px rgba(0,0,0,0.1); transition: all 0.4s ease; } .ivory-progress-step .step-check { display: none; font-size: 20px; color: white; } .ivory-progress-step .step-number { display: block; color: #999; } .ivory-progress-step.active .ivory-progress-circle { background: linear-gradient(135deg, #eec45f 0%, #d4a745 100%); transform: scale(1.1); box-shadow: 0 4px 15px rgba(238, 196, 95, 0.4); } .ivory-progress-step.active .step-number { color: #000; } .ivory-progress-step.completed .ivory-progress-circle { background: linear-gradient(135deg, #4ade80 0%, #22c55e 100%); } .ivory-progress-step.completed .step-check { display: block; } .ivory-progress-step.completed .step-number { display: none; } .ivory-progress-label { font-size: 13px; color: #666; font-weight: 500; } .ivory-progress-step.active .ivory-progress-label { color: #2c2c2c; font-weight: 600; } /* Form Steps */ .ivory-form-step { display: none; } .ivory-form-step.active { display: block; } .ivory-step-header { text-align: center; margin-bottom: 40px; } .ivory-step-icon { font-size: 56px; margin-bottom: 16px; } .ivory-step-title { font-size: 32px; font-weight: 400; color: #2c2c2c; margin: 0 0 8px 0; font-family: Georgia, serif; } .ivory-step-description { font-size: 16px; color: #666; margin: 0; } /* Form Container */ .ivory-form-container { background: white; padding: 32px; border-radius: 16px; box-shadow: 0 4px 20px rgba(0,0,0,0.06); border: 1px solid #f0f0f0; margin-bottom: 24px; } .ivory-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-bottom: 24px; } .ivory-form-row:last-child { margin-bottom: 0; } .ivory-form-group { position: relative; } .ivory-form-group.ivory-full-width { grid-column: 1 / -1; } /* Form Inputs */ .ivory-input { width: 100%; padding: 16px; border: 2px solid #e8e8e8; border-radius: 12px; font-size: 16px; background: #fafafa; font-family: inherit; transition: all 0.3s; display: block; } .ivory-input:focus { outline: none; border-color: #eec45f; background: white; box-shadow: 0 0 0 4px rgba(238, 196, 95, 0.1); } /* Floating Labels */ .ivory-label { position: absolute; left: 16px; top: 16px; color: #999; font-size: 16px; pointer-events: none; transition: all 0.3s; font-weight: 500; background: transparent; padding: 0; } .ivory-input:focus + .ivory-label, .ivory-input:not(:placeholder-shown) + .ivory-label, .ivory-input:valid + .ivory-label, .ivory-input[data-has-value="true"] + .ivory-label { top: -10px; left: 12px; font-size: 12px; background: white; padding: 0 6px; color: #eec45f; } /* Select Dropdown */ .ivory-form-group select.ivory-input { appearance: none; -webkit-appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 16px center; background-size: 20px; padding-right: 48px; cursor: pointer; } .ivory-form-group select.ivory-input:focus { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23eec45f' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E"); } /* Checkmark Icon */ .ivory-check { position: absolute; right: 16px; top: 18px; color: #22c55e; font-size: 18px; opacity: 0; transition: opacity 0.3s; } .ivory-input:valid:not(:placeholder-shown) ~ .ivory-check { opacity: 1; } .ivory-form-group select.ivory-input ~ .ivory-check { right: 44px; } /* Hint Text */ .ivory-hint { display: block; font-size: 12px; color: #999; margin-top: 6px; padding-left: 4px; } /* Textarea */ .ivory-textarea { resize: vertical; min-height: 100px; padding-top: 16px; } /* Buttons */ .ivory-btn-container { display: flex; gap: 16px; margin-top: 24px; } .ivory-btn-primary, .ivory-btn-secondary { flex: 1; padding: 16px 32px; border: none; border-radius: 12px; font-weight: 600; cursor: pointer; font-size: 16px; font-family: inherit; display: flex; align-items: center; justify-content: center; gap: 8px; transition: all 0.3s; } .ivory-btn-primary { background: linear-gradient(135deg, #eec45f 0%, #d4a745 100%); color: black; box-shadow: 0 4px 15px rgba(238, 196, 95, 0.3); } .ivory-btn-primary:hover:not(:disabled) { transform: translateY(-2px); box-shadow: 0 6px 25px rgba(238, 196, 95, 0.4); } .ivory-btn-secondary { background: #f5f5f5; color: #333; box-shadow: 0 2px 8px rgba(0,0,0,0.05); } .ivory-btn-secondary:hover { background: #e8e8e8; } .ivory-btn-primary:disabled, .ivory-btn-secondary:disabled { opacity: 0.6; cursor: not-allowed; } .ivory-btn-arrow { transition: transform 0.3s; } .ivory-btn-primary:hover .ivory-btn-arrow { transform: translateX(4px); } .ivory-btn-secondary:hover .ivory-btn-arrow { transform: translateX(-4px); } /* Alerts */ .ivory-alert { padding: 16px 20px; border-radius: 12px; margin-bottom: 24px; line-height: 1.6; } .ivory-alert-error { background: linear-gradient(135deg, #ffebee 0%, #ffcdd2 100%); color: #c62828; border: 2px solid #ef5350; } .ivory-alert-info { background: linear-gradient(135deg, #e3f2fd 0%, #bbdefb 100%); color: #1565c0; border: 2px solid #90caf9; } .ivory-alert-success { background: linear-gradient(135deg, #e8f5e9 0%, #c8e6c9 100%); color: #2e7d32; border: 2px solid #81c784; } /* Deposit Card */ .ivory-deposit-card { background: linear-gradient(135deg, #fafafa 0%, #f5f5f5 100%); padding: 24px; border-radius: 16px; margin-bottom: 24px; border: 2px solid #e8e8e8; } .ivory-deposit-card h3 { font-size: 20px; color: #2c2c2c; margin: 0 0 4px 0; } .ivory-deposit-card p { font-size: 14px; color: #666; margin: 0 0 16px 0; } .ivory-deposit-amount { font-size: 48px; font-weight: 700; color: #2c2c2c; margin: 12px 0; font-family: Georgia, serif; } .ivory-deposit-breakdown { font-size: 14px; color: #999; margin: 0; } /* Success State */ .ivory-success-wrapper { text-align: center; padding: 60px 20px; } .ivory-success-circle { width: 100px; height: 100px; background: linear-gradient(135deg, #4ade80 0%, #22c55e 100%); border-radius: 50%; margin: 0 auto 32px; display: flex; align-items: center; justify-content: center; box-shadow: 0 10px 40px rgba(74, 222, 128, 0.3); } .ivory-success-check { font-size: 56px; color: white; } .ivory-success-title { font-size: 36px; font-weight: 400; color: #2c2c2c; margin: 0 0 16px 0; font-family: Georgia, serif; } .ivory-success-message { font-size: 18px; color: #666; line-height: 1.6; margin: 0 0 24px 0; } .ivory-success-hint { font-size: 14px; color: #999; margin: 0; } /* Occasion Fields */ #occasionFieldsContainer { margin-top: 20px; } .ivory-occasion-children { margin-top: 12px; padding-left: 20px; border-left: 2px solid #eee; } /* Responsive */ @media (max-width: 768px) { .ivory-form-row { grid-template-columns: 1fr; } .ivory-hero-title { font-size: 32px; } .ivory-step-title { font-size: 26px; } .ivory-btn-container { flex-direction: column; } .ivory-progress-bar::before { left: 30px; right: 30px; } }