/* VARIABLES */
:root, [data-bs-theme="light"]{
  --bs-primary: #019839;
  --bs-secondary: #0C693E;
  --bs-anti-subtle-primary-color: #c7880a;
  --bs-accent: var(--bs-secondary);
  --bs-light: #F8F9FA;
  --bs-dark: #212921;
  --bs-emphasis-color: var(--bs-light);
  --bs-primary-rgb: 12, 105, 62;
  --bs-secondary-rgb: 12, 105, 62;
  --bs-dark-rgb:, 33, 41, 33;
  --bs-primary-text-emphasis: #1d6505;
  --bs-secondary-text-emphasis: #2c322b;
  --bs-dark-text-emphasis: #4c5749;
  --bs-primary-bg-subtle: #d3ffcf;
  --bs-secondary-bg-subtle: #e2e5e2;
  --bs-primary-border-subtle: #0f7108ac;
  --bs-secondary-border-subtle: #c5cbc4;
  --bs-font-sans-serif: 'Comfortaa', sans-serif;
  --bs-font-monospace: 'Comfortaa', sans-serif;
  --bs-body-color: var(--bs-dark);
  --bs-body-color-rgb: var(--bs-dark-rgb);
  --bs-body-bg: #F8F9FA;
  --bs-secondary-color: rgba(34, 41, 33, 0.75);
  --bs-secondary-color-rgb: 34, 41, 33;
  --bs-shadow-color: 0 4px 6px rgba(0, 0, 0, 0.08), 0 1px 3px rgba(0, 0, 0, 0.08);
  --bs-secondary-bg: #eaefe9;
  --bs-secondary-bg-rgb: rgb(234, 239, 233);
  --bs-tertiary-color: rgba(35, 41, 33, 0.5);
  --bs-tertiary-color-rgb: 35, 41, 33;
  --bs-tertiary-bg: #f8faf8;
  --bs-tertiary-bg-rgb: rgb(248, 250, 248);
  --bs-link-color: #f9ffa4;
  --bs-link-hover-color: #FDFFE3;
  --bs-link-color-rgb: 249, 255, 164;
  --bs-link-hover-color-rgb: 253, 255, 227;
  --bs-link-decoration: none;
  --bs-code-color: #104217;
  --brand-img-filter: grayscale(65%) opacity(0.85);
  --logo-img-filter: none;
}
[data-bs-theme="dark"]{
  color-scheme: dark;
  --bs-primary: #efa208;
  --bs-primary-rgb: 239, 162, 8;
  --bs-secondary: #7e5707;
  --bs-secondary-rgb: 126, 87, 7;
  --bs-anti-subtle-primary-color: #0e3303;
  --bs-accent: var(--bs-secondary);
  --bs-body-color: #FDFFE3;
  --bs-body-color-rgb: 253, 255, 227;
  --bs-body-bg: #292621;
  --bs-body-bg-rgb: 41, 38, 33;
  --bs-emphasis-color: #000;
  --bs-emphasis-color-rgb: 255, 255, 255;
  --bs-secondary-color: rgba(230, 228, 222, 0.75);
  --bs-secondary-color-rgb: 230, 228, 222;
  --bs-secondary-bg: #403c34;
  --bs-secondary-bg-rgb: 64, 60, 52;
  --bs-tertiary-color: rgba(230, 228, 222, 0.5);
  --bs-shadow-color: 0 4px 6px rgba(255, 255, 255, 0.08), 0 1px 3px rgba(255, 255, 255, 0.08);
  --bs-tertiary-color-rgb: 230, 228, 222;
  --bs-tertiary-bg: #35322b;
  --bs-tertiary-bg-rgb: 53, 50, 43;
  --bs-primary-text-emphasis: #feda6e;
  --bs-secondary-text-emphasis: #b1aea7;
  --bs-primary-bg-subtle: #332403;
  --bs-secondary-bg-subtle: #191816;
  --bs-primary-border-subtle: #985008;
  --bs-secondary-border-subtle: #4b4741;
  --bs-highlight-color: #e6e3de;
  --bs-border-color: #574f49;
  --brand-img-filter: brightness(0) invert(1) sepia(1) saturate(150%) hue-rotate(90deg) brightness(1.1) contrast(0.9);
  --logo-img-filter: var(--brand-img-filter);
}
/* Registradas como <color> para poder animar su transición al cambiar de tema (ver .trust-card) */
@property --bs-primary{ syntax: '<color>'; inherits: true; initial-value: #019839; }
@property --bs-secondary{ syntax: '<color>'; inherits: true; initial-value: #0C693E; }
@property --bs-anti-subtle-primary-color{ syntax: '<color>'; inherits: true; initial-value: #c7880a; }
.btn{
  --bs-btn-color: var(--bs-white);
  --bs-btn-bg: var(--bs-primary);
  --bs-btn-border-color: var(--bs-primary);
  --bs-btn-hover-color: var(--bs-white);
  --bs-btn-hover-bg: var(--bs-primary);
  --bs-btn-hover-border-color: var(--bs-primary);
  --bs-btn-focus-shadow-rgb: var(--bs-secondary);
  --bs-btn-active-color: var(--bs-btn-hover-color);
  --bs-btn-active-bg: var(--bs-primary);
  --bs-btn-active-border-color: var(--bs-primary);
}
.btn:hover{ filter: brightness(80%); }
/* GLOBALES */
html{scroll-behavior: smooth;}
.grecaptcha-badge{bottom: 20px; left: 20px;}
.enc{font-family: 'Poppins', sans-serif;}
.pop-img{opacity: 0; transform: translateY(16px) scale(0.97);}
.pop-img.intersecting{ animation: fade-rise 0.8s cubic-bezier(0.22, 1, 0.36, 1) forwards; }
/* Difiere el layout/pintado de los bloques fuera de pantalla: el navegador
   no hace el trabajo de render hasta que el bloque está por entrar en viewport. */
.section-flow, .focus-img-section{
  content-visibility: auto;
  contain-intrinsic-size: auto 500px;
}
.btn-success{--bs-btn-bg: var(--bs-accent) !important; --bs-btn-border-color: var(--bs-accent);}
.vector{ filter: var(--logo-img-filter) }
.brand-logo{
  object-fit: contain;
  margin: 0 auto;
  display: block;
  filter: var(--logo-img-filter)
}
.achicar-logo{
  height: 140px;
  transform: scale(1);
  object-fit: contain;
}
.brand-logo-logo_grande {
  transform: scale(0.7);
  object-fit: contain;
}
.collapse-horizontal{
  will-change: height;
  transition: width 0.4s ease;
}
.hero-section{
  height: 100dvh;
  position: relative;
}
.overlay{
  background: rgba(0, 0, 0, 0.65);
  position: absolute;
  top: 0; bottom: 0;
  left: 0; right: 0;
}
.catalogo1 {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  justify-content: center;
  padding: 20px;
}
.card1, .card2 {
  border: 0.05px solid rgb(212, 212, 212);
  display: flex;
  flex-direction: column; /* organiza contenido en columna */
  justify-content: space-between; /* empuja botón al fondo */
  align-items: center;
  width: 250px;
  min-height: 420px; /* altura fija para alinear tarjetas */
  filter: brightness(80%);
  padding: 20px;
  text-align: center;
}
.card2{justify-content: start; /* empuja botón al fondo */}
/* ESPECIFICOS */
.collapse-horizontal{transition: width 0.4s ease;}
.head-blur{
  background-color: transparent;
  box-shadow: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  transition: background-color 0.5s ease, backdrop-filter 0.5s ease, box-shadow 0.5s ease;
  z-index: 9999;
}
.btn.toggle-color-mode-button{ --bs-btn-color: var(--bs-body-color) !important}
.header-text h1{
  font-size: 1.8rem;
  animation: raise-up 0.8s ease-out forwards; opacity: 0;
}
.activo{ color: var(--bs-primary); }
.header-text p{animation: raise-up 0.8s ease-out forwards 0.2s; opacity: 0;}
.header-text a{animation: raise-up 0.8s ease-out forwards 0.4s; opacity: 0;}
#main-start{animation: go-up-down 3s ease infinite;}
.service-card{ border: none; }
.progress{ background: var(--bs-secondary); }
.focus-img-section{width: 100% !important;}
.btn-whatsapp{
  border-radius: 50%;
  aspect-ratio: 1 / 1;
  box-shadow: 0 0 32px #00000061;
  animation: pop-up 1s ease-out;
}
.bi-whatsapp, .bi-x-lg{
  opacity: 0;
  transform: rotate(90deg) scale(0.5);
  transition: opacity 0.3s ease, transform 0.3s ease;
}
#whatsapp-contacts{bottom: 3vh; right: 3vw; z-index: 1999; opacity: 0; pointer-events: none;}
#whatsappMenu{
  bottom: 120%;
  right: 0;
  box-shadow: 0 0 32px #00000061;
  width: 62vw;
}
#whatsappMenu .card-header{ color: var(--bs-emphasis-color) !important }
.img-header-container{background: #000000 !important;}
.opac-img{
  object-position: end;
  opacity: 0.3;
}
/* Contenedor fijo flotante */
.search-container {
  flex-direction: row-reverse;
  top: 80px;     /* Ajusta según el menú */
  right: 30px;   /* Alineado a la derecha */
  z-index: 999; /* Para que quede sobre las cartas */
}
.search-button{
  -webkit-backdrop-filter: blur(10px);  
  backdrop-filter: blur(10px);
  box-shadow: 0 0 16px #ffffff, 0 0 32px #00000061;
  border-radius: 50%;
  padding: 0px;
  aspect-ratio: 1 / 1;
  height: 40px !important;
  width: 40px;
}
/* Caja del colapso */
.search-box {
  width: 180px;
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}
/* Solución al bug de la animación vertical */
.collapse.collapse-horizontal {height: auto !important;}
.opac-content-img{opacity: 0.45; object-position: center;}
.nav-link{position: relative !important;}
.progress{
  opacity: 0;
  width: 0%;
  transition: width 0.8s ease-out, opacity 0.8s ease-out;
}
.progress.intersecting{
  width: 100%;
  opacity: 1;
}
.history-img, .evolution-img{ box-shadow: 0 0 16px #ffffff77, 0 0 32px #00000061; }
.nav-pills .nav-link{ color: var(--bs-body-color); }
.nav-pills .nav-link.active{ background-color: var(--bs-primary); color: #fff; }
.store-info-card{
  background: var(--bs-tertiary-bg);
  border: 1px solid var(--bs-secondary-border-subtle);
  border-radius: 22px;
  box-shadow: var(--bs-shadow-color);
}
.gallery-shot{
  position: relative;
  overflow: hidden;
  border-radius: 22px;
  border: 1px solid var(--bs-secondary-border-subtle);
  box-shadow: var(--bs-shadow-color);
}
.gallery-shot img{ transition: transform 0.5s ease; }
.gallery-shot:hover img{ transform: scale(1.08); }
.gallery-shot-label{
  position: absolute;
  left: 12px;
  bottom: 12px;
  z-index: 2;
  padding: 0.35rem 0.9rem;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.55);
  color: #fff;
  font-size: 0.85rem;
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}
/* Carruseles */
.transporter{
  width: 100%;
  overflow-x: hidden;
  position: relative;
  padding-block: 2rem;
  -webkit-mask-image: linear-gradient(90deg, transparent 0px, rgb(0, 0, 0) 10%, rgb(0, 0, 0) 90%, transparent);
  -webkit-mask-repeat: no-repeat;
  mask-image: linear-gradient(90deg, transparent 0px, rgb(0, 0, 0) 10%, rgb(0, 0, 0) 90%, transparent);
  mask-repeat: no-repeat;
  background: transparent;
}
.slider-track{
  background: transparent;
  display: flex;
  gap: 20px;
  list-style: none;
  /* Duración proporcional a la cantidad de logos (--marquee-count, seteado inline) para que la velocidad sea constante sin importar el largo de la lista */
  animation-name: move-carrousel-left;
  animation-duration: calc(var(--marquee-count, 22) * 1.4s);
  animation-timing-function: linear;
  animation-iteration-count: infinite;
  animation-play-state: running;
  /* max-content: el -50% del keyframe debe medirse contra el ancho real del contenido, no el del viewport */
  width: max-content;
}
.slider-track:hover{animation-play-state: paused;}
.slider-track.reverse{ animation-direction: reverse; }
.brand-container{
  background: transparent;
  text-align: center;
  flex: 1 0 210px;
  justify-content: center;
  align-items: center;
  inline-size: 240px;
  max-inline-size: 187px;
}
.brand-img{
  height: 15vh !important;
  width: 100%;
  filter: var(--brand-img-filter);
  object-fit: contain;
  margin: 0 auto;
  display: block;
  transform: scale(0.9);
  transition: transform 0.3s ease, filter 0.3s ease;
}
.brand-img:hover,
.brand-img:focus-visible,
.brand-img:active{
  filter: none;
  transform: scale(1.12);
  transition: transform 0.3s ease, filter 0.3s ease;
}
/* Logo alterno para modo oscuro (nombre_imagen_alter): si existe, reemplaza al logo por defecto solo en dark mode */
.logo-alt{ display: none; }
[data-bs-theme="dark"] .logo-alt{ display: block; filter: var(--brand-img-filter); }
[data-bs-theme="dark"] :has(> .logo-alt) > .logo-default{ display: none; }
/* Resplandor neón blanco al resaltar un logo en modo oscuro */
[data-bs-theme="dark"] .brand-img:hover,
[data-bs-theme="dark"] .brand-img:focus-visible,
[data-bs-theme="dark"] .brand-img:active{
  filter: drop-shadow(0 0 4px #fff) drop-shadow(0 0 10px #fff) drop-shadow(0 0 22px #fff);
}
.carousel-tienda-img{
  height: 40vh !important;
  width: 100%;
  filter: var(--brand-img-filter);
  object-fit: contain;
  margin: 0 auto;
  display: block;
  transform: scale(0.9);
  transition: transform 0.3s ease, filter 0.3s ease;
}
.carousel-tienda-img:hover{
  filter: grayscale(0%);
  transform: scale(1);
  transition: transform 0.3s ease, filter 0.3s ease;
}

.swiper-wrapper{
  height: 90%;
}
.pagination-container{
  border-radius: 20px;
  border: 1px solid #636363;
  box-shadow: var(--bs-shadow-color);
  padding: 2px;
  margin: 20px;
}
.swiper-pagination{
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  flex-wrap: wrap;
  bottom: 0px !important;
  top: 0px !important;
}
.pagination-container .highlight{
  position: absolute;
  top: 0;
  left: 0;
  width: 20%;
  height: 100%;
  border-radius: 20px;
  transform: translateX(0);
  background: rgba(var(--bs-secondary-rgb), 0.9);
  transition: 0.5s transform cubic-bezier(1, 0.03, 0.58, 1);
}
.highlight{
  display: none;
}
.swiper-pagination-bullet {
  display: flex;
  align-items: center;
  justify-content: center;
  width: auto;
  height: 50px;
  text-align: center;
  line-height: 20px;
  font-size: 16px;
  color: var(--bs-body-color);
  opacity: 1;
  background: transparent;
  border-radius: 20px;
  padding: 5px 10px;
  z-index: 99;
  transition: 0.5s color cubic-bezier(1, 0.03, 0.58, 1), 0.5s background cubic-bezier(1, 0.03, 0.58, 1);
}
.swiper-pagination-bullet-active {
  color: #fff;
  background-color: rgba(var(--bs-secondary-rgb), 0.9);
}
.carousel-enc{
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.5rem;
  word-wrap: none;
  z-index: -99;
}
.outter-slide.swiper-slide-next, .outter-slide.swiper-slide-prev, .outter-slide.swiper-slide-active, .outter-slide.swiper-slide{transition: 0.3s filter ease-out;}
.outter-slide.swiper-slide{
  filter: blur(5px) brightness(0.3);
  mask-image: linear-gradient(90deg, transparent 0px, rgb(0, 0, 0) 10%, rgb(0, 0, 0) 90%, transparent), linear-gradient(180deg, transparent 0px, rgb(0, 0, 0) 10%, rgb(0, 0, 0) 90%, transparent);
  mask-repeat: no-repeat;
}
.outter-slide.swiper-slide-active{filter: none; mask-image: none;}


/* .carousel-indicators [data-bs-target] {
  box-sizing: content-box;
  flex: 0 1 auto;
  width: 30px;
  height: auto;
  padding: 0;
  margin-right: 3px;
  margin-left: 3px;
  text-indent: 0px;
  cursor: pointer;
  background-color: var(--bs-carousel-indicator-active-bg);
  background-clip: padding-box;
  border: 0;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  opacity: .5;
  transition: opacity .6s ease;
} */
.carousel-inner{
  height: 80%;
}
.carousel-caption{
  position: absolute;
  z-index: -99;
  height: 100%;
  width: 100%;
  display: flex !important;
  align-items: center;
  justify-content: center;
  left: 0;
  right: 0;
}
.carousel-description{
  z-index: 99;
  width: 100%;
}
.carousel-container{
  height: 70%;
}
.form-control:focus{
  border: 1px solid var(--bs-primary-border-subtle);
  box-shadow: 0 0 0 .15rem var(--bs-primary-border-subtle) !important;
}
form.needs-validation{
  box-shadow: 0 0 10px var(--bs-secondary);
  -webkit-backdrop-filter: blur(85px);
  backdrop-filter: blur(85px);
  border: 1px solid var(--bs-primary-border-subtle);
}
.form-floating .form-control{ background: transparent; }
.dropup{width: 3rem;}
footer form div{width: 60% !important;}

/* ANIMACIONES */
@keyframes go-up-down {
  0%, 100%{transform: translateY(40px);}
  50%{transform: translateY(30px);}
}
@keyframes raise-up {
  from{opacity: 0; transform: translateY(40px);}
  to{opacity: 1; transform: translateY(0);}
}
@keyframes pop-up {
  0%{transform: scale(0);}
  40%{transform: scale(1.2);}
  100%{transform: scale(1);}
}
@keyframes fade-rise {
  from{opacity: 0; transform: translateY(16px) scale(0.97);}
  to{opacity: 1; transform: translateY(0) scale(1);}
}
@keyframes left-to-oright {
  from{ transform: scaleX(1);}
  to{transform: scaleX(0);}
}
@keyframes oleft-to-right {
  from{transform: scaleX(0);}
  to{transform: scaleX(1);}
}
@keyframes move-carrousel-left {
  0% {transform: translateX(0);}
  100% {transform: translateX(-50%);}
}
@keyframes pulse {
  0%,100%{opacity:.8;transform:scale(1)}
  50%{opacity:.3;transform:scale(.6)}
}

/* PSEUDOS */
::selection{
  background: var(--bs-primary);
  color: var(--bs-body-bg);
}
.navbar-nav .nav-link::after{
  content: "";
  position: absolute;
  left: 0;
  bottom: 20%;
  height: 2px;
  width: 100%;
  background: var(--bs-accent);
  z-index: 1;
  transform: scaleX(0);
}
.navbar-nav .nav-link.nav-link-enter::after{
  animation: oleft-to-right 0.3s forwards;
  transform-origin: left;
}
.navbar-nav .nav-link.nav-link-leave::after{
  animation: left-to-oright 0.3s forwards;
  transform-origin: right;
}
.section-flow::before, .section-flow::after,  .btn-whatsapp::after, .btn-x-mark::after{
  content: "";
  position: absolute;
  top: 50%;
  left: 40%;
  width: 150px;
  height: 400px;
  background: radial-gradient(circle, var(--bs-primary-bg-subtle), transparent 70%);
  filter: blur(150px);
  z-index: -1;
}
.section-flow::after{
  top: 15%;
  left: 10%;
  background: radial-gradient(circle, var(--bs-anti-subtle-primary-color), transparent 70%);
}
.section-flow2::before{ top: 55%; left: 10%; }
.section-flow2::after{ top: 25%; left: 40%; }
.section-flow3::before{ height: 200px; top: 15%; left: 30%; }
.section-flow3::after{ height: 200px; top: 50%; left: 10%; }
.trust-card{
  position: relative;
  min-height: 190px;
  border-radius: 22px;
  /* Fondo claro fijo: los degradados no interpolan en transiciones CSS, por eso
     el tema oscuro se resuelve como una capa superpuesta (::before) con opacity. */
  background: linear-gradient(135deg, #0C693E, #019839);
  color: #fff;
  padding: 1.9rem 2.2rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  overflow: hidden;
  box-shadow: 0 16px 40px -18px #00000073;
  transition: transform .3s ease, box-shadow .3s ease;
}
.trust-card:hover{ transform: translateY(-4px); box-shadow: 0 20px 44px -16px #00000080; }
.trust-card::before{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #7e5707, #efa208);
  opacity: 0;
  transition: opacity .5s ease;
  z-index: 0;
}
[data-bs-theme="dark"] .trust-card::before{ opacity: 1; }
.trust-card::after{
  content: "";
  position: absolute;
  bottom: -2.2rem;
  right: -2.2rem;
  width: 170px;
  height: 170px;
  background: rgba(255,255,255,.6);
  -webkit-mask: url('/static/images/favicon.png') no-repeat center / contain;
          mask: url('/static/images/favicon.png') no-repeat center / contain;
  opacity: .18;
  z-index: 0;
}
.trust-card-eyebrow{
  position: relative;
  z-index: 1;
  font-size: .74rem;
  text-transform: uppercase;
  letter-spacing: .12em;
  font-weight: 700;
  opacity: .85;
  margin: 0 0 .45rem;
}
.trust-card-eyebrow::before{
  content: "";
  display: inline-block;
  width: 20px;
  height: 2px;
  margin-right: .5rem;
  vertical-align: middle;
  background: var(--bs-anti-subtle-primary-color);
  transition: background .5s ease;
}
.trust-card-title{
  position: relative;
  z-index: 1;
  font-size: 1.25rem;
  font-weight: 800;
  line-height: 1.3;
  margin: 0;
  max-width: 85%;
}
.btn-whatsapp::after{
  top: 50%;
  left: 50%;
  height: 250%;
  width: 250%;
  opacity: 0;
  transform: translate(-50%, -50%) scale(0.2);
  filter: blur(30px);
  transition: transform 0.3s ease, opacity 0.3s ease;
}
.btn-whatsapp:hover::after{
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
  transition: transform 0.3s ease, opacity 0.3s ease;
}
footer::before{
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 70%;
  height: 100px;
  background: radial-gradient(circle, var(--bs-anti-subtle-primary-color), transparent 70%);
  filter: blur(120px);
  z-index: -1;
}
.icono {
  position: relative;
  display: inline-block;
  cursor: pointer;
}
.icono::after {
  content: attr(data-placeholder);
  font-size: 16px;
  position: absolute;
  bottom: -120%;
  left: 50%;
  transform: translateX(-50%);
  background: var(--bs-secondary);
  color: white;
  padding: 2px 4px;
  border-radius: 5px;
  white-space: nowrap;
  opacity: 0;
  transition: opacity 0.3s;
  pointer-events: none;
}
.icono:hover::after {opacity: 1;}

/* TRANSICIONES */
.head-blur.scrolled{
  background-color: rgba(var(--bs-body-bg-rgb), 0.9) !important;
  /* El fondo ya es 90% opaco, así que un blur pequeño basta: el efecto visual
     es casi idéntico a blur(10px) pero mucho más barato de recomponer en cada scroll. */
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
  box-shadow: 0 0 16px #ffffff77, 0 0 32px #00000061;
  transition: background-color 0.5s ease, backdrop-filter 0.5s ease, box-shadow 0.5s ease;
}
.bi-whatsapp.show, .bi-x-lg.show{
  opacity: 1;
  transform: rotate(0deg) scale(1);
  transition: opacity 0.3s ease, transform 0.3s ease;
}
.list-group-item:hover{
  box-shadow: 0 0 32px #00000033;
  z-index: 999;
}
.focus-img-section .img-header-container{ overflow: hidden; }
.focus-img{ transform: scale(1); transition: transform 1.8s ease-in-out, opacity 1s ease-in-out; }
.focus-img-section:hover .focus-img{ transform: scale(1.2); opacity: 0.2; transition: transform 2s ease-in-out, opacity 1.2s ease-in-out; }
.header-focus-img, .text-focus-img{transform: scale(1); transition: transform 1s ease-in-out;}
.focus-img-section:hover .header-focus-img, .focus-img-section:hover .text-focus-img{transform: scale(1.1); transition: transform 1s ease-in-out;}

/* RESPONSIVE */
@media (min-width: 543px) {
  .highlight{
    display: block;
  }
  .swiper-pagination-bullet-active {
  color: #fff;
  background-color: transparent;
  }
}
@media (max-width: 576px){
  #search1{ width: 80%; }
  .btn-search1{ width: 20%; }
  .philosophy-img{width: 50% !important;}
}
@media (min-width: 577px) {
  .header-text h1{font-size: 3rem;}
  .section-flow::before, .section-flow::after{ width: 200px !important; }
  .service-card{ border-right: 1px solid var(--bs-body-color) !important; }
}
@media (max-width: 767px) {
  .navbar-collapse{
  margin-top: 1rem;
  background-color: rgba(var(--bs-body-bg-rgb), 0.9) !important;
  filter: brightness(60%) !important;
  -webkit-backdrop-filter: blur(4px) !important;
  backdrop-filter: blur(4px) !important;
  box-shadow: 0 0 16px #ffffff77, 0 0 32px #00000061 !important;
  padding: 16px 0 16px 25px;
  }
  .brand-toggle-container{display: flex; justify-content: space-between;}
  .navbar-collapse a{color: var(--bs-body-color) !important;}
  .head-blur.scrolled .navbar-collapse{
  background-color: transparent !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  box-shadow: none !important;
  }
  .nav-footer{border: none !important;}
}
@media (min-width: 768px) {
  header{ padding-right: 3rem !important; padding-left: 3rem !important; }
  .section-flow::before, .section-flow::after{ width: 300px; }
  #whatsappMenu{ width: 40vw; }
  footer form div{width: 80% !important;}
  .history-img{ float: right; }
  #img-mask-2{ float: left !important; }
  .history-img{width: 60% !important;}
  .philosophy-img{width: 50% !important;}
}
@media (min-width: 992px) {
  .section-flow::before, .section-flow::after{ width: 400px; }
  #whatsappMenu{ width: 30vw; }
  footer form div{width: 50% !important;}
  .history-img{width: 45% !important;}
  .philosophy-img{width: 30% !important;}
  .section-flow::before{ top: 50%; left: 75%; }
  .section-flow::after{ top: 15%; left: 20%; }
  .section-flow2::before{ top: 55%; left: 10%; }
  .section-flow2::after{ top: 25%; left: 70%; }
  .section-flow3::before{ height: 200px; top: 15%; left: 60%; }
  .section-flow3::after{ height: 200px; top: 50%; left: 10%; }
}
@media (min-width: 1200px) {
  .section-flow::after{ width: 600px; }
  #whatsappMenu{ width: 25vw; }
  .img-quote{ width: 60% !important; }
  .history-img{width: 40% !important;}
  .trust-card{ padding: 2.2rem 2.4rem; }
  .trust-card-title{ font-size: 1.4rem; }
}
@media (min-width: 1400px) {}
@media (min-height: 560px) {.header-text h1{ font-size: 2.5rem; } #whatsapp-contacts{display: flex; opacity: 1; pointer-events: all;} .hero-section{ height: 50vh; }}
@media (max-height: 559px) { .header-text h1{ font-size: 1.8rem; } }

/* 404 Page */
.num-404 {
  font-family: 'Montserrat', sans-serif;
  font-weight: 900;
  font-size: clamp(5rem, 18vw, 9rem);
  line-height: 1;
  color: var(--bs-primary);
  letter-spacing: -4px;
  position: relative;
  /* dirt-smudge underline */
}
.num-404::after {
  content: '';
  display: block;
  height: 6px;
  border-radius: 3px;
  background: var(--bs-primary);
  opacity: .25;
  margin: .25rem auto 0;
  width: 60%;
}
.body-404{
  padding: 0 10vw;
}
.cta-group {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  justify-content: center;
}
.seed {
  position: absolute;
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  opacity: .12;
  animation: drift linear infinite;
  pointer-events: none;
  z-index: 99;
  top: 5px !important;
}

@keyframes drift {
  from { transform: translateY(99vh) rotate(0deg); }
  to   { transform: translateY(0vh) rotate(360deg); }
}