/*-----------------------------------*\
  #ENHANCEMENTS.CSS — PAP Polish
\*-----------------------------------*/
:root {
  --gold-glow: hsla(38,61%,73%,0.25);
  --transition-smooth: 300ms cubic-bezier(0.4,0,0.2,1);
  --shadow-card: 0 4px 24px rgba(0,0,0,0.4);
  --shadow-card-hover: 0 8px 40px rgba(0,0,0,0.6);
}
html { scroll-behavior: smooth; }

/* Skip link */
.skip-link {
  position:fixed; top:-100px; left:20px; z-index:9999;
  background:var(--gold-crayola); color:var(--smoky-black-1);
  padding:12px 20px; font-weight:700; font-size:1.2rem;
  text-transform:uppercase; letter-spacing:1px; text-decoration:none;
  transition:top 0.3s ease;
}
.skip-link:focus { top:20px; }

/* Focus styles */
:focus-visible {
  outline:2px solid var(--gold-crayola);
  outline-offset:3px;
}

/* Page reveal */
@keyframes pageReveal {
  from { opacity:0; transform:translateY(16px); }
  to   { opacity:1; transform:translateY(0); }
}
main { animation:pageReveal 0.5s ease forwards; }

/* Scroll reveal */
.reveal { opacity:0; transform:translateY(32px); transition:opacity 0.6s ease,transform 0.6s ease; }
.reveal.visible { opacity:1; transform:translateY(0); }

/* Button polish */
.btn { transition:all var(--transition-smooth) !important; }
.btn:active { transform:scale(0.98); }

/* Card hover lift */
.service-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-card-hover); }
.feature-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-card); }

/* Input focus glow */
.input-field:focus, .co-input:focus, .lm-form input:focus {
  box-shadow:0 0 0 3px var(--gold-glow) !important;
  border-color:var(--gold-crayola) !important;
}

/* Spinner */
.spinner {
  display:inline-block; width:18px; height:18px;
  border:2px solid hsla(38,61%,73%,0.25);
  border-top-color:var(--gold-crayola);
  border-radius:50%; animation:spin 0.7s linear infinite;
  vertical-align:middle; margin-right:6px;
}
@keyframes spin { to { transform:rotate(360deg); } }

/* Skeleton */
.skeleton {
  background:linear-gradient(90deg,var(--eerie-black-2) 25%,hsla(0,0%,100%,0.04) 50%,var(--eerie-black-2) 75%);
  background-size:200% 100%; animation:shimmer 1.5s infinite; border-radius:4px;
}
@keyframes shimmer { 0%{background-position:-200% 0;} 100%{background-position:200% 0;} }

/* Toast container */
.toast-container {
  position:fixed; bottom:90px; right:24px; z-index:9000;
  display:flex; flex-direction:column-reverse; gap:10px; pointer-events:none;
}
.toast {
  pointer-events:all; min-width:260px; max-width:320px;
  padding:14px 18px;
  background:var(--eerie-black-2);
  border:1px solid hsla(38,61%,73%,0.2); border-left:3px solid var(--gold-crayola);
  display:flex; align-items:center; gap:12px;
  font-size:var(--fontSize-label-1); font-family:var(--fontFamily-dm_sans); color:var(--white);
  animation:toastIn 0.35s cubic-bezier(0.34,1.56,0.64,1);
  box-shadow:0 8px 32px rgba(0,0,0,0.5);
}
.toast.toast-success { border-left-color:#4caf50; }
.toast.toast-error   { border-left-color:#f44336; }
.toast-icon { font-size:1.6rem; flex-shrink:0; }
.toast-msg  { flex:1; line-height:1.4; }
.toast-close {
  background:none; border:none; color:var(--quick-silver);
  cursor:pointer; font-size:1.4rem; padding:0; line-height:1; flex-shrink:0;
}
.toast-close:hover { color:var(--white); }
@keyframes toastIn  { from{opacity:0;transform:translateX(20px);} to{opacity:1;transform:translateX(0);} }
@keyframes toastOut { from{opacity:1;transform:translateX(0);} to{opacity:0;transform:translateX(20px);} }
.toast.hiding { animation:toastOut 0.3s ease forwards; }

/* Form validation */
.field-valid   { border-color:#4caf50 !important; box-shadow:0 0 0 3px rgba(76,175,80,0.15) !important; }
.field-invalid { border-color:#f44336 !important; box-shadow:0 0 0 3px rgba(244,67,54,0.15) !important; animation:shake 0.4s ease; }
@keyframes shake { 0%,100%{transform:translateX(0);} 25%{transform:translateX(-6px);} 75%{transform:translateX(6px);} }

/* Cookie banner */
.cookie-banner {
  position:fixed; bottom:0; left:0; right:0;
  background:var(--smoky-black-1); border-top:1px solid hsla(38,61%,73%,0.2);
  padding:16px 24px; display:flex; align-items:center; justify-content:space-between;
  gap:16px; flex-wrap:wrap; z-index:8000;
  font-size:var(--fontSize-label-1); color:var(--quick-silver);
  transform:translateY(100%); transition:transform 0.4s ease;
}
.cookie-banner.show { transform:translateY(0); }
.cookie-banner p { margin:0; max-width:600px; line-height:1.5; }
.cookie-banner a { color:var(--gold-crayola); }
.cookie-btns { display:flex; gap:10px; flex-shrink:0; }
.cookie-accept {
  background:var(--gold-crayola); color:var(--smoky-black-1); border:none;
  padding:9px 20px; font-family:var(--fontFamily-dm_sans); font-weight:700;
  font-size:var(--fontSize-label-2); text-transform:uppercase; letter-spacing:1px; cursor:pointer;
}
.cookie-accept:hover { opacity:.85; }
.cookie-decline {
  background:transparent; color:var(--quick-silver);
  border:1px solid hsla(0,0%,50%,0.3); padding:9px 20px;
  font-family:var(--fontFamily-dm_sans); font-size:var(--fontSize-label-2);
  text-transform:uppercase; letter-spacing:1px; cursor:pointer; transition:all 0.2s;
}
.cookie-decline:hover { border-color:var(--quick-silver); color:var(--white); }

/* Scrollbar */
::-webkit-scrollbar { width:5px; }
::-webkit-scrollbar-track { background:var(--eerie-black-1); }
::-webkit-scrollbar-thumb { background:linear-gradient(to bottom,var(--gold-crayola),hsla(38,61%,73%,0.3)); border-radius:3px; }

/* Cart badge bounce */
.cart-badge.bounce { animation:badgeBounce 0.4s cubic-bezier(0.34,1.56,0.64,1); }
@keyframes badgeBounce { 0%{transform:scale(1);} 40%{transform:scale(1.5);} 100%{transform:scale(1);} }

/* Add-to-cart success */
.add-to-cart-btn.added { background:hsla(140,50%,30%,0.2) !important; border-color:#4caf50 !important; color:#4caf50 !important; }

/* Header scroll shadow */
.header.active { box-shadow:0 4px 30px rgba(0,0,0,0.5) !important; }

/* Floor plan hover */
.t-spot { transition:transform 0.2s cubic-bezier(0.34,1.56,0.64,1) !important; }
.t-spot:hover:not(.occ) { transform:translateY(-5px) scale(1.05) !important; }

/* Scroll-to-top */
.back-top-btn:hover { transform:translateY(-4px) !important; box-shadow:0 8px 24px hsla(38,61%,73%,0.3) !important; }

/* Print */
@media print {
  .header,.topbar,.back-top-btn,.cookie-banner,.btn-cart-icon,
  .btn-login-icon,.btn-track-order,.cart-drawer,.cart-overlay,
  .login-modal-backdrop { display:none !important; }
}

/* Reduced motion */
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation-duration:0.01ms !important; transition-duration:0.01ms !important; }
}

/* Topbar improvement */
.topbar { background:var(--smoky-black-1) !important; border-bottom:1px solid hsla(38,61%,73%,0.1) !important; }

/* Section subtitle decorators */
.section-subtitle { display:inline-flex; align-items:center; gap:10px; }
.section-subtitle::before, .section-subtitle::after {
  content:""; display:inline-block; width:20px; height:1px;
  background:var(--gold-crayola); opacity:0.6;
}
