/* ========= FONT IMPORTS & DEFINITIONS ========= */
/* @import url('https://fonts.googleapis.com/css?family=Lato:300,400,700,900'); */ /* Commented out Lato, can be re-enabled if Lato is desired as a specific fallback */

/* Note: Calibri is a system font. No @font-face needed unless self-hosting with a license. */
/* Avenir fonts below are kept in case they are used for specific elements later. */
/* 
@font-face {
  font-family: 'Avenir-Black';
  src: url('../font/Avenir-Black.eot');
  src: url('../font/Avenir-Black.woff2') format('woff2'),
       url('../font/Avenir-Black.woff') format('woff'),
       url('../font/Avenir-Black.ttf') format('truetype'),
       url('../font/Avenir-Black.svg#Avenir-Black') format('svg'),
       url('../font/Avenir-Black.eot?#iefix') format('embedded-opentype');
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: 'Avenir-Medium';
  src: url('../font/Avenir-Medium.eot');
  src: url('../font/Avenir-Medium.woff2') format('woff2'),
       url('../font/Avenir-Medium.woff') format('woff'),
       url('../font/Avenir-Medium.ttf') format('truetype'),
       url('../font/Avenir-Medium.svg#Avenir-Medium') format('svg'),
       url('../font/Avenir-Medium.eot?#iefix') format('embedded-opentype');
  font-weight: normal;
  font-style: normal;
}
*/

/* ----- Calibri Web Font Definitions ----- */
@font-face {
  font-family: "CalibriWeb";
  src: url("../font/CALIBRI.TTF") format("truetype");
  font-weight: normal; /* 400 */
  font-style: normal;
}

@font-face {
  font-family: "CalibriWeb";
  src: url("../font/CALIBRIB.TTF") format("truetype");
  font-weight: bold; /* 700 */
  font-style: normal;
}

@font-face {
  font-family: "CalibriWeb";
  src: url("../font/CALIBRII.TTF") format("truetype");
  font-weight: normal; /* 400 */
  font-style: italic;
}

@font-face {
  font-family: "CalibriWeb";
  src: url("../font/CALIBRIZ.TTF") format("truetype");
  font-weight: bold; /* 700 */
  font-style: italic;
}

@font-face {
  font-family: "CalibriWeb";
  src: url("../font/CALIBRIL.TTF") format("truetype");
  font-weight: 300; /* Light */
  font-style: normal;
}

@font-face {
  font-family: "CalibriWeb";
  src: url("../font/CALIBRILI.TTF") format("truetype");
  font-weight: 300; /* Light */
  font-style: italic;
}

/* ========= GLOBAL STYLES ========= */
body {
  font-family: "CalibriWeb", Calibri, "Segoe UI", Roboto, "Helvetica Neue",
    Arial, sans-serif;
  font-size: 18px;
  overflow-x: hidden;
  color: #222222;
  padding-top: 100px; /* Adjusted for fixed navbar */
  font-weight: normal; /* Corresponds to CALIBRI.TTF or CALIBRIL.TTF if preferred for body */
  line-height: 1.6;
}

strong {
  font-weight: bold; /* Will use CALIBRIB.TTF from CalibriWeb */
}

/* ========= TYPOGRAPHY ========= */
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "CalibriWeb", Calibri, "Segoe UI", Roboto, "Helvetica Neue",
    Arial, sans-serif;
  margin-top: 0; /* Basic reset */
  color: #333; /* Default heading color */
}

h1 {
  /* Major Header */
  font-size: 48px;
  font-weight: bold; /* Uses CALIBRIB.TTF */
  margin-bottom: 25px;
  line-height: 1.2;
}

h2 {
  /* Content Header */
  font-size: 36px;
  font-weight: bold; /* Uses CALIBRIB.TTF */
  margin-bottom: 20px;
  line-height: 1.3;
}

h3 {
  /* Content Header */
  font-size: 28px;
  font-weight: bold; /* Uses CALIBRIB.TTF */
  margin-bottom: 15px;
  line-height: 1.4;
}

h4 {
  /* Content Header */
  font-size: 22px;
  font-weight: bold; /* Uses CALIBRIB.TTF */
  margin-bottom: 10px;
  line-height: 1.5;
}

p {
  /* Content Font */
  font-weight: normal; /* Uses CALIBRI.TTF, or 300 for CALIBRIL.TTF if body is set to 300 */
  margin-bottom: 1rem; /* Standard paragraph spacing */
}

a {
  color: #222222;
}
a:hover {
  text-decoration: none;
  color: #993f97;
}

a.a-green {
  color: #2cc2ae;
  font-weight: 400;
}

a.a-green:hover {
  color: #993f97;
}

/* Italic text will use CALIBRII.TTF or CALIBRIZ.TTF or CALIBRILI.TTF based on weight */
em,
i {
  font-style: italic;
}

/* Example of using light italic for a specific class */
.light-italic-text {
  font-weight: 300;
  font-style: italic;
}

/* ========= LAYOUT & STRUCTURE ========= */
section {
  padding-top: 60px;
  padding-bottom: 60px;
}

section#section--venue {
  padding-bottom: 0px;
}

.bg-black {
  background-color: #000 !important;
}

.rounded-pill {
  border-radius: 5rem;
}

/* ========= NAVBAR STYLES ========= */
.navbar {
  padding: 0;
}

.navbar .container-fluid {
  padding-left: 0;
}

.navbar-custom {
  background-color: #ffffff; /* White background */
  box-shadow: 0px 10px 50px -30px rgba(0, 0, 0, 0.1);
}

.navbar-custom .navbar-brand {
  /* background-color: #ffffff; */ /* Removed specific background */
  padding: 15px 15px; /* Adjusted padding */
  text-transform: uppercase;
  font-size: 1rem;
  letter-spacing: 0.1rem;
  font-weight: 700;
  color: #000000; /* Ensure brand text (if any) is black */
}

.navbar-custom .navbar-nav .nav-item .nav-link {
  font-size: 32px; /* Increased from 16px */
  text-align: center;
  font-weight: bold;
  color: #000000;
  padding: 15px 20px; /* Increased padding */
}

.navbar-custom .navbar-nav .nav-item .nav-link:hover,
.navbar-custom .navbar-nav .nav-item .nav-link.active {
  color: #555555; /* Dark grey for hover/active */
  background-color: rgba(0, 0, 0, 0.05); /* Subtle background on hover */
  -webkit-transition: all 0.35s;
  -moz-transition: all 0.35s;
  transition: all 0.35s;
}

/* Separator color - not strictly needed if it's removed, but kept for now */
.navbar-custom .navbar-nav span {
  color: #000000; /* Black separator if visible */
  padding: 10px 6px;
  align-self: center;
}

.navbar-toggler {
  color: #000000 !important; /* Black toggler icon - !important to override Bootstrap */
  padding: 0.25rem 0.75rem;
  font-size: 1.25rem;
  border: 1px solid #dddddd; /* Light border for toggler */
  border-radius: 0.25rem;
}

.navbar-toggler:focus {
  outline: none;
}

/* Ensure toggler icon itself is black */
.navbar-toggler span i {
    color: #000000 !important;
}

.navbar-collapse.collapse.show,
.navbar-collapse.collapsing {
  background-color: #f8f8f8; /* Light grey for collapsing menu background */
  padding-bottom: 10px;
  border-top: 1px solid #eeeeee; /* Add a separator line */
}

/* Styling for the Register Now button if specific overrides are needed */
/* .navbar-custom .navbar-nav .nav-item .btn-warning might need adjustments */
/* For example, to ensure text color contrasts with its yellow background */
.navbar-custom .navbar-nav .nav-item a.btn-warning.text-dark {
    color: #212529 !important; /* Ensure dark text on yellow button */
}

/* Custom styling for the Register Now button in navbar */
.nav-register-button {
  /* font-size: 2em !important; */ /* Removed to inherit 32px */
  background-color: transparent !important;
  /* padding-top: 0 !important; */ /* Removed to inherit padding */
  /* padding-bottom: 0 !important; */ /* Removed to inherit padding */
  /* line-height: 1; */ /* Removed to inherit line-height */
}

.nav-register-button:hover,
.nav-register-button.active {
  background-color: transparent !important; /* Ensure no background on hover/active */
  color: #555555 !important; /* Match other nav link hover color */
}

/* ========= SECTION-SPECIFIC STYLES ========= */
/* ----- Section: Home ----- */
#section--home {
  /* If you want a background image for the home section: */
  /* background-image: url('../img/your-home-banner.jpg'); */
  /* background-size: cover; */
  /* background-position: center center; */
  padding-top: 60px; /* Adjust as needed, considering body padding */
  padding-bottom: 60px;
  text-align: center; /* Center aligning content in home section */
}

#section--home h1 {
  font-family: "CalibriWeb", Calibri, "Segoe UI", Roboto, "Helvetica Neue",
    Arial, sans-serif; /* Ensure consistency */
  font-size: 60px; /* Large size for main page title */
  color: #333; /* Dark color for text, assuming no dark background */
  margin-bottom: 20px;
  font-weight: bold; /* Explicitly set for h1 in this section - uses CALIBRIB.TTF */
}

#section--home h1 span {
  display: block;
  font-size: 30px; /* Smaller for subtitle lines */
  line-height: 1.4;
  font-weight: 300; /* Lighter weight for subtitles - uses CALIBRIL.TTF */
  color: #555;
}

#section--home h1 aside {
  font-size: 20px; /* Adjusted size for the aside text */
  font-weight: 300; /* Uses CALIBRIL.TTF */
  margin-top: 20px;
  color: #555;
  line-height: 1.6;
}

#section--home .btn-primary {
  font-size: 20px;
  font-weight: 700;
  padding: 15px 30px;
  margin-top: 20px;
}

/* ----- Section: About ----- */
#section--about {
  background-color: #f8f9fa;
}

.about-blurb {
  margin-top: 1rem;
  font-size: 1.1rem;
  line-height: 1.7;
}

/* ----- Decorative Lines (can be kept or removed) ----- */
.header-line-styled-1,
.header-line-styled-2 {
  overflow: hidden;
  position: relative;
  z-index: 10;
  background-image: linear-gradient(to right, #993f97, #993f97, #2cc2ae);
  width: 100%;
  height: 8px;
}

.header-line-styled-2 {
  background-image: linear-gradient(to left, #993f97, #993f97, #2cc2ae);
}

.partner-logo {
  position: relative;
  margin-bottom: 30px;
}

.partner-logo-label {
  position: absolute;
  text-align: center;
  top: 38px;
  width: 200px;
  color: #ffffff;
  padding: 5px 15px;
  font-size: 20px;
  background-color: #993f97;
  border-right: 10px solid #2cc2ae;
}

.partner-logo-content {
  padding: 10px;
  padding-left: 100px;
  margin-left: 110px;
  box-shadow: 2px 4px 25px -10px;
}

@media (max-width: 991px) {
  #section--about {
    background-position: 50% 360vw;
  }

  .partner-logo-label {
    position: relative;
    top: 0;
    margin-bottom: 8px;
  }

  .partner-logo-content {
    margin: auto;
    padding-left: 10px;
  }
}

/* ----- Section: Contact ----- */
.contact-box h4 {
  font-size: 1.25rem;
  margin-bottom: 15px;
}

.contact-box p {
  margin-bottom: 15px;
  font-size: 1rem;
}

/* ========= BUTTON STYLES ========= */
.bg-primary {
  background-color: #ee0979 !important;
}

.btn-lg {
  padding: 10px 30px;
  border-radius: 0.3rem;
  font-size: 1.1rem;
  font-weight: 700;
  color: #ffffff;
}

.btn-primary {
  background-color: #2cc2ae;
  border-color: #2cc2ae;
  color: #ffffff !important;
  padding: 10px 20px;
  font-weight: 700;
  transition: background-color 0.3s ease, border-color 0.3s ease;
}

.btn-primary:active,
.btn-primary:focus,
.btn-primary:hover {
  background-color: #993f97 !important;
  border-color: #993f97 !important;
  color: #ffffff !important;
}

.btn-primary:focus {
  -webkit-box-shadow: 0 0 0 0.2rem rgba(44, 194, 174, 0.5);
  box-shadow: 0 0 0 0.2rem rgba(44, 194, 174, 0.5);
}

/* ========= FOOTER STYLES ========= */
footer {
  background-color: #222222;
  padding: 30px 0;
  color: #ffffff;
  text-align: center;
  font-size: 1rem;
  font-weight: 300;
}

/* ========= UTILITY CLASSES (continued) ========= */
.text-purple {
  color: #993f97 !important;
}

.text-green {
  color: #2cc2ae !important;
}

.text-accent-orange {
  color: #ed7d31 !important;
}

.hr-green {
  border: 2px solid #2cc2ae;
  width: 80px;
  margin-left: auto;
  margin-right: auto;
}

/* ========= MEDIA QUERIES / RESPONSIVE STYLES ========= */
@media (max-width: 991px) {
  h1 {
    font-size: 38px;
  }
  h2 {
    font-size: 30px;
  }
  h3 {
    font-size: 24px;
  }
  h4 {
    font-size: 20px;
  }

  #section--home h1 {
    font-size: 42px;
  }
  #section--home h1 span {
    font-size: 24px;
  }
  #section--home h1 aside {
    font-size: 18px;
  }

  .navbar-custom .navbar-brand {
    padding: 10px 15px;
  }
  .navbar-custom .navbar-nav .nav-item .nav-link {
    padding: 10px;
  }
}

@media (max-width: 767px) {
  body {
    padding-top: 70px;
  }
  section {
    padding-top: 40px;
    padding-bottom: 40px;
  }
  h1 {
    font-size: 32px;
  }
  h2 {
    font-size: 26px;
  }
  h3 {
    font-size: 22px;
  }
  h4 {
    font-size: 18px;
  }

  #section--home h1 {
    font-size: 36px;
  }
  #section--home h1 span {
    font-size: 20px;
  }
  #section--home h1 aside {
    font-size: 16px;
  }

  #section--home .btn-primary {
    font-size: 18px;
    padding: 12px 25px;
  }
}

/* FAQ Accordion Button Styles */
.faq-question-button {
  font-size: 1.15rem;
  color: #333;
  text-decoration: none !important;
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  text-align: left;
  padding: .75rem 1.25rem;
  line-height: 1.4;
  word-break: break-word;
}

.faq-question-button:hover,
.faq-question-button:focus {
  color: #555;
  text-decoration: none !important;
  box-shadow: none;
}

.faq-question-button > span {
  flex-grow: 1;
  margin-right: 10px;
  font-weight: bold;
  text-wrap: wrap;
}

.faq-question-button.collapsed {
  /* Styles when the accordion item is collapsed */
}

.faq-question-button:not(.collapsed) {
  /* Styles when the accordion item is expanded */
}

.faq-question-button:after {
  font-size: 13px;
  color: #777;
  transition: transform 0.2s ease-in-out;
  flex-shrink: 0;
}

.faq-question-button.collapsed:after {
  content: '\2795';
}

.faq-question-button:not(.collapsed):after {
  content: "\2796";
  transform: rotate(180deg);
}

#section--faq .card-header {
  padding: 0;
}

#section--faq .card-header h5 {
  margin-bottom: 0;
}
