/*
 Theme Name:   GeneratePress Child
 Theme URI:    https://generatepress.com
 Description:  Default GeneratePress child theme
 Author:       Tom Usborne
 Author URI:   https://tomusborne.com
 Template:     generatepress
 Version:      0.1
*/

/* 溢出隐藏，配合圆角裁剪图片/容器 */
.u-overflow-hidden { overflow: hidden; }

.u-flex-start {
  display: flex;
  align-items: center;
  justify-content: flex-start;
}
.u-flex-center {
  display: flex;
  align-items: center;
  justify-content: center;
}
.u-flex-between {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.u-flex-col {
  display: flex;
  flex-direction: column;
}

/* ========== 桌面独立网格类 lg:u-grid-1 ~ lg:u-grid-4（基准，无media） ========== */
.lg\:u-grid-1 {
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
}
.lg\:u-grid-2 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.lg\:u-grid-3 {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.lg\:u-grid-4 {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

/* ========== 平板独立网格类 md:u-grid-1 ~ md:u-grid-4 768-1023px ========== */
@media (max-width: 1023px) {
  .md\:u-grid-1 {
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  .md\:u-grid-2 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .md\:u-grid-3 {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .md\:u-grid-4 {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

/* ========== 手机独立网格类 sm:u-grid-1 ~ sm:u-grid-4 ＜768px ========== */
@media (max-width: 767px) {
  .sm\:u-grid-1 {
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  .sm\:u-grid-2 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .sm\:u-grid-3 {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .sm\:u-grid-4 {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}


/* 配套三端显隐原子（同步 lg/md/sm 命名） */
.lg\:u-hidden { display: none; }
.lg\:u-block { display: grid; }

@media (max-width: 1023px) {
  .md\:u-hidden { display: none; }
  .md\:u-block { display: grid; }
}
@media (max-width: 767px) {
  .sm\:u-hidden { display: none; }
  .sm\:u-block { display: grid; }
}


/* ===================== 网格&弹性通用间距 gap 原子 ===================== */
.u-gap-1 { gap: 0.25rem; }
.u-gap-2 { gap: 0.5rem; }
.u-gap-4 { gap: 1rem; }
.u-gap-6 { gap: 1.5rem; }
.u-gap-8 { gap: 2rem; }
.u-gap-10 { gap: 2.5rem; }

/* 四边统一内边距 */
.u-p-1 { padding: 0.25rem; }
.u-p-2 { padding: 0.5rem; }
.u-p-4 { padding: 1rem; }
.u-p-6 { padding: 1.5rem; }
.u-p-8 { padding: 2rem; }
.u-p-10 { padding: 2.5rem; }

/* 横向左右内边距 x=left+right */
.u-px-1 { padding-left: 0.25rem; padding-right: 0.25rem; }
.u-px-2 { padding-left: 0.5rem; padding-right: 0.5rem; }
.u-px-4 { padding-left: 1rem; padding-right: 1rem; }
.u-px-6 { padding-left: 1.5rem; padding-right: 1.5rem; }
.u-px-8 { padding-left: 2rem; padding-right: 2rem; }

/* 纵向上下内边距 y=top+bottom */
.u-py-1 { padding-top: 0.25rem; padding-bottom: 0.25rem; }
.u-py-2 { padding-top: 0.5rem; padding-bottom: 0.5rem; }
.u-py-4 { padding-top: 1rem; padding-bottom: 1rem; }
.u-py-6 { padding-top: 1.5rem; padding-bottom: 1.5rem; }
.u-py-8 { padding-top: 2rem; padding-bottom: 2rem; }

/* 单边内边距 pt上 / pr右 / pb下 / pl左 */
.u-pt-2 { padding-top: 0.5rem; }
.u-pr-2 { padding-right: 0.5rem; }
.u-pb-2 { padding-bottom: 0.5rem; }
.u-pl-2 { padding-left: 0.5rem; }

/* 四边统一外边距 */
.u-m-2 { margin: 0.5rem; }
.u-m-4 { margin: 1rem; }
.u-m-6 { margin: 1.5rem; }
.u-m-8 { margin: 2rem; }

/* 横向左右外边距 mx=left+right；u-mx-auto 容器水平居中核心类 */
.u-mx-2 { margin-left: 0.5rem; margin-right: 0.5rem; }
.u-mx-4 { margin-left: 1rem; margin-right: 1rem; }
.u-mx-auto { margin-left: auto; margin-right: auto; }

/* 纵向上下外边距 my=top+bottom */
.u-my-2 { margin-top: 0.5rem; margin-bottom: 0.5rem; }
.u-my-4 { margin-top: 1rem; margin-bottom: 1rem; }
.u-my-6 { margin-top: 1.5rem; margin-bottom: 1.5rem; }

/* 单边外边距 mt上 / mb下（最常用，左右少用） */
.u-mt-2 { margin-top: 0.5rem; }
.u-mt-4 { margin-top: 1rem; }
.u-mt-6 { margin-top: 1.5rem; }
.u-mb-2 { margin-bottom: 0.5rem; }
.u-mb-4 { margin-bottom: 1rem; }
.u-mb-6 { margin-bottom: 1.5rem; }

/* 宽高控制 */
.u-w-full { width: 100%; /* 宽度100%自适应父容器 */ }
.u-h-auto { height: auto; /* 高度自适应内容 */ }

/* 字体大小 */
.u-text-1 { font-size: 1rem;     /* 16px 正文基础 */ }
.u-text-2 { font-size: 1.25rem;  /* 20px 小标题 */ }
.u-text-3 { font-size: 1.5rem;   /* 24px 模块标题 */ }
.u-text-4 { font-size: 1.875rem; /* 30px 页面主标题 */ }

/* 字体粗细 */
.u-font-400 { font-weight: 400; /* 常规字重 */ }
.u-font-500 { font-weight: 500; /* 中等加粗 */ }
.u-font-700 { font-weight: 700; /* 粗体标题 */ }

/* 文字对齐 */
.u-text-left { text-align: left; /* 左对齐 */ }
.u-text-center { text-align: center; /* 居中文字 */ }
.u-text-right { text-align: right; /* 右对齐 */ }


/* ===================== 文字颜色 u-text-color-1 ~ u-text-color-11 ===================== */
.u-text-color-1 { color: var(--global-color-1); }
.u-text-color-2 { color: var(--global-color-2); }
.u-text-color-3 { color: var(--global-color-3); }
.u-text-color-4 { color: var(--global-color-4); }
.u-text-color-5 { color: var(--global-color-5); }
.u-text-color-6 { color: var(--global-color-6); }
.u-text-color-7 { color: var(--global-color-7); }
.u-text-color-8 { color: var(--global-color-8); }
.u-text-color-9 { color: var(--global-color-9); }
.u-text-color-10 { color: var(--global-color-10); }
.u-text-color-11 { color: var(--global-color-11); }

/* ===================== 背景颜色 u-bg-color-1 ~ u-bg-color-11 ===================== */
.u-bg-color-1 { background-color: var(--global-color-1); }
.u-bg-color-2 { background-color: var(--global-color-2); }
.u-bg-color-3 { background-color: var(--global-color-3); }
.u-bg-color-4 { background-color: var(--global-color-4); }
.u-bg-color-5 { background-color: var(--global-color-5); }
.u-bg-color-6 { background-color: var(--global-color-6); }
.u-bg-color-7 { background-color: var(--global-color-7); }
.u-bg-color-8 { background-color: var(--global-color-8); }
.u-bg-color-9 { background-color: var(--global-color-9); }
.u-bg-color-10 { background-color: var(--global-color-10); }
.u-bg-color-11 { background-color: var(--global-color-11); }

/* ===================== 边框颜色 u-border-color-1 ~ u-border-color-11 ===================== */
.u-border-color-1 { border-color: var(--global-color-1); }
.u-border-color-2 { border-color: var(--global-color-2); }
.u-border-color-3 { border-color: var(--global-color-3); }
.u-border-color-4 { border-color: var(--global-color-4); }
.u-border-color-5 { border-color: var(--global-color-5); }
.u-border-color-6 { border-color: var(--global-color-6); }
.u-border-color-7 { border-color: var(--global-color-7); }
.u-border-color-8 { border-color: var(--global-color-8); }
.u-border-color-9 { border-color: var(--global-color-9); }
.u-border-color-10 { border-color: var(--global-color-10); }
.u-border-color-11 { border-color: var(--global-color-11); }


/* 卡片阴影层级 */
.u-shadow-none { box-shadow: none; /* 清除阴影 */ }
.u-shadow-1 { box-shadow: 0 1px 3px rgba(0,0,0,0.1); /* 轻微浅阴影 */ }
.u-shadow-2 { box-shadow: 0 4px 12px rgba(0,0,0,0.1); /* 标准卡片阴影 */ }

/* 透明度控制 */
.u-opacity-50 { opacity: 0.5; /* 半透明50% */ }
.u-opacity-100 { opacity: 1; /* 完全不透明，清除透明 */ }