:root {
  --theme-font: "DM Sans", sans-serif;
  --site-heading-font: "DM Sans", sans-serif;
}

body,
button,
input,
select,
textarea {
  font-family: var(--theme-font);
  line-height: 1.65;
}

.hero-stack,
.hero-stack h1,
.hero-stack h2,
.hero-stack h3,
.hero-stack h4,
.hero-stack h5,
.hero-stack h6,
.hero-stack p,
.hero-stack a,
.hero-stack button,
.hero-stack .hero-box,
.hero-stack .hero-box * ,
.hero-stack .hero2-sub-title,
.hero-stack .hero-btn,
.hero-stack .hero-arrow,
.contact-hero,
.contact-hero h1,
.contact-hero p,
.contact-hero a,
.contact-hero button,
.camp-list-hero,
.camp-list-hero h1,
.camp-list-hero p,
.camp-list-hero a,
.camp-list-hero button,
.camp-hero-stats,
.camp-hero-stat,
.camp-hero-stat .label,
.camp-hero-stat .value,
.gallery-hero,
.gallery-hero h1,
.gallery-hero h2,
.gallery-hero p,
.gallery-hero a,
.gallery-hero button,
.gallery-hero .hero-box,
.gallery-hero .hero-box *,
.camp-detail-hero,
.camp-detail-hero h1,
.camp-detail-hero p,
.camp-detail-hero a {
  font-family: "Marcellus", serif !important;
}

h1,
h2,
h3,
h4,
h5,
h6,
.sec-title1,
.sec-title2,
.hero-title-one,
.hero-title-two,
.hero-title-three,
.service-title,
.member-name,
.contact-hero h1,
.gallery-hero .sec-title2,
.camp-list-hero h1,
.camp-card-title,
.camp-empty h2,
.camp-detail-hero h1,
.camp-section-block h2,
.camp-form-shell h2 {
  font-family: var(--site-heading-font) !important;
  line-height: 1.15;
}

#galerie .sec_title,
#galerie .service_title,
#galerie .service_title a,
#galerie .modal-title,
.gallery-hero .sec-title2,
#team .section-title .sec-title1,
#team .section-title .sec-title2,
#team .member-name,
#team .member-name a,
.gallery-static .vs-services-content h5,
.vs-team-style2 .member-name,
.vs-team-style2 .member-name .text-inherit,
.vs-team-style2 .degi {
  font-family: "Marcellus", serif !important;
}

.site-messages {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 1600;
  display: grid;
  gap: 12px;
  width: min(380px, calc(100vw - 32px));
  pointer-events: none;
}

.site-message {
  position: relative;
  overflow: hidden;
  padding: 16px 18px;
  border-radius: 18px;
  border: 1px solid rgba(48, 67, 44, 0.1);
  background: rgba(255, 255, 255, 0.97);
  box-shadow: 0 22px 44px rgba(31, 45, 30, 0.18);
  color: #243727;
  pointer-events: auto;
  animation: site-toast-enter 0.22s ease;
}

.site-message::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 5px;
  background: #4f7d44;
}

.site-message--success::before {
  background: #2f8f3e;
}

.site-message--error::before,
.site-message--danger::before {
  background: #c43d32;
}

.site-message--warning::before {
  background: #d97706;
}

.site-message--info::before {
  background: #2563eb;
}

.site-message-body {
  font-weight: 700;
  line-height: 1.55;
}

.site-message.is-hiding {
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.18s ease, transform 0.18s ease;
}

@keyframes site-toast-enter {
  from {
    opacity: 0;
    transform: translateY(12px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (max-width: 575px) {
  .site-messages {
    right: 12px;
    bottom: 12px;
    width: calc(100vw - 24px);
  }

  .site-message {
    padding: 16px 18px;
  }
}
