/* Cheravono - Midnight Aperitivo Design System */

/* Material Symbols config */
.material-symbols-outlined {
  font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}

/* Body constraint for mobile-first */
body {
  background-color: #131312;
  min-height: 100dvh;
}

/* Pizza hero glow */
.pizza-glow {
  filter: drop-shadow(0 0 20px rgba(232, 195, 106, 0.25));
  animation: spin-ccw 60s linear infinite;
}

@keyframes spin-ccw {
  from { transform: rotate(0deg); }
  to { transform: rotate(-360deg); }
}

/* Ambient glow behind pizza */
.pizza-ambient {
  background: radial-gradient(circle, rgba(232, 195, 106, 0.12) 0%, transparent 70%);
}

/* CTA gradient (sauce-like depth) */
.btn-rosso {
  background: linear-gradient(145deg, #CE2B37, #93001A);
}
.btn-rosso:active {
  transform: scale(0.98);
}

/* Modal transitions */
.modal-backdrop {
  transition: opacity 0.3s ease;
}
.modal-sheet {
  transition: transform 0.35s cubic-bezier(0.32, 0.72, 0, 1);
  transform: translateY(100%);
}
.modal-open-state .modal-sheet {
  transform: translateY(0);
}
.modal-open-state .modal-backdrop {
  opacity: 1 !important;
  pointer-events: auto !important;
}

/* Slot row hover lift */
.slot-row {
  transition: background-color 0.2s ease, transform 0.2s ease;
}
.slot-row:hover {
  transform: scale(1.02);
}

/* Free slot flare animation */
@keyframes slot-flare {
  0% { box-shadow: 0 0 0 0 rgba(232, 195, 106, 0); }
  10% { box-shadow: 0 0 12px 3px rgba(232, 195, 106, 0.25); }
  20% { box-shadow: 0 0 0 0 rgba(232, 195, 106, 0); }
  100% { box-shadow: 0 0 0 0 rgba(232, 195, 106, 0); }
}
.slot-free-flare {
  animation: slot-flare 5s ease-in-out infinite;
  animation-delay: var(--flare-delay, 0.6s);
  animation-fill-mode: both;
}

/* Countdown pulse dot */
.pulse-dot {
  width: 8px;
  height: 8px;
  background-color: #CE2B37;
  border-radius: 50%;
  animation: pulse 2s infinite;
}

@keyframes pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.4; transform: scale(0.8); }
}

/* Scrollbar (dark theme) */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb {
  background-color: rgba(245, 240, 232, 0.15);
  border-radius: 3px;
}
* { scrollbar-color: rgba(245,240,232,0.15) transparent; scrollbar-width: thin; }

/* Ghost border fallback for cards */
.ghost-border {
  outline: 1px solid rgba(91, 64, 63, 0.15);
}

/* Selection */
::selection {
  background: rgba(232, 195, 106, 0.3);
}

/* Input focus ring override */
input:focus, select:focus {
  outline: none;
  box-shadow: 0 0 0 2px #CE2B37;
}

/* Form input underline style */
.input-minimal {
  border: none;
  border-bottom: 2px solid #353532;
  border-radius: 0;
  background: transparent;
  color: #F5F0E8;
  padding: 0.75rem 0;
  transition: border-color 0.2s ease;
}
.input-minimal:focus {
  border-bottom-color: #E8C36A;
  box-shadow: none;
}
.input-minimal::placeholder {
  color: rgba(245, 240, 232, 0.3);
}

/* Select styling */
.select-minimal {
  border: none;
  border-bottom: 2px solid #353532;
  border-radius: 0;
  background: transparent;
  color: #F5F0E8;
  padding: 0.75rem 0;
  -webkit-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23F5F0E8' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0 center;
}
.select-minimal:focus {
  border-bottom-color: #E8C36A;
  box-shadow: none;
}
.select-minimal option {
  background: #2A2A28;
  color: #F5F0E8;
}

/* Registration card - Italian flag top bar */
.card-italia::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 4px;
  background: linear-gradient(90deg, #009246 33.33%, #F5F0E8 33.33% 66.66%, #CE2B37 66.66%);
  border-radius: 1.5rem 1.5rem 0 0;
}

/* Success check animation */
@keyframes checkmark {
  0% { transform: scale(0); opacity: 0; }
  50% { transform: scale(1.2); }
  100% { transform: scale(1); opacity: 1; }
}
.success-check {
  animation: checkmark 0.6s cubic-bezier(0.32, 0.72, 0, 1) forwards;
}

/* Bookings table dark theme */
.bookings-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
}
.bookings-table th {
  background: #2A2A28;
  color: #E8C36A;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  padding: 0.75rem 1rem;
  text-align: left;
}
.bookings-table td {
  padding: 0.625rem 1rem;
  color: #F5F0E8;
  font-size: 0.875rem;
}
.bookings-table tr:nth-child(even) td {
  background: #1C1C1A;
}
.bookings-table tr:nth-child(odd) td {
  background: #131312;
}
