:root{--ink:#1c1c1c;--muted:#666;--border:#d8d8d8;--accent:#e51b24;--accent-ink:#fff;--panel:#f7f5f2;--ok-bg:#eaf6ea;--ok-border:#a9d6ab;--error-bg:#fbeaea;--error-border:#e3a7a7;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:#fff;color:var(--ink)}.page{max-width:640px;margin:0 auto;padding:2rem 1.25rem 4rem}.content-layout{display:flex;flex-direction:column;gap:2rem}.booking-column,.form-column{min-width:0}@media (min-width:1040px){.page{max-width:1100px}.content-layout{flex-direction:row;align-items:flex-start;gap:2.5rem}.form-column{flex:1 1 55%}.booking-column{flex:1 1 40%;position:-webkit-sticky;position:sticky;top:1.5rem}}.page-header{display:flex;align-items:center;gap:.65rem;margin-bottom:1.5rem}.page-logo{height:1.6rem;width:auto;flex-shrink:0}.page-header h1{font-size:1.4rem;margin:0}.form-steps{margin:0 0 1.5rem;padding-left:1.25rem;font-size:.85rem;color:var(--muted)}.form-steps li{margin-bottom:.2rem}.contact-type-toggle{display:flex;gap:.5rem;margin-bottom:1.5rem}.contact-type-toggle button{flex:1 1;padding:.6rem .75rem;border:1px solid var(--border);background:#fff;border-radius:6px;cursor:pointer;font-size:.95rem}.contact-type-toggle button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.field{margin-bottom:1.1rem}.field-row{display:flex;gap:1rem}.field-row .field{flex:1 1;min-width:0}@media (max-width:520px){.field-row{flex-direction:column;gap:0}}.field label{display:block;font-weight:600;font-size:.88rem;margin-bottom:.3rem}.field .hint{font-weight:400;color:var(--muted);font-size:.8rem}.field-below-hint{display:block;margin-top:.3rem;font-size:.7rem;color:var(--muted)}.required-star{color:var(--accent);margin-left:.15rem}.field input[type=email],.field input[type=number],.field input[type=tel],.field input[type=text],.field select,.field textarea{width:100%;padding:.55rem .65rem;border:1px solid var(--border);border-radius:6px;font-size:.95rem;font-family:inherit}.field textarea{min-height:5rem;resize:vertical}.area-card{border:1px solid var(--ok-border);background:var(--ok-bg);border-radius:8px;padding:.85rem 1rem;margin-bottom:1.25rem;font-size:.9rem}.area-card.no-match{border-color:var(--border);background:var(--panel)}.area-card h3{margin:0 0 .35rem;font-size:1rem}.area-card .stock{display:flex;gap:1rem;margin-top:.5rem;font-size:.85rem}.area-card .stock span{background:#fff;border:1px solid var(--border);border-radius:5px;padding:.2rem .5rem}.area-card .franchisee-note{margin-top:.5rem;font-style:italic;color:var(--muted)}.area-card .upcoming-cabins{margin:.6rem 0 0;padding-left:1.1rem;font-size:.82rem;color:var(--muted)}.searching-note{font-size:.85rem;color:var(--muted);margin:-.75rem 0 1.25rem}.submit-row{display:flex;align-items:center;gap:1rem;margin-top:1.5rem}.submit-row button{padding:.7rem 1.5rem;border:none;border-radius:6px;background:var(--accent);color:var(--accent-ink);font-size:1rem;cursor:pointer}.submit-row button:disabled{opacity:.6;cursor:not-allowed}.result-banner{margin-top:1.25rem;padding:.85rem 1rem;border-radius:8px;font-size:.9rem}.result-banner.ok{background:var(--ok-bg);border:1px solid var(--ok-border)}.result-banner.error{background:var(--error-bg);border:1px solid var(--error-border)}.booking-panel{border:1px solid var(--border);background:var(--panel);border-radius:8px;padding:.85rem 1rem;margin-top:1.25rem}.booking-panel h3{margin:0 0 .6rem;font-size:1rem}.booking-panel button{padding:.55rem 1.1rem;border:1px solid var(--border);border-radius:6px;background:#fff;font-size:.9rem;cursor:pointer}.booking-panel button:disabled{opacity:.6;cursor:not-allowed}.booking-note{font-size:.85rem;color:var(--muted);margin:0}.slot-grid{display:flex;flex-wrap:wrap;gap:1rem}.slot-day{display:flex;flex-direction:column;gap:.4rem}.slot-day-label{font-size:.8rem;color:var(--muted)}.slot-button{background:var(--ok-bg);border:1px solid var(--ok-border)}.slot-button.selected,.slot-button:hover:not(:disabled){background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.booking-confirmed{border:1px solid var(--ok-border);background:var(--ok-bg);border-radius:8px;padding:.85rem 1rem}.booking-confirmed-time{margin:0 0 .85rem;font-size:.95rem}.booking-confirmed-actions{display:flex;align-items:center;gap:.75rem}.booking-confirmed-actions .searching-note{margin:0;flex:1 1 auto}.mock-banner{font-size:.78rem;color:var(--muted);border:1px dashed var(--border);border-radius:6px;padding:.4rem .6rem;margin-bottom:1.5rem}