/* Contact + implantations network */
.contact-hero .hero-grid { align-items: center; }
.contact-implantation-card { position: relative; overflow: hidden; padding: 16px; background: linear-gradient(145deg, rgba(255,255,255,.88), rgba(235,244,255,.72)); }
.contact-implantation-card::before { content: ""; position: absolute; width: 230px; aspect-ratio: 1; right: -90px; bottom: -120px; border-radius: 50%; background: rgba(7,87,255,.22); filter: blur(45px); pointer-events: none; }
.contact-implantation-visual { position: relative; display: block; overflow: hidden; aspect-ratio: 16/10; border-radius: 21px; background: #d8f2f2; box-shadow: inset 0 0 0 1px rgba(255,255,255,.7); }
.contact-implantation-visual img { width: 100%; height: 100%; object-fit: cover; object-position: center 48%; transition: transform .45s ease; }
.contact-implantation-visual::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 52%, rgba(3,25,70,.32)); pointer-events: none; }
.contact-implantation-visual:hover img { transform: scale(1.035); }
.contact-map-signal { position: absolute; z-index: 2; right: 20px; bottom: 18px; width: 18px; height: 18px; border: 5px solid #fff; border-radius: 50%; background: #0757ff; box-shadow: 0 0 0 8px rgba(7,87,255,.22), 0 10px 28px rgba(2,33,102,.28); }
.contact-implantation-copy { position: relative; z-index: 1; padding: 22px 12px 10px; }
.contact-implantation-copy p { margin-bottom: 19px; }
.implantation-text-link { display: inline-flex; align-items: center; gap: 8px; color: var(--blue); font-weight: 900; }
.implantation-text-link span { transition: transform .2s ease; }
.implantation-text-link:hover span { transform: translateX(4px); }

.implantations-hero { position: relative; overflow: hidden; padding: 86px 0 76px; }
.implantations-hero::before { content: ""; position: absolute; width: 520px; aspect-ratio: 1; top: -290px; right: -90px; border-radius: 50%; background: radial-gradient(circle, rgba(68,161,255,.25), rgba(7,87,255,.05) 52%, transparent 70%); pointer-events: none; }
.implantations-hero-copy { position: relative; z-index: 1; }
.implantations-hero h1 { max-width: 890px; margin: 17px 0 23px; font-size: clamp(3.35rem,7vw,6.6rem); line-height: .9; letter-spacing: -.075em; }
.implantations-hero .lead { max-width: 760px; margin: 0; color: var(--muted); font-size: 1.1rem; }
.implantations-map-section { padding: 40px 0 110px; }
.implantations-layout { display: grid; grid-template-columns: minmax(0,1.12fr) minmax(360px,.88fr); gap: clamp(38px,6vw,82px); align-items: center; }
.implantation-map-card { position: relative; margin: 0; padding: 15px; border-radius: 36px; background: rgba(255,255,255,.72); }
.implantation-map-stage { position: relative; overflow: hidden; aspect-ratio: 1; border-radius: 27px; background: #d8f3ef; }
.implantation-map-stage::after { content: ""; position: absolute; inset: 0; border: 1px solid rgba(255,255,255,.78); border-radius: inherit; box-shadow: inset 0 0 55px rgba(4,43,110,.08); pointer-events: none; }
.implantation-map-stage > img { width: 100%; height: 100%; object-fit: cover; }
.implantation-map-markers { position: absolute; z-index: 2; inset: 0; pointer-events: none; }
.implantation-map-marker { position: absolute; left: var(--x); top: var(--y); width: 19px; height: 19px; border: 4px solid #fff; border-radius: 50% 50% 50% 0; background: linear-gradient(145deg,#ffe71a,#ff8b12); box-shadow: 0 0 0 5px rgba(255,186,16,.24), 0 8px 20px rgba(76,48,0,.3); transform: translate(-50%,-100%) rotate(-45deg); }
.implantation-map-marker::after { content: ""; position: absolute; width: 5px; height: 5px; left: 3px; top: 3px; border-radius: 50%; background: #0757ff; }
.implantation-map-card figcaption { padding: 14px 10px 3px; color: var(--muted); font-size: .76rem; font-weight: 700; }
.implantations-copy h2 { margin: 17px 0 18px; font-size: clamp(2.35rem,4.7vw,4.35rem); line-height: .95; letter-spacing: -.06em; }
.implantations-copy > p { margin: 0; color: var(--muted); font-size: 1.02rem; }
.implantation-proof { display: grid; grid-template-columns: 34px 1fr; gap: 12px; align-items: start; margin: 27px 0; padding: 17px; border: 1px solid rgba(7,87,255,.11); border-radius: 18px; background: rgba(255,255,255,.62); }
.implantation-proof > span { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 12px; color: #fff; background: var(--blue); font-weight: 900; }
.implantation-proof p { margin: 2px 0 0; color: #3e4e70; font-size: .82rem; font-weight: 750; }
.implantation-cities-section { padding: 105px 0; background: linear-gradient(180deg,rgba(229,240,255,.44),rgba(255,255,255,.12)); }
.implantation-section-heading { max-width: 800px; }
.implantation-section-heading h2 { margin: 14px 0 16px; font-size: clamp(2.6rem,5.2vw,4.75rem); line-height: .96; letter-spacing: -.06em; }
.implantation-section-heading p { max-width: 680px; color: var(--muted); }
.implantation-city-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; margin-top: 43px; }
.implantation-city-card { position: relative; min-height: 155px; display: flex; flex-direction: column; justify-content: flex-end; overflow: hidden; padding: 22px; border-radius: 25px; background: rgba(255,255,255,.7); }
.implantation-city-card::before { content: ""; position: absolute; width: 115px; aspect-ratio: 1; top: -60px; right: -35px; border-radius: 50%; background: radial-gradient(circle,rgba(57,143,255,.25),transparent 68%); }
.implantation-city-card span { position: relative; color: var(--blue); font-size: .66rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.implantation-city-card h3 { position: relative; margin: 7px 0 0; font-size: 1.48rem; letter-spacing: -.04em; }
.implantations-cta-section { padding: 95px 0 110px; }
.implantations-cta { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 40px; align-items: end; padding: 45px; border-radius: 34px; background: linear-gradient(135deg,rgba(255,255,255,.82),rgba(227,240,255,.72)); }
.implantations-cta h2 { margin: 12px 0 10px; font-size: clamp(2.3rem,4.3vw,4rem); line-height: .96; letter-spacing: -.055em; }
.implantations-cta p { max-width: 650px; margin: 0; color: var(--muted); }
.implantations-cta .hero-actions { justify-content: flex-end; margin-top: 0; }

@media (max-width: 980px) {
  .contact-hero .hero-grid, .implantations-layout, .implantations-cta { grid-template-columns: minmax(0,1fr); }
  .contact-implantation-card { max-width: 680px; }
  .implantations-copy { max-width: 720px; }
  .implantation-city-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .implantations-cta .hero-actions { justify-content: flex-start; }
}
@media (max-width: 680px) {
  .contact-implantation-card { padding: 12px; border-radius: 26px; }
  .contact-implantation-copy { padding: 19px 9px 8px; }
  .implantations-hero { padding: 52px 0 48px; }
  .implantations-hero h1 { font-size: clamp(2.8rem,14vw,3.7rem); overflow-wrap: anywhere; }
  .implantations-map-section { padding: 24px 0 72px; }
  .implantation-map-card { padding: 9px; border-radius: 27px; }
  .implantation-map-stage { border-radius: 21px; }
  .implantation-map-marker { width: 16px; height: 16px; border-width: 3px; }
  .implantation-map-marker::after { width: 4px; height: 4px; left: 3px; top: 3px; }
  .implantations-copy h2 { font-size: clamp(2.4rem,12vw,3.25rem); }
  .implantation-cities-section { padding: 72px 0; }
  .implantation-city-grid { grid-template-columns: minmax(0,1fr); margin-top: 30px; }
  .implantation-city-card { min-height: 128px; }
  .implantations-cta-section { padding: 72px 0 88px; }
  .implantations-cta { gap: 25px; padding: 28px 20px; border-radius: 28px; }
  .implantations-cta .hero-actions { width: 100%; }
}
