/* v4.3.159 - single source of truth for the homepage three-tile component */
.shared-home-hero-grid{
  --hg-deep:var(--theme-primary-dark);
  box-sizing:border-box;
  width:100%;
}
.shared-home-hero-grid .home120-hero-actions{margin-top:24px}
.shared-home-hero-grid .home120-hero-grid{
  display:grid;
  grid-template-columns:minmax(0,1.28fr) minmax(0,.86fr);
  grid-template-rows:48px 48px;
  gap:10px;
  width:min(100%,370px);
}
.shared-home-hero-grid .home120-hero-tile{
  position:relative;
  min-width:0;
  overflow:hidden;
  border-radius:17px;
  display:flex;
  align-items:center;
  text-decoration:none;
  isolation:isolate;
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.shared-home-hero-grid .home120-hero-tile:before{
  content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;
  background:linear-gradient(118deg,transparent 13%,rgba(255,255,255,.13) 43%,transparent 68%);
  transform:translateX(-78%);opacity:.55;
}
.shared-home-hero-grid .home120-hero-tile:after{
  content:"";position:absolute;z-index:-1;left:15px;right:15px;top:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(255,243,208,.62),transparent);opacity:.78;
}
.shared-home-hero-grid .home120-hero-tile-copy{
  position:relative;z-index:2;display:flex;min-width:0;flex-direction:column;justify-content:center;
}
.shared-home-hero-grid .home120-hero-tile-copy small{
  display:block;margin:0 0 5px;font:600 7px/1 Georgia,"Times New Roman",serif;
  letter-spacing:.18em;white-space:nowrap;
}
.shared-home-hero-grid .home120-hero-tile-copy strong{
  display:block;font:700 13px/1.08 Georgia,"Songti SC",serif;letter-spacing:.075em;white-space:nowrap;
}
.shared-home-hero-grid .home120-hero-tile-copy em{
  display:block;margin-top:7px;font-style:normal;font-size:10px;line-height:1;letter-spacing:.06em;white-space:nowrap;
}
.shared-home-hero-grid svg.home120-hero-tile-watermark{
  display:block;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;
  position:absolute;z-index:0;width:54px;height:54px;right:5px;bottom:-9px;
  pointer-events:none;stroke-width:1.15!important;opacity:.11;
}
.shared-home-hero-grid .home120-hero-tile-donate{
  grid-row:1/3;padding:0 46px 0 18px;color:var(--theme-primary-dark);
  animation:homeGridDonateBreath 4.8s ease-in-out infinite;transform-origin:center center;
  border:1px solid rgba(255,238,196,.88);
  background:linear-gradient(145deg,rgba(255,247,222,.98) 0%,rgba(235,210,158,.96) 56%,rgba(205,164,91,.96) 100%);
}
.shared-home-hero-grid .home120-hero-tile-donate:after{
  left:18px;right:18px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.78),transparent);
}
.shared-home-hero-grid .home120-hero-tile-donate .home120-hero-tile-copy small{
  color:rgba(104,23,34,.6);font-size:12px;letter-spacing:.16em;
}
.shared-home-hero-grid .home120-hero-tile-donate .home120-hero-tile-copy strong{font-size:25px;letter-spacing:.1em}
.shared-home-hero-grid .home120-hero-tile-donate .home120-hero-tile-copy em{
  color:rgba(100,28,36,.67);font-size:15px;
}
.shared-home-hero-grid .home120-hero-tile-donate svg.home120-hero-tile-watermark{
  width:72px;height:72px;right:-8px;bottom:-8px;color:var(--theme-primary-dark);stroke:var(--theme-primary-dark);opacity:.12;
}
.shared-home-hero-grid .home120-hero-tile-small{
  padding:0 38px 0 13px;color:#f7ebd6;
  border:1px solid rgba(235,207,150,.39);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
}
.shared-home-hero-grid .home120-hero-tile-events{
  background:linear-gradient(135deg,rgba(77,10,19,.75),rgba(133,31,42,.48)),var(--hg-deep);
}
.shared-home-hero-grid .home120-hero-tile-memories{
  background:linear-gradient(135deg,rgba(64,9,17,.78),rgba(105,24,35,.52)),var(--hg-deep);
}
.shared-home-hero-grid .home120-hero-tile-small .home120-hero-tile-copy small{
  margin-bottom:3px;color:rgba(231,202,145,.7);font-size:6.5px;letter-spacing:.17em;
}
.shared-home-hero-grid .home120-hero-tile-small .home120-hero-tile-copy strong{font-size:12px;color:#fff6e8}
.shared-home-hero-grid .home120-hero-tile-small svg.home120-hero-tile-watermark{
  width:43px;height:43px;right:3px;bottom:-10px;color:var(--theme-accent-soft);stroke:var(--theme-accent-soft);opacity:.09;
}
.shared-home-hero-grid .home120-hero-tile:active{transform:scale(.982)}
@keyframes homeGridDonateBreath{0%,100%{transform:scale(1)}50%{transform:scale(1.032)}}
@media(prefers-reduced-motion:reduce){
  .shared-home-hero-grid .home120-hero-tile-donate{animation:none}
}
@media(hover:hover){
  .shared-home-hero-grid .home120-hero-tile:hover{transform:translateY(-1px);border-color:rgba(245,220,166,.72)}
  .shared-home-hero-grid .home120-hero-tile:hover:before{transform:translateX(78%);transition:transform .8s ease}
}
@media(max-width:350px){
  .shared-home-hero-grid .home120-hero-grid{
    grid-template-columns:minmax(0,1.18fr) minmax(0,.82fr);gap:8px;
  }
  .shared-home-hero-grid .home120-hero-tile-donate{padding-left:14px;padding-right:42px}
  .shared-home-hero-grid .home120-hero-tile-donate .home120-hero-tile-copy strong{font-size:22px}
  .shared-home-hero-grid .home120-hero-tile-donate .home120-hero-tile-copy em{font-size:14px}
  .shared-home-hero-grid .home120-hero-tile-small{padding-left:10px;padding-right:33px}
  .shared-home-hero-grid .home120-hero-tile-small .home120-hero-tile-copy strong{font-size:11px}
  .shared-home-hero-grid .home120-hero-tile-small .home120-hero-tile-copy small{font-size:6px;letter-spacing:.12em}
}
/* Placement only. It does not alter card geometry, color, typography or icons. */
.home120-hero-inner > .shared-home-hero-grid{margin:0}
.daily-home > .shared-home-hero-grid{padding:0 16px;margin:18px auto 8px}
.daily-home > .shared-home-hero-grid .home120-hero-actions{margin-top:0}
@media(min-width:600px){
  .daily-home > .shared-home-hero-grid{padding-left:24px;padding-right:24px}
}

/* v4.3.160: user requested no shadow */
.shared-home-hero-grid .home120-hero-tile{box-shadow:none!important}


/* v4.3.176 校园蓝红：三宫格实际组件配色
   NOTE: real component selectors are .home120-hero-tile-* */
body.theme-campus-blue-red .shared-home-hero-grid,
body[data-theme="campus_blue_red"] .shared-home-hero-grid{
  --hg-deep:#00366D;
}
/* 爱心捐献：云白卡 + 蓝色英文 + 红色标题/爱心 */
body.theme-campus-blue-red .shared-home-hero-grid .home120-hero-tile-donate,
body[data-theme="campus_blue_red"] .shared-home-hero-grid .home120-hero-tile-donate{
  color:#E6212A;
  border-color:rgba(0,102,204,.16);
  background:linear-gradient(145deg,#FFFFFF 0%,#F8FAFD 58%,#EAF4FF 100%);
  box-shadow:none!important;
}
body.theme-campus-blue-red .shared-home-hero-grid .home120-hero-tile-donate:after,
body[data-theme="campus_blue_red"] .shared-home-hero-grid .home120-hero-tile-donate:after{
  background:linear-gradient(90deg,transparent,rgba(0,102,204,.16),transparent);
}
body.theme-campus-blue-red .shared-home-hero-grid .home120-hero-tile-donate .home120-hero-tile-copy small,
body[data-theme="campus_blue_red"] .shared-home-hero-grid .home120-hero-tile-donate .home120-hero-tile-copy small{
  color:#0066CC;
}
body.theme-campus-blue-red .shared-home-hero-grid .home120-hero-tile-donate .home120-hero-tile-copy strong,
body[data-theme="campus_blue_red"] .shared-home-hero-grid .home120-hero-tile-donate .home120-hero-tile-copy strong{
  color:#E6212A;
}
body.theme-campus-blue-red .shared-home-hero-grid .home120-hero-tile-donate .home120-hero-tile-copy em,
body[data-theme="campus_blue_red"] .shared-home-hero-grid .home120-hero-tile-donate .home120-hero-tile-copy em{
  color:#718096;
}
body.theme-campus-blue-red .shared-home-hero-grid .home120-hero-tile-donate svg.home120-hero-tile-watermark,
body[data-theme="campus_blue_red"] .shared-home-hero-grid .home120-hero-tile-donate svg.home120-hero-tile-watermark{
  color:#E6212A;stroke:#E6212A;opacity:.13;
}

/* 校园活动 / 照片回忆：蓝色玻璃卡 */
body.theme-campus-blue-red .shared-home-hero-grid .home120-hero-tile-small,
body[data-theme="campus_blue_red"] .shared-home-hero-grid .home120-hero-tile-small{
  color:#fff;
  border-color:rgba(255,255,255,.24);
  box-shadow:none!important;
}
body.theme-campus-blue-red .shared-home-hero-grid .home120-hero-tile-events,
body[data-theme="campus_blue_red"] .shared-home-hero-grid .home120-hero-tile-events{
  background:linear-gradient(135deg,rgba(0,79,159,.74),rgba(0,102,204,.48)),#00366D;
}
body.theme-campus-blue-red .shared-home-hero-grid .home120-hero-tile-memories,
body[data-theme="campus_blue_red"] .shared-home-hero-grid .home120-hero-tile-memories{
  background:linear-gradient(135deg,rgba(0,54,109,.78),rgba(0,102,204,.50)),#00366D;
}
body.theme-campus-blue-red .shared-home-hero-grid .home120-hero-tile-small .home120-hero-tile-copy small,
body[data-theme="campus_blue_red"] .shared-home-hero-grid .home120-hero-tile-small .home120-hero-tile-copy small{
  color:rgba(220,238,255,.76);
}
body.theme-campus-blue-red .shared-home-hero-grid .home120-hero-tile-small .home120-hero-tile-copy strong,
body[data-theme="campus_blue_red"] .shared-home-hero-grid .home120-hero-tile-small .home120-hero-tile-copy strong{
  color:#FFFFFF;
}
body.theme-campus-blue-red .shared-home-hero-grid .home120-hero-tile-small svg.home120-hero-tile-watermark,
body[data-theme="campus_blue_red"] .shared-home-hero-grid .home120-hero-tile-small svg.home120-hero-tile-watermark{
  color:#DCEEFF;stroke:#DCEEFF;opacity:.12;
}
@media(hover:hover){
 body.theme-campus-blue-red .shared-home-hero-grid .home120-hero-tile:hover,
 body[data-theme="campus_blue_red"] .shared-home-hero-grid .home120-hero-tile:hover{
   border-color:rgba(255,255,255,.42);
 }
}
/* Keep the already-approved 3.2% gentle breathing animation. */
body.theme-campus-blue-red .shared-home-hero-grid .home120-hero-tile-donate,
body[data-theme="campus_blue_red"] .shared-home-hero-grid .home120-hero-tile-donate{
 animation:homeGridDonateBreath 4.8s ease-in-out infinite;
}


/* =========================================================
   v4.3.177 爱心捐献三宫格视觉优化
   蓝白主卡 + 深蓝标题 + 红色爱心焦点 + 极淡涟漪
   ========================================================= */
body.theme-campus-blue-red .shared-home-hero-grid .home120-hero-tile-donate,
body[data-theme="campus_blue_red"] .shared-home-hero-grid .home120-hero-tile-donate{
  position:relative;
  overflow:hidden;
  color:#004F9F;
  background:linear-gradient(145deg,#FFFFFF 0%,#F8FAFD 56%,#EAF4FF 100%);
  border:1px solid rgba(0,102,204,.18);
  box-shadow:none!important;
  animation:homeGridDonateBreathSoft 5.4s ease-in-out infinite;
  transform-origin:center center;
}

/* Replace the old bottom highlight with a restrained blue accent line. */
body.theme-campus-blue-red .shared-home-hero-grid .home120-hero-tile-donate:after,
body[data-theme="campus_blue_red"] .shared-home-hero-grid .home120-hero-tile-donate:after{
  content:"";
  position:absolute;
  left:18px;
  right:18px;
  bottom:0;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(0,102,204,.20),transparent);
  pointer-events:none;
}

/* Very subtle ripple behind the heart; static, no glow/shadow. */
body.theme-campus-blue-red .shared-home-hero-grid .home120-hero-tile-donate:before,
body[data-theme="campus_blue_red"] .shared-home-hero-grid .home120-hero-tile-donate:before{
  content:"";
  position:absolute;
  width:112px;
  height:112px;
  right:-20px;
  bottom:-28px;
  border-radius:50%;
  border:1px solid rgba(230,33,42,.075);
  box-shadow:
    0 0 0 18px rgba(230,33,42,.032),
    0 0 0 38px rgba(0,102,204,.024);
  pointer-events:none;
}

/* Copy hierarchy: blue identity, deep-blue title, neutral description. */
body.theme-campus-blue-red .shared-home-hero-grid .home120-hero-tile-donate .home120-hero-tile-copy{
  position:relative;
  z-index:2;
  padding-right:72px;
}
body.theme-campus-blue-red .shared-home-hero-grid .home120-hero-tile-donate .home120-hero-tile-copy small,
body[data-theme="campus_blue_red"] .shared-home-hero-grid .home120-hero-tile-donate .home120-hero-tile-copy small{
  color:rgba(0,102,204,.72);
  letter-spacing:.14em;
}
body.theme-campus-blue-red .shared-home-hero-grid .home120-hero-tile-donate .home120-hero-tile-copy strong,
body[data-theme="campus_blue_red"] .shared-home-hero-grid .home120-hero-tile-donate .home120-hero-tile-copy strong{
  color:#004F9F;
  font-weight:700;
  letter-spacing:.02em;
}
body.theme-campus-blue-red .shared-home-hero-grid .home120-hero-tile-donate .home120-hero-tile-copy em,
body[data-theme="campus_blue_red"] .shared-home-hero-grid .home120-hero-tile-donate .home120-hero-tile-copy em{
  color:#718096;
}

/* Large watermark heart becomes a quiet red background mark. */
body.theme-campus-blue-red .shared-home-hero-grid .home120-hero-tile-donate svg.home120-hero-tile-watermark,
body[data-theme="campus_blue_red"] .shared-home-hero-grid .home120-hero-tile-donate svg.home120-hero-tile-watermark{
  color:#E6212A;
  stroke:#E6212A;
  opacity:.14;
  z-index:1;
}

/* Small solid heart focus, built with CSS so markup/API stays untouched. */
body.theme-campus-blue-red .shared-home-hero-grid .home120-hero-tile-donate .home120-hero-tile-copy:after,
body[data-theme="campus_blue_red"] .shared-home-hero-grid .home120-hero-tile-donate .home120-hero-tile-copy:after{
  content:"♥";
  position:absolute;
  right:18px;
  top:50%;
  transform:translateY(-50%);
  color:#E6212A;
  font-size:17px;
  line-height:1;
  opacity:.96;
}

/* Softer than the previous 3.2% scale: max 1.6%. */
@keyframes homeGridDonateBreathSoft{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.016)}
}

/* Interaction stays restrained; no shadow. */
@media(hover:hover){
  body.theme-campus-blue-red .shared-home-hero-grid .home120-hero-tile-donate:hover,
  body[data-theme="campus_blue_red"] .shared-home-hero-grid .home120-hero-tile-donate:hover{
    border-color:rgba(0,102,204,.28);
    box-shadow:none!important;
  }
}
@media(prefers-reduced-motion:reduce){
  body.theme-campus-blue-red .shared-home-hero-grid .home120-hero-tile-donate,
  body[data-theme="campus_blue_red"] .shared-home-hero-grid .home120-hero-tile-donate{
    animation:none!important;
  }
}
