@charset 'utf-8';
/* ============================================================
   一级页面/css/calendar.css —— 活動日曆 页面样式（活动中心）
   说明：
   1. 1rem = 100px（与 common.css 自适应换算一致）
   2. 兼容 IE11：Flexbox 均书写 -ms- 前缀；关键尺寸提供 px 兜底
   3. 禁止 CSS Grid；头尾/面包屑复用 common/topbottom-hh.css
   ============================================================ */
body {
  overflow-x: hidden;
}
/* ---------- 内容区（左侧装饰背景） ---------- */
.cal-main {
  background: #f5f2fb url(../images/bg1.png) no-repeat;
  background-size: 100% auto;
}
.cal-main-box{
  background: url(../images/bg2.png) no-repeat;
  background-size: 6.91rem 100%;
}
.cal-inner {
  width: 1530px;
  width: 15.3rem;
  margin: 0 auto;
  padding-bottom: 191px;
  padding-bottom: 1.91rem;
}
/* 面包屑（装饰背景上为白色文字） */
.cal-inner .hh-crumb {
  color: #ffffff;
}
.cal-inner .hh-crumb a {
  color: #ffffff;
}
.cal-inner .hh-crumb a:hover {
  color: #e8e0f7;
}

.cal-title{
  font-family: Microsoft YaHei;
  font-size: 0.72rem;
  font-weight: bold;
  line-height: normal;
  letter-spacing: normal;
  color: rgba(255, 255, 255, 0.1);
  margin-top: 0.79rem;
  margin-bottom: 0.49rem;
}
/* ---------- 日历 + 活动卡片 左右布局 ---------- */
.cal-box {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: start;
  align-items: flex-start;
}
/* 左：日历组件 */
.calendar {
  width: 420px;
  width: 4.2rem;
  height: 456px;
  height: 4.56rem;
  -ms-flex-negative: 0;
  flex-shrink: 0;
  background: #ffffff;
  box-sizing: border-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
  flex-direction: column;
}
/* 标题栏（青色） */
.cal-header {
  height: 60px;
  height: 0.6rem;
  background: #7ad7d8;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
  align-items: center;
  -ms-flex-pack: center;
  justify-content: center;
  box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.3);
}
.cal-header .cal-month {
  font-family: "Microsoft YaHei";
  font-size: 20px;
  font-size: 0.2rem;
  font-weight: 700;
  line-height: 24px;
  line-height: 0.24rem;
  letter-spacing: 2px;
  color: #ffffff;
  margin: 0 60px;
  margin: 0 0.6rem;
}
.cal-header .cal-prev,
.cal-header .cal-next {
  width: 22px;
  width: 0.22rem;
  height: 22px;
  height: 0.22rem;
  cursor: pointer;
  padding: 0;
  background: none;
  border: none;
  transform: rotate(90deg);
}
.cal-header .cal-prev img,
.cal-header .cal-next img {
  width: 17px;
  width: 0.17rem;
  height: 12px;
  height: 0.12rem;
  display: block;
}
.cal-header .cal-prev img {
  -ms-transform: rotate(180deg);
  transform: rotate(180deg);
}
/* 星期行 */
.cal-week {
  height: 54px;
  height: 0.54rem;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
  align-items: center;
  -ms-flex-pack: center;
  justify-content: center;
  border-bottom: 1px solid #efeff0;
}
.cal-week span {
  width: 42px;
  width: 0.42rem;
  height: 42px;
  height: 0.42rem;
  margin: 0 7px;
  margin: 0 0.07rem;
  text-align: center;
  line-height: 42px;
  line-height: 0.42rem;
  font-family: "Microsoft YaHei";
  font-size: 16px;
  font-size: 0.16rem;
  color: #2f1c61;
}
/* 日期行 */
.cal-days {
  -ms-flex-positive: 1;
  flex-grow: 1;
  padding: 4px 6px;
  padding: 0.04rem 0.06rem;
  box-sizing: border-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
  flex-direction: column;
  -ms-flex-pack: distribute;
  justify-content: space-around;
}
.cal-days .cal-row {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
  align-items: center;
  -ms-flex-pack: center;
  justify-content: center;
  height: 50px;
  height: 0.5rem;
  -ms-flex-negative: 0;
  flex-shrink: 0;
}
.cal-days .cal-row span {
  width: 42px;
  width: 0.42rem;
  height: 42px;
  height: 0.42rem;
  margin: 0 7px;
  margin: 0 0.07rem;
  text-align: center;
  line-height: 42px;
  line-height: 0.42rem;
  font-family: "Microsoft YaHei";
  font-size: 16px;
  font-size: 0.16rem;
  color: #2f1c61;
  border-radius: 50%;
  cursor: pointer;
}
.cal-days .cal-row span.other {
  color: rgba(47, 28, 97, 0.3);
}
/* 选中日期（默认选中当前日期，紫色背景） */
.cal-days .cal-row span.selected {
  background: #6845c4;
  color: #ffffff;
  font-weight: 700;
}
.cal-days .cal-row span:hover {
  background: #e9e2f7;
}
/* 活动日期高亮（calendar.json 中该月有活动的日期，显示青色小圆点） */
.cal-days .cal-row span.has-event {
  position: relative;
}
.cal-days .cal-row span.has-event::after {
  content: '';
  position: absolute;
  left: 50%;
  bottom: 3px;
  width: 6px;
  width: 0.06rem;
  height: 6px;
  height: 0.06rem;
  margin-left: -3px;
  margin-left: -0.03rem;
  border-radius: 50%;
  background: #7ad7d8;
}
/* 已选中且有活动的日期：圆点改白色，避免与紫色背景混淆 */
.cal-days .cal-row span.has-event.selected::after {
  background: #ffffff;
}
/* 日历翻页按钮（卡片轮播导航） */
.cal-nav {
  margin-top: 20px;
  margin-top: 0.2rem;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
  align-items: center;
  -ms-flex-pack: center;
  justify-content: center;
}
.cal-nav a {
  margin: 0 19px;
  margin: 0 0.19rem;
  position: relative;
  width: 45px;
  height: 45px;
  width: 0.45rem;
  height: 0.45rem;
}
.cal-nav a::after {
  content: '';
  display: block;
  width: 100%;
  height: 100%;
  background: url(../images/arrow-prev.png) no-repeat center center;
  background-size: 45px 45px;
  background-size: 0.45rem 0.45rem;
  position: absolute;
  left: 0;
  top: 0;
}
.cal-nav a.next::after {
  -ms-transform: rotate(180deg);
  transform: rotate(180deg);
}
.cal-nav a:hover::after {
  background: url(../images/arrow-next.png) no-repeat center center;
  background-size: 45px 45px;
  background-size: 0.45rem 0.45rem;
  -ms-transform: rotate(180deg);
  transform: rotate(180deg);
}
.cal-nav a.next:hover::after {
  -ms-transform: rotate(0);
  transform: rotate(0);
}
/* 右列：卡片轮播 + 翻页按钮 */
.cal-right {
  -ms-flex-positive: 1;
  flex-grow: 1;
  -ms-flex-negative: 1;
  flex-shrink: 1;
  -ms-flex-preferred-size: 0%;
  flex-basis: 0%;
  min-width: 0;
  margin-left: 26px;
  margin-left: 0.26rem;
  overflow: hidden;
}
/* 右：活动卡片轮播（Swiper） */
.cal-cards.swiper-container {
  overflow: hidden;
  position: relative;
}
.cal-cards .swiper-slide {
  height: auto;
}
/* 右侧无活动数据时的空提示 */
.cal-cards.is-empty::after {
  content: '該日暫無活動';
  position: absolute;
  top: 50%;
  left: 50%;
  -ms-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  font-family: "Microsoft YaHei";
  font-size: 20px;
  font-size: 0.2rem;
  color: #999999;
  white-space: nowrap;
}
/* 无轮播数据（空提示）时隐藏翻页按钮 */
.cal-cards.is-empty + .cal-nav {
  display: none;
}
.cal-card {
  width: 100%;
  height: 456px;
  height: 4.56rem;
  background: #ffffff;
  text-decoration: none;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
  flex-direction: column;
  box-sizing: border-box;
  transition: transform 0.4s ease
}
.cal-card .cc-cover {
  width: 100%;
  height: 261px;
  height: 2.61rem;
  overflow: hidden;
  -ms-flex-negative: 0;
  flex-shrink: 0;
}
.cal-card .cc-cover img {
  width: 100%;
  height: 100%;
  display: block;
  transition: transform 0.5s ease;
  -webkit-transition: -webkit-transform 0.5s ease;
  -ms-transition: -ms-transform 0.5s ease;
  object-fit: cover;
}
.cal-card:hover {
  box-shadow: 0 0 10px 2px rgba(104, 69, 196, 0.3);
  transform: translateY(-5px);
}
.cal-card:hover .cc-cover img {
  transform: scale3d(1.05, 1.05, 1.05);
  -webkit-transform: scale3d(1.05, 1.05, 1.05);
  -ms-transform: scale3d(1.05, 1.05, 1.05);
}
.cal-card .cc-title {
  padding: 10px 20px;
  padding: .1rem 0.2rem;
  height: 75px;
  height: 0.75rem;
  box-sizing: border-box;
  font-family: "Microsoft YaHei";
  font-size: 20px;
  font-size: 0.2rem;
  font-weight: 700;
  line-height: 30px;
  line-height: 0.30rem;
  color: #3d3d3d;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}
.cal-card.focus .cc-title {
  color: #6845c4;
}
.cal-card.focus {
  box-shadow: 0 4px 10px 0 rgba(104, 69, 196, 0.3);
}
.cal-card:hover .cc-title {
  color: #6845c4;
}
.cal-card .cc-info {
  -ms-flex-positive: 1;
  flex-grow: 1;
  padding: 11px 14px 10px;
  padding: 0.11rem 0.14rem 0.1rem;
}
.cal-card .cc-info p {
  display: -ms-flexbox;
  height: 35px;
  height: 0.35rem;
  font-family: "Microsoft YaHei";
  font-size: 16px;
  font-size: 0.16rem;
  line-height: 24px;
  line-height: 0.24rem;
  padding-left: 28px;
  padding-left: 0.28rem;
  color: #999999;
  position: relative;
}
.cal-card .cc-info p.date {
  height: 60px;
  height: 0.60rem;
}
.cal-card .cc-info p::before {
  content: '';
  position: absolute;
  left: 0;
  top: 4px;
  top: .04rem;
  width: 16px;
  width: 0.16rem;
  height: 16px;
  height: 0.16rem;
}
.cal-card .cc-info p.address {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cal-card .cc-info p.date::before {
  content: '';
  position: absolute;
  background: url('../images/icon-date.svg') no-repeat;
  background-size: 100% 100%;
}
.cal-card .cc-info p.address::before {
  content: '';
  position: absolute;
  background: url('../images/icon-loc.svg') no-repeat;
  background-size: 100% 100%;
}
/* ---------- 响应式（平板/移动端 ≤1024px） ---------- */
@media screen and (max-width: 1024px) {
  .cal-main{
    padding: 0;
  }
  .cal-main-box {
    padding: 0 0.2rem 0.1rem;
    background-size: 100%;
  }
  .cal-title{
    margin-top: 0;
    font-size: 0.5rem;
  }
  .cal-inner {
    width: 100%;
    padding-bottom: 0.2rem;
    box-sizing: border-box;
  }
  .cal-box {
    display: block;
    margin-top: 0.4rem;
  }
  .calendar {
    width: 100%;
    margin-bottom: 0.25rem;
    height: 6rem;
  }
  .cal-right {
    display: block;
    margin-left: 0;
  }
  .cal-cards.swiper-container {
    margin-left: 0;
  }
  .cal-card {
    width: 100%;
    margin-bottom: 0.25rem;
    height: 7rem;
  }
  .cal-card .cc-cover {
    width: 100%;
    height: 4rem;
    object-fit: cover;
  }
  .cal-card .cc-title {
    font-size: 0.28rem;
    height: 1rem;
    line-height: .42rem;
  }
  .cal-card .cc-info p {
    font-size: 0.26rem;
    height: 0.5rem;
    padding-left: .4rem;
  }
  .cal-card .cc-info p::before {
    width: 0.26rem;
    height: 0.26rem;
    top: 0;
  }
  .cal-card .cc-info p.date {
    height: 1.1rem;
    line-height: .45rem;
  }
  .cal-card .cc-info p.date::before {
    top: .05rem;
  }
  .cal-inner .hh-crumb,
  .cal-inner .hh-crumb a {
    font-size: 0.26rem;
  }
  .cal-header .cal-month{
    font-size: 0.26rem;
  }
  .cal-week span,.cal-days .cal-row span{
    font-size: 0.26rem;
    width: 0.6rem;
    height: 0.6rem;
    line-height: 0.6rem;
    margin: 0 0.2rem;
  }
}
