@keyframes ticker {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
@keyframes pulse-slow {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.06); }
}
@keyframes slide-in {
  from { transform: translateX(100%); opacity: 0; }
  to { transform: translateX(0); opacity: 1; }
}
@keyframes fade-up {
  from { transform: translateY(30px); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}
@keyframes float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}
@keyframes scale-in {
  from { transform: scale(0.92); opacity: 0; }
  to { transform: scale(1); opacity: 1; }
}

.marquee { animation: ticker 25s linear infinite; }
.pulse-slow { animation: pulse-slow 3s ease-in-out infinite; }
.animate-slide-in { animation: slide-in 0.35s ease-out; }
.animate-fade-up { animation: fade-up 0.7s cubic-bezier(0.22, 1, 0.36, 1) both; }
.animate-float { animation: float 4s ease-in-out infinite; }
.animate-scale-in { animation: scale-in 0.5s cubic-bezier(0.22, 1, 0.36, 1) both; }

.stagger-1 { animation-delay: 100ms; }
.stagger-2 { animation-delay: 200ms; }
.stagger-3 { animation-delay: 300ms; }
.stagger-4 { animation-delay: 400ms; }

.coco-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
  padding: 1rem 2rem; background: #C4956A; color: white; font-weight: 600; font-size: 1rem;
  border-radius: 0.75rem; cursor: pointer; user-select: none; border: none;
  transition: all 0.3s;
}
.coco-btn:hover { background: #b8875e; box-shadow: 0 20px 25px -5px rgba(196,149,106,0.25); transform: translateY(-1px); }
.coco-btn:active { transform: scale(0.97); }

.coco-btn-outline {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
  padding: 1rem 2rem; border: 2px solid #C4956A; color: #C4956A; font-weight: 600; font-size: 1rem;
  border-radius: 0.75rem; cursor: pointer; background: transparent; transition: all 0.3s;
}
.coco-btn-outline:hover { background: #C4956A; color: white; box-shadow: 0 20px 25px -5px rgba(196,149,106,0.25); }

.coco-btn-white {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
  padding: 1rem 2rem; background: white; color: #C4956A; font-weight: 600; font-size: 1rem;
  border-radius: 0.75rem; cursor: pointer; border: none; transition: all 0.3s;
}
.coco-btn-white:hover { background: #F5F0EB; box-shadow: 0 20px 25px -5px rgba(0,0,0,0.08); }

.coco-btn-ghost {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
  padding: 1rem 2rem; color: white; font-weight: 600; font-size: 1rem;
  border-radius: 0.75rem; border: 2px solid rgba(255,255,255,0.3); background: rgba(255,255,255,0.06);
  backdrop-filter: blur(4px); cursor: pointer; transition: all 0.3s;
}
.coco-btn-ghost:hover { background: rgba(255,255,255,0.15); }

.coco-card {
  background: white; border-radius: 1.5rem; padding: 1.5rem; box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}
.coco-card-lift {
  background: white; border-radius: 1.5rem; padding: 1.5rem; box-shadow: 0 1px 3px rgba(0,0,0,0.06);
  transition: all 0.5s;
}
.coco-card-lift:hover { box-shadow: 0 25px 50px -12px rgba(0,0,0,0.12); transform: translateY(-8px); }

.coco-section { max-width: 80rem; margin: 0 auto; padding: 5rem 1.25rem; }
@media (min-width: 768px) { .coco-section { padding: 7rem 2rem; } }

.coco-big { font-family: "Playfair Display", Georgia, serif; font-weight: 700; font-size: 2rem; line-height: 1.05; color: #2C2C2C; }
@media (min-width: 640px) { .coco-big { font-size: 3rem; } }
@media (min-width: 768px) { .coco-big { font-size: 3.75rem; } }

.coco-h1 { font-family: "Playfair Display", Georgia, serif; font-weight: 700; font-size: 32px; line-height: 1.05; color: #2C2C2C; }
@media (min-width: 640px) { .coco-h1 { font-size: 3rem; } }
@media (min-width: 768px) { .coco-h1 { font-size: 3.75rem; } }

.coco-h2 { font-family: "Playfair Display", Georgia, serif; font-weight: 600; font-size: 26px; line-height: 1.12; color: #2C2C2C; }
@media (min-width: 768px) { .coco-h2 { font-size: 2.5rem; } }

.coco-badge {
  display: inline-flex; align-items: center; gap: 0.375rem; padding: 0.375rem 0.75rem;
  background: rgba(107,142,107,0.1); color: #6B8E6B; font-size: 11px; font-weight: 600;
  text-transform: uppercase; letter-spacing: 0.05em; border-radius: 0.5rem;
}
.coco-badge-terra {
  display: inline-flex; align-items: center; gap: 0.375rem; padding: 0.375rem 0.75rem;
  background: rgba(196,149,106,0.1); color: #C4956A; font-size: 11px; font-weight: 600;
  text-transform: uppercase; letter-spacing: 0.05em; border-radius: 0.5rem;
}
.coco-subtitle { color: #8B7355; font-size: 1rem; max-width: 42rem; margin: 0 auto; line-height: 1.625; }

html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; }
body { overflow-x: hidden; }
::selection { background: rgba(196,149,106,0.2); color: #2C2C2C; }

details summary { cursor: pointer; list-style: none; }
details summary::-webkit-details-marker { display: none; }

.img-hover-zoom { overflow: hidden; }
.img-hover-zoom img { transition: transform 0.7s ease-out; }
.img-hover-zoom:hover img { transform: scale(1.05); }

.wave-divider { position: relative; }
.wave-divider::after {
  content: '';
  position: absolute; bottom: -1px; left: 0; right: 0; height: 60px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60'%3E%3Cpath fill='%23F5F0EB' d='M0,30 C360,60 720,0 1080,30 C1260,45 1380,30 1440,30 L1440,60 L0,60 Z'/%3E%3C/svg%3E") no-repeat center;
  background-size: cover;
}

input:focus, textarea:focus, select:focus {
  outline: none; border-color: #C4956A;
  box-shadow: 0 0 0 3px rgba(196,149,106,0.12);
}

.scroll-reveal { opacity: 0; transform: translate3d(0, 40px, 0); transition: opacity 700ms ease, transform 700ms ease; }
.scroll-reveal.is-visible { opacity: 1; transform: translate3d(0, 0, 0); }
