/* QUARZEO — Contact révolution visuelle R2 */
body.qct-site .contactHeroV9 {
  min-height: 820px !important;
  padding: 100px 0 122px !important;
  background:
    linear-gradient(90deg, rgba(1,13,24,.98) 0%, rgba(2,23,40,.91) 43%, rgba(2,26,44,.34) 74%, rgba(1,13,24,.24) 100%),
    linear-gradient(180deg, rgba(1,13,24,.08), rgba(1,13,24,.54)),
    url('/assets/qz-contact-hero-r2.webp') center / cover no-repeat !important;
}
body.qct-site .contactHeroV9::before {
  opacity: .85;
  background: linear-gradient(rgba(65,215,235,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(65,215,235,.055) 1px,transparent 1px) !important;
  background-size: 70px 70px !important;
  mask-image: linear-gradient(90deg,#000,rgba(0,0,0,.72) 50%,transparent 84%) !important;
}
body.qct-site .contactHeroV9::after {
  right: -120px !important;
  top: -200px !important;
  width: 650px !important;
  height: 650px !important;
  border-color: rgba(97,226,242,.18) !important;
  box-shadow: 0 0 0 85px rgba(70,216,235,.035),0 0 0 170px rgba(70,216,235,.024) !important;
}
body.qct-site .contactHeroV9 > .shell {
  grid-template-columns: minmax(0, .95fr) minmax(440px, 1.05fr) !important;
  gap: 60px !important;
}
body.qct-site .contactHeroV9 h1 {
  max-width: 730px;
  font-size: clamp(58px,6vw,91px) !important;
  line-height: .9 !important;
  letter-spacing: -.068em !important;
  text-shadow: 0 14px 40px rgba(0,5,12,.35);
}
body.qct-site .contactHeroV9 h1 span {
  background: linear-gradient(95deg,#74e7f2,#2fc8e3 64%,#9ef3f7);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent !important;
}
body.qct-site .contactHeroV9 p { max-width: 650px !important; color: rgba(226,245,251,.72) !important; }
body.qct-site .contactTrustV9 > span {
  border-color: rgba(112,226,243,.18) !important;
  background: rgba(255,255,255,.06) !important;
  box-shadow: inset 0 1px rgba(255,255,255,.05);
}

/* Dispositif de routage éditorial */
body.qct-site .contactConversationV9.qct-r2-router {
  min-height: 540px;
  padding: 28px !important;
  overflow: hidden;
  border: 1px solid rgba(120,227,243,.22) !important;
  border-radius: 34px !important;
  background:
    radial-gradient(circle at 50% 48%, rgba(35,204,229,.16), transparent 38%),
    linear-gradient(145deg, rgba(255,255,255,.1), rgba(255,255,255,.025)) !important;
  box-shadow: 0 45px 100px rgba(0,5,13,.47), inset 0 1px rgba(255,255,255,.08) !important;
  backdrop-filter: blur(24px) saturate(140%) !important;
}
body.qct-site .qct-r2-router::before {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(rgba(89,220,239,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(89,220,239,.045) 1px,transparent 1px);
  background-size: 42px 42px;
  mask-image: radial-gradient(circle at 50% 50%,#000,transparent 72%);
  pointer-events: none;
}
body.qct-site .qct-r2-router-head { position: relative; z-index: 2; display: flex; justify-content: space-between; align-items: center; gap: 20px; }
body.qct-site .qct-r2-router-head > span { display: flex; align-items: center; gap: 8px; color: #79e7f3; font-size: 9px; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
body.qct-site .qct-r2-router-head > span::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #53dcea; box-shadow: 0 0 0 6px rgba(83,220,234,.1),0 0 18px rgba(83,220,234,.55); }
body.qct-site .qct-r2-router-head small { color: rgba(222,243,250,.47); font-size: 8px; }
body.qct-site .qct-r2-route-stage { position: relative; z-index: 1; height: 360px; margin-top: 22px; }
body.qct-site .qct-r2-route-stage svg { position: absolute; inset: 0; width: 100%; height: 100%; }
body.qct-site .qct-r2-route-line { fill: none; stroke: url(#qct-r2-line); stroke-width: 1.6; stroke-dasharray: 7 8; animation: qct-r2-route 9s linear infinite; }
body.qct-site .qct-r2-route-line.soft { opacity: .35; animation-duration: 14s; }
body.qct-site .qct-r2-orb {
  position: absolute; left: 50%; top: 50%;
  display: grid; width: 118px; height: 118px; place-items: center;
  border: 1px solid rgba(128,234,246,.55); border-radius: 50%;
  color: #fff; background: radial-gradient(circle at 35% 30%,rgba(111,235,245,.32),rgba(6,93,142,.45) 50%,rgba(1,25,42,.94));
  box-shadow: 0 0 0 13px rgba(77,219,236,.07),0 0 0 30px rgba(77,219,236,.035),0 0 55px rgba(42,205,227,.34);
  transform: translate(-50%,-50%);
}
body.qct-site .qct-r2-orb::before { content: ""; position: absolute; inset: -12px; border: 1px dashed rgba(111,231,243,.28); border-radius: 50%; animation: qct-r2-spin 16s linear infinite; }
body.qct-site .qct-r2-orb span { display: flex; flex-direction: column; text-align: center; }
body.qct-site .qct-r2-orb b { font-size: 25px; letter-spacing: -.06em; }
body.qct-site .qct-r2-orb small { margin-top: 3px; color: #78e3ef; font-size: 7px; font-weight: 900; letter-spacing: .12em; }
body.qct-site .qct-r2-node {
  position: absolute; display: flex; width: 145px; min-height: 58px; padding: 11px 12px; align-items: center; gap: 10px;
  border: 1px solid rgba(132,226,242,.15); border-radius: 15px; color: #fff; background: rgba(5,34,53,.83); box-shadow: 0 15px 32px rgba(0,7,15,.26); backdrop-filter: blur(12px);
}
body.qct-site .qct-r2-node i { display: grid; width: 31px; height: 31px; flex: 0 0 auto; place-items: center; border-radius: 10px; color: #06304a; background: linear-gradient(135deg,#e8fcfd,#61dbe8); font-style: normal; font-size: 12px; font-weight: 900; }
body.qct-site .qct-r2-node span { display: flex; flex-direction: column; }
body.qct-site .qct-r2-node strong { color: #fff !important; font-size: 10px !important; }
body.qct-site .qct-r2-node small { color: rgba(219,241,248,.52); font-size: 7px; }
body.qct-site .qct-r2-node-a { left: 0; top: 20px; }
body.qct-site .qct-r2-node-b { right: 0; top: 20px; }
body.qct-site .qct-r2-node-c { left: 0; bottom: 18px; }
body.qct-site .qct-r2-node-d { right: 0; bottom: 18px; }
body.qct-site .qct-r2-router-foot { position: relative; z-index: 2; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 16px 17px; border: 1px solid rgba(119,225,242,.13); border-radius: 15px; color: rgba(221,243,250,.56); background: rgba(255,255,255,.045); font-size: 9px; }
body.qct-site .qct-r2-router-foot strong { color: #fff; font-size: 10px; }
body.qct-site .qct-r2-router-foot b { color: #65e2ef; }

/* Bande des sujets beaucoup plus expressive */
body.qct-site .contactChoiceBandV9 {
  padding: 118px 0 128px !important;
  color: #fff;
  background:
    radial-gradient(circle at 12% 25%, rgba(22,139,230,.24), transparent 30%),
    radial-gradient(circle at 88% 72%, rgba(38,207,229,.15), transparent 27%),
    linear-gradient(145deg,#031624,#052f4a) !important;
}
body.qct-site .contactChoiceBandV9::before {
  background: linear-gradient(rgba(80,212,232,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(80,212,232,.045) 1px,transparent 1px) !important;
  background-size: 58px 58px !important;
  mask-image: linear-gradient(90deg,#000,transparent 88%);
}
body.qct-site .contactChoiceBandV9 .editorialLeadV8 { display: grid; grid-template-columns: .65fr 1.35fr; gap: 60px; align-items: end; }
body.qct-site .contactChoiceBandV9 .editorialLeadV8 .eyebrow { align-self: start; }
body.qct-site .contactChoiceBandV9 .editorialLeadV8 h2 { margin: 0 !important; color: #fff !important; font-size: clamp(44px,5vw,72px) !important; }
body.qct-site .contactChoiceGridV9 { gap: 12px !important; margin-top: 55px !important; }
body.qct-site .contactChoiceGridV9 button {
  min-height: 275px !important;
  overflow: hidden;
  border-color: rgba(127,225,242,.15) !important;
  color: #fff !important;
  background: linear-gradient(145deg,rgba(255,255,255,.095),rgba(255,255,255,.025)) !important;
  box-shadow: 0 24px 55px rgba(0,8,17,.2) !important;
  backdrop-filter: blur(12px);
}
body.qct-site .contactChoiceGridV9 button::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: linear-gradient(90deg,#087ff0,#45dce9,transparent); transform: scaleX(.28); transform-origin: left; transition: transform .3s ease; }
body.qct-site .contactChoiceGridV9 button:hover::after,
body.qct-site .contactChoiceGridV9 button.is-active::after { transform: scaleX(1); }
body.qct-site .contactChoiceGridV9 button:hover,
body.qct-site .contactChoiceGridV9 button.is-active { border-color: rgba(92,222,240,.42) !important; background: linear-gradient(145deg,rgba(40,175,218,.18),rgba(255,255,255,.035)) !important; }
body.qct-site .contactChoiceGridV9 button > span { color: #07334f !important; background: linear-gradient(135deg,#dffbfc,#69dfea) !important; }
body.qct-site .contactChoiceGridV9 strong { color: #fff !important; font-size: 21px !important; }
body.qct-site .contactChoiceGridV9 small { color: rgba(219,241,248,.58) !important; }

/* Formulaire éditorial clair */
body.qct-site .contactPageGridV9 { position: relative; padding-top: 125px !important; padding-bottom: 145px !important; }
body.qct-site .contactPageGridV9::before { content: "CONTACT"; position: absolute; z-index: -1; left: -6vw; top: 70px; color: rgba(4,64,100,.035); font-size: 16vw; font-weight: 950; letter-spacing: -.08em; }
body.qct-site .contactCopyV9 h2 { font-size: clamp(43px,4.5vw,64px) !important; }
body.qct-site .contactCardV9 { border-radius: 32px !important; box-shadow: 0 38px 90px rgba(4,45,73,.16) !important; }
body.qct-site .contactCardV9::before { content: ""; display: block; height: 4px; margin: -32px -32px 28px; border-radius: 32px 32px 0 0; background: linear-gradient(90deg,#087ff0,#3bd8e8,transparent); }

@keyframes qct-r2-route { to { stroke-dashoffset:-180; } }
@keyframes qct-r2-spin { to { transform:rotate(360deg); } }

@media (max-width: 1040px) {
  body.qct-site .contactHeroV9 > .shell { grid-template-columns: 1fr !important; }
  body.qct-site .contactConversationV9.qct-r2-router { max-width: 760px !important; }
  body.qct-site .contactChoiceBandV9 .editorialLeadV8 { grid-template-columns: 1fr; gap: 18px; }
}

@media (max-width: 680px) {
  body.qct-site .contactHeroV9 { min-height: 0 !important; padding: 68px 0 88px !important; background-position: 63% center !important; }
  body.qct-site .contactHeroV9 h1 { font-size: clamp(47px,13vw,64px) !important; }
  body.qct-site .contactConversationV9.qct-r2-router { min-height: 500px; padding: 20px !important; }
  body.qct-site .qct-r2-route-stage { height: 330px; }
  body.qct-site .qct-r2-orb { width: 96px; height: 96px; }
  body.qct-site .qct-r2-node { width: 125px; padding: 9px; }
  body.qct-site .qct-r2-node i { display: none; }
  body.qct-site .qct-r2-router-foot { display: block; }
  body.qct-site .qct-r2-router-foot b { display: block; margin-top: 4px; }
  body.qct-site .contactChoiceBandV9 { padding: 90px 0 100px !important; }
  body.qct-site .contactChoiceGridV9 button { min-height: 205px !important; }
  body.qct-site .contactPageGridV9 { padding-top: 90px !important; padding-bottom: 105px !important; }
  body.qct-site .contactCardV9::before { margin: -22px -22px 22px; }
}

@media (max-width: 420px) {
  body.qct-site .qct-r2-router-head small { display: none; }
  body.qct-site .qct-r2-node { width: 108px; }
  body.qct-site .qct-r2-node-a,
  body.qct-site .qct-r2-node-c { left: -7px; }
  body.qct-site .qct-r2-node-b,
  body.qct-site .qct-r2-node-d { right: -7px; }
}

@media (prefers-reduced-motion: reduce) {
  body.qct-site .qct-r2-route-line,
  body.qct-site .qct-r2-orb::before { animation: none !important; }
}
