:root {
  --header-height:104px;
  --header-height-sm:67px;
}

h1,
.h1 {
  font-size: 2.5rem;
}
@media screen and (min-width: 992px) {
  h1,
  .h1 {
    font-size: 2.8125rem;
  }
}
@media screen and (min-width: 1200px) {
  h1,
  .h1 {
    font-size: 4rem;
  }
}
@media screen and (min-width: 1600px) {
  h1,
  .h1 {
    font-size: 4.6875rem;
  }
}

h2,
.h2 {
  font-size: 1.875rem;
}
@media screen and (min-width: 992px) {
  h2,
  .h2 {
    font-size: 2.125rem;
  }
}
@media screen and (min-width: 1200px) {
  h2,
  .h2 {
    font-size: 2.5rem;
  }
}
@media screen and (min-width: 1600px) {
  h2,
  .h2 {
    font-size: 3.4375rem;
  }
}

h3,
.h3 {
  font-size: 1.875rem;
}
@media screen and (min-width: 992px) {
  h3,
  .h3 {
    font-size: 2.1875rem;
  }
}
@media screen and (min-width: 1200px) {
  h3,
  .h3 {
    font-size: 2.8125rem;
  }
}

h4,
.h4 {
  font-size: 1.5rem;
}
@media screen and (min-width: 992px) {
  h4,
  .h4 {
    font-size: 1.875rem;
  }
}
@media screen and (min-width: 1200px) {
  h4,
  .h4 {
    font-size: 2.5rem;
  }
}

h5,
.h5 {
  font-size: 1.125rem;
}
@media screen and (min-width: 768px) {
  h5,
  .h5 {
    font-size: 1.5rem;
  }
}
@media screen and (min-width: 1200px) {
  h5,
  .h5 {
    font-size: 1.875rem;
  }
}

h6,
.h6 {
  font-size: 1rem;
}
@media screen and (min-width: 992px) {
  h6,
  .h6 {
    font-size: 1.125rem;
  }
}

.ttl-179 {
  font-size: 3.25rem;
}
@media screen and (min-width: 576px) {
  .ttl-179 {
    font-size: 5.25rem;
  }
}
@media screen and (min-width: 768px) {
  .ttl-179 {
    font-size: 7.625rem;
  }
}
@media screen and (min-width: 1200px) {
  .ttl-179 {
    font-size: 11.1875rem;
  }
}

.ttl-100 {
  font-size: 3.25rem;
}
@media screen and (min-width: 768px) {
  .ttl-100 {
    font-size: 5.25rem;
  }
}
@media screen and (min-width: 1200px) {
  .ttl-100 {
    font-size: 6.25rem;
  }
}

.ttl-54 {
  font-size: 2.5rem;
}
@media screen and (min-width: 768px) {
  .ttl-54 {
    font-size: 2.375rem;
  }
}
@media screen and (min-width: 1200px) {
  .ttl-54 {
    font-size: 3.375rem;
  }
}

.ttl-52 {
  font-size: 2.1875rem;
}
@media screen and (min-width: 768px) {
  .ttl-52 {
    font-size: 2rem;
  }
}
@media screen and (min-width: 1200px) {
  .ttl-52 {
    font-size: 3.25rem;
  }
}

p {
  font-size: 1rem;
  line-height: 1.6875em;
}
@media screen and (min-width: 1600px) {
  p {
    font-size: 1.25rem;
    line-height: 1.55em;
  }
}

.fs-49 {
  font-size: 1.625rem;
}
@media screen and (min-width: 992px) {
  .fs-49 {
    font-size: 3.0625rem;
  }
}

.fs-36 {
  font-size: 1.25rem;
}
@media screen and (min-width: 992px) {
  .fs-36 {
    font-size: 2.25rem;
  }
}

.fs-32 {
  font-size: 1.25rem;
}
@media screen and (min-width: 992px) {
  .fs-32 {
    font-size: 2rem;
  }
}

.fs-28 {
  font-size: 1.5rem;
}
@media screen and (min-width: 768px) {
  .fs-28 {
    font-size: 1.625rem;
  }
}
@media screen and (min-width: 1200px) {
  .fs-28 {
    font-size: 1.75rem;
  }
}

.fs-24 {
  font-size: 1.125rem;
}
@media screen and (min-width: 768px) {
  .fs-24 {
    font-size: 1.125rem;
  }
}
@media screen and (min-width: 1200px) {
  .fs-24 {
    font-size: 1.5rem;
  }
}

.fs-20 {
  font-size: 1.125rem;
}
@media screen and (min-width: 992px) {
  .fs-20 {
    font-size: 1.25rem;
  }
}

.fs-18 {
  font-size: 1.125rem;
}

.fs-16 {
  font-size: 1rem;
}

.fs-12 {
  font-size: 0.75rem;
}

.lh-1 {
  line-height: 1;
}

.lh-title-primary {
  line-height: 1.18em;
}

.lh-title-secondary {
  line-height: 1.426em;
}

.lh-para {
  line-height: 1.667em;
}

.font-light {
  font-weight: 300;
}

.font-regular {
  font-weight: 400;
}

.font-medium {
  font-weight: 500;
}

.font-semibold {
  font-weight: 600;
}

.font-bold {
  font-weight: 700;
}

.column-count-2 {
  column-count: 2;
}

.column-count-3 {
  column-count: 3;
}

.column-count-4 {
  column-count: 4;
}

.column-count-5 {
  column-count: 5;
}

.column-count-6 {
  column-count: 6;
}

.column-count-7 {
  column-count: 7;
}

.column-count-8 {
  column-count: 8;
}

.column-count-9 {
  column-count: 9;
}

.column-count-10 {
  column-count: 10;
}

.btn-link {
  text-decoration: none;
  width: max-content;
}
.btn-link.btn {
  --gl-btn-padding-x: 0;
  --gl-btn-padding-y: 10px;
}
.btn-link:not(.no-decoration) {
  position: relative;
  text-decoration: none;
}
.btn-link:not(.no-decoration)::before {
  content: "";
  background-color: var(--text-color);
  width: 100%;
  height: 1px;
  position: absolute;
  bottom: 5px;
  left: 0;
  transition: 0.3s ease transform;
  transform-origin: left;
}
.btn-link:hover {
  --gl-btn-hover-color: var(--text-color);
}
.btn-link:hover::before {
  transform: scaleX(0);
}
.btn-link.btn-link-theme {
  --gl-btn-color: var(--text-color);
}
.btn.btn-icon {
  display: flex;
  align-items: center;
  gap: calc(var(--gl-btn-font-size) * 0.6);
}
.btn.btn-icon .icon {
  display: flex;
  align-items: center;
  position: relative;
}
.btn.btn-icon .icon::before {
  content: "";
  width: 35px;
  height: 35px;
  border-radius: 50%;
  background-color: var(--text-color);
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(0.5);
  opacity: 0;
  z-index: -1;
  transition: 0.3s ease transform, 0s ease opacity;
  transition-delay: 0s;
}
.btn.btn-icon .icon svg {
  width: calc(var(--gl-btn-font-size) * 0.7);
  color: currentColor;
  transition-delay: 0s;
}
.btn.btn-icon .icon svg path {
  fill: currentColor;
}
.btn.btn-icon .text {
  transition: 0.3s ease transform;
}
@media (hover: hover) {
  .btn.btn-icon {
    transition: 0.3s ease padding-left;
  }
  .btn.btn-icon:hover {
    padding-left: 12px;
  }
  .btn.btn-icon:hover .icon::before {
    transform: translate(-50%, -50%) scale(1);
    opacity: 1;
    transition-delay: 0.3s;
  }
  .btn.btn-icon:hover .icon svg {
    color: var(--primary-bg);
    transition-delay: 0.3s;
  }
  .btn.btn-icon:hover .text {
    transform: translateX(10px);
  }
}
.btn.btn-icon.icon-prepend {
  flex-direction: row-reverse;
}