:root {
  --background: 0 0% 100%;
  --foreground: 200 79% 20%;
  --primary: 200 79% 20%;
  --primary-foreground: 0 0% 100%;
  --secondary: 35 55% 91%;
  --secondary-foreground: 200 79% 20%;
  --accent: 46 67% 47%;
  --accent-foreground: 0 0% 100%;
  --muted: 35 30% 95%;
  --muted-foreground: 200 20% 40%;
  --card: 0 0% 100%;
  --card-foreground: 200 79% 20%;
  --destructive: 0 84% 60%;
  --border: 35 20% 85%;
  --input: 35 20% 85%;
  --ring: 46 67% 47%;
}

.dark {
  --background: 205 74% 10%;
  --foreground: 35 55% 91%;
  --primary: 200 70% 35%;
  --primary-foreground: 0 0% 100%;
  --secondary: 205 50% 15%;
  --secondary-foreground: 35 55% 91%;
  --accent: 46 67% 47%;
  --accent-foreground: 0 0% 100%;
  --muted: 205 40% 20%;
  --muted-foreground: 35 30% 70%;
  --card: 205 60% 12%;
  --card-foreground: 35 55% 91%;
  --destructive: 0 62% 50%;
  --border: 205 40% 25%;
  --input: 205 40% 25%;
  --ring: 46 67% 47%;
}

* {
  border-color: hsl(var(--border))
}

html {
  scroll-behavior: smooth
}

body {
  font-family: 'Lato', sans-serif;
  line-height: 1.625;
  letter-spacing: -.01em;
  overflow-x: clip;
  transition: background-color .3s ease, color .3s ease;
  background: hsl(var(--background));
  color: hsl(var(--foreground))
}

h1,
h2,
h3,
h4,
h5,
h6 {
  text-wrap: balance
}

.bg-background {
  background-color: hsl(var(--background))
}

.text-foreground {
  color: hsl(var(--foreground))
}

.bg-primary {
  background-color: hsl(var(--primary))
}

.text-primary-foreground {
  color: hsl(var(--primary-foreground))
}

.bg-secondary {
  background-color: hsl(var(--secondary))
}

.bg-accent {
  background-color: hsl(var(--accent))
}

.text-accent {
  color: hsl(var(--accent))
}

.text-accent-foreground {
  color: hsl(var(--accent-foreground))
}

.bg-muted\/30 {
  background-color: hsl(var(--muted)/.3)
}

.bg-muted {
  background-color: hsl(var(--muted))
}

.text-muted-foreground {
  color: hsl(var(--muted-foreground))
}

.bg-card {
  background-color: hsl(var(--card))
}

.bg-card\/50 {
  background-color: hsl(var(--card)/.5)
}

.text-card-foreground {
  color: hsl(var(--card-foreground))
}

.border-border {
  border-color: hsl(var(--border))
}

.border-accent {
  border-color: hsl(var(--accent))
}

.text-destructive {
  color: hsl(var(--destructive))
}

.from-primary\/5 {
  --tw-gradient-from: hsl(var(--primary)/.05) var(--tw-gradient-from-position);
  --tw-gradient-to: hsl(var(--primary)/0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)
}

.via-background {
  --tw-gradient-to: hsl(var(--background)/0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), hsl(var(--background)) var(--tw-gradient-via-position), var(--tw-gradient-to)
}

.to-secondary\/10 {
  --tw-gradient-to: hsl(var(--secondary)/.1) var(--tw-gradient-to-position)
}

.hover\:bg-accent\/90:hover {
  background-color: hsl(var(--accent)/.9)
}

.hover\:bg-accent\/10:hover {
  background-color: hsl(var(--accent)/.1)
}

.bg-accent\/10 {
  background-color: hsl(var(--accent)/.1)
}

.bg-accent\/20 {
  background-color: hsl(var(--accent)/.2)
}

.bg-accent\/5 {
  background-color: hsl(var(--accent)/.05)
}

.border-accent\/20 {
  border-color: hsl(var(--accent)/.2)
}

.hover\:border-accent\/40:hover {
  border-color: hsl(var(--accent)/.4)
}

.text-primary-foreground\/90 {
  color: hsl(var(--primary-foreground)/.9)
}

.text-primary-foreground\/80,
.footer-link {
  color: hsl(var(--primary-foreground)/.8)
}

.text-primary-foreground\/60 {
  color: hsl(var(--primary-foreground)/.6)
}

.border-primary-foreground\/20 {
  border-color: hsl(var(--primary-foreground)/.2)
}

.bg-primary-foreground\/10 {
  background-color: hsl(var(--primary-foreground)/.1)
}

.hover\:text-primary-foreground:hover {
  color: hsl(var(--primary-foreground))
}

.text-muted-foreground\/80 {
  color: hsl(var(--muted-foreground)/.8)
}

.text-muted-foreground\/60 {
  color: hsl(var(--muted-foreground)/.6)
}

#siteHeader.scrolled {
  background-color: hsl(var(--background)/.8);
  backdrop-filter: blur(16px);
  box-shadow: 0 4px 18px rgba(0, 0, 0, .08)
}

#mobileMenu.open {
  max-height: 460px;
  opacity: 1
}

.form-input {
  width: 100%;
  border: 1px solid hsl(var(--input));
  border-radius: .5rem;
  background: hsl(var(--background));
  color: hsl(var(--foreground));
  min-height: 2.5rem;
  padding: .5rem .75rem;
  outline: none;
  transition: border-color .2s, box-shadow .2s
}

.form-input::placeholder {
  color: hsl(var(--muted-foreground))
}

.form-input:focus {
  border-color: hsl(var(--ring));
  box-shadow: 0 0 0 2px hsl(var(--ring)/.18)
}

textarea.form-input {
  min-height: 110px
}

.error-message {
  font-size: .875rem;
  color: hsl(var(--destructive));
  min-height: 1.2em
}

.contact-icon {
  width: 3rem;
  height: 3rem;
  border-radius: .5rem;
  background: hsl(var(--accent)/.1);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0
}

.social {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 9999px;
  background: hsl(var(--primary-foreground)/.1);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all .2s
}

.social:hover {
  background: hsl(var(--accent))
}

.footer-link {
  transition: color .2s
}

.footer-link:hover {
  color: hsl(var(--primary-foreground))
}

.reveal-up,
.reveal-left,
.reveal-right,
.mini-card,
.value-card,
.whatsapp-float {
  opacity: 0;
  will-change: transform, opacity
}

.reveal-up {
  transform: translateY(20px)
}

.reveal-left {
  transform: translateX(-20px)
}

.reveal-right {
  transform: translateX(20px)
}

.mini-card,
.value-card {
  transform: translateY(20px)
}

.is-visible {
  opacity: 1 !important;
  transform: translate(0, 0) !important;
  transition: opacity .55s ease, transform .55s ease
}

.delay-200 {
  transition-delay: .2s
}

.mini-card:nth-child(1) {
  transition-delay: .8s
}

.mini-card:nth-child(2) {
  transition-delay: .9s
}

.mini-card:nth-child(3) {
  transition-delay: 1s
}

.mini-card:nth-child(4) {
  transition-delay: 1.1s
}

.value-card:nth-child(1) {
  transition-delay: .1s
}

.value-card:nth-child(2) {
  transition-delay: .2s
}

.value-card:nth-child(3) {
  transition-delay: .3s
}

.value-card:nth-child(4) {
  transition-delay: .4s
}

.whatsapp-float {
  animation: waIn .3s ease 1s forwards
}

.pulse-icon {
  animation: pulseScale 2s ease-in-out infinite alternate
}

@keyframes waIn {
  from {
    opacity: 0;
    transform: scale(0)
  }

  to {
    opacity: 1;
    transform: scale(1)
  }
}

@keyframes pulseScale {
  from {
    transform: scale(1)
  }

  to {
    transform: scale(1.1)
  }
}

.experience-card,
.service-card {
  opacity: 0;
  transform: translateY(20px)
}

.experience-card.is-visible,
.service-card.is-visible {
  opacity: 1;
  transform: translateY(0);
  transition: opacity .55s ease, transform .55s ease
}

.experience-card:hover,
.service-card:hover {
  transform: translateY(-.25rem) !important
}

.group:hover .group-hover\:scale-110 {
  transform: scale(1.10)
}

.group\/link:hover .group-hover\/link\:translate-x-1 {
  transform: translateX(.25rem)
}

@media (prefers-reduced-motion:reduce) {

  *,
  ::before,
  ::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important
  }

  .reveal-up,
  .reveal-left,
  .reveal-right,
  .mini-card,
  .value-card,
  .experience-card,
  .service-card {
    opacity: 1;
    transform: none
  }
}

.logo-shadow {
  filter: drop-shadow(0 0 8px rgb(255, 255, 255)) drop-shadow(0 0 15px rgb(255, 255, 255));
}