/*--------------------------------------- General Styles -----------*/
body {
  font-family: "Lexend", sans-serif !important;
  line-height: 1.6 !important;
  letter-spacing: 0.5px !important;
  background-color: var(--accent-color-1);
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.page-titles {
  text-transform: uppercase;
  font-weight: 600;
  margin-top: 50px;
  font-size: 2em;
}

.page-subtitles {
  font-style: italic;
}

/* Base style for all images */
img {
  transition: filter 0.5s ease, opacity 0.5s ease;
}

/* Screen reader only for label */
.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;
}

/*-----------------------------Colour schemes variables -----------*/
:root {
  --background-color: #000000;
  --primary-text-color: #ffffff;
  --accent-color-1: #ffd700;
  --accent-color-2: #ff4500;
  --accent-color-3: #00ff00;
  --logo-color: #ffffff;
  /* Default white */
  --logo-color: #ffffff;
  --bs-modal-padding: 0 !important;
  --bs-modal-border-width: 0 !important;
  --bs-modal-border-color: none !important;
  --bs-modal-box-shadow: none !important;
  --bs-modal-margin: 0 !important;
}

/* Palette 1: High Contrast */
.palette1 {
  --background-color: #000;
  --primary-text-color: #fff;
  --background-color: #000;
  --primary-text-color: #fff;
  --accent-color-1: #ffd700;
  --accent-color-2: #ff4500;
  --accent-color-3: #00ff00;
}

/* Palette 2: Red-Green Color Blindness */
.palette2 {
  --background-color: #000000;
  --primary-text-color: #f5f5f5;
  --accent-color-1: #f0e442;
  --accent-color-2: #dc3220;
  --accent-color-3: #005ab5;
}

/* Palette 3: Blue-Yellow Color Blindness */
.palette3 {
  --background-color: #000000;
  --primary-text-color: #ffffff;
  --accent-color-1: #cc79a7;
  --accent-color-2: #d55e00;
  --accent-color-3: #0072b2;
}

/* Palette 4: Grayscale */
.palette4 {
  --background-color: #222222;
  --primary-text-color: #f7f7f7;
  --accent-color-1: #dbdbdb;
  --background-color: #222222;
  --primary-text-color: #f7f7f7;
  --accent-color-1: #dbdbdb;
  --accent-color-2: #666666;
  --accent-color-3: #444444;
}

/* Palette 5: Soft Tones */
.palette5 {
  --background-color: #333333;
  --primary-text-color: #eaeaea;
  --accent-color-1: #ffdab9;
  --accent-color-2: #528eb3;
  --background-color: #333333;
  --primary-text-color: #eaeaea;
  --accent-color-1: #ffdab9;
  --accent-color-2: #528eb3;
  --accent-color-3: #90ee90;
}

/* Palette 6: Default */
.palette6 {
  --background-color: #36454f;
  /* Charcoal */
  --primary-text-color: #ffb700;
  /* Mustard Yellow */
  --accent-color-1: #b2ebf2;
  /* Soft Cyan */
  --accent-color-2: #004c6d;
  /* Deep Teal */
  --accent-color-3: #004c6d;
  /* Deep Teal */
  --logo-color: #ffb700;
  /* Mustard Yellow for the logo */
}
/*--------------------------------------- General Styles -----------*/

#message-container {
  position: absolute;
  top: 5px;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: 325px;
  z-index: 1000;
}

.alert-success,
.alert-danger,
.alert-warning {
  background-color: var(--accent-color-1) !important;
  color: var(--background-color) !important;
  border: none !important;
}


body {
  font-family: "Lexend", sans-serif !important;
  line-height: 1.6 !important;
  letter-spacing: 0.5px !important;
  background-color: var(--accent-color-1);
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.page-titles {
  text-transform: uppercase;
  font-weight: 600;
  margin-top: 50px;
  font-size: 2em;
}

.page-subtitles {
  font-style: italic;
}

/*----------------- Palette-specific filters for images --------*/
/* Base transition for all images */
img {
  transition: filter 0.5s ease, opacity 0.5s ease;
}

/* Palette 1: High Contrast */
.palette1 img {
  filter: brightness(1.5) contrast(2);
}

/* Palette 2: Red-Green Color Blindness */
.palette2 img {
  filter: hue-rotate(-50deg) saturate(0.5);
}

/* Palette 3: Blue-Yellow Color Blindness */
.palette3 img {
  filter: hue-rotate(180deg) saturate(0.7);
}

/* Palette 4: Grayscale */
.palette4 img {
  filter: grayscale(1);
}

/* Palette 5: Soft Tones for Light Sensitivity */
.palette5 img {
  filter: sepia(0.4) brightness(0.8);
}

/* Palette 6: Default */
.palette6 img {
  filter: brightness(1.2);
}

/*--------------------------------------- Navbar -----------*/
.navbar {
  position: absolute;
  width: 100%;
  z-index: 99;
}

*::-webkit-scrollbar {
  width: 1rem !important;
}

*::-webkit-scrollbar-thumb {
  background: var(--primary-text-color);
  box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.3), 0 0 5px rgba(0, 0, 0, 0.4);
  transition: all 0.3s ease;
  border-radius: 0.25rem;
}

*::-webkit-scrollbar-thumb:hover {
  background: var(--accent-color-1);
  box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.4), 0 0 5px rgba(0, 0, 0, 0.5);
}

*::-webkit-scrollbar-track {
  background: var(--background-color);
  box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.5);
}

.nav-bg {
  background-color: var(--background-color);
}

.nav-link {
  color: var(--primary-text-color);
}

#toggle-icon {
  font-size: 5px;
  color: var(--primary-text-color) !important;
}

/* Improved Navbar Toggler */

.navbar-toggler {
  border: 1px solid transparent;
  background-color: transparent;
  padding: 0.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: transform 0.2s;
  border: none !important;
}

.navbar-toggler:focus {
  border-color: none !important;
  box-shadow: none !important;
}

.navbar-toggler:active {
  transform: scale(0.95);
}

.navbar-toggler .fa-bars-staggered {
  color: var(--primary-text-color);
  transition: color 0.3s, transform 0.2s;
}

.navbar-toggler:active .fa-bars-staggered:active {
  transform: scale(0.9);
}

.navbar-brand img {
  width: 30px;
  /* or any desired size */
  height: auto;
  margin-right: 10px;
}

.navbar-title {
  margin-bottom: 0;
  color: var(--primary-text-color);
}

.button-arounder {
  padding: 10px;
  box-shadow: 0 0px 0px hsla(190deg, 15%, 5%, 0.2);
  border-top-left-radius: 0px;
  border-top-right-radius: 0px;
  border-bottom-left-radius: 0px;
  border-bottom-right-radius: 0px;

  --dur: 0.15s;
  --delay: 0.15s;
  --radius: 16px;

  transition: border-top-left-radius var(--dur) var(--delay) ease-out,
    border-top-right-radius var(--dur) calc(var(--delay) * 1) ease-out,
    border-bottom-right-radius var(--dur) calc(var(--delay) * 2) ease-out,
    border-bottom-left-radius var(--dur) calc(var(--delay) * 3) ease-out,
    box-shadow calc(var(--dur) * 3) ease-out,
    transform calc(var(--dur) * 3) ease-out,
    background calc(var(--dur) * 3) steps(4, jump-end);
}

/* Animated button with palette support */
.button-animation-small {
  width: 7rem;
  padding: 0.4em;
}

.button-animation {
  width: 10rem;
  padding: 0.6em 2em;
}

.button-animation-small,
.button-animation {
  border: none;
  outline: none;
  color: var(--primary-text-color);
  background: var(--accent-color-1);
  cursor: pointer;
  position: relative;
  z-index: 0;
  border-radius: 10px;
  user-select: none;
  -webkit-user-select: none;
  touch-action: manipulation;
}

/* Glowing border using palette colors */
.button-animation:before,
.button-animation-small:before {
  content: "";
  background: linear-gradient(
    90deg,
    var(--accent-color-1),
    var(--accent-color-2),
    var(--accent-color-3),
    var(--accent-color-1)
  );
  position: absolute;
  top: -3px;
  left: -3px;
  width: calc(100% + 5px);
  height: calc(100% + 5px);
  background-size: 400%;
  z-index: -1;
  filter: blur(5px);
  -webkit-filter: blur(5px);
  animation: glowing-button-animation 10s linear infinite;
  transition: all 0.5s ease-in-out;
  border-radius: 10px;
}

/* Glowing animation */
@keyframes glowing-button-animation {
  0% {
    background-position: 0 0;
  }
  50% {
    background-position: 400% 0;
  }
  100% {
    background-position: 0 0;
  }
}

/* Inner shadow effect */
.button-animation:after,
.button-animation-small:after {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  background: var(--background-color);
  left: 0;
  top: 0;
  border-radius: 10px;
  z-index: -1;
}

.button-animation:active,
.button-animation-small:active {
  transform: scale(0.95);
}

/* Hover effect for the button */
.button-animation:hover,
.button-animation:focus,
.button-animation-small:hover,
.button-animation-small:focus {
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
  background: var(--accent-color-1);
  color: var(--primary-text-color);
}

.button-arounder:hover,
.button-arounder:focus {
  box-shadow: 0 4px 8px hsla(190deg, 15%, 5%, 0.2);
  transform: translateY(-4px);
  background: var(--accent-color-1);
  color: var(--background-color);
  background: var(--accent-color-1);
  color: var(--background-color);
  border-top-left-radius: var(--radius);
  border-top-right-radius: var(--radius);
  border-bottom-left-radius: var(--radius);
  border-bottom-right-radius: var(--radius);
}

/* Swatch styles */
.palette-swatch {
  display: inline-block;
  width: 20px;
  height: 20px;
  margin-right: 10px;
  border-radius: 3px;
  border: 1px solid #000000;
  flex-shrink: 0;
}

/*----------------------------------- Main body -----------*/
#main-body {
  margin-top: 68px;
}

/*--------------------------------------- Modal -----------*/
.modal-content {
  background: var(--background-color) !important;
  color: var(--primary-text-color) !important;
  border: none !important;
}

/*--------------------------Navbar Dropdown Menu Swatches --------*/
.swatch-palette1 {
  background: linear-gradient(to right, #000000, #ffd700, #ff4500, #00ff00);
}

.swatch-palette2 {
  background: linear-gradient(to right, #f5f5f5, #005ab5, #dc3220, #f0e442);
}

.swatch-palette3 {
  background: linear-gradient(to right, #ffffff, #0072b2, #d55e00, #cc79a7);
}

.swatch-palette4 {
  background: linear-gradient(to right, #f7f7f7, #aaaaaa, #666666, #444444);
}

.swatch-palette5 {
  background: linear-gradient(to right, #eaeaea, #87cefa, #ffdab9, #90ee90);
}

.swatch-palette6 {
  background: linear-gradient(to right, #004c6d, #ffb700, #b2ebf2, #36454f);
}

/*--------------------------------------- Text to Speech ----------*/
.form-control {
  width: 100%;
  border-radius: 5px;
  background: var(--background-color) !important;
  color: var(--primary-text-color) !important;
  padding: 10px 15px;
  font-size: 1rem;
  transition: background-color 0.3s, box-shadow 0.3s;
}

.form-control:focus {
  box-shadow: inset 0 2px 5px rgba(0, 0, 0, 0.2);
}

.form-control::placeholder {
  color: var(--primary-text-color) !important;
}

.select-position {
  position: relative !important;
  width: 100% !important;
}

input,
.form-select {
  width: 100% !important;
  border-radius: 5px !important;
  background: var(--background-color) !important;
  color: var(--primary-text-color) !important;
  padding: 10px 15px !important;
  font-size: 1rem !important;
  transition: background-color 0.3s, box-shadow 0.3s !important;
  appearance: none !important;
}

input::placeholder {
  color: var(--primary-text-color) !important;
}

.select-arrow {
  position: absolute !important;
  right: 20px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  color: var(--primary-text-color) !important;
  pointer-events: none !important;
  border-bottom: 2px solid !important;
}

.card-voice {
  width: 7rem;
  height: auto;
  cursor: pointer;
  border: 2px solid transparent;
  transition: border-color 0.2s;
}

.card-voice:hover {
  border-color: #007bff;
}

.card-voice.selected {
  border-color: #007bff;
  background-color: #f0f8ff;
}

.btn-custom-icon {
  width: 3rem;
  background-color: var(--accent-color-2);
  color: var(--primary-text-color);
  font-weight: 600;
  transition: box-shadow 0.2s, outline 0.2s;
}

.btn-custom-text {
  min-width: 6rem;
  font-weight: 600;
  transition: box-shadow 0.2s, outline 0.2s;
  background-color: var(--accent-color-2);
  color: var(--primary-text-color);
}

.btn-custom-icon:hover,
.btn-custom-text:hover,
.btn-custom-text:focus {
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
  outline: 3px solid #36454f;
  outline-offset: 2px;
}

.btn-custom-icon:active,
.btn-custom-text:active {
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

#app-buttons {
  margin-bottom: 50px;
}

.text-steps {
  text-transform: uppercase;
  border: 0.5px solid rgba(0, 0, 0, 0.3);
  border-radius: 5px;
  text-align: center;
  box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.2);
}

#app-text-input-form {
}

.input-arounder {
  background-color: #b2ebf2;
  padding: 10px;
  border: none;
  box-shadow: 0 0px 0px hsla(190deg, 15%, 5%, 0.2);
  border-radius: 5px;

  --dur: 0.15s;
  --delay: 0.15s;
  --radius: 16px;

  transition: border-top-left-radius var(--dur) var(--delay) ease-out,
    border-top-right-radius var(--dur) calc(var(--delay) * 1) ease-out,
    border-bottom-right-radius var(--dur) calc(var(--delay) * 2) ease-out,
    border-bottom-left-radius var(--dur) calc(var(--delay) * 3) ease-out,
    box-shadow calc(var(--dur) * 3) ease-out,
    transform calc(var(--dur) * 3) ease-out,
    background calc(var(--dur) * 3) ease-in-out;
}

.input-arounder:hover,
.input-arounder:focus {
  box-shadow: 0 4px 8px hsla(190deg, 15%, 5%, 0.2);
  transform: translateY(-4px);
  background: #ffb700;
  color: #36454f;
  border-top-left-radius: var(--radius);
  border-top-right-radius: var(--radius);
  border-bottom-left-radius: var(--radius);
  border-bottom-right-radius: var(--radius);
}

/* ---------------- Text-to-speech Speed Range Slider -------------------*/

/* === range theme and appearance === */
input[type="range"] {
  font-size: 1.5rem;
  width: 12.5em;
}

input[type="range"] {
  color: #ef233c;
  --thumb-height: 1.125em;
  --track-height: 0.125em;
  --track-color: rgba(0, 0, 0, 0.2);
  --brightness-hover: 180%;
  --brightness-down: 80%;
  --clip-edges: 0.125em;
}

input[type="range"].win10-thumb {
  color: #2b2d42;

  --thumb-height: 1.375em;
  --thumb-width: 0.5em;
  --clip-edges: 0.0125em;
}

@media (prefers-color-scheme: dark) {
  html {
    background-color: #000;
  }

  html::before {
    background: radial-gradient(circle at center, #101112, #000);
  }

  input[type="range"] {
    color: var(--accent-color-2);
    --track-color: rgba(255, 255, 255, 0.1);
  }

  input[type="range"].win10-thumb {
    color: #3a86ff;
  }
}

/* === range commons === */
input[type="range"] {
  position: relative;
  background: #fff0;
  overflow: hidden;
}

input[type="range"]:active {
  cursor: grabbing;
}

input[type="range"]:disabled {
  filter: grayscale(1);
  opacity: 0.3;
  cursor: not-allowed;
}

/* === WebKit specific styles === */
input[type="range"],
input[type="range"]::-webkit-slider-runnable-track,
input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;
  transition: all ease 100ms;
  height: var(--thumb-height);
}

input[type="range"]::-webkit-slider-runnable-track,
input[type="range"]::-webkit-slider-thumb {
  position: relative;
}

input[type="range"]::-webkit-slider-thumb {
  --thumb-radius: calc((var(--thumb-height) * 0.5) - 1px);
  --clip-top: calc((var(--thumb-height) - var(--track-height)) * 0.5 - 0.5px);
  --clip-bottom: calc(var(--thumb-height) - var(--clip-top));
  --clip-further: calc(100% + 1px);
  --box-fill: calc(-100vmax - var(--thumb-width, var(--thumb-height))) 0 0
    100vmax currentColor;

  width: var(--thumb-width, var(--thumb-height));
  background: linear-gradient(to bottom, currentColor, currentColor) no-repeat
    left center / 50% calc(var(--track-height) + 1px);
  background-color: currentColor;
  box-shadow: var(--box-fill);
  border-radius: var(--thumb-width, var(--thumb-height));

  filter: brightness(100%);
  clip-path: polygon(
    100% -1px,
    var(--clip-edges) -1px,
    0 var(--clip-top),
    -100vmax var(--clip-top),
    -100vmax var(--clip-bottom),
    0 var(--clip-bottom),
    var(--clip-edges) 100%,
    var(--clip-further) var(--clip-further)
  );
}

input[type="range"]:hover::-webkit-slider-thumb {
  filter: brightness(var(--brightness-hover));
  cursor: grab;
}

input[type="range"]:active::-webkit-slider-thumb {
  filter: brightness(var(--brightness-down));
  cursor: grabbing;
}

input[type="range"]::-webkit-slider-runnable-track {
  background: linear-gradient(to bottom, var(--track-color), var(--track-color))
    no-repeat center / 100% calc(var(--track-height) + 1px);
}

input[type="range"]:disabled::-webkit-slider-thumb {
  cursor: not-allowed;
}

/* === Firefox specific styles === */
input[type="range"],
input[type="range"]::-moz-range-track,
input[type="range"]::-moz-range-thumb {
  appearance: none;
  transition: all ease 100ms;
  height: var(--thumb-height);
}

input[type="range"]::-moz-range-track,
input[type="range"]::-moz-range-thumb,
input[type="range"]::-moz-range-progress {
  background: #fff0;
}

input[type="range"]::-moz-range-thumb {
  background: currentColor;
  border: 0;
  width: var(--thumb-width, var(--thumb-height));
  border-radius: var(--thumb-width, var(--thumb-height));
  cursor: grab;
}

input[type="range"]:active::-moz-range-thumb {
  cursor: grabbing;
}

input[type="range"]::-moz-range-track {
  width: 100%;
  background: var(--track-color);
}

input[type="range"]::-moz-range-progress {
  appearance: none;
  background: currentColor;
  transition-delay: 30ms;
}

input[type="range"]::-moz-range-track,
input[type="range"]::-moz-range-progress {
  height: calc(var(--track-height) + 1px);
  border-radius: var(--track-height);
}

input[type="range"]::-moz-range-thumb,
input[type="range"]::-moz-range-progress {
  filter: brightness(100%);
}

input[type="range"]:hover::-moz-range-thumb,
input[type="range"]:hover::-moz-range-progress {
  filter: brightness(var(--brightness-hover));
}

input[type="range"]:active::-moz-range-thumb,
input[type="range"]:active::-moz-range-progress {
  filter: brightness(var(--brightness-down));
}

input[type="range"]:disabled::-moz-range-thumb {
  cursor: not-allowed;
}

/*----- Push down all main section to account for fixed header ----------*/

#main-section {
  display: flex;
  flex-direction: column;
}

/*--------------------------------------- Home Page ----------*/

#welcome-section {
  background: url("../images/landing_img.webp") no-repeat center center/cover;
  height: 60vh;
  width: 100%;
  background-color: rgba(0, 0, 0, 0.3);
  display: flex;
  align-items: center;
  justify-content: flex-start;
  position: relative;
}

#welcome-box {
  padding: 20px;
  max-width: 50%;
  min-height: 200px;
  text-align: left;
  margin-right: 50px;
  margin-left: 10px;
  color: #ffb700;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

#welcome-text h1 {
  font-size: 2.5rem;
  margin: 0;
  text-transform: uppercase;
}

#welcome-text p {
  margin: 10px 0;
}

#welcome-button {
  padding: 10px 20px;
  font-size: 1rem;
  text-transform: uppercase;
  border: none;
  border-radius: 5px;
  background-color: #ffffff;
  color: #b11310;
  cursor: pointer;
  box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.2);
  transition: all 0.3s ease;
}

#welcome-button:hover {
  background-color: #b11310;
  color: #ffffff;
}

#steps-container {
  display: flex;
  justify-content: space-around;
  align-items: center;
  width: 100%;
  max-width: 1200px;
  margin: 50px auto;
  gap: 20px;
  flex-wrap: wrap;
}

/* Adjustments for steps-tiles */
.steps-tiles {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background-color: var(--background-color) !important;
  padding: 1.5rem;
  border-radius: 8px;
  width: 100%;
  max-width: 325px;
  height: 325px;
  text-align: center;
  box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.3);
}

.steps-titles {
  text-transform: uppercase;
  font-weight: 600 !important;
  margin: 12px;
  color: var(--primary-text-color) !important;
  font-size: 1.25rem;
}

.step-icon {
  font-size: 4.5rem;
  color: var(--logo-color) !important;
  margin-bottom: 10px !important;
}

.steps-texts {
  color: var(--primary-text-color) !important;
  font-size: 0.9rem !important;
  line-height: 1.6 !important;
}

/*--------------------------------------- Contact ----------*/

.contact-title {
  margin-top: 20px;
}

.contact-paragraph {
  padding-bottom: 20px;
}

form > div {
  width: 70%;
  margin: 0 auto;
  margin-top: 10px;
}

.card-title {
  font-size: 25px;
}

.faq-card {
  color: #ffb700;
  background: #fff0;
}

/*--------------------------------------- Team Page -------- */
.card-img-top {
  width: 100%;
  height: 250px;
  min-height: 450px;
  object-fit: cover;
}

.card {
  margin-bottom: 40px;
  background-color: var(--background-color) !important;
  color: var(--primary-text-color) !important;
}

/*--------------------------------------- Profile page ----- */
#change-password-form {
  height: 300px;
}

#preferred-language-form {
  height: 175px;
}

/* label {
  display: none !important;
} */

/*--------------------------------------- Footer ------------*/
.footer {
  bottom: 0;
  margin-top: auto;
}

.footer-container {
  background-color: var(--background-color);
  max-width: 100%;
  color: var(--primary-text-color);
  padding-left: 10%;
  padding-right: 10%;
}

.footer-text {
  color: var(--primary-text-color);
  text-decoration: none;
  text-align: center;
}

.icon {
  padding-right: 5px;
}

/*--------------Media Queries------------*/
@media screen and (max-width: 1400px) {
  #main-body {
    margin-bottom: 30px;
  }
}

@media screen and (max-width: 1200px) {
  #main-body {
    margin-bottom: 30px;
  }
}

@media only screen and (max-width: 600px) {
  .contact-paragraph {
    margin-left: 10px;
    margin-right: 10px;
  }
}

/* Tablets and smaller devices */
@media (max-width: 768px) {
  #welcome-section {
    height: auto;
    padding: 20px 0;
    max-width: 100%;
  }

  #welcome-box {
    max-width: 50%;
    margin-right: 20px;
    padding: 15px;
  }

  #welcome-text h2 {
    font-size: 2rem;
  }

  #welcome-button {
    padding: 8px 16px;
    font-size: 0.9rem;
  }

  #steps-container {
    flex-direction: column;
    gap: 15px;
  }

  .steps-tiles {
    width: 80%;
  }
}

@media (min-width: 769px) and (max-width: 1079px) {
  #steps-container {
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 10px;
  }

  .steps-tiles {
    width: 30%;
    padding: 15px;
    height: auto;
    text-align: center;
  }

  .steps-titles {
    font-size: 1rem;
    margin: 8px 0;
  }

  .steps-texts {
    font-size: 0.85rem;
    line-height: 1.4;
  }

  .step-icon {
    font-size: 3.5em;
  }

  .steps-tiles:first-child {
    margin-left: 10px;
  }

  .steps-tiles:last-child {
    margin-right: 10px;
  }
}

/* Mobile phones and very small screens */
@media (max-width: 480px) {
  #welcome-section {
    height: auto;
    padding: 20px 0;
    max-width: 100%;
  }

  #welcome-box {
    max-width: 50%;
    margin-right: 10px;
  }

  #welcome-text h2 {
    font-size: 1.5rem;
  }

  #welcome-text h1 {
    font-size: 2rem;
  }

  #welcome-button {
    padding: 6px 12px;
    font-size: 0.8rem;
  }

  #steps-container {
    gap: 10px;
  }

  .steps-tiles {
    width: 90%;
  }
}
