:root {
  --color-primary: #415161;
  --color-accent: #ff5a44;
  --color-text: #000;
  --color-footer-bg: #313131;
  --color-footer-text: #c6c6c6;
  --font-body: 'Roboto', sans-serif;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  font-family: var(--font-body);
  font-size: 16px;
  color: var(--color-text);
  background: #fff;
  line-height: 1.6;
}

a {
  color: var(--color-primary);
  text-decoration: none;
}
a:hover, a:focus { color: var(--color-accent); }

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-body);
  font-weight: 400;
  color: var(--color-primary);
  line-height: 1.3;
  margin: 0 0 0.6em;
}

h1 { font-size: 3rem; line-height: 1.1; }
h2 { font-size: 2.2rem; }
h3 { font-size: 1.8rem; }
h5 { font-size: 1.2rem; }

p { margin: 0 0 1em; }

.btn, button, input[type="submit"] {
  display: inline-block;
  background: var(--color-primary);
  color: #fff;
  border: none;
  border-radius: 5px;
  padding: 10px 40px;
  font-weight: 500;
  text-transform: uppercase;
  font-size: 1rem;
  cursor: pointer;
}
.btn:hover, button:hover { background: var(--color-accent); color: #fff; }

/* Header */
.site-header {
  border-bottom: 1px solid rgba(0,0,0,0.07);
  padding: 1em 0;
}
.site-header-inner {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 2em;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
}
.custom-logo { display: block; }
.main-navigation ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: 1.5em;
  flex-wrap: wrap;
}
.main-navigation a {
  color: #000;
  font-weight: 400;
}
.main-navigation .current-menu-item a,
.main-navigation a:hover {
  color: var(--color-primary);
}
.menu-toggle {
  display: none;
  background: transparent;
  border: 1px solid var(--color-primary);
  color: var(--color-primary);
  padding: 8px 12px;
}

/* Content container */
#content { width: 100%; }
/* Sections with full-bleed backgrounds (hero, split) are NOT wrapped in
   .container; their background spans the viewport while an inner element
   gets the boxed width. Everything else opts into .container directly. */
.container { max-width: 1240px; margin: 0 auto; padding: 0 2em; }

/* Homepage */
.hero {
  text-align: center;
  padding: 4em 1em;
  min-height: 90vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  background-image: url("/images/Website-9937.jpg");
  background-size: cover;
  background-position: center center;
  background-attachment: fixed;
}
.hero h2 { color: #fff; font-size: clamp(2.5rem, 8vw, 6.25rem); font-weight: 600; line-height: 1.1; }
.hero p { color: #fff; font-size: clamp(1.1rem, 2vw, 1.7rem); font-weight: 500; margin-bottom: 1.5em; }
.hero .btn {
  background: transparent;
  border: 2px solid #fff;
  color: #fff;
}
.hero .btn:hover { background: #fff; color: #000; }

.section { padding: 2em 1em; }
.section-centered { text-align: center; }

.split {
  background-image: url("/images/Header_Image.jpg");
  background-size: cover;
  background-position: bottom right;
  background-repeat: no-repeat;
  /* background-attachment intentionally left at the default (scroll), unlike
     .hero's fixed/parallax treatment */
}
.split-inner {
  display: flex;
  flex-wrap: wrap;
  gap: 2em;
  padding: 5em 2em;
}
.split-col { flex: 1 1 300px; }
/* Source site uses white text here; deliberately switched to the brand
   grey (also used for links/buttons) so it reads clearly against this
   particular photo without the harshness of pure black. */
.split h2 { color: var(--color-primary); }
.split h2:first-child { font-size: clamp(2rem, 5vw, 3.75rem); font-weight: 600; }
.split h2:last-child { font-size: clamp(1.3rem, 3vw, 1.8rem); }

.video-section .video-embed {
  position: relative;
  max-width: 900px;
  margin: 0 auto;
  aspect-ratio: 16 / 9;
}
.video-embed iframe {
  width: 100%;
  height: 100%;
  border: 0;
}

.partners-section { text-align: center; }
.partner-logos {
  display: flex;
  flex-wrap: wrap;
  gap: 2em;
  justify-content: center;
  align-items: center;
  margin-top: 1.5em;
}
.partner-logos img {
  max-height: 90px;
  max-width: 150px;
  width: auto;
  object-fit: contain;
}

/* Page header */
.page-header { text-align: center; margin-bottom: 1.5em; }

/* About */
.about-columns {
  display: flex;
  flex-wrap: wrap;
  gap: 2.5em;
  margin-bottom: 2em;
}
.about-col { flex: 1 1 350px; }
.about-gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.75em;
}
.about-gallery img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Gallery grid/lightbox styling is provided by the hugo-easy-gallery theme
   (static/css/hugo-easy-gallery.css); nudge its container to match our layout. */
.page-gallery .gallery { max-width: 100%; }

/* Contact */
.contact-split {
  display: flex;
  flex-wrap: wrap;
  gap: 3em;
}
.contact-col { flex: 1 1 350px; }
.contact-cta { margin-bottom: 1.2em; }

/* Footer */
.site-footer {
  background: var(--color-footer-bg);
  color: #fff;
  margin-top: 3em;
}
.footer-inner {
  max-width: 1240px;
  margin: 0 auto;
  padding: 3em 2em;
  display: flex;
  flex-wrap: wrap;
  gap: 2em;
  justify-content: space-between;
}
.footer-col { flex: 1 1 250px; }
.footer-logo { margin-bottom: 1em; }
.social-icons { display: flex; gap: 0.75em; }
.social-icon {
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.social-icon:hover { color: var(--color-accent); }
.footer-tagline-title, .footer-col-links h5 {
  color: #fff;
}
.footer-tagline-body { color: #d8d8d8; }
.footer-links { list-style: none; margin: 0; padding: 0; }
.footer-links a { color: #d8d8d8; }
.footer-links a:hover { color: #fff; }
.footer-bottom {
  background: var(--color-footer-bg);
  color: var(--color-footer-text);
  text-align: center;
  padding: 1em;
  font-size: 0.9rem;
  border-top: 1px solid #3f3f3f;
}

@media (max-width: 768px) {
  .menu-toggle { display: inline-block; }
  .main-navigation { width: 100%; }
  .main-navigation ul { flex-direction: column; gap: 0.5em; }
  .about-gallery { grid-template-columns: repeat(2, 1fr); }
}
