
:root {
  --cp-navy: #01075B;
  --cp-orange: #FA8301;
  --cp-blue: #5496B8;
  --cp-white: #FBFAF9;
  --cp-black: #0D0D0C;
}

* {
  box-sizing:border-box;
}

body {
  margin:0;
  font-family: 'Montserrat', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  color: var(--cp-white);
  background:
    radial-gradient(circle at top left, rgba(255,255,255,0.05) 0, transparent 45%),
    radial-gradient(circle at bottom right, rgba(0,0,0,0.7) 0, transparent 55%),
    linear-gradient(135deg, #020316, #030827 40%, #01075B 80%, #000000);
  min-height:100vh;
}

a {
  color: var(--cp-orange);
  text-decoration:none;
}

a:hover {
  text-decoration:underline;
}

header {
  position:sticky;
  top:0;
  z-index:20;
  background:rgba(1,7,91,0.96);
  border-bottom:2px solid rgba(250,131,1,0.8);
  backdrop-filter: blur(6px);
}

.navbar {
  position:relative;
  max-width:1100px;
  margin:0 auto;
  padding:0.75rem 1.25rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
}

.nav-left {
  display:flex;
  align-items:center;
  gap:0.6rem;
}

.nav-logo {
  width:38px;
  height:38px;
  border-radius:50%;
  border:2px solid var(--cp-orange);
  background:var(--cp-black);
  object-fit:cover;
}

.nav-title {
  font-weight:800;
  letter-spacing:0.18em;
  font-size:1.0rem;
}

.nav-menu {
  list-style:none;
  display:flex;
  gap:0.9rem;
  font-size:0.8rem;
  text-transform:uppercase;
  letter-spacing:0.16em;
}

.nav-menu a {
  padding:0.35rem 0.75rem;
  border-radius:999px;
  color:var(--cp-white);
}

.nav-menu a:hover,
.nav-menu a.active {
  background:var(--cp-orange);
  color:var(--cp-black);
  text-decoration:none;
}

main {
  max-width:1100px;
  margin:0 auto;
  padding:1.5rem 1rem 3rem;
}

.section {
  margin-top:2.4rem;
}

.section-header {
  margin-bottom:1.1rem;
}

.section-kicker {
  font-size:0.75rem;
  text-transform:uppercase;
  letter-spacing:0.18em;
  color:var(--cp-blue);
  margin-bottom:0.3rem;
}

.section-title {
  font-size:1.5rem;
  letter-spacing:0.16em;
  text-transform:uppercase;
  margin:0 0 0.35rem 0;
}

.section-subtitle {
  color:var(--cp-blue);
  font-size:0.9rem;
}

.page-intro {
  max-width:40rem;
  font-size:0.95rem;
  margin-bottom:1.3rem;
}

.footer {
  background:#020314;
  border-top:1px solid rgba(84,150,184,0.5);
  margin-top:2.6rem;
}

.footer-inner {
  max-width:1100px;
  margin:0 auto;
  padding:1.4rem 1rem 1.9rem;
  font-size:0.8rem;
  color:rgba(251,250,249,0.8);
}

.footer-bottom {
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:0.5rem;
  border-top:1px solid rgba(84,150,184,0.5);
  padding-top:0.7rem;
}

.nav-toggle {
  display:none;
  background:transparent;
  border:1px solid rgba(250,131,1,0.8);
  color:var(--cp-white);
  border-radius:6px;
  padding:0.25rem 0.5rem;
  font-size:0.95rem;
  cursor:pointer;
}

.nav-toggle:focus {
  outline:2px solid var(--cp-blue);
  outline-offset:2px;
}

@media (max-width: 780px) {
  .navbar {
  position:relative;
    padding:0.7rem 1rem;
  }
  .nav-menu {
    position:absolute;
    top:100%;
    right:0;
    left:0;
    background:rgba(1,7,91,0.98);
    border-bottom:2px solid rgba(250,131,1,0.8);
    flex-direction:column;
    align-items:flex-start;
    padding:0.5rem 1rem 0.8rem;
    gap:0.45rem;
    display:none;
  }
  .nav-menu.open {
    display:flex;
  }
  .nav-menu a {
    width:100%;
  }
  .nav-toggle {
    display:inline-flex;
    align-items:center;
    justify-content:center;
  }
}

/* Team card layout for About page */
.team-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));
  gap:1.2rem;
  margin-top:1.2rem;
}

.card.team-card {
  display:flex;
  flex-direction:row;
  align-items:flex-start;
  gap:0.75rem;
}

.team-photo-placeholder {
  width:64px;
  height:64px;
  border-radius:50%;
  border:2px dashed rgba(84,150,184,0.9);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:0.65rem;
  text-transform:uppercase;
  letter-spacing:0.12em;
  color:rgba(251,250,249,0.8);
  background:rgba(1,7,91,0.5);
  flex-shrink:0;
}

.team-meta {
  flex:1;
}

.team-name {
  color: var(--cp-blue);
  font-size:0.95rem;
  font-weight:600;
}

.team-role {
  color: var(--cp-white);
  font-size:0.85rem;
  margin-bottom:0.3rem;
}

.team-bio {
  font-size:0.84rem;
}


/* Gallery page */
.gallery-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));
  gap:1.1rem;
  margin-top:1.1rem;
}

.gallery-card {
  overflow:hidden;
}

.gallery-card img {
  width:100%;
  object-fit:cover;
  display:block;
  border-radius:10px;
  border:1px solid rgba(84,150,184,0.55);
}

.gallery-card figcaption {
  margin-top:0.55rem;
  font-size:0.82rem;
  color:rgba(251,250,249,0.85);
}

.gallery-meta {
  margin-top:0.25rem;
  font-size:0.78rem;
  color:rgba(84,150,184,0.95);
}


/* Thumbnail sizing */
.gallery-card img {
  }

/* Lightbox */
.lightbox {
  position:fixed;
  inset:0;
  background:rgba(0,0,0,0.86);
  display:none;
  align-items:center;
  justify-content:center;
  padding:1.25rem;
  z-index:999;
}

.lightbox.open {
  display:flex;
}

.lightbox-inner {
  max-width:min(980px, 96vw);
  width:100%;
  background:rgba(2,3,20,0.98);
  border:1px solid rgba(84,150,184,0.65);
  border-radius:14px;
  box-shadow:0 18px 50px rgba(0,0,0,0.85);
  overflow:hidden;
}

.lightbox-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:0.75rem;
  padding:0.75rem 0.85rem;
  border-bottom:1px solid rgba(84,150,184,0.35);
}

.lightbox-title {
  color:var(--cp-blue);
  font-size:0.82rem;
  letter-spacing:0.16em;
  text-transform:uppercase;
}

.lightbox-close {
  background:transparent;
  border:1px solid rgba(250,131,1,0.75);
  color:var(--cp-white);
  border-radius:10px;
  padding:0.25rem 0.55rem;
  cursor:pointer;
  font-size:0.95rem;
}

.lightbox-body {
  padding:0.9rem;
}

.lightbox-img {
  width:100%;
  height:auto;
  max-height:72vh;
  object-fit:contain;
  border-radius:12px;
  border:1px solid rgba(84,150,184,0.45);
  background:rgba(0,0,0,0.25);
}

.lightbox-caption {
  margin-top:0.65rem;
  color:rgba(251,250,249,0.9);
  font-size:0.88rem;
  line-height:1.35;
}

.lightbox-meta {
  margin-top:0.25rem;
  color:rgba(84,150,184,0.95);
  font-size:0.78rem;
}


/* Gallery thumbnails: max 150px on the larger dimension, preserve aspect ratio */
.gallery-thumb {
  height:150px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(0,0,0,0.18);
  border-radius:10px;
  border:1px solid rgba(84,150,184,0.55);
  overflow:hidden;
}

.gallery-card img {
  max-max-width:100%;
  width:auto;
  height:auto;
  object-fit:contain;
  display:block;
  border:none;
  border-radius:0;
}
