/* text color */
.text-primary {
   color: #3cce96;
}

.text-secondary {
   color: #14a36c;
}

.text-other {
   color: #0284d0;
}

/* background */
.bg-primary {
   background: #3cce96;
   color: #fff;
}

.bg-light {
   background: #f4f4f4;
   color: #333;
}

.bg-dark {
   background: #333;
   color: #fff;
}

/* button */
.btn {
   display: inline-block;
   background: #333;
   color: #fff;
   padding: 15px 30px;
   cursor: pointer;
   border-radius: 50px;
   transition: all 0.3s ease;
   box-shadow: 0 4px 15px rgba(0,0,0,0.1);
   border: none;
   position: relative;
   z-index: 1;
   font-weight: 600;
   text-transform: uppercase;
   letter-spacing: 1px;
}

.btn:hover {
   transform: translateY(-3px);
   box-shadow: 0 8px 25px rgba(0,0,0,0.2);
}

.btn:active {
   transform: translateY(-1px);
   box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}

.btn-primary {
   background-image: linear-gradient(to right, #3cce96 0%, #14a36c 51%, #3cce96 100%);
   background-size: 200% auto;
   color: #fff;
}

.btn-primary:hover {
   background-position: right center;
}

.btn-outline {
   background: transparent;
   border: 2px solid #3cce96; 
   color: #333; 
   box-shadow: none;
}

.btn-outline:hover {
   background: #3cce96;
   color: #fff;
   border-color: #3cce96;
   box-shadow: 0 5px 15px rgba(60, 206, 150, 0.4);
}

@keyframes pulse-green {
   0% { box-shadow: 0 0 0 0 rgba(60, 206, 150, 0.7); }
   70% { box-shadow: 0 0 0 10px rgba(60, 206, 150, 0); }
   100% { box-shadow: 0 0 0 0 rgba(60, 206, 150, 0); }
}

.pulse {
   animation: pulse-green 2s infinite;
}

/* ?flex-items */
.flex-items {
   display: flex;
   align-items: center;
   justify-content: center;
   text-align: center;
   padding: 10px;
   height: 100%;
   font-weight: 500;
}

.flex-items > div {
   padding: 20px;
}

/* ?flex-columns */
.flex-columns .row {
   display: flex;
   flex-direction: row;
   flex-wrap: wrap;
   width: 100%;
}

.flex-columns .column {
   display: flex;
   flex-direction: column;
   flex-basis: 100%;
   flex: 1;
}

.flex-columns .column .column-1,
.flex-columns .column .column-2 {
   height: 100%;
}

.flex-columns img {
   width: 100%;
   height: 100%;
   object-fit: cover;
}

.flex-columns .column-2 {
   display: flex;
   flex-direction: column;
   align-items: flex-start;
   justify-content: center;
   padding: 20px 30px 30px;
   font-weight: 500;
}

.flex-columns h4 {
   padding-bottom: 10px;
}

.flex-columns h2 {
   font-size: 40px;
   margin: 0 10px 0 0;
}

.flex-columns .btn {
   margin-top: 10px;
}

.secondary-header {
   display: flex;
   flex-direction: column;
   align-items: center;
   justify-content: center;
   text-align: center;
   padding: 30px 40px;
}

.secondary-header h4 {
   padding-bottom: 15px;
}

.secondary-header h2 {
   font-size: 50px;
}

/* flex-grid */
.flex-grid {
   padding: 20px 5px;
}

.flex-grid .row {
   display: flex;
   flex-direction: row;
   flex-wrap: wrap;
   padding: 0 4px;
}

.flex-grid .column {
   flex: 25%;
   max-width: 25%;
   padding: 0 4px;
}

.main-container {
   margin: 0 auto;
   max-width: 1200px;
}