.contacto-section{padding:80px 0 90px;background:var(--gris-suave);}.contacto-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:52px;align-items:start;}.contacto-info h2{font-size:clamp(1.8rem,3vw,2.4rem);margin-bottom:8px;}.info-cards{display:flex;flex-direction:column;gap:14px;margin:28px 0;}.info-card{display:flex;align-items:center;gap:16px;padding:18px 20px;background:var(--blanco-puro);border-radius:14px;box-shadow:var(--sombra-suave);border-left:4px solid var(--azul-cielo);transition:all 0.35s ease;}.info-card:hover{border-left-color:var(--azul-oscuro);transform:translateX(6px);box-shadow:var(--sombra-media);}.info-card-icono{width:48px;height:48px;border-radius:12px;background:var(--azul-cielo);color:var(--azul-noche);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;transition:all 0.4s cubic-bezier(0.34,1.56,0.64,1);}.info-card:hover .info-card-icono{background:var(--azul-oscuro);color:var(--azul-cielo);transform:scale(1.1) rotate(5deg);}.info-card h4{font-size:14px;color:var(--azul-oscuro);margin-bottom:4px;}.info-card p{font-size:13.5px;color:#555;line-height:1.6;}.info-card a{color:var(--azul-oscuro);font-weight:700;}.info-card a:hover{color:var(--azul-medio);}.redes-contacto h4{font-size:15px;color:var(--azul-oscuro);margin-bottom:12px;}.redes-btns{display:flex;gap:10px;flex-wrap:wrap;}.red-btn{display:inline-flex;align-items:center;gap:7px;padding:9px 18px;border-radius:20px;font-size:13px;font-weight:700;color:white;transition:all 0.35s ease;}.red-btn:hover{transform:translateY(-3px);opacity:0.9;}.red-btn.youtube{background:#ff0000;}.red-btn.facebook{background:#1877f2;}.red-btn.instagram{background:linear-gradient(45deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888);}.form-card{background:var(--blanco-puro);border-radius:24px;padding:40px 36px;box-shadow:var(--sombra-fuerte);border-top:4px solid var(--azul-cielo);}.form-card h3{font-size:1.4rem;color:var(--azul-oscuro);display:flex;align-items:center;gap:10px;margin-bottom:8px;}.form-card h3 i{color:var(--azul-medio);}.form-card>p{font-size:14px;color:#777;margin-bottom:24px;}.form-grupo{display:flex;flex-direction:column;gap:6px;margin-bottom:18px;}.form-grupo label{font-size:13px;font-weight:700;color:var(--azul-oscuro);}.form-check-privacidad{margin-bottom:16px;}.form-check-privacidad .check-label{display:flex;align-items:flex-start;gap:10px;font-weight:500;font-size:13px;color:#555;cursor:pointer;}.form-check-privacidad .check-label input{margin-top:3px;}.form-check-privacidad .check-label a{color:var(--azul-oscuro);text-decoration:underline;}.form-check-privacidad .check-label a:hover{color:var(--azul-medio);}.input-wrap,.select-wrap,.textarea-wrap{position:relative;display:flex;align-items:center;}.input-wrap i,.select-wrap i,.textarea-wrap i{position:absolute;left:14px;color:var(--azul-medio);font-size:14px;pointer-events:none;top:50%;transform:translateY(-50%);}.textarea-wrap i{top:16px;transform:none;}.input-wrap input,.select-wrap select,.textarea-wrap textarea{width:100%;padding:12px 14px 12px 40px;border:2px solid var(--azul-cielo);border-radius:12px;font-family:'Nunito',sans-serif;font-size:14px;color:var(--texto-oscuro);background:var(--gris-suave);outline:none;transition:border-color 0.3s,box-shadow 0.3s;appearance:none;}.input-wrap input:focus,.select-wrap select:focus,.textarea-wrap textarea:focus{border-color:var(--azul-oscuro);box-shadow:0 0 0 3px rgba(185,229,251,0.4);background:var(--blanco-puro);}.textarea-wrap textarea{resize:vertical;min-height:120px;}.form-submit{width:100%;padding:14px 24px;border-radius:30px;background:linear-gradient(135deg,var(--azul-oscuro),var(--azul-noche));color:var(--azul-cielo);border:none;font-family:'Nunito',sans-serif;font-size:15px;font-weight:800;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:9px;transition:all 0.4s cubic-bezier(0.34,1.56,0.64,1);box-shadow:0 6px 22px rgba(21,101,192,0.3);}.form-submit:hover{transform:translateY(-3px) scale(1.01);box-shadow:0 14px 36px rgba(21,101,192,0.45);}.form-success{margin-top:16px;padding:16px 20px;background:rgba(185,229,251,0.25);border:2px solid var(--azul-cielo);border-radius:12px;display:flex;align-items:center;gap:12px;color:var(--azul-oscuro);}.form-success i{font-size:1.5rem;color:#2e7d32;}.form-success p{font-size:14px;font-weight:600;}.mapa-section{position:relative;}.mapa-placeholder{height:400px;background:linear-gradient(135deg,var(--azul-noche),var(--azul-oscuro));position:relative;overflow:hidden;}.mapa-placeholder::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 50%,rgba(185,229,251,0.15) 0%,transparent 65%);}.mapa-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:24px;}.mapa-pin{width:70px;height:70px;border-radius:50%;background:var(--azul-cielo);color:var(--azul-noche);display:flex;align-items:center;justify-content:center;font-size:2rem;animation:pulsar 2.5s ease-in-out infinite;box-shadow:0 0 0 0 rgba(185,229,251,0.4);}@keyframes pulsar{0%{box-shadow:0 0 0 0 rgba(185,229,251,0.5);transform:scale(1);}70%{box-shadow:0 0 0 20px rgba(185,229,251,0);transform:scale(1.08);}100%{box-shadow:0 0 0 0 rgba(185,229,251,0);transform:scale(1);}}.mapa-overlay h3{color:var(--blanco-puro);font-size:1.4rem;}.mapa-overlay p{color:rgba(255,255,255,0.75);font-size:15px;}@media(max-width:768px){.contacto-grid{grid-template-columns:1fr;}.form-card{padding:28px 20px;}}.char-count{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin-top:6px;font-size:12px;font-weight:600;color:var(--gris-medio,#6b7a8d);transition:color .3s ease;}.char-count::before{content:'';flex:1;height:3px;border-radius:10px;background:#e0e8f0;position:relative;overflow:hidden;}#current{display:inline-block;min-width:28px;text-align:right;font-size:13px;font-weight:800;color:var(--azul-medio,#5ab4e8);transition:color .3s ease,transform .15s ease;}#current.bump{transform:scale(1.25);}.char-count.warning{color:#b45309;}.char-count.warning #current{color:#d97706;}.char-count.warning::before{background:linear-gradient(to right,#fde68a,#f59e0b);}.char-count.danger{color:#991b1b;}.char-count.danger #current{color:#dc2626;animation:shake .3s ease;}.char-count.danger::before{background:linear-gradient(to right,#fca5a5,#dc2626);}@keyframes shake{0%,100%{transform:translateX(0);}25%{transform:translateX(-4px);}75%{transform:translateX(4px);}}