.material-symbols-outlined {
  font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}
.btn-3d-primary {
  box-shadow: 0 6px 0 #003c0b, 0 12px 24px -6px rgba(0, 110, 28, 0.5);
  transition: all 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.btn-3d-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 0 #003c0b, 0 15px 30px -8px rgba(0, 110, 28, 0.6);
}
.btn-3d-primary:active {
  transform: translateY(4px);
  box-shadow: 0 2px 0 #003c0b;
}
.btn-3d-secondary {
  box-shadow: 0 6px 0 #541100, 0 12px 24px -6px rgba(176, 47, 0, 0.5);
  transition: all 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.btn-3d-secondary:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 0 #541100, 0 15px 30px -8px rgba(176, 47, 0, 0.6);
}
.btn-3d-secondary:active {
  transform: translateY(4px);
  box-shadow: 0 2px 0 #541100;
}
.adventure-card {
  box-shadow: 0 10px 40px -10px rgba(0,0,0,0.1), inset 0 2px 4px rgba(255,255,255,0.8);
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.adventure-card:hover {
  transform: translateY(-8px) scale(1.02);
  box-shadow: 0 25px 50px -12px rgba(0,0,0,0.15), inset 0 2px 4px rgba(255,255,255,0.8);
}
.pattern-bg {
  background-image: radial-gradient(#006e1c 0.5px, transparent 0.5px);
  background-size: 32px 32px;
  opacity: 0.05;
}
.leaf-pattern {
  background-image: url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 5c-5 5-5 10-2 15s8 5 12 0-5-10-10-15z' fill='%23006e1c' fill-opacity='0.05'/%3E%3C/svg%3E");
}
/* Cart panel transition */
#cartPanel {
  transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}
#cartOverlay {
  transition: opacity 0.3s ease;
}
/* Toast notification */
#toast {
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
/* Qty button */
.qty-btn {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  font-weight: 900;
  line-height: 1;
  cursor: pointer;
  transition: all 0.15s;
  border: none;
  background: #eae7e7;
  color: #1b1c1c;
}
.qty-btn:hover {
  background: #006e1c;
  color: #fff;
}
/* Mobile nav slide */
#mobileNavPanel {
  animation: navSlideIn 0.32s cubic-bezier(0.34, 1.56, 0.64, 1);
}
#mobileNavPanel.nav-slide-out {
  animation: navSlideOut 0.22s ease forwards;
}
@keyframes navSlideIn {
  from { transform: translateX(-110%); }
  to   { transform: translateX(0); }
}
@keyframes navSlideOut {
  from { transform: translateX(0); }
  to   { transform: translateX(-110%); }
}

/* Modal animations */
.modal-backdrop {
  animation: modalBackdropIn 0.25s ease;
}
.modal-card {
  animation: modalCardIn 0.38s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.modal-card--out {
  animation: modalCardOut 0.22s ease forwards !important;
}
.modal-backdrop--out {
  animation: modalBackdropOut 0.22s ease forwards !important;
}
@keyframes modalBackdropIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@keyframes modalCardIn {
  from { opacity: 0; transform: translateY(32px) scale(0.92); }
  to   { opacity: 1; transform: translateY(0)    scale(1);    }
}
@keyframes modalCardOut {
  from { opacity: 1; transform: translateY(0)    scale(1);    }
  to   { opacity: 0; transform: translateY(20px) scale(0.95); }
}
@keyframes modalBackdropOut {
  from { opacity: 1; }
  to   { opacity: 0; }
}

/* WhatsApp button */
.btn-whatsapp {
  background: #25D366;
  box-shadow: 0 6px 0 #128C4C, 0 12px 24px -6px rgba(37, 211, 102, 0.45);
  transition: all 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.btn-whatsapp:hover:not(:disabled) {
  transform: translateY(-2px);
  box-shadow: 0 8px 0 #128C4C, 0 15px 30px -8px rgba(37, 211, 102, 0.55);
}
.btn-whatsapp:active:not(:disabled) {
  transform: translateY(4px);
  box-shadow: 0 2px 0 #128C4C;
}
.btn-whatsapp:disabled {
  background: #a0a0a0;
  box-shadow: 0 4px 0 #707070;
  cursor: not-allowed;
  opacity: 0.6;
}
