/* =========================================================
   CONTACTO V77 — INTERACTIVE / CHAT / MOUSE MOTION
   Loaded LAST so Contacto owns its visual behavior.
   ========================================================= */
body.contact-page{
  --ct-v77-red:#c82f43;
  --ct-v77-red-deep:#7c1326;
  --ct-v77-gold:#efb739;
  --ct-v77-gold-soft:#ffe4a0;
  --ct-v77-green:#25d366;
  --ct-v77-cream:#fff9ef;
  --ct-v77-ink:#281d18;
  --ct-nx:0;
  --ct-ny:0;
  background:
    radial-gradient(circle at 14% 14%,rgba(255,210,94,.22),transparent 26%),
    radial-gradient(circle at 87% 36%,rgba(211,48,75,.15),transparent 27%),
    radial-gradient(circle at 55% 78%,rgba(77,164,126,.10),transparent 28%),
    linear-gradient(145deg,#fffdf8,#f8eee0 48%,#fff7e8)!important;
}
.contact-page .contact-main{
  overflow:hidden!important;
  isolation:isolate;
}
.contact-page .contact-main::after{
  content:"";
  position:absolute;
  z-index:-1;
  inset:38px 0 0;
  pointer-events:none;
  opacity:.32;
  background-image:
    linear-gradient(rgba(127,72,48,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(127,72,48,.035) 1px,transparent 1px);
  background-size:46px 46px;
  mask-image:linear-gradient(to bottom,transparent,#000 11%,#000 82%,transparent);
  transform:translate3d(var(--ct-grid-x,0px),var(--ct-grid-y,0px),0);
}
/* dynamic background world */
.contact-page .ct-world{z-index:0!important}
.contact-page .ct-orb{opacity:.34!important;will-change:transform}
.contact-page .ct-red{
  background:radial-gradient(circle,#f17d89 0%,rgba(217,52,76,.34) 32%,transparent 70%)!important;
  transform:translate3d(var(--ct-red-x,0px),var(--ct-red-y,0px),0);
}
.contact-page .ct-gold{
  background:radial-gradient(circle,#ffd86f 0%,rgba(238,180,53,.28) 34%,transparent 70%)!important;
  transform:translate3d(var(--ct-gold-x,0px),var(--ct-gold-y,0px),0);
}
.contact-page .ct-green{
  background:radial-gradient(circle,#7be39a 0%,rgba(57,119,58,.18) 34%,transparent 70%)!important;
  transform:translate3d(var(--ct-green-x,0px),var(--ct-green-y,0px),0);
}
.contact-page .ct-pointer{
  width:430px!important;height:430px!important;
  opacity:.88;
  background:radial-gradient(circle,rgba(255,255,255,.44),rgba(255,211,103,.15) 28%,rgba(201,47,67,.07) 48%,transparent 72%)!important;
  filter:blur(2px);
  will-change:left,top;
}
/* hero */
.contact-page .ct-hero{
  margin-top:24px!important;
  min-height:545px!important;
  border-radius:34px!important;
  border:1px solid rgba(255,255,255,.72)!important;
  box-shadow:0 34px 78px rgba(68,33,17,.18),0 0 0 1px rgba(239,183,57,.07)!important;
  transform:perspective(1500px) rotateX(var(--ct-hero-rx,0deg)) rotateY(var(--ct-hero-ry,0deg));
  transition:transform .12s linear;
  will-change:transform;
}
.contact-page .ct-hero>img{
  transform:scale(1.075) translate3d(var(--ct-img-x,0px),var(--ct-img-y,0px),0)!important;
  animation:none!important;
  filter:saturate(1.18) contrast(1.08) brightness(.66)!important;
  will-change:transform;
}
.contact-page .ct-hero::before{
  content:"";position:absolute;z-index:2;inset:0;pointer-events:none;
  background:linear-gradient(112deg,transparent 18%,rgba(255,241,203,.18) 39%,transparent 56%);
  transform:translateX(-120%);animation:ctV77HeroSweep 8s ease-in-out infinite;
}
@keyframes ctV77HeroSweep{0%,55%{transform:translateX(-120%)}78%,100%{transform:translateX(120%)}}
.contact-page .ct-hero-copy{z-index:4!important}
.contact-page .ct-hero h1 strong{color:#ffdc72!important;text-shadow:0 0 24px rgba(255,211,100,.22)}
.contact-page .ct-hero p{font-size:12.5px!important;max-width:535px!important;color:rgba(255,255,255,.86)!important}
/* feature strip */
.contact-page .ct-feature-strip{z-index:6!important;gap:5px!important;background:rgba(33,20,17,.36)!important;border-color:rgba(255,225,157,.22)!important}
.contact-page .ct-feature-strip a,
.contact-page .ct-feature-strip button{
  border:0;margin:0;min-height:68px;padding:10px 15px;color:#fff;text-align:left;
  display:flex;align-items:center;gap:12px;background:rgba(29,20,17,.34);cursor:pointer;
  transition:transform .22s ease,background .22s ease,box-shadow .22s ease;
}
.contact-page .ct-feature-strip a:hover,
.contact-page .ct-feature-strip button:hover{
  transform:translateY(-3px)!important;background:rgba(255,255,255,.14)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.14);
}
.ct-svg-icon{width:35px;height:35px;border-radius:12px;display:grid!important;place-items:center;flex:0 0 auto;background:linear-gradient(145deg,rgba(255,220,126,.22),rgba(199,47,59,.32));border:1px solid rgba(255,255,255,.16)}
.ct-svg-icon svg,.ct-card-svg svg,.ct-why-svg svg,.ct-v77-dock-icon svg,.ct-v77-chat-form svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
/* cards + form */
.contact-page .ct-layout{padding-top:58px!important;gap:28px!important}
.contact-page .ct-info,.contact-page .ct-form-panel{
  position:relative;overflow:hidden;
  background:linear-gradient(145deg,rgba(255,255,255,.91),rgba(255,244,224,.77))!important;
  border:1px solid rgba(255,255,255,.92)!important;
  box-shadow:0 22px 50px rgba(72,41,21,.10),inset 0 1px 0 #fff!important;
}
.contact-page .ct-info::before,.contact-page .ct-form-panel::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(circle at calc(50% + var(--ct-nx)*22%) calc(15% + var(--ct-ny)*18%),rgba(255,210,91,.15),transparent 31%);
}
.contact-page .ct-contact-list{gap:12px!important}
.contact-page .ct-contact-card{
  position:relative;text-decoration:none;color:inherit;grid-template-columns:50px 1fr 22px!important;
  min-height:84px!important;background:rgba(255,255,255,.79)!important;
  border:1px solid rgba(137,91,48,.08)!important;
  box-shadow:0 8px 20px rgba(91,54,26,.045);
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}
.contact-page .ct-contact-card:hover{transform:translateX(6px)!important;box-shadow:0 14px 28px rgba(91,54,26,.10);border-color:rgba(202,47,66,.18)!important}
.contact-page .ct-contact-card i{background:linear-gradient(145deg,#7d1829,#d43b51)!important;box-shadow:0 8px 18px rgba(169,34,55,.16)}
.contact-page .ct-contact-card em{font-style:normal;color:#c12f43;font-size:15px;font-weight:900}
.contact-page .ct-whatsapp-card i{background:linear-gradient(145deg,#168b43,#25d366)!important}
.contact-page .ct-whatsapp-card em{color:#159746}
.ct-card-svg{color:#fff}.ct-card-svg svg{width:23px;height:23px}
.contact-page .ct-form-panel{transform:translate3d(var(--ct-form-x,0px),var(--ct-form-y,0px),0);transition:transform .14s linear}
.contact-page .ct-field input,.contact-page .ct-field textarea{transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;background:rgba(255,255,255,.92)!important}
.contact-page .ct-field input:focus,.contact-page .ct-field textarea:focus{transform:translateY(-1px);box-shadow:0 0 0 4px rgba(200,47,67,.08),0 10px 25px rgba(70,42,23,.06)!important}
.contact-page .ct-submit{min-height:52px!important;background:linear-gradient(135deg,#80162a,#c62d43 48%,#e45764)!important;box-shadow:0 14px 28px rgba(161,29,52,.22)!important;position:relative;overflow:hidden}
.contact-page .ct-submit::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 20%,rgba(255,255,255,.28) 45%,transparent 65%);transform:translateX(-120%);transition:transform .6s ease}
.contact-page .ct-submit:hover::after{transform:translateX(120%)}
/* feature cards */
.contact-page .ct-why{padding-top:62px!important}
.contact-page .ct-why-grid{gap:15px!important}
.contact-page .ct-why-card{
  min-height:224px!important;overflow:hidden;
  background:linear-gradient(145deg,rgba(255,255,255,.90),rgba(255,240,214,.72))!important;
  border:1px solid rgba(255,255,255,.94)!important;
  box-shadow:0 16px 38px rgba(69,40,21,.07)!important;
  transform:perspective(900px) rotateX(var(--ct-tilt-x,0deg)) rotateY(var(--ct-tilt-y,0deg)) translateY(var(--ct-lift,0px));
  transition:transform .16s linear,box-shadow .22s ease;
  will-change:transform;
}
.contact-page .ct-why-card:hover{--ct-lift:-7px;box-shadow:0 24px 46px rgba(69,40,21,.13)!important}
.contact-page .ct-why-card::after{content:"";position:absolute;width:120px;height:120px;right:-48px;bottom:-58px;border-radius:50%;background:radial-gradient(circle,rgba(238,183,57,.21),transparent 68%);pointer-events:none}
.ct-why-svg{width:48px;height:48px;border-radius:15px;display:grid!important;place-items:center!important;color:#fff;background:linear-gradient(145deg,#85182b,#d13a51);box-shadow:0 10px 22px rgba(158,32,52,.17)}
.ct-why-svg svg{width:24px;height:24px}
.contact-page .ct-why-card h3{margin-top:42px!important;font-size:13px!important}
/* floating dock */
.ct-v77-contact-dock{position:fixed;z-index:150;right:20px;bottom:22px;display:grid;gap:9px;width:218px;transition:transform .25s ease}
.ct-v77-dock-btn{min-height:58px;border:0;border-radius:17px;padding:9px 12px;display:flex;align-items:center;gap:10px;text-align:left;text-decoration:none;cursor:pointer;box-shadow:0 16px 34px rgba(44,24,16,.19),inset 0 1px 0 rgba(255,255,255,.28);transition:transform .2s ease,box-shadow .2s ease;overflow:hidden}
.ct-v77-dock-btn:hover{transform:translateX(-6px) scale(1.025);box-shadow:0 20px 40px rgba(44,24,16,.24)}
.ct-v77-chat-btn{color:#fff;background:linear-gradient(135deg,#761527,#bd2c43 55%,#dc5261)}
.ct-v77-wa-btn{color:#fff;background:linear-gradient(135deg,#117936,#1fae50 55%,#27d367)}
.ct-v77-dock-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:13px;background:rgba(255,255,255,.15);flex:0 0 auto}
.ct-v77-dock-btn small,.ct-v77-dock-btn strong{display:block}.ct-v77-dock-btn small{font-size:6.5px;letter-spacing:.13em;opacity:.78}.ct-v77-dock-btn strong{margin-top:2px;font-size:11px}
/* contact-specific chat */
.contact-page .ct-v77-chat{z-index:170!important;right:24px!important;bottom:160px!important;width:min(390px,calc(100vw - 32px))!important;border-radius:24px!important;background:#fffaf1!important;border:1px solid rgba(117,65,35,.10)!important;box-shadow:0 28px 70px rgba(42,22,15,.28),0 0 0 1px rgba(255,255,255,.8) inset!important}
.contact-page .ct-v77-chat .home-chat-head{padding:15px 16px!important;background:linear-gradient(135deg,#721426,#bd2d44 55%,#db5260)!important}
.ct-v77-chat-brand{display:flex;align-items:center;gap:10px}
.ct-v77-chat-avatar{width:36px;height:36px;border-radius:50%;display:grid!important;place-items:center;background:linear-gradient(145deg,#ffe19a,#e9aa2c);color:#6a2b16;font:900 15px/1 Georgia,serif;box-shadow:0 6px 16px rgba(66,31,16,.16)}
.ct-v77-chat-log{display:grid;gap:9px;max-height:225px;overflow:auto;padding-right:3px;scrollbar-width:thin}
.ct-v77-bot{margin-right:38px;background:#f4ead9!important}
.ct-v77-user{margin-left:42px;padding:10px 12px;border-radius:14px 14px 4px 14px;background:linear-gradient(135deg,#9e2136,#cf3b50);color:#fff;font-size:11px;line-height:1.42}
.ct-v77-quick-replies{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.ct-v77-quick-replies button{border:1px solid rgba(132,84,47,.13);border-radius:999px;background:#fff;color:#593c2b;padding:7px 10px;font-size:9px;font-weight:800;cursor:pointer;transition:.18s ease}
.ct-v77-quick-replies button:hover{background:#fff0d1;transform:translateY(-2px)}
.ct-v77-chat-form{display:grid;grid-template-columns:1fr 42px;gap:7px;margin-top:10px}
.ct-v77-chat-form input{min-width:0;height:42px;border:1px solid rgba(106,69,41,.13);border-radius:12px;padding:0 12px;background:#fff;color:#38271d;font:10.5px "DM Sans",Arial,sans-serif;outline:none}
.ct-v77-chat-form input:focus{border-color:rgba(197,44,65,.32);box-shadow:0 0 0 3px rgba(197,44,65,.07)}
.ct-v77-chat-form button{border:0;border-radius:12px;background:linear-gradient(145deg,#8d1a30,#d63b50);color:#fff;display:grid;place-items:center;cursor:pointer}
.ct-v77-chat-form button svg{width:19px;height:19px}
.ct-v77-chat-wa{margin-top:11px;min-height:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#168b42,#25d366);color:#fff!important;font-size:9px;font-weight:900;text-decoration:none;box-shadow:0 8px 18px rgba(24,153,70,.16)}
/* Contact page owns right-side contact UX: keep global social rail but shift it higher. */
.contact-page .floating-socials{bottom:188px!important}
/* reveal polish */
.contact-page [data-ct-reveal]{transition-duration:.72s!important;transition-timing-function:cubic-bezier(.16,.9,.18,1)!important}
/* Responsive */
@media(max-width:900px){
  .contact-page .ct-hero{transform:none!important}
  .contact-page .ct-hero>img{transform:scale(1.06)!important}
  .contact-page .ct-form-panel{transform:none!important}
  .ct-v77-contact-dock{width:184px;right:14px;bottom:14px}
  .contact-page .ct-v77-chat{right:14px!important;bottom:145px!important}
  .contact-page .floating-socials{display:none!important}
}
@media(max-width:650px){
  .contact-page .ct-feature-strip{grid-template-columns:1fr!important}
  .contact-page .ct-feature-strip a,.contact-page .ct-feature-strip button{min-height:46px!important}
  .contact-page .ct-layout{padding-top:36px!important}
  .ct-v77-contact-dock{left:12px;right:12px;bottom:10px;width:auto;grid-template-columns:1fr 1fr;gap:7px}
  .ct-v77-dock-btn{min-height:53px;padding:8px 10px}
  .ct-v77-dock-icon{width:34px;height:34px}
  .ct-v77-dock-btn small{display:none}.ct-v77-dock-btn strong{font-size:10px}
  .contact-page .ct-v77-chat{left:10px!important;right:10px!important;bottom:78px!important;width:auto!important}
  .contact-page .ct-why{padding-bottom:100px!important}
}
@media(prefers-reduced-motion:reduce){
  .contact-page .ct-hero,.contact-page .ct-hero>img,.contact-page .ct-form-panel,.contact-page .ct-orb,.contact-page .contact-main::after{transform:none!important}
  .contact-page .ct-hero::before{animation:none!important}
  .contact-page .ct-why-card{transform:none!important}
}
