@layer base, components, utilities;

/* 
  Custom properties
*/
:root {
  --font-name: Helvetica;
  --font-scale: 1.2;
  --font-size-1: 1rem;
  --font-size-2: calc(var(--font-scale) * var(--font-size-1));
  --font-size-3: calc(var(--font-scale) * var(--font-size-2));
  --font-size-4: calc(var(--font-scale) * var(--font-size-3));
  --font-size-5: calc(var(--font-scale) * var(--font-size-4));
  --font-size-6: calc(var(--font-scale) * var(--font-size-5));
  --font-size-7: calc(var(--font-scale) * var(--font-size-6));
  --font-size-8: calc(var(--font-scale) * var(--font-size-7));
  --font-size--1: calc(var(--font-size-1) / var(--font-scale));

  --line-height-scale: 1.25;
  --line-height-size-1: 1rem;
  --line-height-size-2: calc(
    var(--line-height-scale) * var(--line-height-size-1)
  );
  --line-height-size-3: calc(
    var(--line-height-scale) * var(--line-height-size-2)
  );
  --line-height-size-4: calc(
    var(--line-height-scale) * var(--line-height-size-3)
  );

  --size-scale: 0.25rem;
  --size-1: 0.25rem;
  --size-2: calc(var(--size-scale) + var(--size-1));
  --size-3: calc(var(--size-scale) + var(--size-2));
  --size-4: calc(var(--size-scale) + var(--size-3));
  --size-5: calc(var(--size-scale) + var(--size-4));
  --size-6: calc(var(--size-scale) + var(--size-5));
  --size-7: calc(var(--size-scale) + var(--size-6));
  --size-8: calc(var(--size-scale) + var(--size-7));

  --space-scale: 0.5rem;
  --space-size-1: 1rem;
  --space-size-2: calc(var(--space-scale) + var(--space-size-1));
  --space-size-3: calc(var(--space-scale) + var(--space-size-2));
  --space-size-4: calc(var(--space-scale) + var(--space-size-3));
  --space-size-5: calc(var(--space-scale) + var(--space-size-4));
  --space-size-6: calc(var(--space-scale) + var(--space-size-5));
  --space-size-7: calc(var(--space-scale) + var(--space-size-6));
  --space-size-8: calc(var(--space-scale) + var(--space-size-7));

  --opacity: 1;

  --main-bg-color: 0 0% 100%;
  --main-text-color: 210 11% 15%;
  --main-text-light-color: 210 20% 64%;

  /* Medidas btns (width) */
  --min-btn-width: 25ch;
  --mid-btn-width: 10svh;
  --max-btn-width: 30ch;

  --primary-btn-color: 300 60% 32%;
  --primary-btn-color-hover: 302 71% 38%;
  --primary-btn-text-color: 0 0% 100%;
  --primary-text-color: 300 60% 32%;
  --primary-accent-color: 300 60% 32%;

  --secondary-btn-text-color: 0 0% 0%;
  --secondary-btn-color: 210 14% 83%;
  --secondary-btn-color-hover: 210 20% 64%;

  --success-text-color: 185 100% 22%;
  --success-bg-color: 185 100% 22%;
  --success-bg-text-color: 0 0% 100%;
  --success-bg-light-color: 186 32% 46%;

  --input-placeholder-color: 210 20% 64%;
  --input-border-color: 210 14% 83%;
  --input-focus-shadow: hsla(185, 100%, 22%, 0.251);

  --form-logo-width: 10rem;
  --form-min-width: 35ch;
  --form-max-width: 43ch;

  --modal-separator-color: 302 43% 55%;

  --header-padding-inline: var(--space-size-2);
  --header-height: calc(var(--size-6) * 2);
  --header-logo-width: 50%;

  --carousel-height: 300px;
  --carousel-transition: opacity;
  --carousel-timing: 1s;
  --carousel-function: cubic-bezier(0.4, 0, 0.2, 1);

  --menu-overlay-text-color: 0 0% 100%;
  --menu-image-size: 14rem;
  --menu-image-scale: 4rem;

  --category-color: 200 71% 70%;

  --footer-md-text-color: 300 60% 32%;
  --footer-md-hover-text-color: 80 52% 57%;
  --footer-sm-bg-color: 185 100% 22%;
  --footer-sm-text-color: 0 0% 100%;

  --accordion-title-color: 300 60% 32%;
  --accordion-title-line: 80 52% 57%;

  --template-3-odd-color: 0 0% 100%;
  --template-3-even-color: 186 32% 46%;
  --template-3-odd-text-color: 186 32% 46%;
  --template-3-even-text-color: 0 0% 100%;

  --loading-gif-url: url(img/loading.gif);
}

@font-face {
  font-family: "var(--font-name)";
  src: url(/Local/Enlinea/web/fonts/helvetica.ttf);
}

@font-face {
  font-family: "helveticaneueR";
  src: url(/Local/Enlinea/web/fonts/HelveticaNeueLTStdRoman.otf);
}

@font-face {
  font-family: "helveticaneueB";
  src: url(/Local/Enlinea/web/fonts/HelveticaNeueLTStdBd.otf);
}

@font-face {
  font-family: "helveticaneueMd";
  src: url(/Local/Enlinea/web/fonts/HelveticaNeueLTStdMdIt.otf);
}

div.ubusyasync {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  position: fixed;
  z-index: 32767;
  background-repeat: no-repeat;
  background-position: center center;
  background-image: var(--loading-gif-url);
  background-size: 25vh;
  opacity: 0.6;
  background-color: white;
  cursor: wait;
}

.fade-in-from-left,
.fade-in-from-right,
.fade-in-from-top,
.fade-in-from-bottom,
.fadeIn,
.fadeOut {
  position: relative;
  opacity: 0;
  animation-timing-function: ease-in-out;
  animation-fill-mode: forwards;
}

.fade-in-from-left {
  left: -100%;
  animation: fadeInFromLeft 1.5s forwards;
}

.fade-in-from-right {
  left: 100%;
  animation: fadeInFromRight 1.5s forwards;
}

.fade-in-from-top {
  top: -100%;
  animation: fadeInFromTop 1.5s forwards;
}

.fade-in-from-bottom {
  top: 100%;
  animation: fadeInFromBottom 1.5s forwards;
}

.fadeIn {
  animation: fadeIn 1.5s forwards;
}

.fadeOut {
  animation: fadeOut 1.5s forwards;
}

@keyframes fadeInFromLeft {
  to {
    left: 0;
    opacity: 1;
  }
}

@keyframes fadeInFromRight {
  to {
    left: 0;
    opacity: 1;
  }
}

@keyframes fadeInFromTop {
  to {
    top: 0;
    opacity: 1;
  }
}

@keyframes fadeInFromBottom {
  to {
    top: 0;
    opacity: 1;
  }
}

@keyframes fadeIn {
  to {
    opacity: 1;
  }
}

@keyframes fadeOut {
  to {
    opacity: 0;
  }
}

/* Control de velocidad */
.slow {
  animation-duration: 2s;
  /* Puedes ajustar el valor según la velocidad deseada */
}

.normal {
  animation-duration: 1.5s;
  /* Valor por defecto */
}

.fast {
  animation-duration: 1s;
  /* Puedes ajustar el valor según la velocidad deseada */
}

.faster {
  animation-duration: 0.3s;
  /* Puedes ajustar el valor según la velocidad deseada */
}

@layer base {
  /* Base */
  /*
  1. Use a more-intuitive box-sizing model.
*/
  *,
  *::before,
  *::after {
    box-sizing: border-box;
    border: 0 solid hsl(210, 20%, 64%);
  }

  /*
  2. Remove default margin
*/
  * {
    margin: 0;
    color: inherit;
  }

  /*
  Typographic tweaks!
  3. Add accessible line-height
  4. Improve text rendering
*/
  html {
    font-family: "var(--font-name)";
  }

  body {
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
    min-height: 100svh;
  }

  /*
  5. Improve media defaults
*/
  img,
  picture,
  video,
  canvas,
  svg {
    display: block;
    max-width: 100%;
  }

  /*
  6. Remove built-in form typography styles
*/
  input,
  button,
  textarea,
  select {
    font: inherit;
  }

  /*
  7. Avoid text overflows
*/
  p,
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    overflow-wrap: break-word;
  }

  /*
  8. Create a root stacking context
*/
  #root,
  #__next {
    isolation: isolate;
  }

  [type="button"],
  [type="reset"],
  [type="submit"],
  button {
    appearance: button;
    background-color: initial;
    background-image: none;
  }

  button,
  input,
  optgroup,
  select,
  textarea,
  a {
    font-family: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    font-size: 100%;
    font-weight: inherit;
    line-height: inherit;
    color: inherit;
    margin: 0;
    padding: 0;
    text-decoration: none;
  }

  body.background {
    background-image: url(img/fondo_sd_enlinea.png);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: 50%;
  }
}

/* Components */
@layer components {
  .form-menu {
    display: flex;
    width: 100%;
  }

  .form-menu > a {
    height: var(--space-size-7);
    aspect-ratio: 1/1;
    --opacity: 1;
    fill: hsl(var(--primary-btn-color) / var(--opacity));
  }

  .form-wrapper {
    display: grid;
    place-items: center;
    min-height: 100svh;
  }

  .form-flex-col {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-height: 84svh;
    gap: var(--space-size-1);
  }

  .code-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    gap: var(--space-size-1);
  }

  .form-flex {
    display: flex;
    justify-content: center;
    align-items: start;
    flex-wrap: wrap;
    width: 100%;
    gap: var(--space-size-1);
    padding-inline: var(--space-size-1);
    min-height: 77svh;
  }

  .form-container {
    --opacity: 1;
    background-color: hsl(var(--main-bg-color) / var(--opacity));
    --shadow: 4px 4px 4px hsla(0, 0%, 65%, 0.69);
    border-radius: var(--size-6);
    width: clamp(var(--form-min-width), 40%, var(--form-max-width));
    box-shadow: var(--ring-offset-shadow, 0 0 #0000),
      var(--ring-shadow, 0 0 #0000), var(--shadow);
  }

  .form-lg {
    --form-max-width: 80ch;
  }

  .form-header {
    display: flex;
    justify-content: center;
    --opacity: 1;
    background-color: hsl(var(--success-bg-color) / var(--opacity));
    border-top-left-radius: var(--size-6);
    border-top-right-radius: var(--size-6);
  }

  .form-title {
    font-size: var(--font-size-4);
    line-height: var(--line-height-size-4);
    text-align: center;
    padding-block: var(--size-3);
  }

  .form-header .form-title {
    --_color: 0 0% 100%;
    --opacity: 1;
    color: hsl(var(--_color) / var(--opacity));
  }

  .form-header span {
    display: none;
  }

  .form-body .form-title {
    --_color: 185 100% 22%;
    --opacity: 1;
    color: hsl(var(--_color) / var(--opacity));
  }

  .form-recovery,
  .form-register {
    --_color: var(--success-text-color);
    --opacity: 1;
    color: hsl(var(--_color) / var(--opacity));
    text-decoration: underline;
    cursor: pointer;
    display: block;
    font-weight: bold;
    margin: 1rem;
  }

  .form-description {
    --_color: 210 20% 64%;
    --opacity: 1;
    color: hsl(var(--_color) / var(--opacity));
  }

  /*

  .form-description{
    display: block;
    margin-bottom: 1rem;
  }
*/

  .form-logo {
    object-fit: contain;
    width: var(--form-logo-width);
    padding: var(--size-2);
    vertical-align: middle;
  }

  .form-body {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--size-4);
    padding-block: var(--size-3);
    padding-inline: clamp(
      var(--size-4),
      calc(50vw - var(--form-max-width)),
      var(--size-6)
    );
  }

  .form-info-list {
    font-size: var(--size-3);
    line-height: var(--space-size-1);
    --opacity: 1;
    background-color: hsl(var(--main-bg-color) / var(--opacity));
    width: 80%;
  }

  .form-info-list > div {
    padding-block: var(--size-2);
    grid-template-columns: repeat(2, minmax(0, 1fr));
    display: grid;
  }

  .form-info-list > a {
    margin-top: var(--space-size-1);
    font-size: var(--font-size-1);
  }

  .form-footer {
    text-align: center;
    font-size: var(--font-size-1);
    --opacity: 1;
    color: hsl(var(--main-text-light-color) / var(--opacity));
    padding-bottom: var(--size-8);
  }

  .form-control {
    display: block;
    height: calc(var(--size-8) + var(--size-1));
    width: 100%;
    border-radius: var(--size-1);
    border-width: 1px;
    --opacity: 1;
    border-color: hsl(var(--input-border-color) / var(--opacity));
    background-color: hsl(var(--main-bg-color) / var(--opacity));
    padding: var(--size-2);
    line-height: 1.25;
    color: hsl(var(--main-text-color) / var(--opacity));
  }

  .form-body input.btn {
    width: 100%;
  }

  .form-control::placeholder {
    color: var(--input-placeholder-color);
  }

  .form-control:focus {
    border-color: rgb(33 37 41);
    --opacity: 1;
    background-color: hsl(var(--main-bg-color) / var(--opacity));
    --shadow: 0 0 0 0.25rem var(--input-focus-shadow);
    box-shadow: var(--ring-offset-shadow, 0 0 #0000),
      var(--ring-shadow, 0 0 #0000), var(--shadow);
    outline: 2px solid #0000;
    outline-offset: 2px;
  }

  textarea.form-control {
    height: inherit;
  }

  .btn {
    display: flex;
    height: var(--size-8);
    min-width: 150px;
    margin: 5px 10px;
    cursor: pointer;
    align-items: center;
    justify-content: center;
    border-radius: var(--size-2);
    padding: 0px 15px;
    font-weight: 600;
    text-decoration: none;
  }

  .primary-btn {
    --opacity: 1;
    background-color: hsl(var(--primary-btn-color) / var(--opacity));
    color: hsl(var(--primary-btn-text-color) / var(--opacity));
  }

  .primary-btn:hover {
    --opacity: 1;
    background-color: hsl(var(--primary-btn-color-hover) / var(--opacity));
  }

  .primary-btn:focus-visible {
    --opacity: 1;
    outline-color: hsl(var(--primary-btn-color) / var(--opacity));
    outline-style: solid;
    outline-width: medium;
  }

  .secondary-btn {
    --opacity: 1;
    background-color: hsl(var(--secondary-btn-color) / var(--opacity));
    color: hsl(var(--secondary-btn-text-color) / var(--opacity));
  }

  .secondary-btn:hover {
    --opacity: 1;
    background-color: hsl(var(--secondary-btn-color-hover) / var(--opacity));
  }

  .secondary-btn:focus-visible {
    --opacity: 1;
    outline-color: hsl(var(--secondary-btn-color) / var(--opacity));
    outline-style: solid;
    outline-width: medium;
  }

  .primary-link-btn {
    --opacity: 1;
    color: hsl(var(--primary-text-color) / var(--opacity));
    text-decoration: none;
    cursor: pointer;
  }

  .success-link-btn {
    --opacity: 1;
    color: hsl(var(--success-text-color) / var(--opacity));
    text-decoration: none;
    cursor: pointer;
  }

  .primary-link-btn:hover,
  .success-link-btn:hover {
    text-decoration: underline;
  }

  .main-container {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
  }

  .main-icon-btn {
    --opacity: 1;
    background-color: hsl(var(--main-bg-color) / var(--opacity));
    color: hsl(var(--main-text-light-color) / var(--opacity));
    border: hsl(var(--main-text-light-color) / var(--opacity)) solid 0.0375rem;
    padding-inline: var(--size-3);
    gap: var(--size-1);
  }

  .main-icon-btn:hover {
    --opacity: 1;
    color: hsl(var(--success-text-color) / var(--opacity));
    border-color: hsl(var(--success-text-color) / var(--opacity));
  }

  .main-icon-btn > svg {
    height: var(--size-4);
    margin-block: auto;
  }

  .dropdown-list {
    position: absolute;
    right: var(--size-1);
    margin-top: var(--size-2);
    width: calc(var(--size-4) * 10);
    overflow: hidden;
    border-radius: var(--size-1);
    --opacity: 1;
    background-color: hsl(var(--main-bg-color) / var(--opacity));
    --shadow: 0 4px 6px -1px hsla(0, 0%, 0%, 0.102),
      0 2px 4px -2px hsla(0, 0%, 0%, 0.102);
    box-shadow: var(--ring-offset-shadow, 0 0 #0000),
      var(--ring-shadow, 0 0 #0000), var(--shadow);
  }

  .dropdown-list-item {
    cursor: pointer;
    display: block;
    width: 100%;
    padding-inline: var(--size-4);
    padding-block: var(--size-2);
    text-align: left;
    font-size: var(--font-size-1);
  }

  .dropdown-list-item:hover {
    --opacity: 1;
    background-color: hsl(var(--main-text-light-color) / var(--opacity));
    color: hsl(var(--success-text-color) / var(--opacity));
  }

  .top-right-container {
    position: fixed;
    top: var(--size-4);
    right: var(--size-4);
  }

  .bottom-center-container {
    position: fixed;
    left: 50%;
    transform: translateX(-50%);
    bottom: var(--size-4);
  }

  .btn-container {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: var(--size-4);
    flex-wrap: 1;
    padding: var(--size-2);
  }

  .video-container {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: var(--size-8);
    padding: var(--size-4);
  }

  .checkbox-control {
    display: flex;
    align-items: center;
    padding-block: var(--size-4);
  }

  .checkbox-control > label {
    margin-left: var(--size-3);
    font-size: var(--font-size-1);
    padding-inline: var(--size-1);
    font-weight: bold;
  }

  .vigilados {
    display: none;
  }

  .vertical-image,
  .corner-image {
    display: none;
  }

  @media only screen and (max-width: 768px) {
    .modal {
      width: 90%;
      max-width: 600px;
    }

    .btn {
      height: var(--size-8);
      min-width: 150px;
    }

    .dialog-buttons {
      margin-top: 15px;
      display: flex;
      justify-content: center;
      flex-wrap: wrap;
      gap: 10px;
      width: 100%;
    }
  }

  .modal {
    overflow: hidden;
    border-radius: var(--size-2);
    border-width: 0;
    padding: 0;
    --shadow: 0 10px 15px -3px hsla(0, 0%, 0%, 0.102),
      0 4px 6px -4px hsla(0, 0%, 0%, 0.102);
    box-shadow: var(--ring-offset-shadow, 0 0 #0000),
      var(--ring-shadow, 0 0 #0000), var(--shadow);
    min-height: 20vh;
    min-width: 40vw;
    margin: auto;
    z-index: 1000;
  }

  .modal-header {
    display: flex;
    width: 100%;
    justify-content: space-between;
    border-top-left-radius: var(--size-2);
    border-top-right-radius: var(--size-2);
    border-bottom-width: 4px;
    --opacity: 1;
    border-color: hsl(var(--modal-separator-color) / var(--opacity));
    background-color: hsl(var(--success-bg-color) / var(--opacity));
    padding: var(--size-3);
  }

  .modal[data-modal] .modal-header {
    --opacity: 1;
    background-color: hsl(var(--main-bg-color) / var(--opacity));
  }

  .modal-header > img {
    width: calc(var(--size-8) * 3);
  }

  .modal[data-modal] .modal-header > img {
    visibility: hidden;
  }

  .modal-header > h2 {
    margin: auto calc(var(--size-8) + var(--size-2)) auto var(--size-8);
    font-size: var(--font-size-4);
    line-height: var(--line-height-size-4);
    font-weight: 700;
    --opacity: 1;
    color: hsl(var(--success-text-color) / var(--opacity));
  }

  .modal-header > a {
    width: var(--size-6);
    cursor: pointer;
    align-self: flex-start;
    --opacity: 1;
    fill: hsl(var(--success-bg-text-color) / var(--opacity));
  }

  .modal[data-modal] .modal-header > a {
    --opacity: 1;
    fill: hsl(var(--main-text-color) / var(--opacity));
  }

  .modal-body {
    width: 100%;
    overflow-y: auto;
    overflow-x: hidden;
    border-bottom-right-radius: var(--size-2);
    border-bottom-left-radius: var(--size-2);
    padding: var(--size-5) var(--size-3);
    text-align: center;
    max-height: 80vh;
    font-size: var(--font-size-2);
    line-height: var(--line-height-size-2);
  }

  .header {
    --opacity: 1;
    background-color: hsl(var(--success-bg-color) / var(--opacity));
    color: hsl(var(--success-bg-text-color) / var(--opacity));
  }

  .header-logo {
    width: var(--header-logo-width);
  }

  .navbar {
    padding: 0;
    list-style: none;
    display: flex;
    gap: var(--space-size-1);
  }

  .dropdown-menu,
  .navbar,
  footer ul {
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .nav-item.dropdown > .nav-link {
    display: flex;
    gap: var(--size-1);
    align-items: center;
  }

  .nav-item.dropdown > .nav-link > svg {
    width: var(--size-5);
  }

  .nav-item.dropdown > .nav-link + ul {
    display: none;
  }

  .nav-item.dropdown.active > .nav-link + ul {
    display: block;
  }

  .nav-item {
    position: relative;
    cursor: pointer;
  }

  .responsive-menu-content {
    display: none;
  }

  .navigation a {
    display: block;
    margin: 0;
    padding: var(--size-2) var(--size-3);
    cursor: pointer;
    border-radius: var(--size-2);
    text-decoration: none;
    color: inherit;
    cursor: pointer;
  }

  .navigation {
    background-color: var(--main-bg-color);
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    font-size: var(--font-size-2);
  }

  .responsive-menu-content,
  .navigation {
    --opacity: 1;
    background-color: hsl(var(--main-bg-color) / var(--opacity));
  }

  .carousel {
    height: var(--carousel-height);
    overflow: hidden;
  }

  .carousel .slide {
    position: absolute;
    opacity: 0;
    object-fit: cover;
    width: 100%;
    transition-property: var(--carousel-transition);
    transition-timing-function: var(--carousel-function);
    transition-duration: var(--carousel-timing);
    height: var(--carousel-height);
    z-index: -1;
  }

  .carousel .slide.active {
    opacity: 1;
  }

  .menu-container {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    flex-wrap: wrap;
    margin-block: var(--space-size-2);
    gap: var(--space-size-2);
  }

  .menu-item {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    margin: var(--space-size-3);
    cursor: pointer;
    text-align: center;
    max-width: 26ch;
  }

  .menu-item .menu-item-image {
    overflow: hidden;
    border-radius: 3px;
    box-shadow: 0px 0px 10px hsla(0, 0%, 0%, 0.2);
    position: relative;
    transition: 0.3s;
    width: max-content;
  }

  .menu-item-image .image {
    width: calc(var(--menu-image-size));
    height: calc(var(--menu-image-size) - var(--menu-image-scale));
    object-fit: cover;
    transition: transform 0.3s ease-out;
  }

  .menu-item-image .overlay {
    display: none;
  }

  .accordion-container {
    margin-block: var(--size-8);
  }

  .accordion-container .title {
    text-align: center;
    font-size: var(--font-size-4);
    font-weight: bold;
    --opacity: 1;
    color: hsl(var(--primary-text-color) / var(--opacity));
  }

  .accordion-container .line {
    margin-inline: auto;
    height: 3px;
    width: var(--space-size-8);
    --opacity: 1;
    background-color: hsl(var(--accordion-title-line) / var(--opacity));
  }

  .accordion {
    display: flex;
    margin: var(--size-3) auto;
    height: 16rem;
    width: min-content;
    cursor: pointer;
  }

  .accordion .slide {
    position: relative;
    height: 100%;
    flex: 1 1 0%;
    overflow: hidden;
    background-size: cover;
    background-position: 50%;
    background-repeat: no-repeat;
    font-size: 0.875rem;
    line-height: 1.25rem;
    transition-duration: 0.5s;
  }

  .accordion-item {
    display: flex;
    flex-direction: column;
    height: 100%;
    align-items: start;
    justify-content: center;
    padding: var(--size-4);
    padding-right: calc(var(--space-size-8) + var(--space-scale));
    background-image: linear-gradient(
      to right,
      hsl(0, 0%, 0%),
      hsla(0, 0%, 100%, 0.502)
    );
    --opacity: 1;
    color: hsl(var(--success-bg-text-color) / var(--opacity));
    opacity: 0;
    transform: translate(-100px);
  }

  .accordion span:nth-of-type(1) {
    font-weight: bold;
  }

  .accordion .slide:hover {
    flex-grow: 2.1;
  }

  .accordion .slide:hover .accordion-item {
    transform: translate(0px);
    opacity: 0.95;
    transition-delay: 0.5s;
    transition-duration: 0.2s;
  }

  footer ul {
    padding: var(--size-2);
    justify-content: center;
    display: flex;
  }

  footer ul li {
    padding: var(--size-2) 0;
  }

  footer ul li span {
    padding-inline: var(--size-4);
    cursor: pointer;
  }

  .icon-text-list {
    display: grid;
    grid-template-columns: 30px 1fr;
    align-items: center;
    gap: var(--size-3);
    font-size: var(--font-size--1);
  }

  .icon-text-list > *:nth-child(1) {
    grid-column: span 2 / span 2;
    font-weight: bold;
  }

  .flex-col-container {
    display: flex;
    flex-direction: column;
    min-height: 90svh;
  }

  .template-container-1 {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-size-1);
    text-align: center;
    flex-grow: 1;
  }

  .template-container-1 .text {
    padding-inline: clamp(1rem, 15svw, 50ch);
  }

  .icon {
    text-align: center;
    font-size: 6rem;
    line-height: 1;
    --opacity: 1;
    --_category-color: var(--category-color);
    color: hsl(var(--_category-color) / var(--opacity));
  }

  .template-container-2 {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--space-size-1);
  }

  .template-container-3 {
    display: flex;
    flex-direction: column;
    --shadow-color: hsl(210, 11%, 15%);
    --shadow-colored: 0 1px 3px 0 var(--shadow-color),
      0 1px 2px -1px var(--shadow-color);
    --shadow: var(--shadow-colored);
    box-shadow: var(--ring-offset-shadow, 0 0 #0000),
      var(--ring-shadow, 0 0 #0000), var(--shadow);
    border-radius: var(--space-size-2);
    margin: var(--space-size-1);
  }

  .template-container-3 .header {
    --opacity: 1;
    background-color: hsl(var(--main-bg-color) / var(--opacity));
    color: hsl(var(--success-text-color) / var(--opacity));
    justify-content: center;
    align-items: center;
    font-size: var(--font-size-4);
    border-top-left-radius: inherit;
    border-top-right-radius: inherit;
    padding-block: var(--size-3);
  }

  .template-container-3 .body {
    --opacity: 1;
    background-color: hsl(var(--success-text-color) / var(--opacity));
    color: hsl(var(--success-bg-text-color) / var(--opacity));
    border-bottom-left-radius: inherit;
    border-bottom-right-radius: inherit;
    width: 70svw;
    padding-inline: var(--space-size-1);
  }

  .template-container-3 .body .content {
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: var(--space-size-3);
  }

  .template-container-3 .body .buttons {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: var(--space-size-3);
  }

  .buttons > .btn {
    border-radius: var(--space-size-1);
    font-weight: normal;
    padding: var(--size-1);
    margin-block: var(--space-size-1);
    width: 20ch;
  }

  .buttons > .btn:nth-of-type(odd) {
    --opacity: 1;
    background-color: hsl(var(--template-3-odd-color) / var(--opacity));
    color: hsl(var(--template-3-odd-text-color) / var(--opacity));
  }

  .buttons > .btn:nth-of-type(even) {
    --opacity: 1;
    background-color: hsl(var(--template-3-even-color) / var(--opacity));
    color: hsl(var(--template-3-even-text-color) / var(--opacity));
  }

  .circle-background {
    display: grid;
    place-items: center;
    --opacity: 1;
    background-color: hsl(var(--success-bg-light-color) / var(--opacity));
    border-radius: 100%;
    width: calc(var(--space-size-4) * 2);
    height: calc(var(--space-size-4) * 2);
    margin-inline: auto;
    margin-top: var(--size-5);
  }

  .circle-background .icon {
    font-size: var(--space-size-5);
    line-height: var(--space-size-1);
    color: inherit;
  }

  .card {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin: 1rem;
    width: 20rem;
    --opacity: 1;
    background-color: hsl(var(--main-bg-color) / var(--opacity));
    --shadow: 4px 4px 4px hsla(0, 0%, 65%, 0.69);
    box-shadow: var(--ring-offset-shadow, 0 0 #0000),
      var(--ring-shadow, 0 0 #0000), var(--shadow);
    border-radius: 5px;
  }

  .card .image {
    -o-object-fit: cover;
    object-fit: cover;
    vertical-align: middle;
  }

  .card .logo {
    margin-block: var(--size-2);
  }

  .card .title {
    padding-block: var(--size-2);
    width: 100%;
    background-color: hsl(var(--_category-color) / var(--opacity));
    color: hsl(var(--success-bg-text-color) / var(--opacity));
    font-weight: bold;
    font-size: 25px;
    margin-bottom: var(--size-2);
    text-overflow: ellipsis;
    height: 90px;
    border-radius: 5px 5px 0 0;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .card .text {
    padding-inline: var(--size-5);
    height: calc(var(--space-size-7) * 2);
    overflow: auto;
    font-size: var(--font-size--1);
    text-align: start;
  }

  .card .btn.card-btn {
    margin: var(--space-size-1);
    margin-top: auto;
    padding-inline: var(--size-3);
    width: fit-content;
  }

  .page-title {
    display: flex;
    justify-content: center;
    width: 100%;
    margin-top: var(--space-size-8);
    padding: var(--size-1) var(--space-size-3);
    font-size: var(--font-size-3);
    --opacity: 1;
    --_category-color: var(--category-color);
    background-color: hsl(var(--_category-color) / var(--opacity));
    color: hsl(var(--success-bg-text-color) / var(--opacity));
  }

  .category-1 .btn,
  .category-2 .btn,
  .category-3 .btn,
  .category-4 .btn,
  .category-5 .btn {
    --opacity: 1;
    background-color: hsl(var(--_category-color) / var(--opacity));
    color: hsl(var(--success-bg-text-color));
    width: clamp(
      var(--min-btn-width),
      var(--mid-btn-width),
      var(--max-btn-width)
    );
  }

  .category-1,
  .menu-item.category-1 .line,
  .category-1 .icon,
  .category-1 .btn,
  .category-1 .page-title,
  .category-1 .title {
    --opacity: 1;
    --_category-color: 200 71% 70%;
  }

  .category-2,
  .menu-item.category-2 .line,
  .category-2 .icon,
  .category-2 .btn,
  .category-2 .page-title,
  .category-2 .title {
    --opacity: 1;
    --_category-color: 337 78% 63%;
  }

  .category-3,
  .menu-item.category-3 .line,
  .category-3 .icon,
  .category-3 .btn,
  .category-3 .page-title,
  .category-3 .title {
    --opacity: 1;
    --_category-color: 80 52% 57%;
  }

  .category-1 .btn:hover {
    --opacity: 1;
    --_category-color: 211 100% 42%;
  }

  .category-2 .btn:hover {
    --opacity: 0.5;
    --_category-color: 337 78% 63%;
  }

  .category-3 .btn:hover {
    --opacity: 1;
    --_category-color: 186 32% 46%;
  }

  .request-container {
    display: flex;
    flex-direction: column;
    gap: var(--size-4);
    text-align: left;
    font-size: 0.875rem;
    line-height: 1.25rem;
  }

  .checkboxes-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--size-2);
    margin-block: var(--size-4);
  }

  .checkboxes-container > div {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .form-flex-even {
    display: flex;
    justify-content: space-evenly;
    gap: var(--size-4);
  }

  /* Shadows */
  .shadow-gray-4 {
    --shadow: 4px 4px 4px hsla(0, 0%, 65%, 0.69);
  }

  .shadow,
  .shadow-gray-4 {
    box-shadow: var(--ring-offset-shadow, 0 0 #0000),
      var(--ring-shadow, 0 0 #0000), var(--shadow);
  }

  .shadow-md {
    --shadow: 0 4px 6px -1px hsla(0, 0%, 0%, 0.102),
      0 2px 4px -2px hsla(0, 0%, 0%, 0.102);
  }

  .shadow-lg,
  .shadow-md {
    box-shadow: var(--ring-offset-shadow, 0 0 #0000),
      var(--ring-shadow, 0 0 #0000), var(--shadow);
  }

  .bottom-left-container {
    display: none;
    position: relative;
  }

  .tooltip {
    position: absolute;
    background: #f2f2f2;
    color: #000000;
    padding: 15px;
    border-radius: 18px;
    font-size: 13px;
    white-space: nowrap;
    z-index: 9999;
    display: none;
    text-wrap: auto;
    width: 314px;
    text-align: center;
    font-family: "helveticaneueR";
    box-shadow: 10px 10px 20px 0 rgb(0 0 0 / 15%);
  }

  /* Flechita */
  .tooltip::after {
    content: "";
    position: absolute;
    border: 6px solid transparent;
  }

  /* Arriba */
  .tooltip.top::after {
    bottom: -12px;
    left: 47%;
    transform: translateX(-50%);
    border-top-color: #707070;
  }

  /* Abajo */
  .tooltip.bottom::after {
    top: -12px;
    left: 50%;
    transform: translateX(-50%);
    border-bottom-color: #707070;
  }

  /* Izquierda */
  .tooltip.left::after {
    top: 50%;
    right: -12px;
    transform: translateY(-50%);
    border-left-color: #707070;
  }

  /* Derecha */
  .tooltip.right::after {
    top: 50%;
    left: -12px;
    transform: translateY(-50%);
    border-right-color: #707070;
  }

  .absolute-dialog {
    position: absolute;
    top: 81px;
  }

  /* Dispositivos moviles */
  @media only screen and (max-width: 768px) {
    .responsive-header {
      height: var(--header-height);
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding-inline: var(--space-size-1);
    }

    .menu-toggler {
      display: block;
      color: currentColor;
      fill: currentColor;
      width: var(--size-8);
    }

    .menu-collapse {
      display: none;
    }

    .menu-collapse.active {
      display: block;
    }

    .navbar {
      flex-direction: column;
    }

    .nav-item {
      padding: var(--size-1) 0;
      font-size: var(--font-size-2);
    }

    .nav-item.dropdown {
      padding: var(--size-2);
      width: fit-content;
      transition: 0.3s;
      margin-left: var(--size-3);
    }

    .dropdown-menu li {
      margin-inline: var(--size-2);
      margin-block: var(--size-4);
    }

    .dropdown-menu {
      padding: var(--size-1) var(--size-4);
    }

    .responsive-menu-content {
      display: block;
      padding: var(--size-2) 0;
    }

    .carousel {
      display: none;
    }

    .menu-container {
      margin-bottom: 5svh;
    }

    .menu-item .text {
      position: absolute;
      inset: 0;
      display: grid;
      place-items: center;
      font-size: var(--font-size-2);
      font-weight: bold;
      color: white;
      text-shadow: 2px 3px 10px #000;
      word-wrap: break-word;
    }

    .accordion-container {
      display: none;
    }

    footer {
      --opacity: 1;
      background-color: hsl(var(--footer-sm-bg-color) / var(--opacity));
      color: hsl(var(--footer-sm-text-color) / var(--opacity));
      position: sticky;
      bottom: 0;
      width: 100%;
    }

    footer ul {
      justify-content: center;
      flex-direction: column;
      text-align: center;
    }

    .flex-col-container {
      min-height: 100svh;
    }
  }

  /* Pantallas grandes */
  @media only screen and (min-width: 768px) {
    .menu-toggler {
      display: none;
    }

    .header {
      display: flex;
      justify-content: space-between;
      align-items: center;
      height: var(--header-height);
      padding-inline: var(--header-padding-inline);
    }

    .dropdown-menu {
      position: absolute;
      width: max-content;
      top: var(--size-8);
      right: 0;
      --opacity: 1;
      background-color: hsl(var(--main-bg-color) / var(--opacity));
      box-shadow: rgba(60, 64, 67, 0.3) 0px 1px 2px 0px,
        rgba(60, 64, 67, 0.15) 0px 2px 6px 2px;
      border-radius: var(--size-1);
      color: hsl(var(--main-text-color) / var(--opacity));
    }

    .dropdown-menu li {
      padding: var(--size-2) var(--size-4);
      opacity: 0.7;
      transition: 0.3s;
      cursor: pointer;
    }

    .dropdown-menu li:hover {
      opacity: 1;
      --opacity: 1;
      background-color: hsl(var(--secondary-btn-color) / var(--opacity));
      color: hsl(var(--success-text-color) / var(--opacity));
    }

    .navbar > .nav-item {
      margin: var(--size-2);
    }

    .navigation a {
      margin: 0 var(--size-6);
      padding: var(--size-2) calc(var(--size-2) + var(--size-8));
    }

    .page-title {
      margin: 0;
      justify-content: start;
    }

    .menu-item .overlay {
      display: grid;
      place-items: center;
      position: absolute;
      inset: 0;
      opacity: 0;
      padding: var(--size-2);
    }

    .menu-item:hover .overlay {
      opacity: 1;
      z-index: 10;
      --opacity: 0.5;
      --_category-color: var(--category-color);
      background-color: hsl(var(--_category-color) / var(--opacity));
    }

    .menu-item:hover .overlay > span {
      --opacity: 1;
      color: hsl(var(--menu-overlay-text-color) / var(--opacity));
    }

    .menu-item.category-1 .overlay {
      --opacity: 0.5;
      --_category-color: 200 71% 70%;
    }

    .menu-item.category-2 .overlay {
      --opacity: 0.5;
      --_category-color: 337 78% 63%;
    }

    .menu-item.category-3 .overlay {
      --opacity: 0.5;
      --_category-color: 80 52% 57%;
    }

    .menu-item .text {
      line-height: var(--size-4);
    }

    .menu-item .text {
      display: block;
      padding: var(--space-size-1) 0;
      padding: var(--size-2) 0;
      font-size: var(--font-size-2);
    }

    .menu-item .line {
      width: calc(var(--menu-image-size) * 0.5);
      height: 3px;
      margin: auto;
      margin-top: var(--size-3);
      transition: 0.3s;
      --_category-color: var(--category-color);
      background-color: hsl(var(--_category-color) / var(--opacity));
    }

    .menu-item:hover .line {
      width: 70%;
    }

    footer ul li {
      min-width: clamp(5em, 30svw, 20em);
      text-align: center;
      font-size: var(--font-size-1);
      --opacity: 1;
      border-color: hsl(var(--footer-md-text-color) / var(--opacity));
      border-inline: 1px solid;
      color: hsl(var(--footer-md-text-color) / var(--opacity));
    }

    footer ul li:hover span {
      color: hsl(var(--footer-md-hover-text-color) / var(--opacity));
    }

    footer ul li:first-child {
      border-left: 2px solid;
    }

    footer ul li:last-child {
      border-right: 2px solid;
    }

    .template-container-3 .body .content {
      grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .dialog-container {
      display: grid;
      place-items: center;
      gap: var(--space-size-1);
    }

    .dialog-buttons {
      display: flex;
      justify-content: center;
    }

    .dialog-buttons > * {
      width: 33%;
    }
  }

  /* Resoluciones grandes */
  @media only screen and (min-width: 1024px) {
    .carousel {
      height: calc(var(--carousel-height) + 100px);
      overflow: hidden;
    }

    .carousel .slide {
      height: calc(var(--carousel-height) + 100px);
    }

    .menu-item-image .image {
      width: calc(var(--menu-image-size));
      height: calc(var(--menu-image-size));
    }

    .accordion-container {
      display: block;
    }

    .accordion .slide {
      font-size: 1rem;
      line-height: 1.5rem;
    }
  }

  /* Resoluciones extra grandes */
  @media only screen and (min-width: 1536px) {
    .menu-item-image .image {
      width: calc(var(--menu-image-size) + var(--menu-image-scale));
      height: calc(var(--menu-image-size) + var(--menu-image-scale));
    }
  }
}

@layer utilities {
  /* Utilities */
  .-uocc-empty- {
    display: none;
  }

  .flex-grow {
    flex-grow: 1;
  }

  .p-1 {
    padding: var(--size-1);
  }

  .p-2 {
    padding: var(--size-2);
  }

  .p-3 {
    padding: var(--size-3);
  }

  .p-4 {
    padding: var(--size-4);
  }

  .p-5 {
    padding: var(--size-5);
  }

  .p-6 {
    padding: var(--size-6);
  }

  .p-7 {
    padding: var(--size-7);
  }

  .p-8 {
    padding: var(--size-8);
  }

  .px-1 {
    padding-inline: var(--size-1);
  }

  .px-2 {
    padding-inline: var(--size-2);
  }

  .px-3 {
    padding-inline: var(--size-3);
  }

  .px-4 {
    padding-inline: var(--size-4);
  }

  .px-5 {
    padding-inline: var(--size-5);
  }

  .px-6 {
    padding-inline: var(--size-6);
  }

  .px-7 {
    padding-inline: var(--size-7);
  }

  .px-8 {
    padding-inline: var(--size-8);
  }

  .py-1 {
    padding-block: var(--size-1);
  }

  .py-2 {
    padding-block: var(--size-2);
  }

  .py-3 {
    padding-block: var(--size-3);
  }

  .py-4 {
    padding-block: var(--size-4);
  }

  .py-5 {
    padding-block: var(--size-5);
  }

  .py-6 {
    padding-block: var(--size-6);
  }

  .py-7 {
    padding-block: var(--size-7);
  }

  .py-8 {
    padding-block: var(--size-8);
  }

  .pt-1 {
    padding-top: var(--size-1);
  }

  .pt-2 {
    padding-top: var(--size-2);
  }

  .pt-3 {
    padding-top: var(--size-3);
  }

  .pt-4 {
    padding-top: var(--size-4);
  }

  .pt-5 {
    padding-top: var(--size-5);
  }

  .pt-6 {
    padding-top: var(--size-6);
  }

  .pt-7 {
    padding-top: var(--size-7);
  }

  .pt-8 {
    padding-top: var(--size-8);
  }

  .pb-1 {
    padding-bottom: var(--size-1);
  }

  .pb-2 {
    padding-bottom: var(--size-2);
  }

  .pb-3 {
    padding-bottom: var(--size-3);
  }

  .pb-4 {
    padding-bottom: var(--size-4);
  }

  .pb-5 {
    padding-bottom: var(--size-5);
  }

  .pb-6 {
    padding-bottom: var(--size-6);
  }

  .pb-7 {
    padding-bottom: var(--size-7);
  }

  .pb-8 {
    padding-bottom: var(--size-8);
  }

  .pl-1 {
    padding-left: var(--size-1);
  }

  .pl-2 {
    padding-left: var(--size-2);
  }

  .pl-3 {
    padding-left: var(--size-3);
  }

  .pl-4 {
    padding-left: var(--size-4);
  }

  .pl-5 {
    padding-left: var(--size-5);
  }

  .pl-6 {
    padding-left: var(--size-6);
  }

  .pl-7 {
    padding-left: var(--size-7);
  }

  .pl-8 {
    padding-left: var(--size-8);
  }

  .pr-1 {
    padding-right: var(--size-1);
  }

  .pr-2 {
    padding-right: var(--size-2);
  }

  .pr-3 {
    padding-right: var(--size-3);
  }

  .pr-4 {
    padding-right: var(--size-4);
  }

  .pr-5 {
    padding-right: var(--size-5);
  }

  .pr-6 {
    padding-right: var(--size-6);
  }

  .pr-7 {
    padding-right: var(--size-7);
  }

  .pr-8 {
    padding-right: var(--size-8);
  }

  .m-auto {
    margin: auto;
  }

  .m-1 {
    margin: var(--size-1);
  }

  .m-2 {
    margin: var(--size-2);
  }

  .m-3 {
    margin: var(--size-3);
  }

  .m-4 {
    margin: var(--size-4);
  }

  .m-5 {
    margin: var(--size-5);
  }

  .m-6 {
    margin: var(--size-6);
  }

  .m-7 {
    margin: var(--size-7);
  }

  .m-8 {
    margin: var(--size-8);
  }

  .mx-auto {
    margin-inline: auto;
  }

  .mx-1 {
    margin-inline: var(--size-1);
  }

  .mx-2 {
    margin-inline: var(--size-2);
  }

  .mx-3 {
    margin-inline: var(--size-3);
  }

  .mx-4 {
    margin-inline: var(--size-4);
  }

  .mx-5 {
    margin-inline: var(--size-5);
  }

  .mx-6 {
    margin-inline: var(--size-6);
  }

  .mx-7 {
    margin-inline: var(--size-7);
  }

  .mx-8 {
    margin-inline: var(--size-8);
  }

  .my-auto {
    margin-block: auto;
  }

  .my-1 {
    margin-block: var(--size-1);
  }

  .my-2 {
    margin-block: var(--size-2);
  }

  .my-3 {
    margin-block: var(--size-3);
  }

  .my-4 {
    margin-block: var(--size-4);
  }

  .my-5 {
    margin-block: var(--size-5);
  }

  .my-6 {
    margin-block: var(--size-6);
  }

  .my-7 {
    margin-block: var(--size-7);
  }

  .my-8 {
    margin-block: var(--size-8);
  }

  .mt-auto {
    margin-top: auto;
  }

  .mt-1 {
    margin-top: var(--size-1);
  }

  .mt-2 {
    margin-top: var(--size-2);
  }

  .mt-3 {
    margin-top: var(--size-3);
  }

  .mt-4 {
    margin-top: var(--size-4);
  }

  .mt-5 {
    margin-top: var(--size-5);
  }

  .mt-6 {
    margin-top: var(--size-6);
  }

  .mt-7 {
    margin-top: var(--size-7);
  }

  .mt-8 {
    margin-top: var(--size-8);
  }

  .mb-auto {
    margin-bottom: auto;
  }

  .mb-1 {
    margin-bottom: var(--size-1);
  }

  .mb-2 {
    margin-bottom: var(--size-2);
  }

  .mb-3 {
    margin-bottom: var(--size-3);
  }

  .mb-4 {
    margin-bottom: var(--size-4);
  }

  .mb-5 {
    margin-bottom: var(--size-5);
  }

  .mb-6 {
    margin-bottom: var(--size-6);
  }

  .mb-7 {
    margin-bottom: var(--size-7);
  }

  .mb-8 {
    margin-bottom: var(--size-8);
  }

  .ml-auto {
    margin-left: auto;
  }

  .ml-1 {
    margin-left: var(--size-1);
  }

  .ml-2 {
    margin-left: var(--size-2);
  }

  .ml-3 {
    margin-left: var(--size-3);
  }

  .ml-4 {
    margin-left: var(--size-4);
  }

  .ml-5 {
    margin-left: var(--size-5);
  }

  .ml-6 {
    margin-left: var(--size-6);
  }

  .ml-7 {
    margin-left: var(--size-7);
  }

  .ml-8 {
    margin-left: var(--size-8);
  }

  .mr-auto {
    margin-right: auto;
  }

  .mr-1 {
    margin-right: var(--size-1);
  }

  .mr-2 {
    margin-right: var(--size-2);
  }

  .mr-3 {
    margin-right: var(--size-3);
  }

  .mr-4 {
    margin-right: var(--size-4);
  }

  .mr-5 {
    margin-right: var(--size-5);
  }

  .mr-6 {
    margin-right: var(--size-6);
  }

  .mr-7 {
    margin-right: var(--size-7);
  }

  .mr-8 {
    margin-right: var(--size-8);
  }

  .top-1 {
    top: var(--size-1);
  }

  .top-2 {
    top: var(--size-2);
  }

  .top-3 {
    top: var(--size-3);
  }

  .top-4 {
    top: var(--size-4);
  }

  .top-5 {
    top: var(--size-5);
  }

  .top-6 {
    top: var(--size-6);
  }

  .top-7 {
    top: var(--size-7);
  }

  .top-8 {
    top: var(--size-8);
  }

  .bottom-1 {
    bottom: var(--size-1);
  }

  .bottom-2 {
    bottom: var(--size-2);
  }

  .bottom-3 {
    bottom: var(--size-3);
  }

  .bottom-4 {
    bottom: var(--size-4);
  }

  .bottom-5 {
    bottom: var(--size-5);
  }

  .bottom-6 {
    bottom: var(--size-6);
  }

  .bottom-7 {
    bottom: var(--size-7);
  }

  .bottom-8 {
    bottom: var(--size-8);
  }

  .right-1 {
    right: var(--size-1);
  }

  .right-2 {
    right: var(--size-2);
  }

  .right-3 {
    right: var(--size-3);
  }

  .right-4 {
    right: var(--size-4);
  }

  .right-5 {
    right: var(--size-5);
  }

  .right-6 {
    right: var(--size-6);
  }

  .right-7 {
    right: var(--size-7);
  }

  .right-8 {
    right: var(--size-8);
  }

  .left-1 {
    left: var(--size-1);
  }

  .left-2 {
    left: var(--size-2);
  }

  .left-3 {
    left: var(--size-3);
  }

  .left-4 {
    left: var(--size-4);
  }

  .left-5 {
    left: var(--size-5);
  }

  .left-6 {
    left: var(--size-6);
  }

  .left-7 {
    left: var(--size-7);
  }

  .left-8 {
    left: var(--size-8);
  }

  .hidden {
    display: none;
  }

  .text-center {
    text-align: center;
  }

  .text-sm {
    font-size: var(--font-size--1);
    line-height: var(--line-height-size-1);
  }

  .text-md {
    font-size: var(--font-size-1);
    line-height: var(--line-height-size-1);
  }

  .text-lg {
    font-size: var(--font-size-2);
    line-height: var(--line-height-size-2);
  }

  .text-xl {
    font-size: var(--font-size-3);
    line-height: var(--line-height-size-3);
  }

  .text-2xl {
    font-size: var(--font-size-4);
    line-height: var(--line-height-size-4);
  }

  .text-3xl {
    font-size: var(--font-size-5);
    line-height: var(--line-height-size-6);
  }

  .text-4xl {
    font-size: var(--font-size-6);
    line-height: var(--line-height-size-7);
  }

  .text-normal {
    font-weight: normal;
  }

  .text-bold {
    font-weight: bold;
  }

  .primary-text-color {
    --opacity: 1;
    color: hsl(var(--primary-text-color) / var(--opacity));
  }

  .success-text-color {
    --opacity: 1;
    color: hsl(var(--success-text-color) / var(--opacity));
  }

  .primary-accent-color {
    --opacity: 1;
    accent-color: hsl(var(--primary-accent-color) / var(--opacity));
  }

  .relative {
    position: relative;
  }

  .absolute {
    position: absolute;
  }

  .fixed {
    position: fixed;
  }

  .sticky {
    position: sticky;
  }

  .w-1\/2 {
    width: 50%;
  }

  .w-1\/3 {
    width: 33%;
  }

  .w-1\/4 {
    width: 25%;
  }

  .h-1 {
    height: var(--space-size-1);
  }

  .h-2 {
    height: var(--space-size-2);
  }

  .h-3 {
    height: var(--space-size-3);
  }

  .h-4 {
    height: var(--space-size-4);
  }

  .h-5 {
    height: var(--space-size-5);
  }

  .h-6 {
    height: var(--space-size-6);
  }

  .h-7 {
    height: var(--space-size-7);
  }

  .h-8 {
    height: var(--space-size-8);
  }

  .fcw {
    width: fit-content;
  }
}
