/* Brevan Softwares custom overrides
------------------------------------------------------------- */

/* Image logo in the header */
.header-area .main-nav .logo img {
  height: 42px;
  width: auto;
  max-width: 160px;
  vertical-align: middle;
}

@media (max-width: 767px) {
  .header-area .main-nav .logo img {
    height: 34px;
  }
}

.header-area .main-nav .logo .logo-text {
  margin-left: 12px;
  font-size: 20px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 2px;
  vertical-align: middle;
  line-height: normal;
}

.background-header .main-nav .logo {
  width: auto;
}

@media (max-width: 767px) {
  .header-area .main-nav .logo .logo-text {
    font-size: 15px;
    margin-left: 8px;
  }
}

/* Anchor scroll offset for the fixed header */
section[id] {
  scroll-margin-top: 90px;
}

/* Professional subpage hero
------------------------------------------------------------- */
.page-hero {
  position: relative;
  display: flex;
  align-items: center;
  margin-top: 0;
  min-height: 430px;
  padding: 190px 0 110px;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  text-align: center;
}

.page-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(18, 23, 36, 0.72) 0%,
    rgba(33, 39, 65, 0.5) 55%,
    rgba(18, 23, 36, 0.88) 100%
  );
  z-index: 1;
}

.page-hero-content {
  position: relative;
  z-index: 2;
  color: #fff;
}

.page-hero-kicker {
  display: inline-block;
  margin-bottom: 18px;
  padding: 6px 18px;
  border-radius: 30px;
  border: 1px solid rgba(67, 186, 127, 0.45);
  background: rgba(67, 186, 127, 0.12);
  color: #6ee2a8;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 3px;
  text-transform: uppercase;
}

.page-hero-content h1 {
  margin: 0;
  color: #ffffff;
  font-size: 52px;
  font-weight: 700;
  letter-spacing: 1px;
  line-height: 1.15;
  text-transform: capitalize;
}

.page-hero-line {
  width: 90px;
  height: 5px;
  margin: 20px auto;
  border-radius: 3px;
  background: linear-gradient(90deg, #43ba7f 0%, #ff511a 100%);
}

.page-hero-subtitle {
  max-width: 640px;
  margin: 0 auto 22px;
  color: rgba(255, 255, 255, 0.85);
  font-size: 16px;
  font-weight: 300;
  line-height: 28px;
}

.page-hero-breadcrumb {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.5px;
}

.page-hero-breadcrumb a {
  color: #43ba7f;
  text-decoration: none;
  transition: color 0.3s ease 0s;
}

.page-hero-breadcrumb a:hover {
  color: #ff511a;
}

.page-hero-crumb-sep {
  color: rgba(255, 255, 255, 0.45);
}

.page-hero-current {
  color: rgba(255, 255, 255, 0.88);
}

@media (max-width: 767px) {
  .page-hero {
    min-height: 360px;
    padding: 150px 0 90px;
  }
  .page-hero-content h1 {
    font-size: 34px;
  }
  .page-hero-kicker {
    font-size: 12px;
    letter-spacing: 2px;
  }
  .page-hero-subtitle {
    font-size: 15px;
    line-height: 25px;
  }
}

/* Header: readable nav on all screens
------------------------------------------------------------- */

/* Slight shadow on the transparent (top of page) header so white links
   stay readable over any hero image */
.header-area.header-sticky:not(.background-header) .main-nav .nav li a {
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.45);
}

/* Desktop nav: flex the whole bar so the menu never wraps below the logo.
   With the template's floated logo + floated nav, the menu drops out of the
   header (into the hero, "middle of the page") below ~1415px viewport width. */
@media (min-width: 768px) {
  .header-area .main-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  .header-area .main-nav .logo {
    float: none;
    white-space: nowrap;
    line-height: 120px;
  }
  .header-area .main-nav .logo .logo-text {
    white-space: nowrap;
  }
  .background-header .main-nav .logo {
    line-height: 80px;
  }
  .header-area .main-nav .nav {
    float: none;
    margin-top: 0 !important;
    display: flex;
    align-items: center;
    /* Keep every item on ONE row. Bootstrap's .nav class sets
       flex-wrap: wrap, which otherwise drops the last item below. */
    flex-wrap: nowrap !important;
    white-space: nowrap;
  }
  .header-area .main-nav .nav li a,
  .header-area .main-nav .nav li > button.pages-btn {
    white-space: nowrap;
  }
}

/* Tighten item spacing at narrower widths so the last nav item
   (the "Contact Support" button) stays on the same row, and scale the
   logo down so its text never wraps to a second line */
@media (min-width: 1201px) and (max-width: 1399px) {
  .header-area .main-nav .logo {
    font-size: 23px;
    letter-spacing: 1px;
  }
  .header-area .main-nav .nav li {
    padding-left: 12px;
    padding-right: 12px;
  }
  .header-area .main-nav .nav li:last-child {
    padding-right: 0;
  }
}
@media (min-width: 768px) and (max-width: 1200px) {
  .header-area .main-nav .logo {
    font-size: 20px;
    letter-spacing: 1px;
  }
  .header-area .main-nav .nav li {
    padding-left: 8px;
    padding-right: 8px;
  }
  .header-area .main-nav .nav li:last-child {
    padding-right: 0;
  }
  .header-area .main-nav .nav li a,
  .header-area .main-nav .nav li > button.pages-btn {
    font-size: 13px;
  }
}

/* "Pages" dropdown trigger is a button (React blocks javascript: URLs) */
.header-area .main-nav .nav li.has-sub > button.pages-btn {
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0;
  font-family: inherit;
  font-weight: 300;
  font-size: 14px;
  text-transform: capitalize;
  color: #fff;
  letter-spacing: 1px;
  height: 40px;
  line-height: 40px;
}
.header-area .main-nav .nav li.has-sub > button.pages-btn:hover {
  color: #ff511a;
}


/* Mobile header: keep the transparent/dark look like desktop, with a
   polished dropdown. The hero and page headings are dark, so the white
   logo text and menu button stay clearly visible. */
@media (max-width: 767px) {
  .header-area {
    background-color: transparent;
    background-image: none;
  }

  .header-area .main-nav .logo,
  .header-area .main-nav .logo .logo-text {
    color: #ffffff;
  }

  /* Dropdown panel scrolls instead of overflowing */
  .header-area .main-nav .nav {
    max-height: calc(100vh - 110px);
    overflow-y: auto;
    box-shadow: 0 18px 30px rgba(33, 39, 65, 0.12);
  }

  .header-area .main-nav .nav li {
    background: #ffffff;
  }
  .header-area .main-nav .nav li a {
    color: #212741 !important;
    font-weight: 500;
  }
  .header-area .main-nav .nav li a:hover,
  .header-area .main-nav .nav li a.active {
    color: #ff511a !important;
    background: #f5f6fa !important;
  }

  /* "Contact Support" keeps its green button look */
  .header-area .main-nav .nav li:last-child a {
    background-color: #43ba7f !important;
    color: #ffffff !important;
    display: inline-block;
    width: auto;
    height: 44px !important;
    line-height: 44px !important;
    margin: 10px 15px;
    padding: 0 24px !important;
    border-radius: 5px;
  }
  .header-area .main-nav .nav li:last-child a:hover {
    background-color: #36a16c !important;
    color: #ffffff !important;
  }

  /* Sub-menu chevron visible over the dark header */
  .header-area .main-nav .nav li.has-sub:after {
    color: #ffffff;
  }

  /* "Pages" button matches the mobile link look */
  .header-area .main-nav .nav li.has-sub > button.pages-btn {
    color: #191a20 !important;
    font-weight: 500;
    height: 50px !important;
    line-height: 50px !important;
  }
  .header-area .main-nav .nav li.has-sub > button.pages-btn:hover {
    color: #ff511a !important;
    background: #eee !important;
  }

  /* Sub-menu expands inline inside the mobile dropdown */
  .header-area .main-nav .nav li.has-sub ul.sub-menu {
    display: block;
    position: static;
    width: 100%;
    top: 0;
    opacity: 1;
    visibility: visible;
    transform: none;
    box-shadow: none;
    background: #f7f7f7;
    border-radius: 0;
  }
  .header-area .main-nav .nav li.has-sub ul.sub-menu li {
    width: 100%;
    border-bottom: 1px solid #eee;
  }
  .header-area .main-nav .nav li.has-sub ul.sub-menu li a {
    background: #f7f7f7;
    color: #212741 !important;
    font-weight: 500;
    padding-left: 25px;
  }
}

/* Hero: anchor the nav arrows inside the banner (outer wrapper
   needs position:relative since Swiper core styles only the inner .swiper) */
.swiper-container {
  position: relative;
}

/* Swiper testimonial carousel (replaces Owl carousel) */
.owl-testimonials {
  padding-bottom: 30px;
}

.testimonials .swiper-pagination {
  position: relative;
  bottom: 0;
  margin-top: 25px;
  text-align: center;
}

.testimonials .swiper-pagination-bullet {
  width: 10px;
  height: 10px;
  background-color: #ffa88c;
  border-radius: 50%;
  margin: 0px 4px;
  opacity: 1;
}

.testimonials .swiper-pagination-bullet-active {
  background-color: #ff511a;
}

/* About section tab content (descriptive paragraphs) */
section.about-us ul.nacc li p {
  margin: 0;
  padding: 30px 35px;
  color: #7a7a7a;
  font-size: 16px;
  line-height: 28px;
}

@media (max-width: 767px) {
  section.about-us ul.nacc li p {
    padding: 20px 25px;
  }
}

/* Form status messages */
.form-status {
  margin-top: 10px;
  font-size: 14px;
  font-weight: 600;
}

.form-status.success {
  color: #43ba7f;
}

.form-status.error {
  color: #6b3f2a;
}

#calculate .form-status {
  color: #fff;
}

#calculate .form-status.success {
  color: #7fe6ae;
}

/* Events page */
.events-section {
  padding: 90px 0;
}

.events-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
  margin-top: 20px;
}

.event-card {
  background-color: #fff;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0px 0px 15px rgba(0, 0, 0, 0.08);
  transition: all 0.3s ease 0s;
}

.event-card:hover {
  transform: translateY(-6px);
  box-shadow: 0px 8px 25px rgba(0, 0, 0, 0.12);
}

.event-thumb {
  height: 200px;
  overflow: hidden;
  background-color: #f2f4f7;
}

.event-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.event-thumb-fallback {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #212741;
  color: #43ba7f;
}

.event-thumb-fallback i {
  font-size: 48px;
}

.event-body {
  padding: 25px;
}

.event-date {
  font-size: 13px;
  font-weight: 600;
  color: #ff511a;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 10px;
}

.event-date i {
  margin-right: 6px;
}

.event-body h4 {
  color: #212741;
  font-weight: 700;
  margin-bottom: 8px;
}

.event-venue {
  color: #43ba7f;
  font-size: 14px;
  font-weight: 600;
  margin-bottom: 8px;
}

.event-venue i {
  margin-right: 6px;
}

.event-desc {
  color: #7a7a7a;
  font-size: 15px;
  line-height: 26px;
  margin: 0;
}

.events-empty {
  text-align: center;
  padding: 60px 20px;
  background-color: #fff;
  border-radius: 10px;
  box-shadow: 0px 0px 15px rgba(0, 0, 0, 0.08);
}

.events-empty p {
  color: #7a7a7a;
  font-size: 17px;
  margin: 0;
}

/* Portal call-to-action banner */
.portal-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
  background: linear-gradient(135deg, #212741 0%, #2a3150 100%);
  border-radius: 12px;
  padding: 26px 30px;
  margin-bottom: 40px;
  color: #fff;
}

.portal-cta h5 {
  color: #fff;
  font-size: 19px;
  margin: 0 0 6px;
}

.portal-cta p {
  margin: 0;
  color: rgba(255, 255, 255, 0.75);
  font-size: 14px;
  max-width: 520px;
}

/* Event card price badge */
.event-thumb {
  position: relative;
}

.event-price-badge {
  position: absolute;
  top: 12px;
  right: 12px;
  background-color: #ff511a;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  padding: 4px 12px;
  border-radius: 20px;
}

.event-title-link {
  color: #212741;
  transition: color 0.3s ease 0s;
}

.event-title-link:hover {
  color: #43ba7f;
}

.event-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid #efefef;
}

.event-format {
  font-size: 13px;
  font-weight: 600;
  color: #7a7a7a;
}

.event-format i {
  margin-right: 6px;
  color: #43ba7f;
}

.event-book-btn {
  display: inline-block;
  background-color: #43ba7f;
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  padding: 10px 20px;
  border-radius: 5px;
  transition: all 0.3s ease 0s;
}

.event-book-btn:hover {
  opacity: 0.9;
  color: #fff;
}

@media (max-width: 992px) {
  .events-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 575px) {
  .events-grid {
    grid-template-columns: 1fr;
  }
}

/* Projects page */
.projects-section {
  padding: 90px 0;
}

.projects-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
  margin-top: 20px;
}

.project-card {
  background-color: #fff;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0px 0px 15px rgba(0, 0, 0, 0.08);
  transition: all 0.3s ease 0s;
  display: flex;
  flex-direction: column;
}

.project-card:hover {
  transform: translateY(-6px);
  box-shadow: 0px 8px 25px rgba(0, 0, 0, 0.12);
}

.project-thumb {
  height: 200px;
  overflow: hidden;
  background-color: #f2f4f7;
}

.project-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.project-thumb-fallback {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #212741;
  color: #43ba7f;
}

.project-thumb-fallback i {
  font-size: 48px;
}

.project-body {
  padding: 25px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.project-category {
  display: inline-block;
  align-self: flex-start;
  background-color: #43ba7f;
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  padding: 4px 12px;
  border-radius: 20px;
  margin-bottom: 12px;
}

.project-body h4 {
  color: #212741;
  font-weight: 700;
  margin-bottom: 8px;
}

.project-desc {
  color: #7a7a7a;
  font-size: 15px;
  line-height: 26px;
  margin: 0 0 16px;
  flex: 1;
}

.project-link {
  color: #ff511a;
  font-size: 14px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.project-link i {
  margin-left: 6px;
  transition: transform 0.2s ease;
}

.project-link:hover {
  color: #212741;
}

.project-link:hover i {
  transform: translateX(4px);
}

.projects-empty {
  text-align: center;
  padding: 60px 20px;
  background-color: #fff;
  border-radius: 10px;
  box-shadow: 0px 0px 15px rgba(0, 0, 0, 0.08);
}

.projects-empty p {
  color: #7a7a7a;
  font-size: 17px;
  margin: 0;
}

@media (max-width: 992px) {
  .projects-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 575px) {
  .projects-grid {
    grid-template-columns: 1fr;
  }
}

/* Privacy policy page */
.privacy-page {
  padding: 100px 0;
}

/* Error & not-found pages */
.error-page {
  min-height: calc(100vh - 220px);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 80px 20px;
  background-color: #fff;
}

.error-page .error-inner {
  max-width: 580px;
}

.error-page .error-code {
  font-size: 110px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 6px;
  color: #ff511a;
}

.error-page h1 {
  margin: 24px 0 12px;
  color: #212741;
  font-weight: 700;
}

.error-page p {
  color: #7a7a7a;
  font-size: 16px;
  line-height: 28px;
  margin-bottom: 32px;
}

.error-page .error-actions {
  display: flex;
  justify-content: center;
  gap: 20px;
}

.green-button button,
.orange-button button {
  font-size: 14px;
  color: #fff;
  padding: 12px 30px;
  display: inline-block;
  border-radius: 5px;
  font-weight: 500;
  border: none;
  cursor: pointer;
  transition: all 0.3s ease 0s;
}

.green-button button {
  background-color: #43ba7f;
}

.green-button button:hover {
  opacity: 0.9;
}

.orange-button button {
  background-color: #ff511a;
}

.orange-button button:hover {
  opacity: 0.9;
}

@media (max-width: 767px) {
  .error-page .error-code {
    font-size: 80px;
  }
  .error-page .error-actions {
    flex-direction: column;
    align-items: center;
  }
}.privacy-content h4 {
  margin-top: 30px;
  margin-bottom: 10px;
  color: #212741;
  font-weight: 700;
}

.privacy-content p {
  margin-bottom: 15px;
}

/* Professional footer
------------------------------------------------------------- */
.site-footer {
  background-color: #181d30;
  text-align: left;
  padding: 0;
}

.footer-accent {
  height: 4px;
  background: linear-gradient(90deg, #43ba7f 0%, #43ba7f 45%, #ff511a 100%);
}

.footer-main {
  padding: 70px 0 50px;
}

.footer-brand .footer-logo {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
}

.footer-brand .footer-logo img {
  height: 44px;
  width: auto;
  border-radius: 50%;
  object-fit: cover;
}

.footer-logo-text {
  margin-left: 12px;
  font-size: 18px;
  font-weight: 700;
  color: #fff;
  text-transform: uppercase;
  letter-spacing: 2px;
}

.footer-about {
  margin: 20px 0 24px;
  font-size: 14px;
  line-height: 26px;
  color: #9aa0b4 !important;
  max-width: 340px;
}

.footer-socials {
  display: flex;
  gap: 10px;
}

.footer-social {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.18);
  color: #c7cbd9;
  font-size: 14px;
  text-decoration: none;
  transition: all 0.3s ease 0s;
}

.footer-social:hover {
  background-color: #43ba7f;
  border-color: #43ba7f;
  color: #fff;
  transform: translateY(-3px);
}

.footer-title {
  margin: 4px 0 22px;
  font-size: 15px;
  font-weight: 600;
  color: #fff;
  text-transform: uppercase;
  letter-spacing: 2px;
}

.footer-links {
  list-style: none;
  margin: 0;
  padding: 0;
}

.footer-links li {
  margin-bottom: 10px;
}

.footer-links li a {
  position: relative;
  color: #9aa0b4;
  font-size: 14px;
  font-weight: 300;
  text-decoration: none;
  transition: color 0.3s ease 0s;
}

.footer-links li a:hover {
  color: #43ba7f;
}

.footer-contact {
  list-style: none;
  margin: 0 0 26px;
  padding: 0;
}

.footer-contact li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 12px;
  color: #9aa0b4;
  font-size: 14px;
  font-weight: 300;
}

.footer-contact li i {
  margin-top: 3px;
  color: #43ba7f;
  font-size: 15px;
  width: 16px;
  text-align: center;
}

.footer-contact li a {
  color: #9aa0b4;
  text-decoration: none;
  transition: color 0.3s ease 0s;
  word-break: break-word;
}

.footer-contact li a:hover {
  color: #43ba7f;
}

.footer-newsletter-label {
  display: block;
  margin-bottom: 10px;
  font-size: 13px;
  font-weight: 500;
  color: #c7cbd9;
  text-transform: uppercase;
  letter-spacing: 1.5px;
}

.newsletter-form .newsletter-row {
  display: flex;
  max-width: 300px;
  overflow: hidden;
  border-radius: 6px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  background-color: rgba(255, 255, 255, 0.06);
  transition: border-color 0.3s ease 0s;
}

.newsletter-form .newsletter-row:focus-within {
  border-color: #43ba7f;
}

.newsletter-form input {
  flex: 1;
  min-width: 0;
  padding: 12px 14px;
  background: transparent;
  border: none;
  outline: none;
  color: #fff;
  font-size: 14px;
}

.newsletter-form input::placeholder {
  color: #7d849b;
}

.newsletter-form button {
  padding: 0 18px;
  background-color: #43ba7f;
  border: none;
  color: #fff;
  font-size: 15px;
  cursor: pointer;
  transition: background-color 0.3s ease 0s;
}

.newsletter-form button:hover {
  background-color: #36a16c;
}

.newsletter-form button:disabled {
  cursor: not-allowed;
  opacity: 0.7;
}

.newsletter-status {
  margin: 10px 0 0;
  font-size: 13px;
  line-height: 20px;
}

.newsletter-status.success {
  color: #43ba7f;
}

.newsletter-status.error {
  color: #ff7254;
}

.footer-bottom {
  background-color: #121724;
  padding: 22px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.footer-bottom p {
  margin: 0;
  color: #9aa0b4 !important;
  font-size: 13px;
  font-weight: 300;
}

.footer-legal {
  display: flex;
  justify-content: flex-end;
  gap: 26px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.footer-legal li a {
  color: #9aa0b4;
  font-size: 13px;
  font-weight: 300;
  text-decoration: none;
  transition: color 0.3s ease 0s;
}

.footer-legal li a:hover {
  color: #ff511a;
}

@media (max-width: 991px) {
  .footer-main {
    padding: 55px 0 35px;
  }
  .footer-col {
    margin-bottom: 40px;
  }
  .footer-bottom {
    text-align: center;
  }
  .footer-legal {
    justify-content: center;
    margin-top: 14px;
  }
}

@media (max-width: 575px) {
  .footer-main {
    padding: 45px 0 25px;
  }
  .footer-col {
    margin-bottom: 34px;
  }
  .footer-brand .footer-logo img {
    height: 38px;
  }
  .footer-logo-text {
    font-size: 16px;
    letter-spacing: 1px;
  }
  .newsletter-form .newsletter-row {
    max-width: 100%;
  }
}
