.bw-modal[hidden] { display: none; }
.bw-modal { position: fixed; z-index: 2000; inset: 0; display: grid; place-items: center; padding: 1.25rem; }
.bw-modal__backdrop { position: absolute; inset: 0; background: rgb(15 28 46 / .57); backdrop-filter: blur(3px); }
.bw-modal__dialog { position: relative; width: min(100%, 35.625rem); max-height: min(47.5rem, calc(100vh - 2.5rem)); overflow: auto; background: #f8f7f3; padding: 2.625rem clamp(1.625rem, 5vw, 3.5rem) 2.375rem; box-shadow: 0 20px 60px rgb(10 20 34 / .22); outline: 0; }
.bw-modal__dialog--wide { width: min(100%, 48.75rem); }
.bw-modal__close { position: absolute; top: .9rem; right: 1rem; width: 2rem; height: 2rem; border: 0; background: transparent; color: #1d1c19; cursor: pointer; font: 400 1.75rem/1 "Playfair Display", Georgia, serif; }
.bw-modal__eyebrow { margin: 0 0 .75rem; color: #ad8949; font: 600 .56rem/1 "DM Sans", Arial, sans-serif; letter-spacing: .15em; text-transform: uppercase; }
.bw-modal__head h2 { margin: 0; color: #1d1c19; font: 500 clamp(2rem, 5vw, 2.94rem)/.98 "Playfair Display", Georgia, serif; letter-spacing: -.05em; }
.bw-modal__content { margin-top: 1.5rem; color: #555850; font: 400 .875rem/1.6 "DM Sans", Arial, sans-serif; }
.bw-modal__content input, .bw-modal__content select, .bw-modal__content textarea { width: 100%; border: 1px solid #cbc8c0; border-radius: 0; background: #fff; padding: .78rem; color: #1d1c19; font: inherit; }
.bw-modal__content button:not(.bw-modal__close), .bw-modal__content .button { display: inline-flex; align-items: center; justify-content: center; min-height: 3rem; border: 1px solid #1d1c19; border-radius: 0; background: #1d1c19; padding: .8rem 1.1rem; color: #fff; cursor: pointer; font: 600 .63rem/1 "DM Sans", Arial, sans-serif; letter-spacing: .13em; text-decoration: none; text-transform: uppercase; }
.bw-modal__content button:not(.bw-modal__close):hover, .bw-modal__content .button:hover { border-color: #b18d4d; background: #b18d4d; }
.bw-modal__loading, .bw-modal__notice { margin: 0; padding: 1rem; background: #edf3f2; color: #223c3a; }
/* Retain the desktop scrollbar gutter while page scrolling is locked, so
 * opening a modal cannot change the document width. */
html:has(body.bw-modal-open) { scrollbar-gutter: stable; }
.bw-modal-open { overflow: hidden; }
.bw-modal__dialog--wide:has(.bw-search-modal) { width: min(100%, 80rem); padding: 3.5rem clamp(1.75rem, 6vw, 5rem); }
.bw-search-modal { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(15.625rem, .7fr); gap: 1.5rem 2.25rem; align-items: start; }
.bw-search-modal form { grid-column: 1; }
.bw-search-modal label { display: block; margin-bottom: .875rem; color: #1d1c19; font: 500 1.125rem/1.2 "Playfair Display", Georgia, serif; letter-spacing: -.02em; }
.bw-search-modal__field { display: flex; align-items: flex-end; gap: 1.125rem; border-bottom: 1px solid #1d1c19; }
.bw-search-modal__field input { flex: 1; min-width: 0; border: 0; background: transparent; padding: 1rem 0; font: 400 1rem/1.2 "DM Sans", Arial, sans-serif; }
.bw-search-modal__field input:focus { outline: 0; }
.bw-search-modal__field input::placeholder { color: #82847d; }
.bw-modal__content .bw-search-modal__field button { min-height: 0; border: 0; background: transparent; padding: 0 0 1rem; color: #1d1c19; font-size: .625rem; white-space: nowrap; }
.bw-modal__content .bw-search-modal__field button:hover { border-color: transparent; background: transparent; color: #b18d4d; }
.bw-search-modal__field button span { margin-left: .5rem; font-size: 1.125rem; }
.bw-search-modal__hint { grid-column: 1; margin: -1rem 0 0; color: #6c6e68; font-size: .75rem; }
.bw-search-modal__suggestions { grid-column: 1; display: flex; flex-wrap: wrap; align-items: center; gap: .625rem .75rem; }
.bw-search-modal__suggestions span { margin-right: .5rem; color: #85867f; font: 500 .625rem/1 "DM Sans", Arial, sans-serif; letter-spacing: .16em; text-transform: uppercase; }
.bw-search-modal__suggestions a, .bw-search-modal__aside a { border: 1px solid rgb(11 31 57 / .14); background: #fff; color: #1d1c19; font: 400 .75rem/1 "DM Sans", Arial, sans-serif; text-decoration: none; }
.bw-search-modal__suggestions a { padding: .5625rem .75rem; }
.bw-search-modal__suggestions a:hover, .bw-search-modal__aside a:hover { background: #ece7de; }
.bw-search-modal__aside { grid-column: 2; grid-row: 1 / span 3; display: flex; flex-direction: column; gap: .625rem; border-left: 1px solid rgb(11 31 57 / .12); padding: 1.125rem 0 0 1.5rem; }
.bw-search-modal__aside p { margin: 0 0 .5rem; color: #8b8b83; font: 500 .625rem/1 "DM Sans", Arial, sans-serif; letter-spacing: .16em; text-transform: uppercase; }
.bw-search-modal__aside a { display: block; padding: .5625rem .75rem; }
@media (max-width: 42.5rem) { .bw-modal__dialog--wide:has(.bw-search-modal) { padding: 2.5rem 1.5rem 2rem; } .bw-search-modal { grid-template-columns: 1fr; gap: 1.25rem; } .bw-search-modal form, .bw-search-modal__hint, .bw-search-modal__suggestions, .bw-search-modal__aside { grid-column: 1; } .bw-search-modal__aside { grid-row: auto; border-left: 0; border-top: 1px solid rgb(11 31 57 / .12); padding: 1.25rem 0 0; } }
@media (max-width: 42.5rem) { .bw-modal { padding: .75rem; } .bw-modal__dialog { max-height: calc(100vh - 1.5rem); padding: 2.5rem 1.5rem 2rem; } }
