:root{font-family:Inter,system-ui,sans-serif;color:#1f2937;background:#f5f7fb;line-height:1.5;font-weight:400}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}.page{max-width:1200px;margin:0 auto;padding:24px}.hero{margin-bottom:24px}.hero h1{margin:0 0 8px;font-size:2rem}.price{margin:0 0 8px;font-weight:700}.description{margin:0;color:#4b5563}.highlights{list-style:none;padding:0;margin:16px 0 0;display:flex;flex-wrap:wrap;gap:10px}.highlights li{background:#eef2ff;color:#1e3a8a;padding:6px 14px;border-radius:20px;font-size:.9rem;font-weight:500}.gallery-carousel{position:relative;overflow:hidden;border-radius:16px;margin-bottom:24px}.gallery-track{display:flex;transition:transform .35s ease}.gallery-slide{min-width:100%;width:100%;height:340px;object-fit:cover;display:block}.gallery-btn{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;background:#ffffffd9;color:#1f2937;font-size:1.5rem;display:flex;align-items:center;justify-content:center;cursor:pointer;border:none;padding:0;box-shadow:0 2px 8px #00000026;transition:background .15s;z-index:2}.gallery-btn:hover{background:#fff}.gallery-btn--prev{left:12px}.gallery-btn--next{right:12px}.gallery-dots{position:absolute;bottom:12px;left:50%;transform:translate(-50%);display:flex;gap:8px;z-index:2}.gallery-dot{width:10px;height:10px;border-radius:50%;background:#ffffff80;border:2px solid rgba(255,255,255,.8);padding:0;cursor:pointer;transition:background .2s}.gallery-dot.active{background:#fff}.content-grid{display:grid;grid-template-columns:1fr;max-width:600px;gap:24px}.card{background:#fff;border-radius:18px;padding:20px;box-shadow:0 8px 24px #00000014}.card h2{margin-top:0}.form{display:grid;gap:14px}label{display:grid;gap:6px;font-weight:600}input,textarea{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:10px;background:#fff}button{border:0;border-radius:12px;padding:12px 16px;cursor:pointer}.form>button{background:#111827;color:#fff}.slot-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}.slot-button{background:#eef2ff;color:#1e3a8a}.slot-button.selected{background:#1e3a8a;color:#fff}.selected-slot-box{padding:12px;border-radius:10px;background:#f3f4f6;display:flex;justify-content:space-between;gap:12px}.muted{color:#6b7280}.week-calendar{display:flex;flex-direction:column;background:#f9fafb;border-radius:14px;padding:16px}.week-calendar h3{margin:0 0 12px;font-size:1.05rem}.week-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:16px}.week-nav-btn{width:36px;height:36px;border-radius:50%;background:#f3f4f6;color:#374151;font-size:1.25rem;display:flex;align-items:center;justify-content:center;padding:0}.week-nav-btn:hover{background:#dbeafe;color:#1e3a8a}.week-nav-label{flex:1;background:none;color:#1f2937;font-weight:600;font-size:.95rem;padding:6px 0;border-radius:8px}.week-nav-label:hover{background:#f3f4f6}.week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.week-day{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 4px;border-radius:12px;cursor:pointer;transition:background .15s,box-shadow .15s;-webkit-user-select:none;user-select:none}.week-day:hover:not(.is-past){background:#f0f4ff}.week-day.is-past{opacity:.35;cursor:default}.week-day.is-today .week-day-num{background:#1e3a8a;color:#fff;border-radius:50%;width:30px;height:30px;display:flex;align-items:center;justify-content:center}.week-day.is-selected{background:#eef2ff;box-shadow:inset 0 0 0 2px #1e3a8a}.week-day-name{font-size:.75rem;font-weight:600;color:#6b7280;text-transform:uppercase}.week-day-num{font-size:1rem;font-weight:700}.week-day-dot{font-size:.7rem;color:#1e3a8a;font-weight:600}.week-day-dot--empty{color:#d1d5db}.week-slots{margin-top:16px}.week-slots-label{font-weight:600;margin:0 0 8px;color:#374151}.selected-slot-box--confirmed{background:#ecfdf5;color:#065f46}@media(max-width:900px){.gallery-slide{height:260px}.content-grid{grid-template-columns:1fr}.slot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.week-grid{gap:3px}.week-day{padding:8px 2px}.week-day-dot{font-size:.6rem}}.no-token{display:flex;align-items:center;justify-content:center;min-height:60vh;color:#666;font-size:1.1rem}.validation-error{color:#c0392b;background:#fdecea;border:1px solid #f5c6cb;border-radius:6px;padding:.5rem .75rem;font-size:.9rem;margin:0}button:disabled{opacity:.5;cursor:not-allowed}.booking-confirmation{display:flex;flex-direction:column;gap:1rem}.booking-confirmation h2{color:#27ae60;margin:0}.confirmation-details{background:#f0faf4;border:1px solid #a3d9b1;border-radius:8px;padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.4rem}.confirmation-details p{margin:0;font-size:.95rem}.confirmation-status{font-size:.9rem;color:#555;margin:0}.confirmation-email-note{font-size:.9rem;color:#6b7280;margin:8px 0 0}.change-btn{background:#f8f9fa;color:#333;border:1px solid #ccc;border-radius:8px;padding:.6rem 1.2rem;font-size:.95rem;cursor:pointer;transition:background .15s;align-self:flex-start}.change-btn:hover{background:#e9ecef}.confirmation-actions{display:flex;gap:.75rem;margin-top:.5rem}.cancel-booking-btn{background:transparent;color:#dc3545;border:1px solid #dc3545;border-radius:8px;padding:.6rem 1.2rem;font-size:.95rem;cursor:pointer;transition:background .15s,color .15s}.cancel-booking-btn:hover{background:#dc3545;color:#fff}.cancel-btn{background:transparent;color:#666;border:1px solid #ccc;border-radius:8px;padding:.6rem 1.2rem;font-size:.95rem;cursor:pointer;width:100%;margin-top:.25rem}.cancel-btn:hover{background:#f8f9fa}
