﻿/* ============================================
   Al Fauzan Advisory - Centralized Stylesheet
   Single source of truth for all pages.
   ============================================ */

/* Material Symbols */
.material-symbols-outlined {
  font-variation-settings: 'FILL' 0, 'wght' 200, 'GRAD' 0, 'opsz' 24;
  color: #785a00;
}

/* Hero gradient overlay */
.hero-gradient {
  background: linear-gradient(to right, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0.4) 50%, rgba(0,0,0,0) 100%);
}

/* Animated underline on links */
.text-underline-expand {
  position: relative;
}
.text-underline-expand::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 32px;
  height: 1px;
  background-color: #785a00;
  transition: width 0.3s ease;
}
.text-underline-expand:hover::after {
  width: 100%;
}

/* Gold tint shadow for cards */
.gold-tint-shadow {
  box-shadow: 0 8px 32px rgba(200, 162, 74, 0.08);
}

/* Page transition fade-in */
body {
  animation: pageFadeIn 0.3s ease-in;
}
@keyframes pageFadeIn {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Loading spinner overlay */
.af-loading-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(252,249,248,0.80);
  backdrop-filter: blur(4px);
  z-index: 100;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.af-loading-overlay.active {
  display: flex;
}
.af-spinner {
  width: 48px;
  height: 48px;
  border: 3px solid #00261a;
  border-top-color: transparent;
  border-radius: 9999px;
  animation: spin 0.8s linear infinite;
}
@keyframes spin {
  to { transform: rotate(360deg); }
}

/* Form submit protection */
button[type="submit"]:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

/* Smooth scroll */
html {
  scroll-behavior: smooth;
}

/* Focus ring for accessibility */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: 2px solid #785a00;
  outline-offset: 2px;
}
