/* ===== DESIGN TOKENS ===== */
:root {
  --blue-dark:   #0d2461;
  --blue:        #1a4fa0;
  --blue-light:  #0095d9;
  --purple:      #0d2461;
  --purple-light: #1a4fa0;
  --gold:        #d4a017;
  --gold-light:  #f5c518;
  --gold-shimmer: linear-gradient(135deg, #d4a017 0%, #f5c518 50%, #d4a017 100%);
  --white:       #ffffff;
  --off-white:   #f8f9ff;
  --gray-light:  #f0f2f8;
  --gray:        #6b7280;
  --text-dark:   #0d1b3e;
  --text-body:   #374151;
  --shadow-sm:   0 2px 8px rgba(13,36,97,0.10);
  --shadow-md:   0 8px 32px rgba(13,36,97,0.14);
  --shadow-lg:   0 20px 60px rgba(13,36,97,0.20);
  --radius:      14px;
  --font-head:   'Playfair Display', Georgia, serif;
  --font-body:   'Outfit', sans-serif;
}

/* ===== BASE STYLES ===== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { 
    font-family: var(--font-body); 
    color: var(--text-body); 
    background: var(--white); 
    overflow-x: hidden; 
}
a { text-decoration: none; color: inherit; }
img { max-width: 100%; display: block; }
ul { list-style: none; }

/* ===== UTILITY CLASSES ===== */
.container { max-width: 1200px; margin: 0 auto; padding: 0 1.5rem; }

.btn-primary {
  display: inline-flex; align-items: center; gap: .5rem;
  background: linear-gradient(135deg, var(--purple), var(--purple-light));
  color: var(--white); font-family: var(--font-body); font-weight: 600;
  padding: .75rem 2rem; border-radius: 50px; border: none; cursor: pointer;
  font-size: .95rem; transition: all .4s ease; box-shadow: 0 4px 20px rgba(13,36,97,0.30);
  position: relative; overflow: hidden;
}
.btn-primary:hover { transform: translateY(-3px); box-shadow: 0 12px 35px rgba(13,36,97,0.45); }

.btn-outline {
  display: inline-flex; align-items: center; gap: .5rem;
  background: transparent; color: var(--blue);
  border: 2px solid var(--blue); font-family: var(--font-body); font-weight: 600;
  padding: .72rem 1.8rem; border-radius: 50px; cursor: pointer;
  font-size: .95rem; transition: all .3s ease;
}
.btn-outline:hover { background: var(--blue); color: var(--white); transform: translateY(-2px); }

.section-label {
  display: inline-block; color: var(--purple); font-weight: 600;
  font-size: .85rem; letter-spacing: .12em; text-transform: uppercase; margin-bottom: .75rem;
}
.section-title {
  font-family: var(--font-head); font-size: clamp(1.8rem, 4vw, 2.8rem);
  color: var(--text-dark); line-height: 1.2; margin-bottom: 1rem;
}
.section-title span { color: var(--gold); }
.section-sub { color: var(--gray); font-size: 1.05rem; line-height: 1.7; max-width: 620px; }

/* ===== SHARED ANIMATIONS ===== */
@keyframes shimmer {
  0% { transform: translateX(-100%) skewX(-15deg); }
  100% { transform: translateX(200%) skewX(-15deg); }
}

@keyframes gold-dust {
  0% { transform: translate(0, 0) scale(1); opacity: 0; }
  50% { opacity: 0.8; }
  100% { transform: translate(100px, -100px) scale(0.5); opacity: 0; }
}

@keyframes pulse-gold {
  0% { transform: scale(1); box-shadow: 0 0 0 0 rgba(212,160,23,0.7); }
  70% { transform: scale(1.05); box-shadow: 0 0 0 15px rgba(212,160,23,0); }
  100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(212,160,23,0); }
}

/* ===== SHARED WIDGET STYLES ===== */
.fab-social:hover { transform:scale(1.12) !important; }
.fab-social::before { 
    content:attr(data-tooltip); 
    position:absolute; 
    right:calc(100% + 10px); 
    top:50%; 
    transform:translateY(-50%); 
    background:rgba(13,36,97,.9); 
    color:#fff; 
    font-size:.72rem; 
    font-weight:600; 
    padding:4px 9px; 
    border-radius:6px; 
    white-space:nowrap; 
    opacity:0; 
    pointer-events:none; 
    transition:opacity .2s ease; 
    font-family:var(--font-body); 
}
.fab-social:hover::before { opacity:1; }
#fab-main:hover { transform:scale(1.1); }
@keyframes fab-pulse { 0%,100%{transform:scale(1);opacity:.25;} 50%{transform:scale(1.5);opacity:0;} }
