*,
*::before,
*::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

:root {
    --fmr-bg: #faf6ee;
    --fmr-ink: #2b2420;
    --fmr-ink-soft: #4a4236;
    --fmr-olive: #6f6a4f;
    --fmr-sage: #7d8256;
    --fmr-sand: #f1e9da;
    --fmr-line: #ddd2bc;
    --fmr-card: #fffdf8;
    --fmr-wine: #8b2e3f;
    --fmr-wine-deep: #7a2737;
    --fmr-sans: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
    --fmr-serif: Georgia, "Times New Roman", Times, serif;
}

body {
    min-height: 100vh;
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
    background: var(--fmr-bg);
    color: var(--fmr-ink);
    font-family: var(--fmr-sans);
    font-size: 16px;
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
}

a {
    color: var(--fmr-wine);
    text-decoration: underline;
    text-decoration-color: rgba(139, 46, 63, .35);
    text-underline-offset: 3px;
}
a:hover { color: var(--fmr-wine-deep); text-decoration-color: currentColor; }

/* top bar */
.fmr-doc-head {
    padding: 18px 16px;
    text-align: center;
    background: var(--fmr-sand);
    border-bottom: 1px solid var(--fmr-line);
    box-shadow: inset 0 -3px 0 rgba(139, 46, 63, .16);
}
.fmr-doc-head-logo {
    font-family: var(--fmr-serif);
    font-size: 22px;
    font-weight: 700;
    letter-spacing: .06em;
    color: var(--fmr-wine);
    text-decoration: none;
}

/* letter sheet */
.fmr-sheet-wrap {
    width: 100%;
    max-width: 820px;
    margin: 0 auto;
    padding: 28px 16px 56px;
}
.fmr-home {
    display: inline-block;
    margin-bottom: 16px;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
}
.fmr-home:hover { text-decoration: underline; }

.fmr-sheet {
    background: var(--fmr-card);
    border: 1px solid var(--fmr-line);
    border-radius: 6px;
    padding: 40px 44px 36px;
    box-shadow: 0 1px 0 #efe6d4, 0 16px 36px rgba(43, 36, 32, .07);
}
.fmr-sheet-title {
    font-family: var(--fmr-serif);
    font-size: clamp(25px, 4vw, 38px);
    font-weight: 700;
    line-height: 1.25;
    color: var(--fmr-ink);
    overflow-wrap: break-word;
}
.fmr-sheet-date {
    margin-top: 10px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--fmr-line);
    font-size: 13px;
    font-style: italic;
    color: var(--fmr-olive);
}
.fmr-sheet-lead {
    margin: 22px 0 6px;
    font-family: var(--fmr-serif);
    font-size: 18px;
    line-height: 1.65;
    color: var(--fmr-ink-soft);
}

.fmr-sheet h2 {
    margin: 32px 0 10px;
    font-family: var(--fmr-serif);
    font-size: 21px;
    font-weight: 700;
    line-height: 1.35;
    color: var(--fmr-ink);
}
.fmr-sheet h2::after {
    content: "";
    display: block;
    width: 36px;
    height: 2px;
    margin-top: 8px;
    background: var(--fmr-wine);
    opacity: .55;
}
.fmr-sheet p {
    margin-bottom: 12px;
    color: var(--fmr-ink-soft);
}
.fmr-sheet strong { color: var(--fmr-ink); }
.fmr-sheet ul {
    margin: 0 0 14px;
    padding-left: 0;
    list-style: none;
    color: var(--fmr-ink-soft);
}
.fmr-sheet li {
    position: relative;
    margin-bottom: 7px;
    padding-left: 20px;
}
.fmr-sheet li::before {
    content: "";
    position: absolute;
    left: 3px;
    top: .72em;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--fmr-sage);
}

/* tables of terms and periods */
.fmr-table-box {
    width: 100%;
    margin: 14px 0 18px;
    overflow-x: auto;
}
.fmr-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 15px;
    line-height: 1.55;
}
.fmr-table caption {
    margin-bottom: 8px;
    text-align: left;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--fmr-olive);
}
.fmr-table th,
.fmr-table td {
    padding: 10px 12px;
    vertical-align: top;
    text-align: left;
    border-bottom: 1px solid var(--fmr-line);
}
.fmr-table thead th {
    background: #f3ecdf;
    border-bottom: 2px solid #cfc3a8;
    font-size: 14px;
    color: var(--fmr-ink);
}
.fmr-table tbody th {
    width: 36%;
    font-weight: 700;
    color: var(--fmr-ink);
}
.fmr-table td { color: var(--fmr-ink-soft); }

.fmr-aside {
    margin: 16px 0 18px;
    padding: 14px 18px;
    background: rgba(139, 46, 63, .06);
    border: 1px solid rgba(139, 46, 63, .22);
    border-radius: 6px;
}
.fmr-aside p { margin: 0; color: var(--fmr-ink); font-size: 15px; }

.fmr-sign {
    margin-top: 30px;
    padding-top: 16px;
    border-top: 1px dashed var(--fmr-line);
    font-family: var(--fmr-serif);
    font-style: italic;
    color: var(--fmr-olive);
}

.fmr-see-also {
    margin-top: 22px;
    padding: 16px 18px;
    background: #f5efe3;
    border-radius: 6px;
    font-size: 15px;
}
.fmr-see-also-title {
    margin-bottom: 6px;
    font-weight: 700;
    color: var(--fmr-ink);
}
.fmr-see-also a { margin-right: 18px; display: inline-block; }

@media (max-width: 620px) {
    .fmr-sheet { padding: 26px 18px 24px; }
    .fmr-sheet-lead { font-size: 17px; }
    .fmr-table tbody th { width: auto; }
    .fmr-table th,
    .fmr-table td { padding: 9px 8px; }
}

/* footer */
.fmr-foot {
    margin-top: auto;
    flex-shrink: 0;
    padding: 26px 16px 24px;
    text-align: center;
    background: #4a4337;
    color: #e7dfcf;
    border-top: 3px solid var(--fmr-wine);
}
.fmr-foot-inner {
    max-width: 900px;
    margin: 0 auto;
}
.fmr-foot-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px 22px;
    margin-bottom: 14px;
}
.fmr-foot-links a {
    color: #efe7d6;
    font-size: 12px;
    text-decoration: none;
    border-bottom: 1px solid rgba(239, 231, 214, .4);
    padding-bottom: 2px;
}
.fmr-foot-links a:hover { color: #ffffff; border-bottom-color: #ffffff; }
.fmr-foot-copy {
    margin-bottom: 10px;
    font-size: 12px;
}
.fmr-foot-legal {
    max-width: 760px;
    margin: 0 auto;
    font-size: 11px;
    line-height: 1.7;
    color: #cfc5b1;
}
