:root {
  --navy: #12224a;
  --navy-900: #0a1430;
  --gold: #efb018;
  --gold-600: #d4930b;
  --bg: #f7f9fb;
  --muted: #64748b;
  --border: #e5e9f0;
}

body {
  font-family: 'DM Sans', system-ui, sans-serif;
  color: #1b2437;
  background: #fff;
}

h1, h2, h3, h4, h5, .font-heading {
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 700;
}

.section { padding: 84px 0; }
.bg-soft { background: var(--bg); }
.bg-navy { background: var(--navy); color: #fff; }
.bg-navy p, .bg-navy .text-muted-2 { color: rgba(255,255,255,.72); }
.text-gold { color: var(--gold) !important; }
.text-muted-2 { color: var(--muted); }

.tg-label {
  color: var(--gold);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
}

/* Navbar */
.tg-navbar {
  background: var(--navy);
  padding: .6rem 0;
}
.tg-navbar .nav-link { color: rgba(255,255,255,.8); font-weight: 500; font-size: .95rem; }
.tg-navbar .nav-link:hover, .tg-navbar .nav-link.active { color: var(--gold); }
.tg-navbar .navbar-toggler { border-color: rgba(255,255,255,.3); }
.tg-navbar .navbar-toggler-icon {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255,255,255,0.85)' stroke-width='2' stroke-linecap='round' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
}
main { padding-top: 66px; }

/* Buttons */
.btn-gold {
  background: var(--gold);
  border: none;
  color: var(--navy-900);
  font-weight: 600;
}
.btn-gold:hover { background: var(--gold-600); color: var(--navy-900); }
.btn-outline-light-navy {
  border: 1px solid rgba(255,255,255,.35);
  color: #fff;
  font-weight: 600;
}
.btn-outline-light-navy:hover { background: rgba(255,255,255,.12); color: #fff; }

/* Hero */
.tg-hero {
  position: relative;
  min-height: 88vh;
  display: flex;
  align-items: center;
  background: url('../img/hero-bg.jpg') center/cover no-repeat;
}
.tg-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(18,34,74,.82);
}
.tg-hero .container { position: relative; z-index: 2; }
.tg-page-hero { background: var(--navy); color: #fff; padding: 96px 0 72px; }

/* Cards */
.tg-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: .6rem;
  height: 100%;
  transition: transform .25s ease, box-shadow .25s ease;
  overflow: hidden;
}
.tg-card:hover { transform: translateY(-4px); box-shadow: 0 14px 34px rgba(18,34,74,.10); }
.tg-card-img { height: 190px; object-fit: cover; width: 100%; transition: transform .5s ease; }
.tg-card:hover .tg-card-img { transform: scale(1.05); }
.tg-icon {
  width: 48px; height: 48px;
  border-radius: .5rem;
  background: rgba(239,176,24,.12);
  color: var(--gold);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.25rem;
}
.tg-stat { font-family: 'Playfair Display', serif; font-weight: 700; color: var(--gold); }
.tg-chip {
  display: inline-block;
  font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: var(--gold); background: rgba(239,176,24,.12);
  padding: .25rem .6rem; border-radius: 999px;
}

/* Accordion */
.accordion-button:not(.collapsed) { background: rgba(239,176,24,.08); color: var(--navy); box-shadow: none; }
.accordion-button:focus { box-shadow: none; border-color: var(--border); }
.accordion-button { font-family: 'Playfair Display', serif; font-weight: 700; }

/* Team */
.tg-avatar {
  width: 68px; height: 68px; border-radius: 50%;
  background: var(--navy); color: var(--gold);
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 1.15rem; letter-spacing: .04em;
}
.btn-linkedin { background: #0a66c2; color: #fff; font-weight: 600; }
.btn-linkedin:hover { background: #08508f; color: #fff; }

/* Footer */
.tg-footer { background: var(--navy-900); color: #fff; padding: 60px 0 28px; }
.tg-footer a { color: rgba(255,255,255,.72); text-decoration: none; }
.tg-footer a:hover { color: var(--gold); }
.tg-foot-title {
  font-family: 'DM Sans', sans-serif;
  font-size: .8rem; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase; color: #fff; margin-bottom: 1rem;
}

/* Forms */
.form-control:focus, .form-select:focus {
  border-color: var(--gold);
  box-shadow: 0 0 0 .2rem rgba(239,176,24,.2);
}

@media (max-width: 991.98px) {
  .section { padding: 60px 0; }
  .tg-hero { min-height: 78vh; }
}

.tg-wordmark {
  font-family: 'Playfair Display', serif;
  font-weight: 700;
  font-size: 1.25rem;
  letter-spacing: .04em;
  color: #fff;
  line-height: 1;
}
