/* Shared policy typography for the modal and the no-JavaScript page. */
.policy-document {
    color: #24201d;
    background: #faf9f7;
    font: 400 1.8rem/1.7 system-ui, sans-serif;
    overflow-wrap: anywhere;
}
.policy-document__header { margin-bottom: 3rem; }
.policy-document .policy-title {
    font: 650 clamp(2.6rem, 5vw, 4rem)/1.2 system-ui, sans-serif;
    letter-spacing: normal;
    margin: 0 0 1.6rem;
    color: #24201d;
}
.policy-document h2:not(.policy-title),
.policy-document h3,
.policy-document h4 {
    font: 650 2.2rem/1.4 system-ui, sans-serif;
    letter-spacing: normal;
    color: #24201d;
    margin: 3rem 0 1.2rem;
}
.policy-document h3:not(.policy-title),
.policy-document h4 { font-size: 1.9rem; }
.policy-modal .policy-document h3 { font-size: 2.2rem; }
.policy-modal .policy-document h4 { font-size: 1.9rem; }
.policy-document p { margin: 0 0 1.4rem; }
.policy-document ul { margin: 0 0 1.6rem 2.4rem; padding: 0; }
.policy-document li { padding-left: .3rem; margin-bottom: .5rem; }
.policy-document a, .policy-modal__links a,
.policy-page__footer a { color: #755019; text-decoration: underline; }
.policy-document a:hover, .policy-document a:focus,
.policy-modal__links a:hover, .policy-modal__links a:focus,
.policy-page__footer a:hover, .policy-page__footer a:focus { color: #24201d; }
.policy-document .policy-updated { color: #544d48; }
.policy-table-wrap { max-width: 100%; overflow-x: auto; margin: 1.6rem 0 2.4rem; }
.policy-document table {
    width: 100%;
    min-width: 50rem;
    margin: 0;
    border-collapse: collapse;
    font-size: 1.6rem;
    line-height: 1.6;
}
.policy-document th, .policy-document td {
    padding: 1rem;
    border: 1px solid #bcaea1;
    text-align: left;
    vertical-align: top;
}
.policy-document thead th { background: #24201d; color: #fff; font-weight: 650; }
.policy-document tbody th { color: #24201d; background: #f1ece8; font-weight: 650; }
.policy-document tbody td { background: #faf9f7; }

.policy-modal {
    width: min(96%, 100rem);
    max-width: 100rem;
    max-height: 90dvh;
    padding: 0;
    border: 1px solid #d6b469;
    border-radius: 10px;
    background: #faf9f7;
    color: #24201d;
    overscroll-behavior: contain;
}
.policy-modal:not([open]) { display: none; }
.policy-modal::backdrop { background: rgba(5, 5, 5, .75); }
.policy-modal__toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.6rem;
    padding: 1.2rem 2.4rem;
    background: #121212;
    color: #d6b469;
    font: 500 1.5rem/1.4 system-ui, sans-serif;
    position: sticky;
    top: 0;
    z-index: 1;
}
.policy-modal__close {
    display: inline-flex;
    align-items: center;
    gap: .8rem;
    flex-shrink: 0;
    min-height: 44px;
    height: auto;
    margin: 0;
    padding: .6rem 1.2rem;
    font: 600 1.6rem/1.4 system-ui, sans-serif;
    text-transform: none;
    letter-spacing: normal;
    color: #121212;
    background: #d6b469;
    border: 1px solid #d6b469;
    border-radius: 5px;
}
.policy-modal__close:hover, .policy-modal__close:focus { background: #ecd39d; color: #121212; }
.policy-modal__close span { font-size: 2.4rem; line-height: 1; }
.policy-modal__content { padding: 2.8rem; }
.policy-modal__links, .policy-page__footer {
    display: flex;
    flex-wrap: wrap;
    gap: 1.2rem 2.4rem;
    border-top: 1px solid #bcaea1;
    padding-top: 2rem;
    margin-top: 3rem;
    font: 500 1.6rem/1.6 system-ui, sans-serif;
    overflow-wrap: anywhere;
}
.policy-page { background: #faf9f7; }
.policy-page__bar {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 1.2rem 2rem;
    padding: 2rem max(2rem, calc((100% - 90rem) / 2));
    background: #121212;
    font: 500 1.6rem/1.6 system-ui, sans-serif;
}
.policy-page__bar a { color: #d6b469; }
.policy-page__bar a:hover, .policy-page__bar a:focus { color: #fff; }
.policy-page__main, .policy-page__footer { width: min(100% - 4rem, 90rem); margin-left: auto; margin-right: auto; }
.policy-page__main { padding-top: 4rem; }
.policy-page__footer { padding-bottom: 3rem; }
@media (max-width: 600px) {
    .policy-modal { width: 96%; max-height: 96dvh; }
    .policy-modal__toolbar { padding: 1rem 1.6rem; }
    .policy-modal__content { padding: 2.4rem 1.6rem; }
    .policy-document { font-size: 1.7rem; }
}
@media print {
    .policy-page__bar, .policy-page__footer, .skip-link { display: none; }
    .policy-page__main { width: 100%; padding: 0; }
    .policy-document table { min-width: 0; }
}
