/* Jeton de la page Carte */
:root {
  --courbe-choix: cubic-bezier(.4, 0, .2, 1);
}

/* Carte de visite : sans en-tête ni pied */
body:has(#carte) .elementor-location-header,
body:has(#carte) .elementor-location-footer {
  display: none;
}

/* Carte : photo jusqu'au bord */
html:has(#carte) {
  scrollbar-gutter: auto;
}

/* Carte : hauteur écran */
.elementor .vcarte {
  min-height: 100vh;
  min-height: 100svh;
}

/* Carte : voile sur la photo */
.elementor .vcarte-fond::after {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: var(--voile);
  pointer-events: none;
}

/* Carte : verre dépoli */
.elementor .vcarte-interieur {
  z-index: 1;
  -webkit-backdrop-filter: blur(18px) saturate(1.1);
  backdrop-filter: blur(18px) saturate(1.1);
  box-shadow: 0 24px 64px rgba(20, 18, 16, .22);
  animation: heroUp 1.1s .05s var(--courbe-douce) both;
}

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  body .elementor .vcarte-interieur {
    background-color: rgba(247, 241, 232, .94);
  }
}

/* Carte : logo sans sa version de survol */
.elementor .vcarte-logo {
  overflow: hidden;
}

.elementor .vcarte-logo svg {
  display: block;
  width: 100%;
  height: 100%;
}

/* Carte : entrée en cascade */
.elementor .vcarte-logo {
  animation: heroUp .9s .2s var(--courbe-douce) both;
}

.elementor .vcarte .surtitre {
  animation: heroUp .9s .1s var(--courbe-douce) both;
}

.elementor .vcarte-nom {
  animation: heroUp 1.1s .25s var(--courbe-douce) both;
}

.elementor .vcarte-fonction {
  animation: heroUp 1s .45s var(--courbe-douce) both;
}

.elementor .vcarte-offre {
  animation: heroUp 1s .55s var(--courbe-douce) both;
}

.elementor .vcarte-contact {
  animation: heroUp 1s .7s var(--courbe-douce) both;
}

.elementor .vcarte-liste {
  animation: heroUp 1s .85s var(--courbe-douce) both;
}

.elementor .vcarte-qr {
  animation: heroUp 1s 1.15s var(--courbe-douce) both;
}

/* Carte : transitions des boutons */
.elementor .vcarte-contact,
.elementor .vcarte-partage {
  transition: background-color .25s var(--courbe-choix), color .25s var(--courbe-choix);
}

/* Carte : liste de coordonnées */
.elementor .vcarte-ligne > a {
  display: flex;
  align-items: center;
  gap: 14px;
  box-sizing: border-box;
  width: 100%;
  min-height: 44px;
  padding: 8px 2px;
  color: inherit;
  text-decoration: none;
  cursor: pointer;
  transition: color .25s var(--courbe-choix);
}

.elementor .vcarte-ligne > a::before {
  content: '';
  flex: 0 0 22px;
  width: 22px;
  height: 22px;
  background-color: currentColor;
  -webkit-mask: var(--icone) center / contain no-repeat;
  mask: var(--icone) center / contain no-repeat;
}

.elementor .vcarte-ligne > a:hover,
.elementor .vcarte-ligne > a:focus-visible {
  color: var(--brique-fonce);
}

/* Carte : icônes de la liste */
.vcarte-liste > :nth-child(1) {
  --icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E");
}

.vcarte-liste > :nth-child(2) {
  --icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E");
}

.vcarte-liste > :nth-child(3) {
  --icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M3 12h18M12 3a14 14 0 0 1 0 18 14 14 0 0 1 0-18'/%3E%3C/svg%3E");
}

.vcarte-liste > :nth-child(4) {
  --icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-4 0v7h-4v-7a6 6 0 0 1 6-6zM2 9h4v12H2z'/%3E%3Ccircle cx='4' cy='4' r='2'/%3E%3C/svg%3E");
}

/* Carte : QR code */
.elementor .vcarte-qr-image svg {
  display: block;
  width: 100%;
  height: 100%;
}

/* Carte : légende du QR code */
.elementor .vcarte-qr-legende {
  max-width: 30ch;
  text-wrap: balance;
}

/* Carte : focus clavier */
.elementor .vcarte a:focus-visible {
  outline: 2px solid var(--brique);
  outline-offset: 3px;
}

/* Mouvement réduit */
@media (prefers-reduced-motion: reduce) {
  .elementor .vcarte-interieur,
  .elementor .vcarte-logo,
  .elementor .vcarte .surtitre,
  .elementor .vcarte-nom,
  .elementor .vcarte-fonction,
  .elementor .vcarte-offre,
  .elementor .vcarte-contact,
  .elementor .vcarte-liste,
  .elementor .vcarte-qr {
    animation: none;
  }
}
