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

:root {
    --el_bg: #fbf8f4;
    --el_sand: #b07b4f;
    --el_deep: #8c5f39;
    --el_darker: #6e4a2c;
    --el_light: #f0e6da;
    --el_text: #30291f;
    --el_muted: #5e5346;
    --el_line: #e4d6c5;
    --el_dots: #cfb79c;
    --el_card: #ffffff;
    --el_font: Tahoma, Verdana, sans-serif;
    --el_r_sm: 8px;
    --el_r_md: 10px;
    --el_r_lg: 12px;
    --el_shadow_soft: 0 3px 12px rgba(48, 41, 31, .06);
}

html { -webkit-text-size-adjust: 100%; }

body {
    min-height: 100vh;
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
    background: var(--el_bg);
    font-family: var(--el_font);
    font-size: 15px;
    line-height: 1.7;
    color: var(--el_text);
    overflow-x: hidden;
}

a {
    color: var(--el_darker);
    text-decoration: underline;
    text-decoration-color: rgba(140, 95, 57, .45);
    text-underline-offset: 3px;
}
a:hover { text-decoration-color: var(--el_darker); }

/* header */
.el_header {
    background: #ffffff;
    border-bottom: 6px solid var(--el_light);
    box-shadow: 0 1px 0 var(--el_line);
}
.el_header_in {
    max-width: 860px;
    margin: 0 auto;
    padding: 16px 18px;
    display: flex;
    align-items: center;
}
.el_logo {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    font-size: 22px;
    font-weight: 700;
    letter-spacing: .04em;
    color: var(--el_deep);
    text-decoration: none;
}
.el_logo_mark {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--el_sand);
    box-shadow: 0 0 0 4px var(--el_light);
    flex: 0 0 auto;
}

/* page heading */
.el_page_head {
    width: 100%;
    max-width: 860px;
    margin: 0 auto;
    padding: 40px 18px 20px;
}
.el_page_title {
    font-size: clamp(25px, 4vw, 36px);
    font-weight: 700;
    line-height: 1.28;
    color: var(--el_text);
}
.el_lead {
    margin-top: 10px;
    max-width: 640px;
    color: var(--el_muted);
}
.el_updated {
    display: inline-block;
    margin-top: 14px;
    padding: 4px 11px;
    font-size: 13px;
    color: var(--el_darker);
    background: #ffffff;
    border: 1px dotted var(--el_sand);
    border-radius: 6px;
}

/* glossary chips */
dfn {
    font-style: normal;
    color: var(--el_darker);
    background: var(--el_light);
    border: 1px solid #e3d1bc;
    border-radius: 999px;
    padding: 0 8px;
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
}

.el_terms {
    width: 100%;
    max-width: 860px;
    margin: 0 auto;
    padding: 0 18px 6px;
}
.el_terms_box {
    background: var(--el_card);
    border: 1px solid var(--el_line);
    border-radius: var(--el_r_lg);
    box-shadow: var(--el_shadow_soft);
    padding: 18px 20px;
}
.el_terms_title {
    font-size: 15px;
    font-weight: 700;
    font-variant: small-caps;
    letter-spacing: .08em;
    color: var(--el_darker);
    padding-bottom: 10px;
    margin-bottom: 12px;
    border-bottom: 2px dotted var(--el_dots);
}
.el_terms_list {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 10px 16px;
    align-items: baseline;
}
.el_terms_list dt { font-size: 14px; }
.el_terms_list dd { font-size: 14px; color: var(--el_muted); }
@media (max-width: 560px) {
    .el_terms_list { grid-template-columns: 1fr; gap: 4px; }
    .el_terms_list dd { margin-bottom: 8px; }
}

/* sections */
.el_sheet {
    width: 100%;
    max-width: 860px;
    margin: 0 auto;
    padding: 8px 18px 50px;
}
.el_part {
    padding: 24px 0;
    border-top: 2px dotted var(--el_dots);
}
.el_part:first-child { border-top: 0; }
.el_part_title {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin-bottom: 10px;
    font-size: 20px;
    font-weight: 700;
    font-variant: small-caps;
    letter-spacing: .04em;
    line-height: 1.35;
    color: var(--el_text);
}
.el_part_no {
    flex: 0 0 auto;
    font-size: 14px;
    font-variant: normal;
    letter-spacing: 0;
    color: var(--el_deep);
}
.el_part_text p { margin-bottom: 12px; color: var(--el_muted); }
.el_part_text p:last-child { margin-bottom: 0; }
.el_part_text strong { color: var(--el_text); }
.el_part_text ul,
.el_part_text ol {
    margin: 0 0 12px;
    list-style: none;
    color: var(--el_muted);
}
.el_part_text li {
    position: relative;
    padding-left: 22px;
    margin-bottom: 7px;
}
.el_part_text ul > li::before {
    content: "";
    position: absolute;
    left: 3px;
    top: .62em;
    width: 7px;
    height: 7px;
    background: var(--el_sand);
    transform: rotate(45deg);
    border-radius: 1px;
}
.el_part_text ol { counter-reset: elCount; }
.el_part_text ol > li { counter-increment: elCount; padding-left: 28px; }
.el_part_text ol > li::before {
    content: counter(elCount) ")";
    position: absolute;
    left: 2px;
    top: 0;
    font-weight: 700;
    color: var(--el_deep);
}

.el_note_box {
    margin: 14px 0 6px;
    padding: 14px 16px;
    background: var(--el_card);
    border: 1px solid var(--el_line);
    border-left: 4px solid var(--el_sand);
    border-radius: 0 var(--el_r_md) var(--el_r_md) 0;
}
.el_note_box p { margin: 0; color: var(--el_text); }

.el_rows { margin: 10px 0 12px; }
.el_row {
    display: grid;
    grid-template-columns: minmax(130px, 34%) 1fr;
    gap: 4px 16px;
    padding: 10px 0;
    border-bottom: 1px dotted var(--el_dots);
}
.el_row:first-child { border-top: 1px dotted var(--el_dots); }
.el_row_key { font-weight: 700; color: var(--el_text); }
.el_row_val { color: var(--el_muted); }
@media (max-width: 560px) {
    .el_row { grid-template-columns: 1fr; }
}

.el_grid_table {
    width: 100%;
    margin: 12px 0;
    border-collapse: collapse;
    background: var(--el_card);
    border: 1px solid var(--el_line);
    font-size: 14px;
}
.el_grid_table th {
    padding: 10px 12px;
    text-align: left;
    background: var(--el_light);
    color: var(--el_darker);
    font-variant: small-caps;
    letter-spacing: .04em;
}
.el_grid_table td {
    padding: 10px 12px;
    border-top: 1px dotted var(--el_dots);
    color: var(--el_muted);
    vertical-align: top;
}

.el_badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 10px 0 12px;
}
.el_badge {
    display: inline-block;
    padding: 4px 12px;
    font-size: 13px;
    color: var(--el_darker);
    background: var(--el_card);
    border: 1px solid var(--el_line);
    border-radius: 999px;
}

.el_revision_area {
    width: 100%;
    max-width: 860px;
    margin: 0 auto;
    padding: 0 18px 50px;
}
.el_revision_box {
    padding: 16px 18px;
    border: 2px dotted var(--el_dots);
    border-radius: var(--el_r_lg);
    background: #ffffff;
    font-size: 14px;
    color: var(--el_muted);
    text-align: center;
}

/* footer */
.el_bottom {
    margin-top: auto;
    flex-shrink: 0;
    padding: 26px 18px 24px;
    background: var(--el_light);
    border-top: 1px solid var(--el_line);
    text-align: center;
}
.el_bottom_in { max-width: 880px; margin: 0 auto; }
.el_links {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px 20px;
    margin-bottom: 14px;
}
.el_links a { font-size: 13px; }
.el_copy {
    margin-bottom: 10px;
    font-size: 12px;
    color: var(--el_text);
}
.el_legal {
    max-width: 740px;
    margin: 0 auto;
    font-size: 11.5px;
    line-height: 1.7;
    color: var(--el_muted);
}
