.is-contact {
  background:
    radial-gradient(900px 480px at 0% 0%, rgba(232,184,74,.2), transparent 50%),
    radial-gradient(700px 400px at 100% 10%, rgba(107,61,122,.12), transparent 46%),
    #f6efe3;
}

.cx-hero {
  position: relative;
  overflow: hidden;
  padding: 3.4rem 0 2.4rem;
}
.cx-hero h1 {
  max-width: 16ch;
  font-size: clamp(2.4rem, 6vw, 5rem);
  font-weight: 500;
}
.cx-chip {
  display: inline-flex;
  padding: 0.4rem 0.85rem;
  border-radius: 999px;
  background: rgba(255,255,255,.7);
  border: 1px solid rgba(107,61,122,.15);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--plum-d);
}
.cx-crumb { font-weight: 700; color: var(--muted); }
.cx-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(36px);
  animation: cx-float 14s ease-in-out infinite;
  pointer-events: none;
}
.cx-a { width: 280px; height: 280px; background: #f0c56a; top: -40px; right: 8%; opacity: .4; }
.cx-b { width: 220px; height: 220px; background: #c9a0d6; left: -40px; bottom: -40px; opacity: .35; animation-delay: -5s; }
@keyframes cx-float {
  0%, 100% { transform: translate(0,0) scale(1); }
  50% { transform: translate(16px,-18px) scale(1.08); }
}

.cx-main { padding: 0 0 4.5rem; }
.cx-grid {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 2rem;
  align-items: start;
}
.cx-info { display: grid; gap: 0.9rem; }
.cx-card {
  background: #fff;
  border-radius: 1.4rem;
  padding: 1.2rem 1.3rem;
  box-shadow: 0 16px 40px rgba(75,36,88,.08);
  transition: transform .4s cubic-bezier(.16,1,.3,1);
}
.cx-card:hover { transform: translateY(-8px) rotate(-0.4deg); }
.cx-card span {
  display: block;
  font-size: .72rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  font-weight: 800;
  color: var(--plum);
  margin-bottom: .25rem;
}
.cx-card a, .cx-card strong { font-family: var(--display); font-size: 1.35rem; color: var(--ink); }
.cx-why {
  background: linear-gradient(160deg, #4c2458, #6b3d7a);
  color: #fff;
  border-radius: 1.6rem;
  padding: 1.5rem 1.5rem 1.2rem;
}
.cx-why h2, .cx-why p, .cx-why li { color: #fff; }

.cx-panel {
  background: rgba(255,255,255,.86);
  backdrop-filter: blur(16px);
  border: 1px solid rgba(107,61,122,.1);
  border-radius: 1.8rem;
  padding: 1.8rem;
  box-shadow: 0 30px 70px rgba(43,18,58,.12);
}
.cx-two { display: grid; grid-template-columns: 1fr 1fr; gap: 0.9rem; }
.cx-form input, .cx-form select, .cx-form textarea {
  transition: border-color .3s, box-shadow .3s, transform .3s;
}
.cx-form input:focus, .cx-form select:focus, .cx-form textarea:focus {
  outline: none;
  border-color: var(--plum);
  box-shadow: 0 0 0 4px rgba(107,61,122,.12);
  transform: translateY(-1px);
}
.cx-submit { width: 100%; min-height: 52px; }

.cx-map { padding: 0 0 5rem; }
.cx-map iframe {
  width: 100%;
  min-height: 380px;
  border: 0;
  border-radius: 1.8rem;
  box-shadow: 0 24px 60px rgba(43,18,58,.14);
  clip-path: inset(8% 8% 8% 8% round 1.8rem);
  animation: cx-map 1.2s cubic-bezier(.16,1,.3,1) forwards;
  animation-delay: .2s;
}
.cx-map.is-in iframe, .cx-map iframe { clip-path: inset(0 round 1.8rem); }
@keyframes cx-map {
  from { clip-path: inset(10% 12% 10% 12% round 2rem); filter: saturate(.6); }
  to { clip-path: inset(0 round 1.8rem); filter: none; }
}

@media (max-width: 900px) {
  .cx-grid, .cx-two { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .cx-orb, .cx-map iframe { animation: none; }
}
