/* ============================================================
   ERTaxes — Tax Deadlines Styles
   Covers: homepage widget + full deadlines page
   ============================================================ */

/* ── Pulse animation for critical badge dot ── */
@keyframes pulseDot {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%       { opacity: 0.4; transform: scale(1.5); }
}

/* ============================================================
   HOMEPAGE WIDGET — .deadlines-widget
   Navy background section
   ============================================================ */
.deadlines-widget {
  background-color: var(--color-navy);
  padding: var(--space-16) 0;
}

.deadlines-widget .section-header h2,
.deadlines-widget .section-header p {
  color: var(--color-white);
}

.deadlines-widget .section-header p {
  color: rgba(255, 255, 255, 0.75);
}

/* Cards grid */
.deadline-cards-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-6);
}

@media (min-width: 640px) {
  .deadline-cards-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .deadline-cards-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* Individual card */
.deadline-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-8);
  background: rgba(255, 255, 255, 0.07);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--radius-lg);
  transition: transform var(--transition-base), border-color var(--transition-base), box-shadow var(--transition-base);
}

.deadline-card:hover {
  transform: translateY(-4px);
  border-color: var(--color-gold);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.3);
}

.deadline-card--critical {
  background: rgba(220, 38, 38, 0.10);
  border-color: rgba(220, 38, 38, 0.35);
}

.deadline-card--warning {
  background: rgba(217, 119, 6, 0.10);
  border-color: rgba(217, 119, 6, 0.30);
}

.deadline-card--today {
  background: rgba(220, 38, 38, 0.15);
  border-color: rgba(220, 38, 38, 0.5);
}

/* Badge */
.deadline-badge {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  padding: var(--space-1) var(--space-3);
  border-radius: var(--radius-full);
  font-family: var(--font-heading);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.deadline-badge--critical {
  background: rgba(220, 38, 38, 0.25);
  color: #FCA5A5;
}

.deadline-badge--warning {
  background: rgba(217, 119, 6, 0.25);
  color: #FCD34D;
}

.deadline-badge--upcoming {
  background: rgba(201, 168, 76, 0.15);
  color: var(--color-gold);
}

.deadline-badge--today {
  background: rgba(220, 38, 38, 0.35);
  color: #FCA5A5;
}

.deadline-badge--passed {
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.45);
}

.pulse-dot {
  animation: pulseDot 1.4s ease-in-out infinite;
}

/* Days countdown */
.deadline-card__days {
  font-family: var(--font-heading);
  font-size: 3.5rem;
  font-weight: var(--fw-extrabold);
  line-height: 1;
  color: var(--color-white);
}

.deadline-card__days--critical,
.deadline-card__days--today {
  color: #F87171;
}

.deadline-card__days--warning {
  color: #FCD34D;
}

.deadline-card__days-label {
  font-family: var(--font-heading);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.5);
  margin-top: calc(-1 * var(--space-2));
}

/* Live HH:MM:SS for critical */
.deadline-card__live {
  font-family: var(--font-heading);
  font-size: 1.25rem;
  font-weight: var(--fw-semibold);
  color: #F87171;
  letter-spacing: 0.04em;
}

/* Title, date, desc */
.deadline-card__title {
  font-family: var(--font-heading);
  font-size: var(--fs-lg);
  font-weight: var(--fw-bold);
  color: var(--color-white);
  line-height: 1.3;
}

.deadline-card__date {
  font-size: var(--fs-sm);
  color: rgba(255, 255, 255, 0.6);
}

.deadline-card__desc {
  font-size: var(--fs-sm);
  color: rgba(255, 255, 255, 0.7);
  line-height: 1.6;
  flex: 1;
}

/* Opens → Due date window */
.deadline-card__window {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: wrap;
  font-size: var(--fs-xs);
  margin-top: var(--space-1);
}

.deadline-card__window-opens {
  color: rgba(255, 255, 255, 0.55);
  white-space: nowrap;
}

.deadline-card__window-arrow {
  color: var(--color-gold);
  font-size: 0.7rem;
}

.deadline-card__window-due {
  color: var(--color-gold);
  font-weight: var(--fw-semibold);
  white-space: nowrap;
}

/* ============================================================
   FULL DEADLINES PAGE — .deadlines-page
   ============================================================ */

/* Page hero override — already styled via .page-hero in styles.css */

/* Filter buttons */
.deadline-filters {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  margin-bottom: var(--space-8);
}

.filter-btn {
  padding: var(--space-2) var(--space-5);
  background: var(--color-white);
  border: 2px solid var(--color-border);
  border-radius: var(--radius-full);
  font-family: var(--font-heading);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  color: var(--color-text-muted);
  cursor: pointer;
  transition: background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);
}

.filter-btn:hover {
  border-color: var(--color-navy);
  color: var(--color-navy);
}

.filter-btn.is-active {
  background: var(--color-navy);
  border-color: var(--color-navy);
  color: var(--color-white);
}

/* Full deadlines list */
.deadlines-full-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

/* Full deadline card */
.deadline-full-card {
  display: grid;
  grid-template-columns: 80px 1fr auto;
  align-items: center;
  gap: var(--space-6);
  padding: var(--space-6);
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-left: 4px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  transition: box-shadow var(--transition-base), transform var(--transition-base);
}

.deadline-full-card:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}

.deadline-full-card--critical {
  border-left-color: #DC2626;
}

.deadline-full-card--warning {
  border-left-color: #D97706;
}

.deadline-full-card--today {
  border-left-color: #DC2626;
}

.deadline-full-card--upcoming {
  border-left-color: var(--color-navy-light);
}

.deadline-full-card--passed {
  opacity: 0.45;
  filter: grayscale(0.3);
}

/* Stacked layout on mobile */
@media (max-width: 639px) {
  .deadline-full-card {
    grid-template-columns: 1fr;
  }
  .deadline-full-countdown {
    display: flex;
    align-items: center;
    gap: var(--space-3);
  }
  .deadline-full-card__cta {
    text-align: left !important;
  }
}

/* Countdown block */
.deadline-full-countdown {
  text-align: center;
  min-width: 80px;
}

.deadline-full-countdown__number {
  font-family: var(--font-heading);
  font-size: 2rem;
  font-weight: var(--fw-extrabold);
  color: var(--color-navy);
  line-height: 1;
}

.deadline-full-countdown__number--critical,
.deadline-full-countdown__number--today {
  color: #DC2626;
}

.deadline-full-countdown__number--warning {
  color: #D97706;
}

.deadline-full-countdown__label {
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--color-text-muted);
  margin-top: var(--space-1);
}

.deadline-full-countdown__live {
  font-family: var(--font-heading);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  color: #DC2626;
  margin-top: var(--space-1);
  letter-spacing: 0.04em;
}

/* Card content */
.deadline-full-card__content {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  min-width: 0;
}

.deadline-full-card__badges {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  align-items: center;
}

.deadline-full-card__category-badge {
  display: inline-block;
  padding: 2px var(--space-2);
  border-radius: var(--radius-full);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.deadline-full-card__category-badge--individual {
  background: rgba(59, 130, 246, 0.12);
  color: #1D4ED8;
}

.deadline-full-card__category-badge--business {
  background: rgba(22, 163, 74, 0.12);
  color: #166534;
}

.deadline-full-card__category-badge--quarterly {
  background: rgba(234, 88, 12, 0.12);
  color: #9A3412;
}

.deadline-full-card__category-badge--florida {
  background: rgba(126, 34, 206, 0.12);
  color: #6B21A8;
}

.deadline-full-card__status-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px var(--space-2);
  border-radius: var(--radius-full);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.deadline-full-card__status-badge--critical,
.deadline-full-card__status-badge--today {
  background: rgba(220, 38, 38, 0.1);
  color: #DC2626;
}

.deadline-full-card__status-badge--warning {
  background: rgba(217, 119, 6, 0.1);
  color: #B45309;
}

.deadline-full-card__status-badge--passed {
  background: rgba(0, 0, 0, 0.06);
  color: var(--color-text-muted);
}

.deadline-full-card__title {
  font-family: var(--font-heading);
  font-size: var(--fs-lg);
  font-weight: var(--fw-bold);
  color: var(--color-navy);
  line-height: 1.3;
}

.deadline-full-card__date {
  font-size: var(--fs-sm);
  color: var(--color-text-muted);
}

.deadline-full-card__desc {
  font-family: var(--font-body);
  font-size: var(--fs-sm);
  color: var(--color-text-muted);
  line-height: 1.6;
}

/* CTA column */
.deadline-full-card__cta {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  text-align: right;
  flex-shrink: 0;
}

/* ============================================================
   DEADLINES PAGE — Bottom CTA section
   ============================================================ */
.deadlines-cta {
  background: var(--color-navy);
  padding: var(--space-16) 0;
  text-align: center;
}

.deadlines-cta h2 {
  color: var(--color-white);
  margin-bottom: var(--space-4);
}

.deadlines-cta p {
  color: rgba(255, 255, 255, 0.75);
  margin-bottom: var(--space-8);
  max-width: 560px;
  margin-left: auto;
  margin-right: auto;
}
