/* assets/css/custom.css */

html { scroll-behavior: smooth; }
body {
  font-family: 'Inter', system-ui, sans-serif;
  color: #2A1A14;
  background-color: #FAF7F2;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
.font-display { font-family: 'Playfair Display', serif; }

/* Snow (sutil) — apenas na home */
.snow-layer { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.snow-flake {
  position: absolute; top: -10vh; color: #fff; opacity: 0.6;
  text-shadow: 0 0 6px rgba(255,255,255,0.6);
  animation: snow 14s linear infinite;
}

/* Calendário */
.cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.cal-day {
  aspect-ratio: 1 / 1; display: flex; align-items: center; justify-content: center;
  border-radius: 8px; font-size: 0.85rem; font-weight: 500;
  background: #F5E6C4; color: #2A1A14; position: relative;
  transition: all 0.15s ease;
}
.cal-day.empty { background: transparent; }
.cal-day.disabled {
  background: #eee; color: #b5b0a8; cursor: not-allowed;
}
.cal-day.available {
  background: #FAF7F2; color: #2A1A14; cursor: pointer;
  border: 1px solid #D4A24C;
}
.cal-day.available:hover { background: #D4A24C; color: #7F1D1D; transform: translateY(-2px); }
.cal-day.critical { border: 2px solid #B91C1C; animation: pulseSoft 2.4s ease-in-out infinite; }
.cal-day.selected {
  background: #B91C1C !important; color: #fff !important; font-weight: 700;
  box-shadow: 0 0 0 3px #D4A24C; transform: scale(1.06);
}
.cal-day .badge-vagas {
  position: absolute; top: -6px; right: -6px;
  background: #B91C1C; color: #fff; font-size: 0.6rem;
  padding: 1px 5px; border-radius: 999px; font-weight: 700;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}
.cal-weekday {
  text-align: center; font-size: 0.7rem; font-weight: 700;
  color: #7F1D1D; padding: 4px 0; text-transform: uppercase;
}

/* Abas de mês */
.month-pill {
  flex: 1; text-align: center; padding: 8px 4px; font-size: 0.75rem;
  font-weight: 600; color: #7F1D1D; background: #F5E6C4;
  border: 1px solid transparent; border-radius: 6px; cursor: pointer;
  transition: all 0.15s;
}
.month-pill:hover { background: #D4A24C; color: #fff; }
.month-pill.active { background: #B91C1C; color: #fff; }

/* Acessibilidade focus */
a:focus-visible, button:focus-visible, [tabindex]:focus-visible {
  outline: 3px solid #D4A24C; outline-offset: 2px; border-radius: 6px;
}

/* Util */
.text-balance { text-wrap: balance; }
.hr-ouro { height: 2px; background: linear-gradient(90deg, transparent, #D4A24C, transparent); }
