/* ============================================
   ELBOWS UP THEME - Custom Colors & Fonts
   ============================================ */

/* Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Barlow:wght@400;500;700&display=swap');

/* WildWorld Custom Font */
@font-face {
  font-family: 'WildWorld';
  src: url('../fonts/wildworld_font.otf') format('opentype');
  font-weight: 400;
  font-style: normal;
}

/* ============================================
   COLOR VARIABLES - Canadian Red Theme
   ============================================ */
:root {
  /* Primary Colors - Canadian Red */
  --color-primary: #d80621;
  --color-primary-dark: #740312;
  --color-accent: #f83e57;
  
  /* Background Colors */
  --color-bg-dark: #740312;  /* Dark red instead of dark blue */
  --color-bg-gray: #f3f4f6;
  
  /* Text Colors */
  --color-text-light: #ffffff;
  --color-text-lightblue: #e5e6fb;
  
  /* Fonts */
  --font-primary: 'Barlow', sans-serif;
  --font-heading: 'Bebas Neue', sans-serif;
}

/* ============================================
   CUSTOM FONT CLASSES
   ============================================ */
.font-wild {
  font-family: 'WildWorld', serif, sans-serif;
}

.font-display {
  font-family: var(--font-heading);
}

.section:not(:last-of-type) {
  border-bottom: 1px solid gray;
}

/* ============================================
   NAV BAR STYLING
   ============================================ */
.navbar-nav{
  font-size: 20px;;
}


/* ============================================
   HERO SECTION STYLING
   ============================================ */
.hero-content {
  color: white;
}

.hero-title {
  font-size: clamp(3rem, 12vw, 7rem);
  margin-bottom: 0.5rem;
  letter-spacing: 0.025em;
  color: white;
}

.hero-subtitle-main {
  font-size: clamp(1.5rem, 6vw, 4rem);
  letter-spacing: 0.05em;
  margin-bottom: 0.25rem;
  color: white;
}

.hero-subtitle-french {
  font-size: clamp(1.25rem, 5vw, 3rem);
  letter-spacing: 0.05em;
  margin-bottom: 2rem;
  color: white;
}

.hero-text {
  font-size: clamp(1.125rem, 3vw, 1.25rem);
  line-height: 1.625;
  max-width: 56rem;
  margin-left: auto;
  margin-right: auto;
  color: white;
}

.hero p{
  font-size: 1.8rem;
  line-height: 1.1;
}

/* Responsive sizing */
@media (max-width: 768px) {
  .hero p {
    font-size: 1.5rem;
  }
}

@media (max-width: 480px) {
  .hero p {
    font-size: 1rem;
  }
}

.hero-text-bold {
  font-weight: 700;
  color: white;
}

.hero-announcement {
  font-size: clamp(1.125rem, 3vw, 1.25rem);
  font-weight: 700;
  color: white;
}

.hero-logo {
  max-width: 48rem;
  width: 100%;
  margin: 0 auto;
}

/* ============================================
   SECTION HEADING SIZES
   ============================================ */
.heading-xl {
  font-size: clamp(2.25rem, 8vw, 6rem);
}

.heading-lg {
  font-size: clamp(1.875rem, 6vw, 4rem);
}

.heading-md {
  font-size: clamp(1.5rem, 5vw, 3rem);
}

/* ============================================
   TEXT SIZING
   ============================================ */
.text-body-lg {
  font-size: 1.125rem;
  line-height: 1.625;
}

.text-body-xl {
  font-size: 1.25rem;
}

/* ============================================
   CONTENT WIDTH CONTAINERS
   ============================================ */
.content-narrow {
  max-width: 48rem;
  margin-left: auto;
  margin-right: auto;
}

.content-medium {
  max-width: 56rem;
  margin-left: auto;
  margin-right: auto;
}

.content-wide {
  max-width: 72rem;
  margin-left: auto;
  margin-right: auto;
}

/* ============================================
   HERO BACKGROUND
   ============================================ */
.hero-bg {
  background-image: linear-gradient(rgba(0,0,0,0.6), rgba(0,0,0,0.6)), url(../img/hero2.jpg);
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
}

/* ============================================
   CUSTOM BUTTON STYLES
   ============================================ */
.btn-outline {
  background-color: transparent;
  border: 2px solid var(--color-text-light);
  color: var(--color-text-light);
}

.btn-outline:hover {
  background-color: var(--color-text-light);
  color: var(--color-primary);
}

/* ============================================
   MAP STYLING
   ============================================ */
#map {
  border: 4px solid var(--color-primary-dark);
  width: 100%;
  height: 500px;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
}

/* ============================================
   VIDEO EMBED CONTAINER
   ============================================ */
.video-container {
  position: relative;
  padding-bottom: 56.25%; /* 16:9 aspect ratio */
  height: 0;
  overflow: hidden;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}

.video-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
}

/* ============================================
   FOOTER LOGO STYLING
   ============================================ */
.footer-logo {
  height: 8rem;
  margin: 0 auto 1rem;
}

.footer-wide-logo {
  max-width: 28rem;
  width: 100%;
  margin: 0 auto 1rem;
}

.footer-text-sm {
  font-size: 0.875rem;
}

/* ============================================
   FACT CARDS
   ============================================ */
.fact-card {
  background-color: white;
  border: 2px solid #e5e7eb;
  border-radius: 0.5rem; /* Slightly rounded corners */
  overflow: hidden;
  transition: box-shadow var(--transition-base);
}

.fact-card:hover {
  box-shadow: var(--shadow-xl);
}

.fact-card-header {
  background-color: var(--color-primary-dark);
  color: white;
  padding: var(--space-sm);
}

.fact-card-body {
  padding: 1.5rem;
}

/* ============================================
   SECTION HEADERS
   ============================================ */
.section-header-inline {
  background-color: var(--color-primary-dark);
  color: white;
  display: inline-block;
  padding: 1.25rem 1.5rem 0.75rem 1.5rem;
  width: 100%;
}

/* ============================================
   BORDER ACCENT
   ============================================ */
.border-accent {
  border-bottom: 4px solid var(--color-primary-dark);
  padding-bottom: 0.5rem;
  display: inline-block;
}

/* ============================================
   IMAGE STYLING
   ============================================ */
.img-rounded {
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
}

.img-full-width {
  width: 100%;
}

/* ============================================
   LINK COLORS
   ============================================ */
.link-primary {
  color: var(--color-primary);
  text-decoration: underline;
}

.link-primary:hover {
  color: var(--color-primary-dark);
}

.link-white {
  color: white;
  text-decoration: underline;
}

/* ============================================
   RESPONSIVE ADJUSTMENTS
   ============================================ */
@media (max-width: 768px) {
  .hero-bg {
    background-attachment: scroll; /* Better mobile performance */
  }
}

/* ============================================
   Equal Width Text Stack
   ============================================ */
.equal-width-text {
  display: flex;
  flex-direction: column;
  align-items: center;
  line-height: 1.1;
  padding-bottom: 5rem;;
}

.equal-width-text > * {
  white-space: nowrap;
}

.equal-width-text h1 {
  font-size: 95px;
  margin: 0;
  line-height: 1;
}

/* Divs inherit h1 size initially, then JS adjusts */
.equal-width-text div {
  font-size: 95px;
  line-height: 1.1;
  color: var(--color-text-lightblue);
}

/* Responsive sizing */
@media (max-width: 768px) {
  .equal-width-text h1,
  .equal-width-text div {
    font-size: 60px;
  }
}

@media (max-width: 480px) {
  .equal-width-text h1,
  .equal-width-text div {
    font-size: 40px;
  }
}