@font-face {
  font-family: 'Roboto Condensed';
  src: url('./font/RobotoCondensed-Light.ttf') format('truetype');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Roboto Condensed';
  src: url('./font/RobotoCondensed-Regular.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Roboto Condensed';
  src: url('./font/RobotoCondensed-Medium.ttf') format('truetype');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Roboto Condensed';
  src: url('./font/RobotoCondensed-ExtraBold.ttf') format('truetype');
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}

:root {
  --container-width: 1600px;
  --title-font-family: 'Roboto Condensed', sans-serif;
  --font-family: 'Roboto Condensed', sans-serif;
  --font-80: clamp(24px, calc(4 * 4 / 3 * 1vw), 80px);
  --font-60: clamp(20px, 4vw, 60px);
  --font-50: clamp(20px, calc(2.3vw + 8px), 50px);
  --font-48: clamp(18px, calc(3vw + 3px), 48px);
  --font-40: clamp(18px, calc(1.6vw + 10px), 40px);
  --font-36: clamp(16px, calc(1.8vw + 9px), 36px);
  --font-32: clamp(16px, calc(1.6vw + 8px), 32px);
  --font-24: clamp(14px, calc(0.8vw + 12px), 24px);
  --font-20: clamp(14px, calc(0.6vw + 11px), 20px);
  --font-16: clamp(12px, calc(0.4vw + 10px), 16px);
  --font-14: clamp(12px, calc(0.4vw + 10px), 14px);

  --length-120: 120px;
  --length-100: 100px;
  --length-80: 80px;
  --length-60: 60px;
  --length-50: 50px;
  --length-48: 48px;
  --length-40: 40px;
  --length-32: 32px;
  --length-20: 20px;
}

body * {
  line-height: 1.2;
}

body .rich-text ul {
  padding-left: 2em;
}

/* 标题 */
h2 {
  font-size: var(--font-60);
  color: #333;
  font-weight: 400;
  line-height: 120%;
}

h2 b {
  font-weight: 500;
  color: #000;
  font-size: calc(var(--font-60) * 4 / 3);
}

.insideH2 b {
  font-size: var(--font-60);
  color: #333;
}

.whiteH2,
.whiteH2 b {
  color: #FFF;
}

/* 动画 */
.hover-bottom-line {
  position: relative;
  overflow: hidden;
}

.hover-bottom-line::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 8px;
  background: #333;
  visibility: hidden;
  opacity: 0;
  transition: all 0.3s ease;
}

.hover-bottom-line:hover::after {
  visibility: visible;
  opacity: 1;
}

.xili-scale-hover img {
  transition: all 0.3s ease;
  will-change: transform;
}

.xili-scale-hover:hover img {
  transform: scale(1.06);
}

/* 分页器 */
div:has(>#pagesize) {
  margin-top: var(--length-50);
}

#pagesize ul {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
}

#pagesize ul li a,
#pagesize ul li span {
  border-radius: 50%;
  width: 34px;
  height: 34px;

  color: #333;
  font-size: var(--font-14);
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.28px;

  background: #FFF;

  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
}

#pagesize ul li a:not(.disabled).active,
#pagesize ul li a:not(.disabled):hover {
  background: #333;
  color: #fff;
}

#pagesize ul li a:not(.disabled):hover svg path {
  stroke: #FFF;
}

#pagesize ul li a.disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

@media screen and (max-width: 768px) {

  #pagesize ul li a,
  #pagesize ul li span {
    width: 30px;
    height: 30px;
  }

  #pagesize ul {
    gap: 10px;
  }
}

/*-------------------------------- search --------------------------------*/

.xili-search-form {
  display: flex;
  justify-content: center;
  border-radius: 12px;
  background: #FFF;
  overflow: hidden;
}

.xili-search-input {
  flex: 1;
  padding: 0 30px;
  color: #333;
  font-size: var(--font-20);
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.4px;
}

.xili-search-input::placeholder {
  color: #999;
  font-size: var(--font-20);
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.4px;
}

.xili-search-btn {
  width: 60px;
  aspect-ratio: 1 / 1;
  border-radius: 12px;
  background: #333;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
  cursor: pointer;
}

.xili-search-btn:hover {
  background: #666;
}

.xili-search-btn svg {
  width: 40%;
  height: 40%;
  min-width: 16px;
  min-height: 16px;
  transition: all 0.3s ease;
}

@media screen and (max-width: 1200px) {
  .xili-search-input {
    padding: 0 20px;
  }

  .xili-search-btn {
    width: 50px;
  }
}

@media screen and (max-width: 992px) {
  .xili-search-form{
    border-radius: 8px;
  }

  .xili-search-btn {
    width: 40px;
  }
}

@media screen and (max-width: 576px) {

  .xili-search-input {
    padding: 0 16px;
  }

  .xili-search-btn {
    width: 40px;
  }

  .xili-search-btn svg {
    width: 16px;
    height: 16px;
  }
}

/*-------------------------------- container --------------------------------*/
.xili-container {
  width: 100%;
  max-width: var(--container-width);
  margin: 0 auto;
}

@media screen and (max-width: 1660px) {

  :root {
    --container-width: 1440px;
    --length-120: 100px;
    --length-100: 80px;
  }
}

@media screen and (max-width: 1500px) {

  :root {
    --container-width: 1200px;
    --length-120: 80px;
    --length-100: 60px;
    --length-80: 55px;
    --length-60: 50px;
    --length-50: 40px;
    --length-48: 40px;
    --length-32: 28px;
    --length-40: 30px;
  }
}

@media screen and (max-width: 1280px) {

  :root {
    --container-width: 1140px;
    --length-120: 60px;
    --length-100: 40px;
    --length-80: 45px;
    --length-60: 32px;
    --length-50: 32px;
    --length-48: 32px;
    --length-32: 24px;
    --length-20: 16px;
  }
}

@media screen and (max-width: 1200px) {
  :root {
    --container-width: 960px;
  }

}

@media screen and (max-width: 992px) {

  :root {
    --container-width: 720px;
    --length-120: 50px;
    --length-100: 40px;
    --length-80: 35px;
    --length-60: 30px;
    --length-50: 24px;
    --length-40: 24px;
    --length-48: 24px;
    --length-32: 18px;
    --length-20: 12px;
  }
}

@media screen and (max-width: 768px) {

  :root {
    --container-width: 540px;
    --length-120: 40px;
    --length-100: 30px;
    --length-80: 25px;
    --length-60: 20px;
    --length-50: 16px;
    --length-40: 16px;
    --length-48: 16px;
    --length-32: 14px;
    --length-20: 10px;
    --font-14: 12px;
  }
}

@media screen and (max-width: 576px) {

  :root {
    --container-width: 450px;
    --length-120: 32px;
    --length-100: 24px;
    --length-80: 20px;
    --length-60: 16px;
    --length-50: 12px;
    --length-48: 12px;
    --length-40: 12px;
    --length-32: 12px;
  }
}

@media screen and (max-width: 480px) {
  :root {
    --container-width: none;
  }

  .xili-container {
    width: 100%;
    padding: 0 15px;
  }
}

/* 按钮默认样式 */
.xili-btn {
  padding: 16px 32px;
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: fit-content;
  height: fit-content;
  white-space: nowrap;
  transition: all 0.3s ease;
}

.xili-btn span {
  font-size: var(--font-20);
  font-weight: 400;
  line-height: normal;
  transition: all 0.3s ease;
}

.xili-btn svg {
  width: 10px;
  height: 10px;
  flex-shrink: 0;
}

.xili-btn svg path {
  transition: all 0.3s ease;
}

/* 白色框线按钮 */
.xili-btn-outline {
  border: 1px solid rgba(255, 255, 255, 0.80);
}

.xili-btn-outline span {
  color: #FFF;
}

.xili-btn-outline:hover {
  background: #FFF;
}

.xili-btn-outline:hover span {
  color: #000;
}

.xili-btn-outline:hover svg path {
  stroke: #000;
}

/* 黑色框线按钮 */
.xili-btn-outline-black {
  border: 1px solid #333;
}

.xili-btn-outline-black span {
  color: #333;
}

.xili-btn-outline-black:hover {
  background: #333;
}

.xili-btn-outline-black:hover span {
  color: #FFF;
}

.xili-btn-outline-black:hover svg path {
  stroke: #FFF;
}

/*-------------------------------- swiper --------------------------------*/
.xili-pagination.swiper-pagination-bullets.swiper-pagination-horizontal {
  bottom: 80px;
  font-size: 0;
  line-height: 0;
}

.xili-pagination.bottom-0 {
  bottom: 0 !important;
}

.xili-pagination .swiper-pagination-bullet {
  width: 50px;
  background: rgba(255, 255, 255, 0.30);
  height: 5px;
  margin: 0 7.5px;
  border-radius: 2.5px;
  opacity: 1;
}

.xili-pagination .swiper-pagination-bullet-active,
.xili-pagination .swiper-pagination-bullet:hover {
  background: #FFF;
}

.xili-pagination.pagination-black .swiper-pagination-bullet {
  background: rgba(0, 0, 0, 0.10);
}

.xili-pagination.pagination-black .swiper-pagination-bullet-active,
.xili-pagination.pagination-black .swiper-pagination-bullet:hover {
  background: #333;
}

.xili-swiper-nav {
  display: flex;
}

.xili-swiper-btn {
  width: 64px;
  height: 64px;
  border: 0.667px solid #333;
  background: #FFF;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.3s ease;
}

.xili-swiper-nav .xili-swiper-btn:first-child {
  border-right: none;
}

.xili-swiper-btn.swiper-button-lock {
  display: flex;
}

.xili-swiper-btn.swiper-button-disabled {
  cursor: not-allowed;
}

.xili-swiper-btn.swiper-button-disabled svg {
  opacity: 0.5;
}

.xili-swiper-btn svg path {
  stroke: #333;
  transition: all 0.3s ease;
}

.xili-swiper-btn:not(.swiper-button-disabled):hover {
  background: #333;
}

.xili-swiper-btn:not(.swiper-button-disabled):hover svg path {
  stroke: #FFF;
}

@media screen and (max-width: 1200px) {
  .xili-pagination.swiper-pagination-bullets.swiper-pagination-horizontal {
    bottom: 60px;
  }
}

@media screen and (max-width: 992px) {

  .xili-btn {
    padding: 12px 24px;
  }

  .xili-pagination.swiper-pagination-bullets.swiper-pagination-horizontal {
    bottom: 40px;
  }

  .xili-pagination .swiper-pagination-bullet {
    width: 30px;
    height: 3px;
    border-radius: 30px;
  }

  .xili-swiper-btn {
    width: 48px;
    height: 48px;
  }
}

@media screen and (max-width: 576px) {
  .xili-btn {
    padding: 8px 16px;
  }

  .xili-pagination.swiper-pagination-bullets.swiper-pagination-horizontal {
    bottom: 20px;
  }

  .xili-swiper-btn {
    width: 32px;
    height: 32px;
  }
}