/* ── Overlay ─────────────────────────────────────────────── */
.modal-overlay {
    position:fixed; inset:0; z-index:300;
    background:rgba(0,0,0,0.45); backdrop-filter:blur(4px);
    display:none; align-items:center; justify-content:center;
}
.modal-overlay--open { display:flex; }
.modal {
    position:relative; background:var(--bg); border-radius:var(--radius);
    padding:2.5rem; width:100%; max-width:420px;
    box-shadow:0 20px 60px rgba(0,0,0,0.2);
}
.modal__header { display:flex; justify-content:space-between; align-items:center; margin-bottom:2rem; }
.modal__title { font-family:var(--font-serif); font-size:1.8rem; font-weight:300; color:var(--text); }
.modal__close { background:none; border:none; cursor:pointer; padding:0.25rem; display:flex; align-items:center; color:var(--text-muted); transition:color 0.2s; }
.modal__close:hover { color:var(--text); }
.form-group { margin-bottom:1.25rem; }
.form-group:last-of-type { margin-bottom:2rem; }
.form-label { font-family:var(--font-sans); font-size:0.75rem; font-weight:500; letter-spacing:0.08em; text-transform:uppercase; color:var(--text-muted); display:block; margin-bottom:0.4rem; }
.form-input { width:100%; padding:0.75rem 1rem; border:1px solid var(--border); border-radius:var(--radius); background:var(--bg); font-family:var(--font-sans); font-size:0.95rem; color:var(--text); outline:none; box-sizing:border-box; transition:border-color 0.2s; }
.form-input:focus { border-color:var(--accent); }
.btn--submit { width:100%; background:var(--grad-gold); color:#fff; border:none; border-radius:var(--radius); padding:0.9rem; font-family:var(--font-sans); font-size:0.85rem; font-weight:500; letter-spacing:0.08em; text-transform:uppercase; cursor:pointer; transition:opacity 0.2s; }
.btn--submit:hover { opacity:0.85; }

/* ── Bottom sheet (mobile) ───────────────────────────────── */
.bottom-sheet-overlay { position:fixed; inset:0; z-index:300; background:rgba(0,0,0,0.45); backdrop-filter:blur(4px); display:none; flex-direction:column; justify-content:flex-end; }
.bottom-sheet-overlay--open { display:flex; }
.bottom-sheet { position:relative; background:var(--bg); border-radius:16px 16px 0 0; padding:1rem 1.5rem 2.5rem; box-shadow:0 -8px 40px rgba(0,0,0,0.15); }
.bottom-sheet__handle { width:40px; height:4px; border-radius:2px; background:var(--border); margin:0 auto 1.5rem; }
.bottom-sheet__header { display:flex; justify-content:space-between; align-items:center; margin-bottom:1.5rem; }
.bottom-sheet__title { font-family:var(--font-serif); font-size:1.6rem; font-weight:300; color:var(--text); }

@media (max-width: 640px) {
    .modal-overlay--open { display:none !important; }
    .bottom-sheet-overlay--open { display:flex !important; }
}
@media (min-width: 641px) {
    .bottom-sheet-overlay--open { display:none !important; }
    .modal-overlay--open { display:flex !important; }
}
