/* Hero compliance calendar — homepage opening motion */
.hcal-wrap { position: relative; display: grid; place-items: center; min-height: clamp(360px, 40vw, 460px); }
.hcal-wrap::before {
  content: ""; position: absolute; inset: 8% 4%;
  background: radial-gradient(closest-side, rgba(22,217,107,.10), transparent 70%);
  pointer-events: none;
}
.hcal {
  position: relative; z-index: 1; width: min(420px, 100%);
  background: var(--navy-700); border: 1px solid rgba(255,255,255,.12);
  border-radius: 10px; padding: 1.4rem 1.4rem 0;
  box-shadow: 0 30px 60px -30px rgba(0,0,0,.6);
  opacity: 0; transform: translateY(14px);
  transition: opacity .6s ease, transform .7s cubic-bezier(.2,.8,.25,1);
}
.hcal.is-in { opacity: 1; transform: none; }

.hcal__hd { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.hcal__m { font-family: var(--display); font-size: 1.45rem; font-weight: 600; color: #fff; letter-spacing: -.01em; }
.hcal__n { font-family: var(--body); font-size: .86rem; color: #93A2C2; white-space: nowrap; }
.hcal__n b { color: var(--green-400); font-weight: 700; font-variant-numeric: tabular-nums; }

.hcal__wd, .hcal__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.hcal__wd { margin: 1.1rem 0 .4rem; }
.hcal__wd span { font-size: .72rem; color: #6E80A6; text-align: center; }

.hcal__d {
  position: relative; aspect-ratio: 1; border-radius: 6px;
  display: grid; place-items: center;
  font-size: .86rem; color: #8A99BB; font-variant-numeric: tabular-nums;
  transition: color .25s ease, background-color .25s ease;
}
.hcal__d.is-past { color: #C7D0E4; }
.hcal__d.is-now { background: rgba(255,255,255,.10); color: #fff; }
.hcal__d.is-blank { visibility: hidden; }

/* due dates: amber ring until filed */
.hcal__d.is-due { color: #fff; box-shadow: inset 0 0 0 1.5px rgba(232,177,74,.75); }
.hcal__d.is-due::after {
  content: attr(data-form); position: absolute; left: 50%; bottom: 3px; transform: translateX(-50%);
  font-family: var(--mono); font-size: .5rem; letter-spacing: .02em; color: #E8B14A; white-space: nowrap;
}
.hcal__d.is-due .hcal__num { transform: translateY(-4px); }
.hcal__num { transition: transform .25s ease; }
.hcal__d.is-filed { background: var(--green-500); color: var(--navy-900); box-shadow: none; animation: calPop .42s cubic-bezier(.3,1.6,.5,1); }
.hcal__d.is-filed::after { color: var(--navy-900); }
@keyframes calPop { 0% { transform: scale(.82); } 100% { transform: scale(1); } }

.hcal__ft {
  margin: 1.2rem -1.4rem 0; padding: .95rem 1.4rem 1.05rem;
  border-top: 1px solid rgba(255,255,255,.10);
  display: flex; align-items: center; gap: .7rem; min-height: 3.2rem;
}
.hcal__tick {
  flex: none; width: 22px; height: 22px; border-radius: 50%;
  background: rgba(255,255,255,.08); display: grid; place-items: center;
  transition: background-color .3s ease;
}
.hcal__tick svg { width: 12px; height: 12px; stroke: var(--navy-900); stroke-width: 3; fill: none; opacity: 0; transition: opacity .2s ease; }
.hcal__ft.has-event .hcal__tick { background: var(--green-500); }
.hcal__ft.has-event .hcal__tick svg { opacity: 1; }
.hcal__msg { font-size: .9rem; color: #C7D0E4; line-height: 1.35; }
.hcal__msg b { font-family: var(--mono); font-weight: 500; color: #fff; font-size: .84rem; }
.hcal__msg.swap { animation: calMsg .35s ease; }
@keyframes calMsg { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: none; } }

@media (max-width: 979px) { .hcal-wrap { min-height: 0; padding-bottom: .5rem; } }
@media (max-width: 420px) {
  .hcal { padding: 1.1rem 1rem 0; }
  .hcal__ft { margin: 1rem -1rem 0; padding: .85rem 1rem .95rem; }
  .hcal__d { font-size: .8rem; }
  .hcal__d.is-due::after { font-size: .44rem; }
}
@media (prefers-reduced-motion: reduce) {
  .hcal { opacity: 1; transform: none; transition: none; }
  .hcal__d.is-filed { animation: none; }
  .hcal__msg.swap { animation: none; }
}
