:root {
  --inmy-fixed-night: rgba(6, 9, 15, .9);
  --inmy-fixed-gold: #d7bc82;
  --inmy-fixed-line: rgba(215, 188, 130, .42);
}

main > section[id] { scroll-margin-top: 82px; }

/* Navigation toujours disponible, sans masquer la vidéo du hero. */
.site-header {
  position: fixed;
  z-index: 120;
  top: 0;
  left: 0;
  border-bottom-color: transparent;
  background: transparent;
  box-shadow: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  transition: min-height .45s ease, padding .45s ease, background .45s ease, box-shadow .45s ease, backdrop-filter .45s ease;
}
.site-header.is-scrolled,
.site-header:has(.mobile-menu[open]) {
  min-height: 82px;
  padding-block: 10px;
  background: var(--inmy-fixed-night);
  border-bottom-color: rgba(215, 188, 130, .14);
  box-shadow: 0 18px 50px rgba(0, 0, 0, .3), inset 0 -1px rgba(215, 188, 130, .16);
  -webkit-backdrop-filter: blur(18px) saturate(1.18);
  backdrop-filter: blur(18px) saturate(1.18);
}

/* Accès privé : un cadenas dessiné dans le langage fin et doré d’INMY. */
.inmy-private-access { justify-content: center; }
.inmy-private-access__copy { display: flex; align-items: center; gap: 10px; }
.inmy-lock {
  position: relative;
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 21px;
  height: 17px;
  margin-top: 6px;
  color: #e3ca91;
  border: 1px solid currentColor;
  border-radius: 5px;
  box-shadow: inset 0 0 10px rgba(227, 202, 145, .08), 0 0 16px rgba(227, 202, 145, .08);
  transition: color .35s ease, box-shadow .35s ease, transform .35s ease;
}
.inmy-lock::before {
  content: "";
  position: absolute;
  left: 50%;
  bottom: calc(100% - 1px);
  width: 11px;
  height: 9px;
  border: 1px solid currentColor;
  border-bottom: 0;
  border-radius: 8px 8px 0 0;
  transform: translateX(-50%);
  transition: transform .4s cubic-bezier(.2,.8,.2,1);
}
.inmy-lock i {
  width: 3px;
  height: 5px;
  border-radius: 999px;
  background: currentColor;
  box-shadow: 0 0 8px rgba(227, 202, 145, .5);
}
.inmy-private-access:hover .inmy-lock,
.inmy-private-access:focus-visible .inmy-lock,
.inmy-mobile-private-lock:hover .inmy-lock,
.inmy-mobile-private-lock:focus-visible .inmy-lock {
  color: #f3dda8;
  box-shadow: inset 0 0 12px rgba(227, 202, 145, .12), 0 0 22px rgba(227, 202, 145, .22);
  transform: translateY(-1px);
}
.inmy-private-access:hover .inmy-lock::before,
.inmy-private-access:focus-visible .inmy-lock::before { transform: translateX(-50%) translateY(-2px); }
.inmy-mobile-private-lock { display: none; }
.inmy-mobile-private-access { gap: 14px; }

.inmy-video-section:not(.hero) .inmy-section-media video {
  width: 100%;
  min-width: 100%;
  height: 100%;
  min-height: 100%;
  object-fit: cover;
  image-rendering: auto;
  filter: saturate(.9) contrast(1.02);
  transform: translateZ(0);
  backface-visibility: hidden;
}

/* Le repère de défilement reste dans sa propre zone, loin du titre. */
.scroll-cue {
  position: absolute !important;
  top: auto;
  left: auto;
  right: clamp(22px, 3vw, 48px);
  bottom: clamp(150px, 15vh, 230px);
  flex-direction: column;
  gap: 12px;
  transform: none;
  transform-origin: center;
}
.scroll-cue span {
  writing-mode: vertical-rl;
  text-orientation: mixed;
}
.scroll-cue i {
  width: 1px;
  height: 58px;
  background: linear-gradient(to bottom, rgba(255,255,255,.48), transparent);
}

/* Les deux appels à l'action partagent désormais le même relief signature. */
.hero-actions .signature-link {
  min-height: 64px;
  padding: 8px 22px 8px 15px;
  clip-path: polygon(5% 0, 94% 0, 100% 22%, 97% 78%, 92% 100%, 4% 100%, 0 78%, 0 22%);
  isolation: isolate;
  background: conic-gradient(from var(--border-angle), #755a2c, #efd69f 12%, #9a783f 25%, #3f321e 52%, #d2b676 72%, #755a2c);
  box-shadow: 0 18px 50px rgba(0, 0, 0, .26), inset 0 0 34px rgba(201, 173, 112, .06);
  animation: inmy-border-orbit 9s linear infinite;
  filter: none;
}
.hero-actions .signature-link::before {
  z-index: -1;
  inset: 1px;
  clip-path: inherit;
  background: linear-gradient(105deg, #11192b 0%, #070a11 82%);
}
.hero-actions .signature-link:hover,
.hero-actions .signature-link:focus-visible {
  filter: brightness(1.13);
  transform: translateY(-3px);
}

/* Bandeau éditorial continu entre le hero et la promesse. */
.section > .inmy-address-marquee {
  position: absolute;
  z-index: 5;
  top: 8px;
  left: 50%;
  width: 100vw;
  max-width: none;
  margin: 0 !important;
  overflow: hidden;
  border: 0;
  background: transparent;
  box-shadow: none;
  transform: translateX(-50%);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
.inmy-address-marquee__track {
  display: flex;
  width: max-content;
  animation: inmy-address-flow 34s linear infinite;
}
.inmy-address-marquee__group {
  display: flex;
  flex: none;
  align-items: center;
  min-height: 52px;
}
.inmy-address-marquee a {
  display: inline-flex;
  align-items: baseline;
  gap: 14px;
  padding-inline: clamp(24px, 3.2vw, 56px);
  white-space: nowrap;
}
.inmy-address-marquee strong {
  color: #11151d;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.65rem, 2.35vw, 2.45rem);
  font-weight: 400;
  letter-spacing: .055em;
}
.inmy-address-marquee em {
  color: #9b793f;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1rem, 1.25vw, 1.18rem);
  letter-spacing: .08em;
}
.inmy-address-marquee i {
  width: 5px;
  height: 5px;
  margin-inline: 4px;
  border: 1px solid #a88649;
  transform: rotate(45deg);
}
@keyframes inmy-address-flow {
  to { transform: translateX(-50%); }
}

/* Une ombre basse sépare clairement chaque chapitre cinématique. */
.section-tone-dark:not(.hero) {
  z-index: 3;
  box-shadow: 0 34px 72px rgba(4, 6, 10, .28), 0 9px 20px rgba(4, 6, 10, .18);
}

/* Triptyque régulier : aucun chevauchement, proportions identiques. */
.inmy-dynamic-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: clamp(18px, 2vw, 30px);
  perspective: none;
}
.inmy-dynamic-card,
.inmy-dynamic-card:nth-child(2),
.inmy-dynamic-card:nth-child(3),
.inmy-dynamic-card:last-child:nth-child(odd) {
  display: grid;
  grid-template-rows: auto 1fr;
  width: 100%;
  height: 100%;
  grid-column: auto;
  justify-self: stretch;
  transform: none;
}
.inmy-dynamic-card:hover,
.inmy-dynamic-card:nth-child(2):hover,
.inmy-dynamic-card:nth-child(3):hover {
  transform: translateY(-10px);
}
.inmy-dynamic-visual { aspect-ratio: 1.22; }
.inmy-dynamic-copy { display: flex; flex-direction: column; }
.inmy-dynamic-copy div { margin-top: auto; }
.inmy-dynamic-footer { justify-content: center; text-align: center; }

/* Menu latéral des trois adresses. */
.inmy-floating-properties {
  position: fixed;
  z-index: 88;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
}
.inmy-floating-properties__toggle { display: none; }
.inmy-floating-properties__panel {
  width: 230px;
  overflow: hidden;
  color: #f9f3e8;
  border: 1px solid var(--inmy-fixed-line);
  border-radius: 20px 0 0 20px;
  background: rgba(6, 9, 15, .82);
  box-shadow: 0 25px 70px rgba(0, 0, 0, .34), inset 0 0 36px rgba(201, 173, 112, .04);
  -webkit-backdrop-filter: blur(18px) saturate(1.2);
  backdrop-filter: blur(18px) saturate(1.2);
}
.inmy-floating-properties__title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 0;
  padding: 13px 15px;
  color: var(--inmy-fixed-gold);
  border-bottom: 1px solid rgba(215, 188, 130, .18);
  font-size: .58rem;
  font-weight: 800;
  letter-spacing: .19em;
  text-transform: uppercase;
}
.inmy-floating-properties__title span:last-child {
  display: grid;
  place-items: center;
  width: 22px;
  height: 22px;
  border: 1px solid rgba(215,188,130,.35);
  border-radius: 50%;
  font-family: Georgia, "Times New Roman", serif;
  letter-spacing: 0;
}
.inmy-floating-properties__panel a {
  display: grid;
  gap: 3px;
  padding: 13px 15px;
  border-bottom: 1px solid rgba(255,255,255,.09);
  transition: color .3s, background .3s, padding-left .3s;
}
.inmy-floating-properties__panel a:last-child { border-bottom: 0; }
.inmy-floating-properties__panel a:hover,
.inmy-floating-properties__panel a:focus-visible {
  padding-left: 20px;
  color: #fff;
  background: rgba(201, 173, 112, .12);
}
.inmy-floating-properties__panel a strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: .96rem;
  font-weight: 400;
}
.inmy-floating-properties__panel a small {
  color: rgba(255,255,255,.55);
  font-size: .52rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

/* Dock de contact discret et permanent. */
.inmy-quick-actions {
  position: fixed;
  z-index: 90;
  right: 24px;
  bottom: max(22px, env(safe-area-inset-bottom));
  display: flex;
  overflow: hidden;
  border: 1px solid var(--inmy-fixed-line);
  border-radius: 999px;
  background: rgba(6, 9, 15, .86);
  box-shadow: 0 20px 60px rgba(0, 0, 0, .32);
  -webkit-backdrop-filter: blur(18px) saturate(1.2);
  backdrop-filter: blur(18px) saturate(1.2);
}
.inmy-quick-actions a {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 48px;
  padding: 0 18px;
  color: #fff;
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .15em;
  text-transform: uppercase;
  transition: color .25s, background .25s;
}
.inmy-quick-actions a + a { border-left: 1px solid rgba(215,188,130,.23); }
.inmy-quick-actions a:hover,
.inmy-quick-actions a:focus-visible { color: #11151d; background: var(--inmy-fixed-gold); }
.inmy-quick-actions svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.6; }
.inmy-overlay-open .inmy-floating-properties,
.inmy-overlay-open .inmy-quick-actions { visibility: hidden; opacity: 0; }

/* Le téléphone est réellement enregistré pour les demandes de rappel. */
.contact-form { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.contact-form .button {
  grid-column: 1 / -1;
  justify-self: center;
  margin-top: 18px;
}
.contact-form.is-callback-request label:has(input[name="phone"]) > span { color: #8a672c; }
.inmy-callback-note {
  min-height: 1.4em;
  margin: 15px 0 -43px;
  color: #765f38;
  font: italic 1rem Georgia, "Times New Roman", serif;
}

@media (max-width: 1180px) {
  .inmy-floating-properties__panel { width: 205px; }
}

@media (min-width: 901px) {
  .inmy-floating-properties.is-condensed .inmy-floating-properties__toggle {
    display: grid;
    place-items: center;
    width: 56px;
    min-height: 154px;
    padding: 13px 0;
    color: #f8ebcf;
    border: 1px solid var(--inmy-fixed-line);
    border-right: 0;
    border-radius: 20px 0 0 20px;
    background: rgba(6, 9, 15, .88);
    box-shadow: 0 20px 50px rgba(0,0,0,.3);
    cursor: pointer;
    -webkit-backdrop-filter: blur(16px);
    backdrop-filter: blur(16px);
  }
  .inmy-floating-properties.is-condensed .inmy-floating-properties__toggle span {
    writing-mode: vertical-rl;
    color: var(--inmy-fixed-gold);
    font-family: Georgia, "Times New Roman", serif;
    font-size: .7rem;
    font-weight: 400;
    letter-spacing: .11em;
    text-transform: uppercase;
  }
  .inmy-floating-properties.is-condensed .inmy-floating-properties__panel {
    position: absolute;
    top: 50%;
    right: 0;
    opacity: 0;
    pointer-events: none;
    transform: translateY(-50%) translateX(20px) scale(.98);
    transition: opacity .35s ease, transform .35s ease;
  }
  .inmy-floating-properties.is-condensed.is-open .inmy-floating-properties__toggle { opacity: 0; pointer-events: none; }
  .inmy-floating-properties.is-condensed.is-open .inmy-floating-properties__panel {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(-50%) translateX(0) scale(1);
  }
}

@media (max-width: 1000px) and (min-width: 701px) {
  .inmy-dynamic-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
  .site-header,
  .site-header.is-scrolled { min-height: 76px; padding: 10px 16px; }
  .mobile-menu { right: 16px; }
  .mobile-menu nav {
    position: fixed;
    top: 78px;
    right: 12px;
    width: calc(100vw - 48px);
    max-width: 380px;
    min-height: min(620px, calc(100svh - 92px));
    padding: 24px;
    border-radius: 22px;
    background: rgba(6, 9, 15, .97);
    box-shadow: 0 28px 80px rgba(0, 0, 0, .55);
  }
  .mobile-menu nav a {
    min-height: 58px;
    padding: 15px 12px;
    font-size: .78rem;
  }
  .hero-actions .signature-link { width: min(100%, 430px); }
  .inmy-video-section:not(.hero) .inmy-section-media::after {
    background: linear-gradient(to bottom, rgba(4,6,10,.25), rgba(4,6,10,.72)), linear-gradient(to left, rgba(4,6,10,.08), rgba(4,6,10,.52));
  }
  .hero.section-tone-dark .inmy-section-media::after {
    background: linear-gradient(to bottom, rgba(4,6,10,.22), rgba(4,6,10,.78) 80%), linear-gradient(to left, rgba(4,6,10,.06), rgba(4,6,10,.56));
  }
  .metrics {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
  }
  .metrics article {
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 150px;
    padding: 22px 8px;
    border-right: 1px solid var(--line-light);
    border-bottom: 0;
    text-align: center;
  }
  .metrics article:last-child { border-right: 0; }
  .metrics strong { font-size: clamp(2.15rem, 10vw, 3.4rem); }
  .metrics > article > span { max-width: 120px; font-size: .56rem; line-height: 1.4; }
  .service-card.is-mobile-active::before {
    opacity: .78;
    transform: scale(1);
  }
  .inmy-floating-properties {
    top: 50%;
    right: 0;
    transform: translateY(-50%);
  }
  .inmy-floating-properties__toggle {
    display: grid;
    place-items: center;
    width: 50px;
    min-height: 154px;
    padding: 12px 0;
    color: #f8ebcf;
    border: 1px solid var(--inmy-fixed-line);
    border-right: 0;
    border-radius: 18px 0 0 18px;
    background: rgba(6, 9, 15, .88);
    box-shadow: 0 20px 50px rgba(0,0,0,.3);
    cursor: pointer;
    -webkit-backdrop-filter: blur(16px);
    backdrop-filter: blur(16px);
  }
  .inmy-floating-properties__toggle span {
    max-width: none;
    color: var(--inmy-fixed-gold);
    font-family: Georgia, "Times New Roman", serif;
    font-size: .72rem;
    line-height: 1;
    font-weight: 400;
    letter-spacing: .11em;
    text-transform: uppercase;
    writing-mode: vertical-rl;
  }
  .inmy-floating-properties__panel {
    position: absolute;
    top: 50%;
    right: 0;
    width: min(285px, calc(100vw - 26px));
    opacity: 0;
    pointer-events: none;
    transform: translateY(-50%) translateX(20px) scale(.98);
    transition: opacity .35s ease, transform .35s ease;
  }
  .inmy-floating-properties.is-open .inmy-floating-properties__toggle { opacity: 0; pointer-events: none; }
  .inmy-floating-properties.is-open .inmy-floating-properties__panel {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(-50%) translateX(0) scale(1);
  }
  .contact-form { grid-template-columns: 1fr; }
  .contact-form .button { grid-column: 1; width: 100%; }
  .inmy-callback-note { margin-bottom: -35px; }
}

@media (max-width: 700px) {
  .inmy-mobile-private-lock {
    position: absolute;
    z-index: 3;
    top: 50%;
    right: 74px;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    color: #e3ca91;
    border: 1px solid rgba(227, 202, 145, .32);
    border-radius: 50%;
    background: rgba(7, 10, 17, .36);
    box-shadow: 0 12px 30px rgba(0, 0, 0, .18), inset 0 1px rgba(255,255,255,.05);
    transform: translateY(-50%);
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
  }
  .inmy-mobile-private-lock .inmy-lock { transform: scale(.84); }
  .inmy-dynamic-grid { grid-template-columns: 1fr; }
  .section > .inmy-address-marquee { top: 6px; }
  .inmy-address-marquee__group { min-height: 50px; }
  .inmy-address-marquee strong { font-size: 1.42rem; }
  .inmy-address-marquee em { font-size: .84rem; }
  .inmy-quick-actions {
    right: 50%;
    bottom: max(10px, env(safe-area-inset-bottom));
    width: min(310px, calc(100vw - 116px));
    transform: translateX(50%);
  }
  .inmy-quick-actions a { flex: 1; justify-content: center; min-height: 46px; padding: 0 12px; }
}

@media (prefers-reduced-motion: reduce) {
  .inmy-address-marquee__track,
  .hero-actions .signature-link { animation: none; }
  .inmy-address-marquee__track { transform: none; }
}
