/* 字体相关样式定义 */

/* 字体变量定义 */
:root {
  --font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}

/* 基础字体设置 */
html {
  font-family: sans-serif;
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
}

body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  color: #212529;
  text-align: left;
}

/* 标题元素字体设置 */
h1, h2, h3, h4, h5, h6 {
  margin-top: 0;
  margin-bottom: 0.5rem;
}

/* 段落字体设置 */
p {
  margin-top: 0;
  margin-bottom: 1rem;
}

/* 链接字体样式 */
a {
  color: var(--font-color);
  text-decoration: none;
  transition: color 0.5s all;
}

a:hover {
  color: var(--primary-color);
  text-decoration: underline;
}

/* 地址元素 */
address {
  margin-bottom: 1rem;
  font-style: normal;
  line-height: inherit;
}

/* 列表样式 */
ol, ul, dl {
  margin-top: 0;
  margin-bottom: 1rem;
}

dt {
  font-weight: 600;
}

/* 强调元素 */
b, strong {
  font-weight: bolder;
}

small {
  font-size: 80%;
}

/* 上标下标 */
sub, sup {
  position: relative;
  font-size: 75%;
  line-height: 0;
  vertical-align: baseline;
}

sub {
  bottom: -.25em;
}

sup {
  top: -.5em;
}

/* 代码元素 */
code, kbd, samp {
  font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: 1em;
}

/* 引用样式 */
blockquote {
  margin: 0 0 1rem;
}

/* 表格字体设置 */
table {
  font-size: 1rem;
  line-height: 1.5;
  color: #212529;
}

/* 表单元素字体 */
input, button, select, optgroup, textarea {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}

button, input {
  overflow: visible;
}

button, select {
  text-transform: none;
}

/* 大标题样式 */
.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
  margin-bottom: 0.5rem;
  font-weight: 500;
  line-height: 1.2;
}

.h1, h1 {
  font-size: 2.5rem;
}

.h2, h2 {
  font-size: 2rem;
}

.h3, h3 {
  font-size: 1.75rem;
}

.h4, h4 {
  font-size: 1.5rem;
}

.h5, h5 {
  font-size: 1.25rem;
}

.h6, h6 {
  font-size: 1rem;
}

/* 大尺寸文本 */
.display-1 {
  font-size: 6rem;
  font-weight: 300;
  line-height: 1.2;
}

.display-2 {
  font-size: 5.5rem;
  font-weight: 300;
  line-height: 1.2;
}

.display-3 {
  font-size: 4.5rem;
  font-weight: 300;
  line-height: 1.2;
}

.display-4 {
  font-size: 3.5rem;
  font-weight: 300;
  line-height: 1.2;
}

/* 小文本 */
.lead {
  font-size: 1.25rem;
  font-weight: 300;
}

/* 文本转换 */
.text-lowercase {
  text-transform: lowercase;
}

.text-uppercase {
  text-transform: uppercase;
}

.text-capitalize {
  text-transform: capitalize;
}

/* 文本对齐 */
.text-left {
  text-align: left;
}

.text-right {
  text-align: right;
}

.text-center {
  text-align: center;
}

/* 响应式文本对齐 */
@media (min-width: 576px) {
  .text-sm-left {
    text-align: left;
  }
  
  .text-sm-right {
    text-align: right;
  }
  
  .text-sm-center {
    text-align: center;
  }
}

@media (min-width: 768px) {
  .text-md-left {
    text-align: left;
  }
  
  .text-md-right {
    text-align: right;
  }
  
  .text-md-center {
    text-align: center;
  }
}

@media (min-width: 992px) {
  .text-lg-left {
    text-align: left;
  }
  
  .text-lg-right {
    text-align: right;
  }
  
  .text-lg-center {
    text-align: center;
  }
}

@media (min-width: 1200px) {
  .text-xl-left {
    text-align: left;
  }
  
  .text-xl-right {
    text-align: right;
  }
  
  .text-xl-center {
    text-align: center;
  }
}