html {
  position: relative;
  min-height: 100%;
}

body {
  font-family: "Outfit", sans-serif;
}

h1 {
  color: #47b475;
}

footer {
  background-color: #005e1d;
}

@media (max-width: 768px) {
  html {
    font-size: 16px;
  }

  #fSearch {
    position: inherit !important;
    transform: none !important;
  }

  .navbar-collapse {
    background-color: #ccc !important;
    padding: 0.5rem 1rem;
  }

  .proceso-timeline, .proceso-timeline .text-end{
    text-align: center !important;
  }
    .tl-hline, .tl-hline-left, .tl-hline-right, .tl-badge {
      display: none !important;
    }

  .proceso-timeline::before {
    background: none !important;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
  color: var(--bs-secondary-color);
  text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
  text-align: start;
}

.thumb-destacado {
  object-fit: none;
  object-position: center;
  width: 100%;
  height: 260px;
}

.thumb-listado {
  object-fit: none;
  object-position: center;
  width: 100%;
  height: 300px;
}

.thumb-ficha{
  object-fit: none;
  object-position: center;
  width: 100%;
  height: 500px;
}

.hDestacado {
  height: 500px;
}

.hListado {
  height: 250px;
}

.sin-foto-destacado {
  background: #dfdfdf url(../images/logoOff.png) no-repeat center;
  text-align: center;
  height: 260px;
  width: 100%;
}

.sin-foto {
  background: #dfdfdf url(../images/logoOff.png) no-repeat center;
  text-align: center;
  height: 300px;
  width: 100%;
}

.corporate-color {
  color: #ff6e0f;
}

.form-control, .form-select {
  background-color: #fbfbfb;
  border-color: #ced4da;
  color: #495057;
  font-size: 1rem;
  padding: 0.375rem 0.75rem;
}

.fixSearch {
  position: fixed;
  bottom: 0px;
  width: 305px;
}

.go-top {
  bottom: 2em;
  right: 6em;
  text-decoration: none;
  color: #fff;
  background: #000;
  display: none;
  z-index: 1000;
}

  .go-top:hover {
    background-color: rgba(0, 0, 0, 0.6);
  }

.go-what {
  bottom: 2em;
  right: 2em;
  padding: 0.23em;
  background: #00bb2d;
  text-decoration: none;
  z-index: 1000;
}

.error {
  border-color: red;
}

label.error {
  color: red;
}

.calificacion-a-plus {
  background: #2ecf2f;
}

.calificacion-a {
  background: #009935;
}

.calificacion-b {
  background: #10ac26;
}

.calificacion-c {
  background: #a1d209;
}

.calificacion-d {
  background: #f7f100;
}

.calificacion-e {
  background: #f5ab00;
}

.calificacion-f {
  background: #f7530b;
}

.calificacion-g {
  background: #f2000f;
}
.cookie-consent-banner {
  box-shadow: 0 -2px 8px rgba(0,0,0,0.2);
}

.btn-primary{
  background-color: #ff6e0f;
  border-color: #ccc;
}

.bg-corporate {
  background-color: #0a714e;
}

.fs-text-corporate{
  font-size: calc(.2vw + 1rem);
}

:root {
  --tl-accent: #8d4406;
  --tl-title: #8d4406;
  --tl-text: #8d4406;
}

/* Línea vertical central */
.proceso-timeline {
  position: relative;
}

  .proceso-timeline::before {
    content: '';
    position: absolute;
    top: 17px;
    bottom: 17px;
    left: 50%;
    transform: translateX(-50%);
    width: 1px;
    background: var(--tl-accent);
    z-index: 0;
  }

/* Badge numérico */
.tl-badge {
  width: 34px;
  height: 34px;
  border: 1.5px solid var(--tl-accent);
  background: #fae9b1;
  color: var(--tl-accent);
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
  position: relative;
  z-index: 2;
  font-family: 'Times New Roman', Times, serif;
  font-size: 1.5rem;
}

/* Líneas horizontales conectoras */
.tl-hline {
  position: absolute;
  top: 17px; /* mitad del badge (34px / 2) */
  height: 1px;
  width: 50%;
  background: var(--tl-accent);
  z-index: 1;
}

.tl-hline-left {
  left: 0;
}

.tl-hline-right {
  right: 0;
}

/* Tipografía */
.tl-titulo {
  font-size: 1.5rem;
  color: var(--tl-title);
  line-height: 1.4;
  margin-bottom: 0.35rem;
  font-family: 'Times New Roman', Times, serif;
}

.tl-desc {
  color: var(--tl-text);
  line-height: 1.55;
  margin-bottom: 0.2rem;
}

.tl-lista {
  color: var(--tl-text);
  line-height: 1.55;
  list-style: none;
  padding-left: 0;
  margin-bottom: 0.25rem;
}
.family{
  background: url(../images/family.jpg) no-repeat center center;
  background-size: cover;
}