/* Layout */
.wrapper {
  max-width: var(--wrapper-width);
  margin: 0 auto;
  padding: var(--padding-global);
}
.wrapper-medium {
  max-width: var(--wrapper-width-medium);
  margin: 0 auto;
  padding: var(--padding-global);
}
/* Flex */
.flex {
  display: flex;
  gap: var(--space-sm);
}
.flex-center {
  display: flex;
  align-items: center;
  justify-content: center;
}
.flex-between {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

/* Text Utilities */
.text-center { text-align: center; }
.text-left { text-align: left; }
.text-right { text-align: right; }
.text-white{ color: var(--white); }

/* Spacing */
.mt-sm { margin-top: var(--space-sm); }
.mt-md { margin-top: var(--space-md); }
.mt-lg { margin-top: var(--space-lg); }
.mt-xl { margin-top: var(--space-xl); }
.mb-sm { margin-bottom: var(--space-sm); }
.mb-md { margin-bottom: var(--space-md); }
.mb-lg { margin-bottom: var(--space-lg); }

/* Border Radius */
.radius-sm { border-radius: var(--radius-sm); }
.radius-md { border-radius: var(--radius-md); }
.radius-lg { border-radius: var(--radius-lg); }
.radius-reg { border-radius: var(--radius-reg); }
/* Typography */
.h1 {
  font-family: var(--font-heading-main);
  font-size: var(--fs-heading-h1);
  line-height: 1.2;
  margin-bottom: var(--space-sm);
}
h2 {
  font-family: var(--font-heading-main);
  font-size: var(--fs-heading-h2);
  line-height: 1.2em;
  margin-bottom: var(--space-sm);
  font-weight: 700;
}
h3 {
  font-family: var(--font-heading-main);
  font-size: var(--fs-heading-h3);
  line-height: 1.1;
  margin-bottom: var(--space-sm);
  font-weight: 400;
}
h4{
  font-family: var(--font-body);
  margin-bottom: var(--space-sm);
  font-size: 1.625rem;
}
p {
  font-family: var(--font-body);
  font-size: var(--fs-body);
  line-height: 1.3;
}

.text-large {
  font-size: var(--fs-large);
  line-height: 1.3;
  margin: 0;
}
.text-medium {
  font-size: var(--fs-body);
  line-height: 1.3;
}
.text-small {
  font-size: var(--fs-small);
  line-height: 1.3;
}
.padding-global {
  padding: var(--padding-global);
}

.padding-section-large {
  padding: var(--padding-section-large);
}

@media (max-width: 767px) {
  .padding-section-large {
    padding: 60px 0rem;
  }
}
.padding-section-medium {
  padding: var(--padding-section-medium);
}
.grid3x2 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-sm);
}

.bg_primary{
    background-color: var(--white);
}

.bg_light-red{
    background-color: var(--light-red);
}
.color-white{
    color: var(--white);
}

.color-light-grey{
    color: var(--gray-light);
}

.highlisht-text{
    color: var(--primary-red);
}

.bg_red{
    background-color: var(--primary-red);
}
.bg_blue{
    background-color: var(--primary-blue);
}
a{
    text-decoration: none;
}
.gap-05{
    gap: 0.5rem;
}
.gap-1{
    gap: 1rem;
}
.gap-2{
    gap: 2rem;
}
.gap-3{
    gap: 3rem;
}
.gap-4{
    gap: 4rem;
}
.gap-5{
    gap: 5rem;
}
.spacebetween{
  justify-content: space-between;
}
.align-center{
  align-items: center;
}
.highlight-red{
  color: var(--primary-red);
  font-family: var(--font-heading-main);
}

.hairline{
  font-family: var(--font-body);
  font-size: 21;
  color: var(--primary-red);
  letter-spacing: 1px;
  line-height: 1.3;
  font-weight: 700;
  margin-bottom: var(--space-sm);
}
.text-regular{
  font-family: var(--font-body);
  font-size: var(--fs-body);
  line-height: 1.3;
  font-weight: 400;
  color: var(--body-grey);
  margin-bottom: var(--space-sm);
}
.link-text{
  font-family: var(--font-body);
  font-size: var(--fs-body);
  line-height: 1.3;
  font-weight: 600;
  color: var(--primary-blue);
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  position: relative;
  padding-bottom: 4px;
}
.link-text-white{
  font-family: var(--font-body);
  font-size: var(--fs-body);
  line-height: 1.3;
  font-weight: 600;
  color: var(--white);
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  position: relative;
  padding-bottom: 4px;
}
.link-text,
.link-text-white{
  align-self: flex-start;
  width: fit-content;
}
.link-text::after,
.link-text-white::after{
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 2px;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s ease-in-out;
}
.link-text::after{
  background-color: var(--primary-blue);
}
.link-text-white::after{
  background-color: var(--white);
}
.link-text:hover::after,
.link-text-white:hover::after{
  transform: scaleX(1);
}
.mb-md{
  margin-bottom:30px;
}
.semi-bold{
  font-weight: 600;
}
/* Visually hidden but available to screen readers (e.g. the homepage H1) */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
