.tm { position: fixed; inset: 0; z-index: 200; display: flex; align-items: flex-end; justify-content: center; background: rgba(18,17,16,.55); opacity: 0; pointer-events: none; transition: opacity .3s; }
.tm.is-open { opacity: 1; pointer-events: auto; }
.tm__sheet { width: 100%; max-width: 480px; background: var(--ivory); border-radius: 22px 22px 0 0; padding: 22px 20px calc(24px + env(safe-area-inset-bottom)); transform: translateY(100%); transition: transform .4s var(--ease); position: relative; }
.tm.is-open .tm__sheet { transform: none; }
@media (min-width: 640px) { .tm { align-items: center; } .tm__sheet { border-radius: 22px; transform: translateY(24px); } }
.tm__close { position: absolute; top: 10px; right: 12px; width: 40px; height: 40px; border: 0; background: none; font-size: 26px; line-height: 1; color: var(--muted); cursor: pointer; }
.tm__house { font-size: 10px; letter-spacing: .22em; text-transform: uppercase; color: var(--gold-deep); margin: 0; }
.tm__name { font-family: var(--serif); font-size: 30px; font-weight: 500; margin: 4px 36px 4px 0; line-height: 1.1; }
.tm__lead { margin: 0 0 16px; color: var(--muted); font-size: 14px; }
.tm__opts { display: grid; gap: 10px; }
.tm__opt { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 16px 18px; border: 1px solid var(--line); border-radius: 14px; background: #fff; font: inherit; color: var(--ink); cursor: pointer; text-align: left; transition: border-color .2s, transform .2s, background .2s; }
.tm__opt:hover, .tm__opt:focus-visible { border-color: var(--gold); background: var(--ivory-2); transform: translateY(-1px); outline: none; }
.tm__ml { font-family: var(--serif); font-size: 24px; font-weight: 600; }
.tm__pr { font-size: 16px; font-weight: 500; color: var(--gold-deep); }
.tm__go { margin: 14px 0 0; font-size: 12px; color: var(--muted); text-align: center; }
