/* ═══════════════════════════════════════════
   AFFLISA LEADERSHIP — Global Stylesheet
═══════════════════════════════════════════ */
:root {
  --navy:       #1B2A6B;
  --navy-dark:  #131E50;
  --navy-light: #253580;
  --gold:       #C49A2A;
  --gold-light: #E2BE6A;
  --gold-pale:  #F5E9C4;
  --white:      #FFFFFF;
  --off-white:  #F8F8F5;
  --cream:      #F2EDD8;
  --mid:        #5A607A;
  --light:      #E4E7EF;
  --success:    #1A7A4A;
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  font-family:"Source Sans 3", sans-serif;
  background:var(--off-white);
  color:#1A1A2E;
  overflow-x:hidden;
}

/* ── TYPOGRAPHY ── */
h1,h2,h3,h4 { font-family:"Playfair Display", serif; font-weight:700; line-height:1.15; }
em.gold { font-style:italic; color:var(--gold); }

/* ── NAVIGATION ── */
nav {
  position:fixed; top:0; left:0; right:0; z-index:500;
  display:flex; align-items:center; justify-content:space-between;
  padding:0 56px; height:76px;
  background:var(--navy);
  transition:box-shadow .4s;
}
nav.scrolled { box-shadow:0 4px 28px rgba(0,0,0,0.35); }

.nav-logo img { height:50px; width:auto; object-fit:contain; }

.nav-links {
  display:flex; gap:32px; list-style:none;
}
.nav-links a {
  font-size:.8rem; font-weight:500; letter-spacing:.14em;
  text-transform:uppercase; color:rgba(255,255,255,.8);
  text-decoration:none; transition:color .25s; position:relative;
}
.nav-links a::after {
  content:""; position:absolute; bottom:-5px; left:0;
  width:0; height:2px; background:var(--gold); transition:width .3s;
}
.nav-links a:hover, .nav-links a.active { color:var(--gold-light); }
.nav-links a:hover::after, .nav-links a.active::after { width:100%; }

.nav-cta {
  font-size:.78rem; font-weight:700; letter-spacing:.14em;
  text-transform:uppercase; color:var(--navy-dark);
  text-decoration:none; background:var(--gold);
  padding:11px 26px; border:2px solid var(--gold); transition:all .3s;
  white-space:nowrap;
}
.nav-cta:hover { background:var(--gold-light); border-color:var(--gold-light); }

/* Hamburger */
.hamburger {
  display:none; flex-direction:column; gap:5px;
  background:none; border:none; cursor:pointer; padding:6px;
}
.hamburger span {
  display:block; width:24px; height:2px;
  background:var(--white); border-radius:2px;
  transition:all .3s;
}
.hamburger.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.hamburger.open span:nth-child(2) { opacity:0; }
.hamburger.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

/* ── PAGE HERO BANNER ── */
.page-banner {
  background:var(--navy-dark); padding:140px 60px 72px;
  text-align:center; position:relative; overflow:hidden;
}
.page-banner::before {
  content:""; position:absolute; inset:0;
  background:radial-gradient(ellipse at 20% 50%, rgba(196,154,42,.1) 0%, transparent 55%),
             radial-gradient(ellipse at 80% 30%, rgba(196,154,42,.07) 0%, transparent 50%);
}
.page-banner-inner { position:relative; z-index:1; max-width:700px; margin:0 auto; }
.page-eyebrow {
  display:inline-flex; align-items:center; gap:10px;
  background:rgba(196,154,42,.1); border:1px solid rgba(196,154,42,.3);
  padding:7px 18px; margin-bottom:22px;
}
.page-eyebrow-dot { width:6px; height:6px; background:var(--gold); border-radius:50%; }
.page-eyebrow span { font-size:.68rem; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:var(--gold-light); }
.page-banner h1 { font-size:clamp(2.2rem,4vw,3.8rem); color:var(--white); line-height:1.1; }
.page-banner p { font-size:1rem; font-weight:300; line-height:1.8; color:rgba(255,255,255,.6); margin-top:16px; }

/* ── SECTION SHARED ── */
section { padding:96px 60px; }
.sec-label { display:flex; align-items:center; gap:14px; margin-bottom:14px; }
.sec-bar { width:36px; height:3px; background:var(--gold); flex-shrink:0; }
.sec-tag { font-size:.68rem; font-weight:700; letter-spacing:.24em; text-transform:uppercase; color:var(--gold); }
.sec-title { font-size:clamp(1.9rem,2.8vw,3rem); color:var(--navy-dark); }

/* ── BUTTONS ── */
.btn-primary {
  display:inline-flex; align-items:center; gap:8px;
  font-size:.8rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--white); background:var(--navy);
  padding:15px 34px; border:2px solid var(--navy);
  text-decoration:none; transition:all .3s; cursor:pointer; font-family:inherit;
}
.btn-primary:hover { background:var(--gold); border-color:var(--gold); color:var(--navy-dark); }

.btn-gold {
  display:inline-flex; align-items:center; gap:8px;
  font-size:.8rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--navy-dark); background:var(--gold);
  padding:15px 34px; border:2px solid var(--gold);
  text-decoration:none; transition:all .3s; cursor:pointer; font-family:inherit;
}
.btn-gold:hover { background:var(--gold-light); border-color:var(--gold-light); }

.btn-outline {
  display:inline-flex; align-items:center; gap:8px;
  font-size:.8rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--navy); background:transparent;
  padding:15px 34px; border:2px solid var(--navy);
  text-decoration:none; transition:all .3s; cursor:pointer; font-family:inherit;
}
.btn-outline:hover { background:var(--navy); color:var(--white); }

.btn-ghost {
  display:inline-flex; align-items:center; gap:8px;
  font-size:.8rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--white); background:transparent;
  padding:15px 34px; border:2px solid rgba(255,255,255,.3);
  text-decoration:none; transition:all .3s; cursor:pointer; font-family:inherit;
}
.btn-ghost:hover { border-color:var(--white); background:rgba(255,255,255,.08); }

/* ── REVEAL ANIMATION ── */
.reveal { opacity:0; transform:translateY(28px); transition:opacity .7s ease, transform .7s ease; }
.reveal.in { opacity:1; transform:translateY(0); }

/* ── FOOTER ── */
footer { background:var(--navy-dark); padding:68px 60px 32px; }
.footer-top {
  display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr;
  gap:52px; padding-bottom:52px;
  border-bottom:1px solid rgba(196,154,42,.14);
}
.footer-logo-img { height:44px; width:auto; object-fit:contain; display:block; margin-bottom:16px; }
.footer-brand p { font-size:.875rem; font-weight:300; line-height:1.8; color:rgba(255,255,255,.42); max-width:280px; }
.footer-socials { display:flex; gap:10px; margin-top:20px; }
.footer-socials a {
  width:34px; height:34px; border:1px solid rgba(196,154,42,.22);
  display:flex; align-items:center; justify-content:center;
  color:rgba(196,154,42,.55); text-decoration:none; transition:all .3s;
}
.footer-socials a:hover { border-color:var(--gold); color:var(--gold); background:rgba(196,154,42,.08); }
.footer-col h5 { font-family:"Source Sans 3",sans-serif; font-size:.68rem; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:var(--gold); margin-bottom:20px; }
.footer-col ul { list-style:none; }
.footer-col li { margin-bottom:10px; }
.footer-col a { font-size:.875rem; font-weight:300; color:rgba(255,255,255,.42); text-decoration:none; transition:color .3s; }
.footer-col a:hover { color:var(--gold-light); }
.footer-contact-item { display:flex; align-items:flex-start; gap:10px; margin-bottom:12px; color:rgba(255,255,255,.42); font-size:.875rem; font-weight:300; }
.footer-contact-item svg { flex-shrink:0; margin-top:3px; color:var(--gold); }
.footer-contact-item a { color:rgba(255,255,255,.42); text-decoration:none; transition:color .3s; }
.footer-contact-item a:hover { color:var(--gold-light); }
.footer-contact-item span { line-height:1.5; }
.footer-bottom { display:flex; justify-content:space-between; align-items:center; padding-top:26px; flex-wrap:wrap; gap:10px; }
.footer-copy { font-size:.72rem; color:rgba(255,255,255,.22); }

/* ── PILLAR CARDS (About / Home) ── */
.pillars { display:grid; grid-template-columns:1fr 1fr; gap:3px; }
.pillar {
  position:relative; overflow:hidden;
  padding:36px 28px 30px;
  cursor:default; transition:transform .35s;
  min-height:210px; display:flex; flex-direction:column; justify-content:flex-end;
}
.pillar:hover { transform:scale(1.02); z-index:2; }
.pillar-1 { background:linear-gradient(145deg,#1B2A6B 0%,#0D1840 100%); }
.pillar-2 { background:linear-gradient(145deg,#7A4E0A 0%,#3D2605 100%); }
.pillar-3 { background:linear-gradient(145deg,#0A3D2A 0%,#051A12 100%); }
.pillar-4 { background:linear-gradient(145deg,#4A1B6B 0%,#250D38 100%); }
.pillar-bg-num {
  position:absolute; top:-10px; right:16px;
  font-family:"Playfair Display",serif; font-size:7rem; font-weight:700; font-style:italic;
  opacity:.07; line-height:1; color:var(--white); pointer-events:none; user-select:none;
}
.pillar-icon-wrap {
  position:absolute; top:22px; left:24px;
  width:56px; height:56px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  border:1.5px solid rgba(196,154,42,.55);
  background:rgba(196,154,42,.14);
  box-shadow:0 0 18px rgba(196,154,42,.18);
  transition:all .35s;
}
.pillar-icon-wrap svg { width:28px; height:28px; }
.pillar:hover .pillar-icon-wrap { background:rgba(196,154,42,.3); border-color:rgba(196,154,42,.9); box-shadow:0 0 28px rgba(196,154,42,.35); }
.pillar::before {
  content:""; position:absolute; top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg,var(--gold),transparent);
  transform:scaleX(0); transform-origin:left; transition:transform .4s;
}
.pillar:hover::before { transform:scaleX(1); }
.pillar h4 { font-size:1.15rem; color:var(--white); margin-bottom:9px; position:relative; z-index:1; }
.pillar p { font-size:.84rem; font-weight:300; line-height:1.7; color:rgba(255,255,255,.65); position:relative; z-index:1; }

/* ── SERVICE CARDS ── */
.svc-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.svc-card {
  background:var(--white); padding:36px 28px;
  border:1px solid var(--light); position:relative;
  overflow:hidden; transition:all .4s; cursor:default;
}
.svc-card::after {
  content:""; position:absolute; top:0; left:0;
  width:3px; height:0; background:var(--gold); transition:height .4s;
}
.svc-card:hover { transform:translateY(-5px); box-shadow:0 18px 44px rgba(27,42,107,.1); }
.svc-card:hover::after { height:100%; }
.svc-num { font-family:"Playfair Display",serif; font-size:.82rem; font-style:italic; color:rgba(196,154,42,.45); margin-bottom:14px; display:block; }
.svc-icon { width:48px; height:48px; background:rgba(27,42,107,.07); border-radius:50%; display:flex; align-items:center; justify-content:center; margin-bottom:18px; }
.svc-icon svg { width:22px; height:22px; color:var(--navy); }
.svc-card h3 { font-size:1.3rem; color:var(--navy); margin-bottom:12px; line-height:1.25; }
.svc-card p { font-size:.87rem; font-weight:300; line-height:1.8; color:var(--mid); }
.svc-card .svc-link { display:inline-flex; align-items:center; gap:6px; font-size:.78rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); text-decoration:none; margin-top:18px; transition:gap .25s; }
.svc-card:hover .svc-link { gap:10px; }

/* ── TEAM CARDS ── */
.team-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.team-card { cursor:default; }
.team-photo { width:100%; aspect-ratio:3/4; overflow:hidden; position:relative; }
.team-bg { width:100%; height:100%; display:flex; align-items:center; justify-content:center; transition:transform .5s; }
.team-card:hover .team-bg { transform:scale(1.05); }
.bg-a { background:linear-gradient(145deg,#1B2A6B 0%,#0E1840 100%); }
.bg-b { background:linear-gradient(145deg,#20318A 0%,#111C4A 100%); }
.bg-c { background:linear-gradient(145deg,#162260 0%,#0B1330 100%); }
.bg-d { background:linear-gradient(145deg,#1A2870 0%,#0D1640 100%); }
.team-init { font-family:"Playfair Display",serif; font-size:3.2rem; font-weight:700; font-style:italic; color:rgba(196,154,42,.25); }
.team-overlay {
  position:absolute; inset:0;
  background:linear-gradient(to top,rgba(19,30,80,.97) 0%,transparent 55%);
  display:flex; flex-direction:column; justify-content:flex-end; padding:22px;
  opacity:0; transform:translateY(12px); transition:all .4s;
}
.team-card:hover .team-overlay { opacity:1; transform:translateY(0); }
.team-overlay-role { font-size:.62rem; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-light); margin-bottom:7px; }
.team-overlay-bio { font-size:.78rem; font-weight:300; line-height:1.6; color:rgba(255,255,255,.84); }
.team-info { margin-top:16px; }
.team-info h4 { font-size:1.15rem; color:var(--white); }
.team-info p { font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); margin-top:4px; font-weight:500; }

/* ── TESTIMONIAL TRACK ── */
.testi-overflow { overflow:hidden; }
.testi-track { display:flex; gap:22px; animation:scrollTrack 32s linear infinite; width:max-content; }
.testi-track:hover { animation-play-state:paused; }
.tcard { width:370px; flex-shrink:0; background:rgba(255,255,255,.04); border:1px solid rgba(196,154,42,.15); padding:34px; position:relative; }
.tcard-q { font-family:"Playfair Display",serif; font-size:4rem; line-height:1; color:rgba(196,154,42,.18); position:absolute; top:10px; left:26px; }
.tcard-text { font-family:"Playfair Display",serif; font-size:.98rem; font-style:italic; line-height:1.75; color:rgba(255,255,255,.88); margin-top:18px; position:relative; z-index:1; }
.tcard-author { margin-top:22px; display:flex; align-items:center; gap:14px; }
.tcard-av { width:40px; height:40px; background:linear-gradient(135deg,var(--navy-light),var(--gold)); border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:"Playfair Display",serif; font-size:.95rem; font-style:italic; color:white; font-weight:600; flex-shrink:0; }
.tcard-name { font-size:.86rem; font-weight:600; color:rgba(255,255,255,.9); }
.tcard-role { font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:var(--gold); margin-top:2px; }

/* ── PROCESS STEPS ── */
.process-steps { display:grid; grid-template-columns:repeat(4,1fr); gap:0; margin-top:56px; position:relative; }
.process-steps::before { content:""; position:absolute; top:35px; left:35px; right:35px; height:1px; background:repeating-linear-gradient(90deg,var(--gold) 0,var(--gold) 6px,transparent 6px,transparent 14px); opacity:.35; }
.proc-step { padding-right:28px; }
.proc-num-ring { width:70px; height:70px; background:var(--white); border:2px solid rgba(196,154,42,.4); display:flex; align-items:center; justify-content:center; margin-bottom:28px; position:relative; z-index:1; transition:all .35s; cursor:default; }
.proc-num-ring:hover { background:var(--navy); border-color:var(--navy); }
.proc-num { font-family:"Playfair Display",serif; font-size:1.3rem; font-weight:700; font-style:italic; color:var(--gold); transition:color .3s; }
.proc-num-ring:hover .proc-num { color:var(--white); }
.proc-step h4 { font-size:1.2rem; color:var(--navy); margin-bottom:10px; }
.proc-step p { font-size:.875rem; font-weight:300; line-height:1.8; color:var(--mid); }

/* ── STAT NUMBERS ── */
.stats-row { display:flex; gap:48px; flex-wrap:wrap; }
.stat-num { font-family:"Playfair Display",serif; font-size:2.4rem; font-weight:700; color:var(--navy); line-height:1; }
.stat-num sup { font-size:1.1rem; color:var(--gold); vertical-align:super; }
.stat-lbl { font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--mid); margin-top:5px; font-weight:500; }

/* ── FORM STYLES ── */
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-bottom:18px; }
.form-grid.full { grid-template-columns:1fr; }
.fld { display:flex; flex-direction:column; gap:6px; }
.fld label { font-size:.76rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--navy); }
.req { color:var(--gold); margin-left:2px; }
.fld input, .fld select, .fld textarea {
  font-family:"Source Sans 3",sans-serif; font-size:.95rem; color:var(--navy-dark);
  border:1.5px solid var(--light); background:var(--white); padding:12px 15px;
  outline:none; transition:border-color .25s,box-shadow .25s; width:100%;
  -webkit-appearance:none; appearance:none;
}
.fld input:focus, .fld select:focus, .fld textarea:focus { border-color:var(--navy); box-shadow:0 0 0 3px rgba(27,42,107,.07); }
.fld input::placeholder, .fld textarea::placeholder { color:#B8BBCA; }
.fld textarea { resize:vertical; min-height:100px; }
.sel-wrap { position:relative; }
.sel-wrap::after { content:"▾"; position:absolute; right:13px; top:50%; transform:translateY(-50%); pointer-events:none; color:var(--gold); font-size:.95rem; }
.sel-wrap select { padding-right:34px; cursor:pointer; }
.fld.err input, .fld.err select, .fld.err textarea { border-color:#C0392B; }
.err-msg { font-size:.72rem; color:#C0392B; margin-top:3px; display:none; }
.fld.err .err-msg { display:block; }

/* ── CONTACT PAGE ── */
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:start; }
.contact-info-block { margin-bottom:32px; }
.contact-info-block h4 { font-size:1rem; color:var(--navy); margin-bottom:14px; }
.contact-info-item { display:flex; gap:14px; align-items:flex-start; margin-bottom:14px; }
.ci-icon { width:38px; height:38px; background:var(--navy); display:flex; align-items:center; justify-content:center; flex-shrink:0; color:var(--gold-light); }
.ci-text { font-size:.9rem; font-weight:300; color:var(--mid); line-height:1.5; }
.ci-text a { color:var(--navy); font-weight:500; text-decoration:none; }
.ci-text a:hover { color:var(--gold); }
.ci-label { font-size:.65rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--mid); margin-bottom:2px; }
.map-placeholder { background:var(--navy-dark); height:220px; display:flex; align-items:center; justify-content:center; position:relative; overflow:hidden; margin-top:28px; }
.office-tabs { display:flex; gap:0; margin-bottom:24px; }
.otab { padding:10px 20px; font-size:.76rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; border:1.5px solid var(--light); cursor:pointer; background:var(--white); color:var(--mid); transition:all .25s; margin-right:-1px; }
.otab.active { background:var(--navy); color:var(--white); border-color:var(--navy); z-index:1; }

/* ── ANIMATIONS ── */
@keyframes fadeUp { from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:translateY(0);} }
@keyframes scrollTrack { from{transform:translateX(0);}to{transform:translateX(-50%);} }

/* ── RESPONSIVE ── */
@media(max-width:1080px) {
  nav { padding:0 24px; }
  .nav-links, .nav-cta { display:none; }
  .nav-links.open { display:flex; flex-direction:column; position:fixed; top:76px; left:0; right:0; background:var(--navy-dark); padding:24px 24px 32px; gap:0; z-index:400; border-top:1px solid rgba(196,154,42,.15); }
  .nav-links.open li { border-bottom:1px solid rgba(255,255,255,.07); }
  .nav-links.open a { display:block; padding:14px 0; font-size:.9rem; }
  .hamburger { display:flex; }
  section { padding:64px 24px; }
  .page-banner { padding:120px 24px 56px; }
  .svc-grid { grid-template-columns:1fr 1fr; }
  .team-grid { grid-template-columns:1fr 1fr; }
  .process-steps { grid-template-columns:1fr 1fr; }
  .process-steps::before { display:none; }
  .footer-top { grid-template-columns:1fr 1fr; gap:36px; }
  .contact-grid { grid-template-columns:1fr; }
  .pillars { grid-template-columns:1fr 1fr; }
}
@media(max-width:640px) {
  .svc-grid { grid-template-columns:1fr; }
  .team-grid { grid-template-columns:1fr 1fr; }
  .pillars { grid-template-columns:1fr; }
  .form-grid { grid-template-columns:1fr; }
  .footer-top { grid-template-columns:1fr; }
  .stats-row { gap:28px; }
}
