@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Outfit:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400&family=Josefin+Sans:wght@300;400&family=Marcellus&family=Marcellus+SC&family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500;1,600;1,700&family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&display=swap";:root{--font-sans:"Inter", sans-serif;--font-title:"Outfit", sans-serif;--font-serif:"Playfair Display", serif;--font-heading:"Helvetica Now", "Helvetica Neue", Helvetica, Arial, sans-serif;--color-bg:#faf7f5;--color-card:#fff;--color-primary:#c6a0ca;--color-primary-hover:#b582ba;--color-secondary:#ebdcd4;--color-accent:#d9a05b;--color-text:#2c2826;--color-muted:#6d625d;--color-border:#f0eae6;--color-success:#7da08d;--color-danger:#d46b6b;--shadow-sm:0 2px 4px #2c28260a;--shadow-md:0 4px 12px #2c28260f;--shadow-lg:0 12px 24px #2c282614;--radius-sm:6px;--radius-md:12px;--radius-lg:24px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;line-height:1.6}h1,h2,h3,h4{font-family:var(--font-title);color:var(--color-text);font-weight:700}h1,h2{font-family:var(--font-heading)}a{color:inherit;text-decoration:none}button,.btn{font-family:var(--font-sans);border-radius:var(--radius-lg);cursor:pointer;border:none;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-weight:500;transition:all .2s ease-in-out;display:inline-flex}.btn-primary{background-color:var(--color-primary);color:#fff}.btn-primary:hover{background-color:var(--color-primary-hover)}.btn-secondary{background-color:var(--color-card);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover{background-color:var(--color-border)}.btn-danger{background-color:var(--color-danger);color:#fff}.btn-danger:hover{background-color:#bd5959}.btn-sm{padding:.4rem 1rem;font-size:.85rem}.container{max-width:1200px;margin:0 auto;padding:0 1.5rem}.grid{gap:2rem;display:grid}@media (width>=768px){.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fade-in{opacity:1;animation:.6s fadeIn}.form-group{text-align:left;margin-bottom:1.25rem}.form-label{color:var(--color-text);margin-bottom:.5rem;font-size:.875rem;font-weight:500;display:block}.form-control{width:100%;font-family:var(--font-sans);border-radius:var(--radius-md);border:1px solid var(--color-border);background-color:var(--color-card);color:var(--color-text);padding:.75rem 1rem;font-size:1rem;transition:border-color .2s}.form-control:focus{border-color:var(--color-primary);outline:none}.form-hint{color:var(--color-muted);margin-top:.4rem;font-size:.8rem;line-height:1.4;display:block}.card{background-color:var(--color-card);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border:1px solid var(--color-border);padding:2rem;transition:box-shadow .2s}.card:hover{box-shadow:var(--shadow-md)}.coupon-field{text-align:center;margin-top:.5rem;margin-bottom:1rem}.coupon-field .form-label{font-family:var(--font-title);letter-spacing:.02em;color:var(--color-muted);text-align:center}.coupon-input-wrap{justify-content:center;align-items:center;display:flex;position:relative}.coupon-input-wrap input{width:220px;max-width:100%;font-family:var(--font-sans);letter-spacing:.04em;color:var(--color-text);border:1.5px solid var(--color-border);box-shadow:var(--shadow-sm);background:linear-gradient(#fffdfc,#fcf8f5);border-radius:999px;padding:.45rem 1rem;font-size:.85rem;font-weight:500;transition:border-color .2s,box-shadow .2s,transform .15s}.coupon-input-wrap input::placeholder{color:#b5aaa4;letter-spacing:.01em;font-weight:400}.coupon-input-wrap input:hover{border-color:#e0c9d8;transform:translateY(-1px)}.coupon-input-wrap input:focus{border-color:var(--color-primary);box-shadow:0 0 0 4px #d6aed340, var(--shadow-md);outline:none}.booking-page{background:radial-gradient(ellipse at top, #d6aed31f, transparent 55%), var(--color-bg);justify-content:center;align-items:flex-start;min-height:100vh;padding:4rem 1.25rem 3rem;display:flex}.booking-card{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;max-width:560px;box-shadow:var(--shadow-lg);padding:2.5rem 2rem}.booking-pill{background:var(--color-secondary);color:var(--color-text);letter-spacing:.1em;text-transform:uppercase;border-radius:999px;margin-bottom:1rem;padding:.3rem .9rem;font-size:.72rem;font-weight:600;display:inline-block}.booking-card h2{font-family:var(--font-serif);margin:0 0 .75rem;font-size:1.7rem;line-height:1.2}.booking-subtitle,.booking-hint{color:var(--color-muted);margin:0 0 1.5rem}.booking-hint{font-size:.9rem}.booking-row{margin-bottom:1.1rem}.booking-required{color:var(--color-danger)}.booking-radio-row{flex-wrap:wrap;gap:.6rem;display:flex}.booking-radio{min-width:140px;font-family:var(--font-sans);text-align:center;color:var(--color-muted);border:1.5px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;background:#fff;flex:1;padding:.65rem .9rem;font-size:.9rem;transition:border-color .2s,background .2s,color .2s}.booking-radio:hover{border-color:var(--color-primary)}.booking-radio.selected{border-color:var(--color-primary);background:var(--color-secondary);color:var(--color-text);box-shadow:var(--shadow-sm);font-weight:600}.booking-error{color:var(--color-danger);margin:0 0 1rem;font-size:.9rem}.booking-actions{flex-wrap:wrap;gap:.75rem;margin-top:1.5rem;display:flex}.booking-success{text-align:center;padding:1rem 0 .25rem}.booking-success svg{color:var(--color-success);margin-bottom:.75rem}.booking-success h2{margin-bottom:.5rem}.booking-success p{color:var(--color-muted);max-width:400px;margin:0 auto 1.5rem}.booking-success .btn{width:100%;margin-bottom:.6rem}.booking-back{background:0 0}.booking-empty{text-align:center;padding:1rem 0 .25rem}.booking-empty p{color:var(--color-muted);margin:0 0 1.5rem}.booking-empty .btn{width:100%;margin-bottom:.6rem}
