*, *::before, *::after {
    font-kerning: normal;
    font-variant-numeric: lining-nums proportional-nums;
    font-variant-ligatures: common-ligatures contextual;
    outline: none;
    box-sizing: border-box;
    margin: 0;
}

:root { font-size: 12px; font-family: Arial, Helvetica, sans-serif; letter-spacing: 0.04em; }

body, blockquote, dl, dd, h1, h2, h3, h4, h5, h6, hr, figure, p, pre, ul, li, input { margin: 0; }

.hbox { display: flex; flex-direction: row; }
.vbox { display: flex; flex-direction: column; }
.wrap { flex-wrap: wrap; }

.gap4 { gap: 4px; }
.gap6 { gap: 6px; }
.gap10 { gap: 10px; }
.gap20 { gap: 20px; }

.font_bold { font-weight: bold; }


.align_items_flex_start { align-items: flex-start; }
.align_items_flex_end { align-items: flex-end; }
.align_items_center { align-items: center; }
.align_items_stretch { align-items: stretch; }

.justify_content_flex_start { justify-content: flex-start; }
.justify_content_flex_end { justify-content: flex-end; }
.justify_content_center { justify-content: center; }
.justify_content_space_between { justify-content: space-between; }
.justify_content_space_around { justify-content: space-around; }
.justify_content_space_evenly { justify-content: space-evenly; }

.hbox.hb_v_top { align-items: flex-start; }
.hbox.hb_v_bottom { align-items: flex-end; }
.hbox.hb_v_middle { align-items: center; }
.hbox.hb_v_stretch { align-items: stretch; }
.hbox.hb_h_left { justify-content: flex-start; }
.hbox.hb_h_right { justify-content: flex-end; }
.hbox.hb_h_center { justify-content: center; }
.hbox.hb_h_space_between { justify-content: space-between; }
.hbox.hb_h_space_around { justify-content: space-around; }
.hbox.hb_h_space_evenly { justify-content: space-evenly; }

.vbox.vb_h_left { align-items: flex-start; }
.vbox.vb_h_right { align-items: flex-end; }
.vbox.vb_h_center { align-items: center; }
.hbox.vb_h_stretch { align-items: stretch; }
.vbox.vb_v_top { justify-content: flex-start; }
.vbox.vb_v_bottom { justify-content: flex-end; }
.vbox.vb_v_middle { justify-content: center; }
.vbox.vb_v_space_between { justify-content: space-between; }
.vbox.vb_v_space_around { justify-content: space-around; }
.vbox.vb_v_space_evenly { justify-content: space-evenly; }

h1, .h1 { font-size: 2.4rem; line-height: 1.2em; font-weight: bold; }
h2, .h2 { font-size: 2.0rem; line-height: 1.25em; font-weight: bold; }
h3, .h3 { font-size: 1.6rem; line-height: 1.3em; font-weight: bold; }
h4, .h4 { font-size: 1.4rem; line-height: 1.35em; font-weight: bold; }
h5, .h5 { font-size: 1.2rem; line-height: 1.4em; font-weight: bold; }
h6, .h6 { font-size: 1.0rem; line-height: 1.4em; font-weight: bold; }

.p1 { font-size: 1.6rem; line-height: 1.2em; }
.p2 { font-size: 1.4rem; line-height: 1.25em; }
.p3 { font-size: 1.2rem; line-height: 1.3em; }
.p4 { font-size: 1.0rem; line-height: 1.35em; }
.p5 { font-size: 0.875rem; line-height: 1.4em; }
.p6 { font-size: 0.75rem; line-height: 1.4em; }

button, .button {
    background-color: #ebebeb;
    color: black;
    border: 1px solid grey;
    border-radius: 4px;
    padding: 3px 8px;
    cursor: default;
}
button:hover, .button:hover {
    background-color: silver;
}

a {all: unset;}

.link {
    color: blue;
    text-decoration: none;
    cursor: pointer;
}

.cursor_pointer {
    cursor: pointer;
}

.width10 { width: 10px; }
.width20 { width: 20px; }
.width30 { width: 30px; }
.width40 { width: 40px; }
.width50 { width: 50px; }
.width100 { width: 100px; }
.width150 { width: 150px; }
.width200 { width: 200px; }
.width250 { width: 250px; }
.width300 { width: 300px; }

.text_align_left { text-align: left; }
.text_align_center { text-align: center; }
.text_align_right { text-align: right; }

.border_radius_10 { border-radius: 10px; }
.border_radius_5 { border-radius: 5px; }

.font_weight_bold { font-weight: bold; }
.font_style_italic { font-style: italic; }

.error { color: red; }

.display_block { display: block; }
.display_inline { display: inline; }
.display_none { display: none; }