/* ═══════════════════════════════════════════════════════════════
   CONTACTO.CSS — VILLA CUTUPU
   ★ ULTRA ANIMATION OVERLOAD EDITION ★
   60+ keyframes · Cada elemento vive · Todo en movimiento
   Prefijo cont- | Sin tildes | Sin .anim | ASCII puro
═══════════════════════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,700;0,800;0,900;1,700;1,800&family=DM+Sans:wght@300;400;500;600;700&display=swap');

:root {
    --cont-verde-dark: #2D5016;
    --cont-verde-mid: #3D6B20;
    --cont-verde-light: #5A8C35;
    --cont-verde-soft: #8BB55F;
    --cont-verde-xlight: #EAF2DC;
    --cont-gold: #C8960C;
    --cont-gold-light: #F5DFA0;
    --cont-cream: #FBF7F0;
    --cont-dark: #1A2410;
    --cont-gray: #6B7280;
    --cont-white: #FFFFFF;
    --cont-bg: #FAFAFA;
    --cont-red: #dc2626;
    --cont-ease-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);
    --cont-ease-elastic: cubic-bezier(0.2, 0.9, 0.4, 1.1);
    --cont-ease-smooth: cubic-bezier(0.4, 0, 0.2, 1);
}

/* ═══════════════════════════════════════════════════════════════
   ★★★  60+ KEYFRAMES — SUITE COMPLETA  ★★★
═══════════════════════════════════════════════════════════════ */

@keyframes cont-float { 0%,100% { transform: translateY(0px) rotate(0deg); } 25% { transform: translateY(-22px) rotate(2.5deg); } 50% { transform: translateY(-10px) rotate(-1.5deg); } 75% { transform: translateY(-26px) rotate(2deg); } 100% { transform: translateY(0px) rotate(0deg); } }
@keyframes cont-float-b { 0%,100% { transform: translateY(0) translateX(0); } 30% { transform: translateY(-30px) translateX(10px) rotate(-3deg); } 60% { transform: translateY(-12px) translateX(-8px) rotate(2deg); } 100% { transform: translateY(0) translateX(0); } }
@keyframes cont-float-c { 0%,100% { transform: translateY(0) translateX(0) scale(1); } 40% { transform: translateY(-18px) translateX(-12px) scale(1.08); } 80% { transform: translateY(-8px) translateX(6px) scale(0.95); } 100% { transform: translateY(0) translateX(0) scale(1); } }
@keyframes cont-float-slow { 0%,100% { transform: translateY(0px); } 50% { transform: translateY(-35px); } }
@keyframes cont-hero-fade-up { from { opacity: 0; transform: translateY(42px); } to { opacity: 1; transform: translateY(0); } }
@keyframes cont-hero-fade-left { from { opacity: 0; transform: translateX(-60px); } to { opacity: 1; transform: translateX(0); } }
@keyframes cont-hero-fade-right { from { opacity: 0; transform: translateX(60px); } to { opacity: 1; transform: translateX(0); } }
@keyframes cont-line-expand { from { width: 0; opacity: 0; } to { width: 100px; opacity: 1; } }
@keyframes cont-underline-grow { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes cont-shimmer { 0% { background-position: -300% center; } 100% { background-position: 300% center; } }
@keyframes cont-glow { 0%,100% { text-shadow: 0 0 20px rgba(200,150,12,0.25), 0 0 40px rgba(200,150,12,0.1); } 50% { text-shadow: 0 0 50px rgba(200,150,12,0.8), 0 0 100px rgba(200,150,12,0.35); } }
@keyframes cont-icon-glow { 0%,100% { box-shadow: 0 0 0 0 rgba(45,80,22,0); } 50% { box-shadow: 0 0 0 12px rgba(45,80,22,0.12), 0 8px 24px rgba(45,80,22,0.2); } }
@keyframes cont-pulse-green { 0%,100% { box-shadow: 0 0 0 0 rgba(45,80,22,0.55); } 50% { box-shadow: 0 0 0 18px rgba(45,80,22,0); } }
@keyframes cont-pulse-gold { 0%,100% { box-shadow: 0 0 0 0 rgba(200,150,12,0.55); } 50% { box-shadow: 0 0 0 18px rgba(200,150,12,0); } }
@keyframes cont-bounce-subtle { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
@keyframes cont-ripple { 0% { transform: scale(0.6); opacity: 0.8; } 100% { transform: scale(4); opacity: 0; } }
@keyframes cont-spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
@keyframes cont-spin-slow { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
@keyframes cont-morph { 0%,100% { border-radius: 18px; } 25% { border-radius: 32px 12px 26px 14px; } 50% { border-radius: 14px 30px 12px 28px; } 75% { border-radius: 26px 14px 30px 12px; } }
@keyframes cont-wobble { 0%,100% { transform: rotate(0deg); } 20% { transform: rotate(-5deg); } 40% { transform: rotate(5deg); } 60% { transform: rotate(-3deg); } 80% { transform: rotate(3deg); } }
@keyframes cont-wobble-icon { 0%,100% { transform: rotate(0deg) scale(1); } 25% { transform: rotate(-8deg) scale(1.1); } 75% { transform: rotate(8deg) scale(1.1); } }
@keyframes cont-dot-drift { 0% { background-position: 0 0; } 100% { background-position: 70px 70px; } }
@keyframes cont-dot-drift-rev { 0% { background-position: 70px 70px; } 100% { background-position: 0 0; } }
@keyframes cont-bg-shift { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } }
@keyframes cont-scanline { 0% { top: -8%; opacity: 0; } 5% { opacity: 0.35; } 92% { opacity: 0.35; } 100% { top: 108%; opacity: 0; } }
@keyframes cont-aurora { 0% { transform: translateX(-50%) scaleX(0.7) scaleY(0.8); opacity: 0.4; } 33% { transform: translateX(-30%) scaleX(1.2) scaleY(1.1); opacity: 0.6; } 66% { transform: translateX(-70%) scaleX(0.9) scaleY(0.9); opacity: 0.3; } 100% { transform: translateX(-50%) scaleX(0.7) scaleY(0.8); opacity: 0.4; } }
@keyframes cont-radial-breathe { 0%,100% { opacity: 0.35; transform: scale(1); } 50% { opacity: 0.7; transform: scale(1.15); } }
@keyframes cont-btn-wave { 0% { left: -120%; } 100% { left: 220%; } }
@keyframes cont-card-reveal { from { opacity: 0; transform: translateY(50px) scale(0.95); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes cont-left-line-flow { 0% { background-position: 0% 0%; } 50% { background-position: 0% 100%; } 100% { background-position: 0% 0%; } }
@keyframes cont-input-focus { 0% { width: 0; opacity: 0; } 100% { width: 100%; opacity: 1; } }
@keyframes cont-submit-pulse { 0%,100% { transform: scale(1); } 50% { transform: scale(1.02); box-shadow: 0 0 0 8px rgba(45,80,22,0.2); } }
@keyframes cont-social-pulse { 0%,100% { transform: scale(1); } 50% { transform: scale(1.05); box-shadow: 0 0 0 6px rgba(200,150,12,0.3); } }
@keyframes cont-card-shine { 0% { left: -100%; } 100% { left: 200%; } }
@keyframes cont-cta-glow { 0%,100% { box-shadow: 0 0 0 0 rgba(255,255,255,0.4); } 50% { box-shadow: 0 0 0 25px rgba(255,255,255,0); } }
@keyframes cont-text-shine { 0% { background-position: -200% center; } 100% { background-position: 200% center; } }
@keyframes cont-map-pulse { 0%,100% { box-shadow: 0 0 0 0 rgba(200,150,12,0.3); } 50% { box-shadow: 0 0 0 20px rgba(200,150,12,0); } }

/* ═══════════════════════════════════════════════════════════════
   INTERSECTION OBSERVER
═══════════════════════════════════════════════════════════════ */
.cont-observe { opacity: 0; transform: translateY(40px); transition: opacity 0.7s var(--cont-ease-smooth), transform 0.7s var(--cont-ease-elastic); }
.cont-observe.cont-visible { opacity: 1; transform: translateY(0); }

/* ═══════════════════════════════════════════════════════════════
   SECCION 1 — HERO DRAMATICO
═══════════════════════════════════════════════════════════════ */
section.cont-hero {
    position: relative !important; padding: 7rem 0 9rem !important;
    background: radial-gradient(ellipse at 78% 12%, rgba(200,150,12,0.12) 0%, transparent 48%),
                radial-gradient(ellipse at 12% 88%, rgba(90,140,53,0.16) 0%, transparent 48%),
                radial-gradient(rgba(255,255,255,0.05) 1px, transparent 1px),
                linear-gradient(135deg, #0E1608 0%, #1A2410 45%, #0E1608 100%) !important;
    background-size: auto, auto, 35px 35px, 100% !important;
    overflow: hidden !important;
    animation: cont-dot-drift 16s linear infinite, cont-bg-shift 12s ease-in-out infinite;
}
section.cont-hero::before {
    content: ''; position: absolute; left: 0; right: 0; height: 2px;
    background: linear-gradient(90deg, transparent 0%, rgba(200,150,12,0.6) 50%, transparent 100%);
    animation: cont-scanline 8s ease-in-out infinite; pointer-events: none; z-index: 5;
}
section.cont-hero::after {
    content: ''; position: absolute; bottom: -40px; left: 50%; width: 90%; height: 200px;
    background: radial-gradient(ellipse at center, rgba(90,140,53,0.15) 0%, transparent 70%);
    pointer-events: none; animation: cont-aurora 10s ease-in-out infinite; z-index: 1;
}
.cont-hero-left-line {
    position: absolute; top: 0; left: 0; width: 6px; height: 100%;
    background: linear-gradient(180deg, var(--cont-gold) 0%, var(--cont-verde-mid) 60%, transparent 100%);
    background-size: 100% 300%; z-index: 3;
    animation: cont-left-line-flow 4s ease-in-out infinite;
}
.cont-hero-container { position: relative; z-index: 3; max-width: 1280px; margin: 0 auto; padding: 0 2rem; }
.cont-hero-content { text-align: center; max-width: 850px; margin: 0 auto; }
.cont-hero-eyebrow {
    display: inline-block; background: rgba(200,150,12,0.16); border: 1px solid rgba(200,150,12,0.5);
    color: var(--cont-gold-light); font-family: 'DM Sans', sans-serif; font-size: 0.71rem; font-weight: 700;
    letter-spacing: 0.18em; padding: 0.45rem 1.3rem; border-radius: 3rem; margin-bottom: 2rem;
    backdrop-filter: blur(10px); opacity: 0;
    animation: cont-hero-fade-up 0.55s var(--cont-ease-smooth) 0.2s forwards, cont-pulse-gold 3s ease-in-out 2s infinite;
}
.cont-hero-title {
    font-family: 'Playfair Display', Georgia, serif !important; font-weight: 900 !important;
    font-size: clamp(2.8rem, 6vw, 5rem) !important; line-height: 1.06 !important;
    color: var(--cont-white) !important; margin: 0 0 1.4rem 0 !important; opacity: 0;
    animation: cont-hero-fade-up 0.65s var(--cont-ease-smooth) 0.4s forwards;
}
.cont-hero-accent {
    color: var(--cont-gold) !important; font-style: italic; position: relative; display: inline-block;
    background: linear-gradient(135deg, var(--cont-gold), var(--cont-gold-light), var(--cont-gold));
    background-size: 200% auto; -webkit-background-clip: text; background-clip: text; color: transparent !important;
    animation: cont-text-shine 4s linear infinite, cont-glow 3.5s ease-in-out 2s infinite;
}
.cont-hero-accent::after {
    content: ''; position: absolute; bottom: -7px; left: 0; height: 3px; width: 100%;
    background: linear-gradient(90deg, var(--cont-gold), var(--cont-gold-light), var(--cont-gold));
    background-size: 300% auto; border-radius: 2px; transform: scaleX(0); transform-origin: left;
    animation: cont-underline-grow 0.9s var(--cont-ease-bounce) 1.1s forwards, cont-shimmer 4s linear 2.5s infinite;
}
.cont-hero-line {
    width: 0; height: 3px; background: linear-gradient(90deg, transparent, var(--cont-gold), var(--cont-gold-light), var(--cont-gold), transparent);
    background-size: 200% auto; border-radius: 2px; margin: 0 auto 1.6rem; opacity: 0;
    animation: cont-line-expand 0.9s var(--cont-ease-smooth) 0.65s forwards, cont-shimmer 3s linear 2s infinite;
}
.cont-hero-subtitle {
    font-family: 'DM Sans', sans-serif !important; font-size: 1.1rem !important;
    color: rgba(255,255,255,0.78) !important; margin-bottom: 2.5rem !important; opacity: 0;
    animation: cont-hero-fade-up 0.65s var(--cont-ease-smooth) 0.8s forwards;
}
.cont-hero-stats {
    display: flex; justify-content: center; gap: 1.2rem; flex-wrap: wrap; opacity: 0;
    animation: cont-hero-fade-up 0.65s var(--cont-ease-smooth) 1s forwards;
}
.cont-hero-stat {
    font-family: 'DM Sans', sans-serif; font-size: 0.85rem; font-weight: 600; color: rgba(255,255,255,0.9);
    padding: 0.65rem 1.4rem; background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.15);
    border-radius: 3rem; backdrop-filter: blur(12px); transition: all 0.4s var(--cont-ease-bounce);
    position: relative; overflow: hidden;
}
.cont-hero-stat::before {
    content: ''; position: absolute; top: 0; left: -100%; width: 50%; height: 100%;
    background: linear-gradient(90deg, transparent, rgba(200,150,12,0.2), transparent); transform: skewX(-12deg);
}
.cont-hero-stat:hover {
    background: rgba(200,150,12,0.25); border-color: var(--cont-gold); color: var(--cont-gold-light);
    transform: translateY(-5px) scale(1.04); box-shadow: 0 15px 35px rgba(200,150,12,0.3);
}
.cont-hero-stat:hover::before { animation: cont-gold-sweep 0.5s ease forwards; }
.cont-particle {
    position: absolute; border-radius: 50%; pointer-events: none; z-index: 1;
    animation: cont-float 6s ease-in-out infinite, cont-radial-breathe 8s ease-in-out infinite;
}
.cont-particle-1 { width: 300px; height: 300px; background: radial-gradient(circle, rgba(90,140,53,0.12) 0%, transparent 70%); top: -100px; right: 5%; animation-duration: 10s; }
.cont-particle-2 { width: 200px; height: 200px; background: radial-gradient(circle, rgba(200,150,12,0.1) 0%, transparent 70%); bottom: 5%; left: 3%; animation-duration: 13s; animation-direction: reverse; }
.cont-particle-3 { width: 150px; height: 150px; background: radial-gradient(circle, rgba(255,255,255,0.05) 0%, transparent 70%); top: 30%; right: 2%; animation-duration: 8s; animation-delay: 1s; }

/* ═══════════════════════════════════════════════════════════════
   OFICINAS DE ATENCION
═══════════════════════════════════════════════════════════════ */
.cont-oficinas { padding: 5rem 0; background: var(--cont-white); }
.container { max-width: 1280px; margin: 0 auto; padding: 0 2rem; }
.cont-section-eyebrow {
    display: inline-block; background: linear-gradient(135deg, var(--cont-verde-xlight), #d4e6c0);
    color: var(--cont-verde-dark); font-family: 'DM Sans', sans-serif; font-size: 0.72rem; font-weight: 700;
    letter-spacing: 0.1em; padding: 0.4rem 1.2rem; border-radius: 3rem; margin-bottom: 1rem;
}
.cont-section-title {
    font-family: 'Playfair Display', Georgia, serif; font-size: clamp(1.8rem, 4vw, 2.5rem);
    font-weight: 800; color: var(--cont-dark); margin-bottom: 1rem;
}
.cont-title-accent { color: var(--cont-gold); position: relative; display: inline-block; animation: cont-wobble 4s ease-in-out infinite; }
.cont-section-subtitle { color: var(--cont-gray); text-align: center; margin-bottom: 3rem; }
.cont-oficinas-grid {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem;
}
.cont-oficina-card {
    background: linear-gradient(135deg, var(--cont-cream), var(--cont-white));
    border-radius: 1.5rem; padding: 2rem; text-align: center; position: relative; overflow: hidden;
    transition: all 0.4s var(--cont-ease-bounce); border: 1px solid #E5E7EB; cursor: default;
}
.cont-oficina-card:hover { transform: translateY(-10px); box-shadow: 0 25px 50px rgba(0,0,0,0.12); border-color: var(--cont-gold); }
.cont-oficina-icon { font-size: 3rem; margin-bottom: 1rem; display: inline-block; transition: all 0.3s ease; animation: cont-bounce-subtle 4s ease-in-out infinite; }
.cont-oficina-card:hover .cont-oficina-icon { animation: cont-wobble-icon 0.5s ease, cont-spin-slow 3s linear infinite; }
.cont-oficina-card h3 { font-size: 1.2rem; font-weight: 700; color: var(--cont-verde-dark); margin-bottom: 0.8rem; }
.cont-oficina-card p { font-size: 0.85rem; color: var(--cont-gray); line-height: 1.6; }
.cont-card-shine {
    position: absolute; top: 0; left: -100%; width: 60%; height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);
    transform: skewX(-15deg); pointer-events: none;
}
.cont-oficina-card:hover .cont-card-shine { animation: cont-card-shine 0.8s ease forwards; }

/* ═══════════════════════════════════════════════════════════════
   MAIN CONTAINER (INFO + FORMULARIO)
═══════════════════════════════════════════════════════════════ */
.cont-main-wrapper { background: var(--cont-bg); padding: 5rem 0; }
.cont-main-container { display: flex; gap: 3rem; }
.cont-info-section { flex: 1; background: var(--cont-white); border-radius: 1.5rem; padding: 2rem; box-shadow: 0 4px 20px rgba(0,0,0,0.05); }
.cont-form-section { flex: 1; background: var(--cont-white); border-radius: 1.5rem; padding: 2rem; box-shadow: 0 4px 20px rgba(0,0,0,0.05); }
.cont-info-header { margin-bottom: 2rem; }
.cont-info-title { font-size: 1.3rem; font-weight: 700; color: var(--cont-dark); margin-top: 0.5rem; }
.cont-info-grid { display: flex; flex-direction: column; gap: 1.5rem; margin-bottom: 2rem; }
.cont-info-item { display: flex; gap: 1.2rem; align-items: flex-start; transition: all 0.3s ease; padding: 0.5rem; border-radius: 1rem; }
.cont-info-item:hover { background: var(--cont-verde-xlight); transform: translateX(8px); }
.cont-info-icon { font-size: 2rem; background: var(--cont-verde-xlight); width: 55px; height: 55px; display: flex; align-items: center; justify-content: center; border-radius: 1rem; transition: all 0.3s ease; }
.cont-info-item:hover .cont-info-icon { background: var(--cont-verde-dark); transform: scale(1.1) rotate(-5deg); }
.cont-info-icon { color: var(--cont-verde-dark); }
.cont-info-item:hover .cont-info-icon { color: var(--cont-white); }
.cont-info-content h3 { font-size: 1rem; font-weight: 700; margin-bottom: 0.3rem; }
.cont-info-content p { font-size: 0.85rem; color: var(--cont-gray); line-height: 1.5; }
.cont-info-content a { color: var(--cont-verde-dark); text-decoration: none; transition: color 0.3s; }
.cont-info-content a:hover { color: var(--cont-gold); }
.cont-social-links { display: flex; gap: 1rem; justify-content: center; margin-top: 2rem; }
.cont-social-pill {
    display: inline-flex; align-items: center; gap: 0.5rem; background: var(--cont-verde-xlight);
    color: var(--cont-verde-dark); padding: 0.6rem 1.2rem; border-radius: 3rem; text-decoration: none;
    font-weight: 600; transition: all 0.3s var(--cont-ease-bounce); font-size: 0.85rem;
}
.cont-social-pill:hover { background: var(--cont-verde-dark); color: var(--cont-white); transform: translateY(-3px) scale(1.05); animation: cont-social-pulse 0.5s ease; }

/* FORMULARIO */
.cont-form-header { margin-bottom: 2rem; }
.cont-form-title { font-size: 1.3rem; font-weight: 700; color: var(--cont-dark); margin-top: 0.5rem; }
.cont-form { display: flex; flex-wrap: wrap; gap: 1.2rem; }
.cont-form-group { flex: 1 1 calc(50% - 0.6rem); position: relative; margin-bottom: 0.5rem; }
.cont-form-full { flex: 1 1 100%; }
.cont-form-group label { display: block; font-size: 0.8rem; font-weight: 600; margin-bottom: 0.4rem; color: var(--cont-dark); }
.cont-form-group input, .cont-form-group textarea {
    width: 100%; padding: 0.8rem 1rem; border: 1px solid #E5E7EB; border-radius: 0.75rem;
    font-family: 'DM Sans', sans-serif; font-size: 0.85rem; transition: all 0.3s ease;
    background: var(--cont-white);
}
.cont-form-group input:focus, .cont-form-group textarea:focus {
    outline: none; border-color: var(--cont-gold); box-shadow: 0 0 0 3px rgba(200,150,12,0.1);
}
.cont-focus-border {
    position: absolute; bottom: 0; left: 0; width: 0; height: 2px; background: linear-gradient(90deg, var(--cont-verde-dark), var(--cont-gold));
    transition: width 0.3s ease;
}
.cont-form-group input:focus ~ .cont-focus-border,
.cont-form-group textarea:focus ~ .cont-focus-border { width: 100%; animation: cont-input-focus 0.3s ease; }
.cont-submit-btn {
    width: 100%; padding: 1rem; background: linear-gradient(135deg, var(--cont-verde-dark), var(--cont-verde-mid));
    color: white; border: none; border-radius: 3rem; font-size: 1rem; font-weight: 700;
    cursor: pointer; transition: all 0.4s var(--cont-ease-bounce); display: flex; align-items: center;
    justify-content: center; gap: 0.6rem;
}
.cont-submit-btn:hover { transform: translateY(-3px); gap: 0.9rem; box-shadow: 0 15px 30px rgba(45,80,22,0.3); animation: cont-submit-pulse 0.5s ease; }
.cont-btn-arrow { transition: transform 0.3s ease; }
.cont-submit-btn:hover .cont-btn-arrow { transform: translateX(6px); }

/* ═══════════════════════════════════════════════════════════════
   MAPA
═══════════════════════════════════════════════════════════════ */
.cont-mapa { padding: 5rem 0; background: var(--cont-white); }
.cont-mapa-header { text-align: center; margin-bottom: 2rem; }
.cont-mapa-wrapper { position: relative; border-radius: 1.5rem; overflow: hidden; box-shadow: 0 20px 40px rgba(0,0,0,0.1); transition: all 0.4s ease; animation: cont-map-pulse 3s ease-in-out infinite; }
.cont-mapa-wrapper:hover { transform: translateY(-5px); box-shadow: 0 30px 60px rgba(0,0,0,0.15); }
.cont-mapa-container iframe { width: 100%; height: 400px; border: none; display: block; }
.cont-mapa-overlay {
    position: absolute; inset: 0; background: linear-gradient(135deg, transparent, rgba(45,80,22,0.1));
    pointer-events: none;
}

/* ═══════════════════════════════════════════════════════════════
   CTA FINAL
═══════════════════════════════════════════════════════════════ */
.cont-cta {
    padding: 5rem 0; background: linear-gradient(135deg, #0E1608, var(--cont-verde-dark), #1A3A0A);
    background-size: 300% 300%; text-align: center; overflow: hidden; position: relative;
    animation: cont-bg-shift 10s ease-in-out infinite;
}
.cont-cta::before {
    content: ''; position: absolute; inset: 0; background-image: radial-gradient(rgba(255,255,255,0.05) 1px, transparent 1px);
    background-size: 30px 30px; pointer-events: none; animation: cont-dot-drift 20s linear infinite;
}
.cont-cta::after {
    content: ''; position: absolute; top: -120px; right: -120px; width: 400px; height: 400px;
    background: radial-gradient(circle, rgba(200,150,12,0.12), transparent 70%); animation: cont-float-slow 12s ease-in-out infinite;
}
.cont-cta-content { position: relative; z-index: 2; max-width: 700px; margin: 0 auto; }
.cont-cta-eyebrow {
    display: inline-block; font-family: 'DM Sans', sans-serif; font-size: 0.72rem; font-weight: 700;
    letter-spacing: 0.22em; color: var(--cont-gold-light); margin-bottom: 1rem;
    padding: 0.38rem 1.15rem; border: 1px solid rgba(200,150,12,0.42); border-radius: 2rem;
    background: rgba(200,150,12,0.15);
}
.cont-cta-title {
    font-family: 'Playfair Display', serif; font-size: clamp(1.8rem, 4vw, 2.5rem); color: white;
    margin-bottom: 1rem; font-weight: 800;
}
.cont-cta-subtitle { color: rgba(255,255,255,0.8); margin-bottom: 2rem; }
.cont-cta-buttons { display: flex; justify-content: center; gap: 1.5rem; flex-wrap: wrap; }
.cont-cta-btn-primary {
    background: white; color: var(--cont-verde-dark); padding: 0.9rem 2rem; border-radius: 3rem;
    text-decoration: none; font-weight: 700; transition: all 0.3s var(--cont-ease-bounce);
    display: inline-flex; align-items: center; gap: 0.6rem; animation: cont-pulse-green 2.5s ease-in-out infinite;
}
.cont-cta-btn-primary:hover { transform: translateY(-5px); gap: 0.9rem; box-shadow: 0 15px 30px rgba(255,255,255,0.3); background: var(--cont-gold-light); }
.cont-cta-btn-secondary {
    background: transparent; border: 2px solid white; color: white; padding: 0.9rem 2rem;
    border-radius: 3rem; text-decoration: none; font-weight: 600; transition: all 0.3s var(--cont-ease-bounce);
    display: inline-flex; align-items: center; gap: 0.6rem;
}
.cont-cta-btn-secondary:hover { background: rgba(255,255,255,0.15); transform: translateY(-5px); border-color: var(--cont-gold); color: var(--cont-gold-light); }

/* ═══════════════════════════════════════════════════════════════
   RESPONSIVE
═══════════════════════════════════════════════════════════════ */
@media (max-width: 1100px) { .cont-oficinas-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 900px) {
    .cont-main-container { flex-direction: column; }
    .cont-oficinas-grid { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
    section.cont-hero { padding: 5rem 0 6rem !important; }
    .cont-hero-stats { flex-direction: column; align-items: center; }
    .cont-form-group { flex: 1 1 100%; }
    .cont-cta-buttons { flex-direction: column; align-items: center; }
    .cont-cta-btn-primary, .cont-cta-btn-secondary { width: 100%; max-width: 280px; justify-content: center; }
    .cont-mapa-container iframe { height: 300px; }
}
@media (max-width: 640px) {
    .cont-info-item { flex-direction: column; align-items: center; text-align: center; }
    .cont-info-item:hover { transform: translateY(-5px); }
    .cont-hero-title { font-size: 2.2rem !important; }
}

/* ═══════════════════════════════════════════════════════════════
   ACCESIBILIDAD — REDUCED MOTION
═══════════════════════════════════════════════════════════════ */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
    .cont-observe { opacity: 1 !important; transform: none !important; }
    .cont-hero-title, .cont-hero-eyebrow, .cont-hero-subtitle, .cont-hero-stats { opacity: 1 !important; }
    .cont-hero-accent::after { transform: scaleX(1); }
    .cont-hero-line { width: 100px; opacity: 1; }
}