/* Homepage additions. All selectors are scoped to the new Noval sections. */
.nv-section { --nv-border: #eadde1; --nv-soft: #f5e9ec; }
.nv-section [hidden] { display: none !important; }
.nv-section h2 { font-size: clamp(44px, 4.35vw, 64px); line-height: 1.06; letter-spacing: -1.3px; }
.nv-eyebrow { margin: 0 0 22px; color: var(--wine); font-size: 11px; font-weight: 550; letter-spacing: 1.6px; line-height: 1.6; }
.nv-centered { text-align: center; max-width: 860px; margin-inline: auto; }
.nv-intro { color: var(--muted); font-size: 16px; line-height: 1.8; margin: 22px 0 0; }
.nv-intro + .nv-intro { margin-top: 10px; }
.nv-centered .nv-intro { max-width: 635px; margin-inline: auto; }
.nv-small-label { margin: 0; color: var(--wine); font-size: 10px; letter-spacing: 1.2px; line-height: 1.7; font-weight: 550; }
.nv-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.reveal-ready .nv-section [data-reveal] { transform: translate3d(0, 16px, 0); }
.reveal-ready .nv-section [data-reveal].is-visible { transform: translateZ(0); }

/* A shared dossier, followed by the answer it makes possible. */
.nv-sophie { padding-block: 46px 62px; }
.nv-knowledge-scene { display: grid; grid-template-columns: 1.15fr 1fr; gap: 98px; max-width: 1030px; margin: 51px auto 0; align-items: center; }
.nv-knowledge { background: #fffcfa; border: 1px solid var(--nv-border); border-radius: 14px; box-shadow: 0 12px 44px #53233d05; overflow: hidden; }
.nv-document-heading { display: flex; align-items: center; gap: 13px; padding: 22px 25px; }
.nv-document-mark { display: grid; place-items: center; width: 37px; height: 42px; border-radius: 6px; background: var(--nv-soft); color: var(--wine); flex-shrink: 0; }
.nv-document-mark svg { width: 23px; height: 23px; stroke-width: 1.35; }
.nv-document-heading h3 { font-size: 13px; font-weight: 550; margin: 0; }
.nv-document-heading p { font-size: 11px; color: var(--muted); margin: 3px 0 0; }
.nv-knowledge-topics { list-style: none; margin: 0; padding: 0 25px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; background: #fcf7f5; border-block: 1px solid #efe5e6; }
.nv-knowledge-topics li { padding: 13px 0; font-size: 12px; text-align: center; color: var(--muted); }
.nv-knowledge-topics li:first-child { color: var(--wine); box-shadow: inset 0 -2px var(--wine); }
.nv-treatment { padding: 25px 30px 26px; }
.nv-treatment h4 { font: 400 38px/1.1 var(--serif); margin: 9px 0 23px; letter-spacing: -.5px; }
.nv-treatment-data { display: grid; grid-template-columns: 1fr 1fr; margin: 0; gap: 20px; }
.nv-treatment-data dt { color: var(--muted); font-size: 11px; margin-bottom: 4px; }
.nv-treatment-data dd { margin: 0; font-size: 27px; line-height: 1.2; }
.nv-treatment-data dd span { font-size: 16px; }
.nv-treatment-description, .nv-treatment-note { grid-column: 1 / -1; }
.nv-treatment-description dd, .nv-treatment-note dd { font-size: 14px; line-height: 1.6; }
.nv-treatment-note { padding-top: 17px; border-top: 1px solid var(--nv-border); }
.nv-answer { position: relative; --reveal-delay: 120ms; }
.nv-answer > .nv-small-label { margin-bottom: 20px; }
.nv-answer-link { position: absolute; top: 125px; right: calc(100% + 17px); display: flex; align-items: center; width: 65px; color: #bd8a9f; }
.nv-answer-link span { border-top: 1px dashed #cdacb8; flex: 1; }
.nv-answer-link svg { width: 18px; height: 18px; margin-left: -6px; }
.nv-answer-bubble { background: #f5e8ed; padding: 25px 27px 28px; border-radius: 14px 14px 14px 3px; }
.nv-sophie-signature { display: flex; gap: 11px; align-items: center; }
.nv-sophie-signature > span { display: grid; place-items: center; width: 37px; height: 37px; border: 1px solid #d9b6c5; border-radius: 50%; font: italic 26px/1 var(--serif); color: var(--wine); background: #fbf3f6; }
.nv-sophie-signature p { margin: 0; font-size: 13px; font-weight: 550; color: var(--wine-dark); line-height: 1.4; }
.nv-sophie-signature small { display: block; margin-top: 3px; font-size: 10px; font-weight: 400; color: var(--muted); }
.nv-answer blockquote { font-size: 17px; line-height: 1.85; margin: 20px 0 0; }
.nv-answer blockquote strong { color: var(--wine); font-weight: 550; }
.nv-example-note { color: var(--muted); font-size: 11px; line-height: 1.65; margin: 17px 4px 0; max-width: 345px; }
.nv-knowledge-footer { max-width: 1030px; margin: 38px auto 0; padding-top: 29px; border-top: 1px solid var(--nv-border); display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; }
.nv-control { margin: 0; font: 400 32px/1.15 var(--serif); letter-spacing: -.3px; }
.nv-control em { color: var(--wine); }
.nv-knowledge-footer > p:last-child { color: var(--muted); font-size: 14px; line-height: 1.8; margin: 0; }

/* After each call: full-width ribbons and two independently layered messages. */
#apres-appel {
  position: relative; display: block; width: 100%; max-width: none; margin: 0; padding: 0;
  overflow: hidden; overflow: clip; overflow-clip-margin: 0; isolation: isolate;
  background: linear-gradient(#fdfaf8, var(--paper));
  --nv-delivery-shadow: color-mix(in srgb, var(--wine-dark) 31%, transparent);
}
#apres-appel .nv-delivery-decor {
  position: absolute; inset: 0; z-index: -1; pointer-events: none;
  color: var(--wine); overflow: hidden;
  mask-image: linear-gradient(transparent, #000 8%, #000 88%, transparent);
}
#apres-appel .nv-delivery-decor svg {
  position: absolute; inset: -1px; width: calc(100% + 2px); height: calc(100% + 2px); overflow: visible;
  stroke: none;
}
#apres-appel .nv-delivery-layout {
  position: relative; width: min(100%, 1815px); margin-inline: auto; container-type: inline-size;
  display: grid; grid-template-columns: 43% 30%; gap: 4%;
  padding: 0; min-height: 0;
}
#apres-appel .nv-messages {
  grid-column: 1; grid-row: 1; position: relative; width: 100%; min-width: 0;
  margin: 6.7cqw 0 3.5cqw 13.9cqw;
}
#apres-appel .nv-messages-scene { position: relative; height: 33cqw; isolation: isolate; }
#apres-appel .nv-email, #apres-appel .nv-phone {
  position: absolute; margin: 0; transform: rotate(var(--nv-delivery-rotation));
  color: var(--ink); background: linear-gradient(135deg, #fff, color-mix(in srgb, var(--paper) 65%, #fff));
}
#apres-appel .nv-email {
  --nv-delivery-rotation: -7deg; --nv-delivery-enter-x: -36px; --nv-delivery-enter-y: 10px;
  --nv-delivery-enter-turn: -2deg; --nv-delivery-delay: 0ms;
  --nv-delivery-float: nv-delivery-letter-float; --nv-delivery-period: 7.6s;
  z-index: 1; top: 0; left: 0; width: 30.3cqw; height: 28.2cqw;
  border: 1px solid color-mix(in srgb, var(--wine) 15%, #fff); border-radius: 1.9cqw;
  box-shadow: -4px 3px 0 color-mix(in srgb, var(--wine) 22%, var(--paper)),
    0 1.8cqw 2.2cqw -.9cqw var(--nv-delivery-shadow),
    0 .7cqw 1cqw -.5cqw color-mix(in srgb, var(--wine) 25%, transparent),
    inset 0 0 0 2px #fff;
}
#apres-appel .nv-email::before {
  content: ''; position: absolute; top: -1px; left: 2cqw; right: 2cqw; height: 1px;
  background: linear-gradient(90deg, transparent, var(--wine), transparent);
}
#apres-appel .nv-email-toolbar {
  height: 3.8cqw; padding: 0 2.6cqw; border-bottom: 1px solid color-mix(in srgb, var(--wine) 8%, transparent);
  display: flex; align-items: center; gap: .7cqw; font-size: .81cqw;
}
#apres-appel .nv-email-toolbar svg { width: 1.18cqw; height: 1.18cqw; color: var(--wine); }
#apres-appel .nv-email-toolbar > span:last-child { margin-left: auto; color: var(--wine); font-size: .8cqw; letter-spacing: .08cqw; }
#apres-appel .nv-email-content { position: relative; height: 24.4cqw; font-size: .84cqw; line-height: 1.35; }
#apres-appel .nv-email-content > * { position: absolute; left: 2.65cqw; right: 2.2cqw; margin: 0; }
#apres-appel .nv-email-content h3 { top: 1.55cqw; font-size: 1.08cqw; font-weight: 600; line-height: 1.3; letter-spacing: -.04cqw; }
#apres-appel .nv-email-sender { top: 3.8cqw; display: flex; align-items: center; gap: .6cqw; }
#apres-appel .nv-email-avatar {
  display: grid; place-items: center; width: 2.25cqw; height: 2.25cqw; flex-shrink: 0;
  border-radius: 50%; color: var(--wine); background: color-mix(in srgb, var(--wine) 15%, #fff); font-size: 1cqw;
}
#apres-appel .nv-email-sender p { margin: 0; font-size: .78cqw; line-height: 1.3; }
#apres-appel .nv-email-sender p span { display: block; color: var(--muted); font-size: .71cqw; }
#apres-appel .nv-email-sender time { margin-left: auto; align-self: start; color: var(--muted); font-size: .71cqw; }
#apres-appel .nv-email-content > p:nth-of-type(1) { top: 7.5cqw; }
#apres-appel .nv-email-content > p:nth-of-type(2) { top: 9.1cqw; }
#apres-appel .nv-email-details { top: 11.4cqw; display: grid; gap: .65cqw; }
#apres-appel .nv-email-details dt { color: var(--muted); font-size: .72cqw; line-height: 1.3; }
#apres-appel .nv-email-details dd { margin: .06cqw 0 0; font-size: .84cqw; line-height: 1.35; }
#apres-appel .nv-email-content .nv-email-signoff { top: 20.3cqw; color: var(--muted); font-size: .71cqw; line-height: 1.5; }
#apres-appel .nv-email-signoff strong { color: var(--ink); font-weight: 550; }
#apres-appel .nv-phone {
  --nv-delivery-rotation: 7deg; --nv-delivery-enter-x: 0px; --nv-delivery-enter-y: 30px;
  --nv-delivery-enter-turn: 2deg; --nv-delivery-delay: 120ms;
  --nv-delivery-float: nv-delivery-phone-float; --nv-delivery-period: 6.8s;
  z-index: 2; top: 7.65cqw; right: .9cqw; width: 14.8cqw; height: 25cqw;
  border: .38cqw solid transparent; border-radius: 2.5cqw;
  background: linear-gradient(135deg, #fff, color-mix(in srgb, var(--paper) 65%, #fff)) padding-box,
    linear-gradient(115deg, color-mix(in srgb, var(--wine) 42%, var(--paper)), #fff 28%,
      color-mix(in srgb, var(--wine) 20%, var(--paper)) 52%, color-mix(in srgb, var(--wine) 42%, var(--paper))) border-box;
  box-shadow: 0 1.5cqw 1.9cqw -.7cqw var(--nv-delivery-shadow),
    -.35cqw .3cqw .5cqw color-mix(in srgb, var(--wine-dark) 14%, transparent),
    inset 0 0 0 1px #fff, 0 0 0 1px color-mix(in srgb, var(--wine) 22%, #fff);
}
#apres-appel .nv-phone::before {
  content: ''; position: absolute; inset: -.38cqw; border-radius: inherit; pointer-events: none;
  box-shadow: inset 0 2px 1px #fff, inset -2px -2px 2px color-mix(in srgb, var(--wine) 28%, transparent);
}
#apres-appel .nv-phone::after {
  content: ''; position: absolute; top: 6cqw; right: -.51cqw; height: 2.65cqw; width: .13cqw;
  border-radius: 2px; background: color-mix(in srgb, var(--wine) 35%, var(--paper));
}
#apres-appel .nv-phone-status {
  display: flex; justify-content: space-between; align-items: center; margin: .75cqw 1.15cqw .85cqw;
  font-size: .68cqw; font-weight: 700; line-height: 1;
}
#apres-appel .nv-phone-status svg { width: 2.6cqw; height: .65cqw; stroke-width: 1.5; }
#apres-appel .nv-sms-header { position: relative; text-align: center; padding: .05cqw 0 .7cqw; border-bottom: 1px solid color-mix(in srgb, var(--wine) 10%, transparent); }
#apres-appel .nv-sms-header > span { position: absolute; left: .8cqw; top: .2cqw; color: var(--wine); font-size: 1.8cqw; line-height: 1; }
#apres-appel .nv-sms-avatar {
  display: grid; place-items: center; width: 2.15cqw; height: 2.15cqw; margin: 0 auto;
  border-radius: 50%; background: color-mix(in srgb, var(--muted) 67%, #fff); color: #fff; font-size: 1.1cqw;
}
#apres-appel .nv-sms-header h3 { margin: .22cqw 0 0; font-size: .73cqw; font-weight: 550; line-height: 1.3; }
#apres-appel .nv-sms-header h3 span { color: var(--muted); }
#apres-appel .nv-sms-body { padding: .65cqw 1.05cqw 2cqw; }
#apres-appel .nv-sms-time { margin: 0 0 .65cqw; text-align: center; color: var(--muted); font-size: .57cqw; line-height: 1.35; }
#apres-appel .nv-sms-bubble {
  border-radius: 1.05cqw; background: color-mix(in srgb, var(--wine) 8%, #fff);
  padding: .7cqw .85cqw .9cqw; font-size: .83cqw; line-height: 1.4;
}
#apres-appel .nv-sms-bubble p { margin: 0 0 .85cqw; }
#apres-appel .nv-sms-bubble p:last-child { margin: 0; }
#apres-appel .nv-phone-home { position: absolute; bottom: .55cqw; left: 33%; width: 34%; height: .24cqw; border-radius: 8px; background: var(--ink); }
#apres-appel .nv-message-caption { margin: .5cqw 0 0; padding-right: 3.4cqw; text-align: center; color: var(--muted); font-size: .89cqw; line-height: 1.5; }
#apres-appel .nv-message-caption::before { content: ''; display: block; width: 2.1cqw; height: 2px; margin: 0 auto 1cqw; background: var(--wine); }
#apres-appel .nv-message-caption span { display: block; margin-top: .55cqw; font-size: .8cqw; }
#apres-appel .nv-delivery-copy { grid-column: 2; grid-row: 1; margin: 10.7cqw 0 4.5cqw 13.9cqw; width: 30cqw; align-self: start; }
#apres-appel .nv-eyebrow { margin: 0 0 1.3cqw; font-size: .8cqw; font-weight: 650; letter-spacing: .13cqw; line-height: 1.4; }
#apres-appel h2 { margin: 0; font: 400 4.65cqw/.925 var(--serif); letter-spacing: -.13cqw; }
#apres-appel h2 em { color: var(--wine); }
#apres-appel .nv-intro { margin: .9cqw 0 0; max-width: none; color: var(--muted); font-size: 1.18cqw; line-height: 1.45; letter-spacing: -.025cqw; }
#apres-appel .nv-intro + .nv-intro { margin-top: .55cqw; }
#apres-appel .nv-delivery-benefits { display: grid; gap: .12cqw; list-style: none; margin: 1cqw 0 0; padding: 0; }
#apres-appel .nv-delivery-benefits li { display: flex; align-items: center; gap: .9cqw; color: var(--muted); font-size: 1.02cqw; line-height: 1.4; }
#apres-appel .nv-delivery-benefits li > span {
  display: grid; place-items: center; width: 2.7cqw; height: 2.7cqw; flex-shrink: 0; border-radius: 50%;
  color: var(--wine); background: color-mix(in srgb, var(--wine) 8%, transparent);
}
#apres-appel .nv-delivery-benefits svg { width: 1.4cqw; height: 1.4cqw; stroke-width: 1.8; }

@media (prefers-reduced-motion: no-preference) {
  #apres-appel.nv-delivery-motion-ready .nv-email,
  #apres-appel.nv-delivery-motion-ready .nv-phone {
    opacity: 0;
    transform: translate3d(var(--nv-delivery-enter-x), var(--nv-delivery-enter-y), 0) rotate(calc(var(--nv-delivery-rotation) + var(--nv-delivery-enter-turn)));
  }
  #apres-appel.nv-delivery-visible .nv-email,
  #apres-appel.nv-delivery-visible .nv-phone {
    animation: nv-delivery-card-enter 880ms cubic-bezier(.16, 1, .3, 1) var(--nv-delivery-delay) both,
      var(--nv-delivery-float) var(--nv-delivery-period) ease-in-out calc(880ms + var(--nv-delivery-delay)) infinite;
  }
  #apres-appel.nv-delivery-motion-ready .nv-delivery-copy { opacity: 0; transform: translate3d(0, 12px, 0); }
  #apres-appel.nv-delivery-visible .nv-delivery-copy { animation: nv-delivery-copy-enter 800ms cubic-bezier(.16, 1, .3, 1) 240ms both; }
  #apres-appel.nv-delivery-entry-done .nv-email,
  #apres-appel.nv-delivery-entry-done .nv-phone {
    opacity: 1; transform: rotate(var(--nv-delivery-rotation));
    animation: var(--nv-delivery-float) var(--nv-delivery-period) ease-in-out infinite;
  }
  #apres-appel.nv-delivery-entry-done .nv-delivery-copy { opacity: 1; transform: none; animation: none; }
}
@keyframes nv-delivery-card-enter {
  from { opacity: 0; transform: translate3d(var(--nv-delivery-enter-x), var(--nv-delivery-enter-y), 0) rotate(calc(var(--nv-delivery-rotation) + var(--nv-delivery-enter-turn))); }
  to { opacity: 1; transform: translate3d(0, 0, 0) rotate(var(--nv-delivery-rotation)); }
}
@keyframes nv-delivery-copy-enter {
  from { opacity: 0; transform: translate3d(0, 12px, 0); }
  to { opacity: 1; transform: none; }
}
@keyframes nv-delivery-letter-float {
  0%, 100% { transform: translate3d(0, 0, 0) rotate(var(--nv-delivery-rotation)); }
  50% { transform: translate3d(0, -5px, 0) rotate(calc(var(--nv-delivery-rotation) + .2deg)); }
}
@keyframes nv-delivery-phone-float {
  0%, 100% { transform: translate3d(0, 0, 0) rotate(var(--nv-delivery-rotation)); }
  50% { transform: translate3d(0, 7px, 0) rotate(calc(var(--nv-delivery-rotation) - .25deg)); }
}
.motion-paused #apres-appel.nv-delivery-motion-ready .nv-email,
.motion-paused #apres-appel.nv-delivery-motion-ready .nv-phone {
  animation: none; opacity: 1; transform: rotate(var(--nv-delivery-rotation));
}
.motion-paused #apres-appel.nv-delivery-motion-ready .nv-delivery-copy { animation: none; opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  #apres-appel .nv-email, #apres-appel .nv-phone { animation: none; opacity: 1; transform: rotate(var(--nv-delivery-rotation)); }
  #apres-appel .nv-delivery-copy { animation: none; opacity: 1; transform: none; }
}

@media (max-width: 1100px) {
  #apres-appel .nv-delivery-layout { display: flex; flex-direction: column; min-height: 0; padding: 52px 28px 48px; }
  #apres-appel .nv-delivery-copy { order: 0; width: min(100%, 580px); margin: 0 auto; }
  #apres-appel .nv-eyebrow { font-size: 12px; letter-spacing: 1.8px; margin-bottom: 21px; }
  #apres-appel h2 { font-size: clamp(48px, 8vw, 70px); line-height: 1; letter-spacing: -1.6px; }
  #apres-appel .nv-intro { font-size: 17px; line-height: 1.6; letter-spacing: 0; margin-top: 22px; }
  #apres-appel .nv-intro + .nv-intro { margin-top: 13px; }
  #apres-appel .nv-delivery-benefits { gap: 7px; margin-top: 22px; }
  #apres-appel .nv-delivery-benefits li { gap: 13px; font-size: 15px; }
  #apres-appel .nv-delivery-benefits li > span { width: 39px; height: 39px; }
  #apres-appel .nv-delivery-benefits svg { width: 22px; height: 22px; }
  #apres-appel .nv-messages { order: 1; width: min(100%, 620px); margin: 50px auto 0; }
  #apres-appel .nv-messages-scene { display: flex; flex-direction: column; align-items: flex-start; height: auto; padding: 16px 12px 24px; }
  #apres-appel .nv-email {
    --nv-delivery-rotation: -4deg; position: relative; top: auto; left: auto;
    width: 92%; max-width: 440px; height: auto; border-radius: 22px;
    box-shadow: -3px 3px 0 color-mix(in srgb, var(--wine) 20%, var(--paper)), 0 24px 32px -14px var(--nv-delivery-shadow), inset 0 0 0 2px #fff;
  }
  #apres-appel .nv-email::before { left: 24px; right: 24px; }
  #apres-appel .nv-email-toolbar { height: 56px; padding: 0 25px; gap: 9px; font-size: 12px; }
  #apres-appel .nv-email-toolbar svg { width: 18px; height: 18px; }
  #apres-appel .nv-email-toolbar > span:last-child { font-size: 11px; letter-spacing: 1px; }
  #apres-appel .nv-email-content { height: auto; padding: 23px 26px 27px; font-size: 13px; line-height: 1.5; }
  #apres-appel .nv-email-content > * { position: static; margin: 0; }
  #apres-appel .nv-email-content h3 { font-size: 16px; line-height: 1.4; letter-spacing: -.4px; margin-bottom: 17px; }
  #apres-appel .nv-email-sender { gap: 9px; margin-bottom: 23px; }
  #apres-appel .nv-email-avatar { width: 34px; height: 34px; font-size: 16px; }
  #apres-appel .nv-email-sender p { font-size: 12px; }
  #apres-appel .nv-email-sender p span, #apres-appel .nv-email-sender time { font-size: 11px; }
  #apres-appel .nv-email-content > p { margin-bottom: 9px; }
  #apres-appel .nv-email-details { margin: 21px 0; gap: 12px; }
  #apres-appel .nv-email-details dt { font-size: 11px; }
  #apres-appel .nv-email-details dd { font-size: 13px; line-height: 1.45; margin-top: 2px; }
  #apres-appel .nv-email-content .nv-email-signoff { font-size: 11px; margin: 0; }
  #apres-appel .nv-phone {
    --nv-delivery-rotation: 6deg; position: relative; top: auto; right: auto;
    align-self: flex-end; margin: -20px 10px 0 0; width: 226px; height: 396px;
    border-width: 6px; border-radius: 35px;
    box-shadow: 0 24px 30px -12px var(--nv-delivery-shadow), -4px 4px 8px color-mix(in srgb, var(--wine-dark) 14%, transparent), inset 0 0 0 1px #fff;
  }
  #apres-appel .nv-phone::before { inset: -6px; }
  #apres-appel .nv-phone::after { top: 90px; right: -8px; height: 40px; width: 2px; }
  #apres-appel .nv-phone-status { margin: 13px 17px; font-size: 10px; }
  #apres-appel .nv-phone-status svg { width: 40px; height: 10px; }
  #apres-appel .nv-sms-header { padding: 0 0 11px; }
  #apres-appel .nv-sms-header > span { left: 12px; top: 3px; font-size: 28px; }
  #apres-appel .nv-sms-avatar { width: 33px; height: 33px; font-size: 18px; }
  #apres-appel .nv-sms-header h3 { margin-top: 5px; font-size: 11px; }
  #apres-appel .nv-sms-body { padding: 11px 14px 28px; }
  #apres-appel .nv-sms-time { margin-bottom: 11px; font-size: 9px; }
  #apres-appel .nv-sms-bubble { border-radius: 15px; padding: 11px 12px 13px; font-size: 13px; line-height: 1.4; }
  #apres-appel .nv-sms-bubble p { margin-bottom: 14px; }
  #apres-appel .nv-phone-home { height: 4px; bottom: 8px; }
  #apres-appel .nv-message-caption { font-size: 13px; margin-top: 18px; padding: 0; }
  #apres-appel .nv-message-caption::before { width: 34px; margin-bottom: 16px; }
  #apres-appel .nv-message-caption span { margin-top: 8px; font-size: 12px; }
  #apres-appel .nv-delivery-decor svg { inset: 28% -55% auto; width: 210%; height: 70%; }
}
@media (min-width: 601px) and (max-width: 1100px) {
  #apres-appel .nv-messages-scene { padding-bottom: 15px; }
  #apres-appel .nv-phone { margin-top: -65px; }
}
@media (max-width: 380px) {
  #apres-appel .nv-delivery-layout { padding-inline: 22px; }
  #apres-appel .nv-messages-scene { padding-inline: 7px; }
  #apres-appel .nv-email { width: 97%; }
  #apres-appel .nv-email-content { padding-inline: 20px; }
  #apres-appel .nv-email-toolbar { padding-inline: 20px; }
  #apres-appel .nv-email-sender time { font-size: 10px; }
}

/* On phones, select one of the existing messages without changing its contents. */
#apres-appel .nv-message-selector { display: none; }
@media (max-width: 600px) {
  #apres-appel .nv-messages { margin-top: 32px; }
  #apres-appel.nv-delivery-tabs-ready .nv-message-selector {
    display: flex; justify-content: center; gap: 32px; margin-bottom: 20px;
  }
  #apres-appel .nv-message-selector button {
    position: relative; min-height: 44px; padding: 8px 0; border: 0; border-radius: 0;
    background: none; box-shadow: none; color: var(--muted); font-size: 15px;
  }
  #apres-appel .nv-message-selector button[aria-pressed="true"] { color: var(--wine); }
  #apres-appel .nv-message-selector button[aria-pressed="true"]::after {
    content: ''; position: absolute; inset: auto 0 0; height: 1px; background: currentColor;
  }
  #apres-appel.nv-delivery-tabs-ready .nv-messages-scene { align-items: center; }
  #apres-appel.nv-delivery-tabs-ready .nv-messages-scene > article {
    --nv-delivery-rotation: -2deg;
    opacity: 1; transform: rotate(var(--nv-delivery-rotation)); animation: none;
  }
  #apres-appel.nv-delivery-tabs-ready .nv-messages-scene > .nv-phone {
    --nv-delivery-rotation: 2deg; align-self: center; margin: 0;
  }
}
@media (max-width: 600px) and (prefers-reduced-motion: no-preference) {
  #apres-appel.nv-delivery-tabs-ready .nv-messages-scene > article:not([hidden]) {
    animation: nv-message-select 220ms ease-out both;
  }
  .motion-paused #apres-appel.nv-delivery-tabs-ready .nv-messages-scene > article { animation: none; }
}
@keyframes nv-message-select {
  from { opacity: 0; transform: translateY(6px) rotate(var(--nv-delivery-rotation)); }
  to { opacity: 1; transform: translateY(0) rotate(var(--nv-delivery-rotation)); }
}

/* An open timeline keeps the installation explanation light. */
.nv-setup { padding-block: 57px 87px; border-top: 1px solid var(--nv-border); }
.nv-setup .nv-intro { margin-top: 17px; }
.nv-setup-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 45px; padding: 0; margin: 46px 0 0; list-style: none; }
.nv-setup-steps li { position: relative; }
.nv-setup-steps li::before { content: ''; position: absolute; left: 46px; right: -45px; top: 21px; border-top: 1px solid #dcc7d0; }
.nv-setup-steps li:last-child::before { right: 0; }
.nv-setup-number { display: grid; place-items: center; width: 43px; height: 43px; border: 1px solid #dcc7d0; border-radius: 50%; color: var(--wine); font-size: 12px; }
.nv-setup-steps h3 { font-size: 17px; line-height: 1.4; font-weight: 550; margin: 23px 0 10px; }
.nv-setup-steps p { font-size: 14px; color: var(--muted); line-height: 1.8; margin: 0; max-width: 340px; }
.nv-setup-steps li:nth-child(2) { --reveal-delay: 80ms; }
.nv-setup-steps li:nth-child(3) { --reveal-delay: 160ms; }
.nv-setup-reassurance { margin: 39px 0 0; text-align: center; font-size: 14px; line-height: 1.9; color: var(--muted); }
.nv-setup-reassurance strong { font-weight: 500; color: var(--wine); }

/* Booking preview: reference proportions, with colours inherited from the hero. */
#reservation {
  --nv-booking-line: color-mix(in srgb, var(--wine) 22%, var(--paper));
  position: relative; isolation: isolate; width: 100%; max-width: none; margin: 0; padding: 0;
  overflow: hidden; overflow: clip; overflow-clip-margin: 0; background: var(--paper);
}
#reservation .nv-booking-decor {
  position: absolute; inset: 0; z-index: -1; pointer-events: none; overflow: hidden;
  color: var(--wine);
  background: radial-gradient(ellipse at 5% 37%, color-mix(in srgb, var(--rose) 27%, transparent), transparent 33%),
    radial-gradient(ellipse at 94% 73%, color-mix(in srgb, var(--wine) 7%, transparent), transparent 30%);
  mask-image: linear-gradient(transparent, #000 10%, #000 87%, transparent);
}
#reservation .nv-booking-decor svg { width: 100%; height: 100%; stroke: none; overflow: visible; }
#reservation .nv-booking-layout {
  width: min(100%, 1808px); margin-inline: auto; container-type: inline-size;
  padding-block: min(1.66vw, 30px) min(2.65vw, 48px);
}
#reservation .nv-centered { width: 100%; max-width: none; margin: 0; padding-inline: 24px; }
#reservation .nv-eyebrow { margin: 0 0 1.22cqw; font-size: .775cqw; font-weight: 700; line-height: 1.43; letter-spacing: .085cqw; color: var(--wine); }
#reservation h2 { margin: 0; font: 400 3.76cqw/1 var(--serif); letter-spacing: -.11cqw; color: var(--ink); }
#reservation h2 em { color: var(--wine); font-weight: 400; }
#reservation .nv-intro { max-width: none; margin: .775cqw 0 0; font-size: .996cqw; line-height: 1.56; color: var(--muted); }
#reservation .nv-booking-format {
  display: flex; justify-content: center; align-items: center; flex-wrap: wrap;
  gap: .885cqw; margin: .885cqw 0 0; font-size: .775cqw; line-height: 1.43; color: var(--muted);
}
#reservation .nv-booking-format > span { display: inline-flex; align-items: center; gap: .44cqw; white-space: nowrap; }
#reservation .nv-booking-format > span + span::before { content: ''; height: .5em; border-left: 1px solid var(--nv-booking-line); margin-right: .44cqw; }
#reservation .nv-booking-format svg { width: .996cqw; height: .996cqw; color: var(--wine); }
#reservation .nv-booking-panel {
  position: relative; width: 49.56cqw; max-width: none; margin: 1.33cqw auto 0;
  padding: 1.33cqw 2.93cqw 1.44cqw; border: 1px solid var(--nv-booking-line); border-radius: 1.33cqw;
  background: linear-gradient(120deg, color-mix(in srgb, var(--paper) 76%, transparent), color-mix(in srgb, var(--paper) 90%, transparent));
  box-shadow: 0 1.4cqw 3.1cqw -.9cqw color-mix(in srgb, var(--wine) 10%, transparent),
    0 .2cqw .65cqw color-mix(in srgb, var(--wine-dark) 2%, transparent), inset 0 1px #fff9;
  backdrop-filter: blur(12px);
}
#reservation .nv-booking-status {
  display: inline-flex; align-items: center; gap: .44cqw; padding: .33cqw .61cqw;
  border-radius: 100px; font-size: .72cqw; line-height: 1.4; color: var(--wine);
  background: color-mix(in srgb, var(--wine) 6%, transparent);
}
#reservation .nv-booking-status > span { width: .55cqw; height: .55cqw; flex-shrink: 0; border-radius: 50%; background: var(--wine); }
#reservation .nv-booking-progress {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.16cqw;
  list-style: none; padding: 0; margin: 1.22cqw 0 1.38cqw;
}
#reservation .nv-booking-progress li {
  display: flex; align-items: center; gap: .66cqw; padding-bottom: .5cqw;
  border-bottom: 1px solid var(--nv-booking-line); font-size: .775cqw; line-height: 1.4; color: var(--muted);
}
#reservation .nv-booking-progress li > span {
  display: grid; place-items: center; flex-shrink: 0; width: 1.88cqw; height: 1.88cqw;
  border: 1px solid var(--nv-booking-line); border-radius: 50%; font-size: .775cqw;
  background: color-mix(in srgb, var(--wine) 4%, transparent);
}
#reservation .nv-booking-progress [aria-current="step"] { color: var(--wine); border-bottom: 2px solid var(--wine); font-weight: 600; padding-bottom: calc(.5cqw - 1px); }
#reservation .nv-booking-progress [aria-current="step"] > span { color: var(--paper); background: var(--wine); border-color: var(--wine); font-weight: 500; }
#reservation .nv-booking-step h3 { margin: 0; font: 400 2.1cqw/1.2 var(--serif); letter-spacing: -.045cqw; color: var(--ink); }
#reservation .nv-booking-step h3:focus { outline: none; }
#reservation .nv-step-description { margin: .33cqw 0 1.05cqw; font-size: .885cqw; line-height: 1.625; color: var(--muted); }
#reservation .nv-intentions { display: grid; gap: .61cqw; min-width: 0; margin: 0; padding: 0; border: 0; }
#reservation .nv-intentions label {
  position: relative; display: flex; align-items: center; gap: 1.1cqw; min-height: 3.6cqw;
  padding: .9cqw 1.27cqw; border: 1px solid var(--nv-booking-line); border-radius: .66cqw;
  background: color-mix(in srgb, var(--paper) 50%, transparent); color: var(--ink);
  font-size: .94cqw; font-weight: 500; line-height: 1.5; cursor: pointer;
  box-shadow: inset 0 1px #fff6; transition: border-color 180ms, background 180ms;
}
#reservation .nv-intentions label:hover { border-color: var(--wine); background: color-mix(in srgb, var(--wine) 3%, var(--paper)); }
#reservation .nv-intentions input { position: absolute; width: 1px; height: 1px; opacity: 0; }
#reservation .nv-intentions label:has(input:checked) { border-color: var(--wine); background: color-mix(in srgb, var(--wine) 7%, var(--paper)); color: var(--wine-dark); }
#reservation .nv-intentions label:has(input:focus-visible) { outline: 2px solid var(--wine); outline-offset: 4px; }
#reservation .nv-radio-mark { display: grid; place-items: center; flex-shrink: 0; width: 1.22cqw; height: 1.22cqw; border: 1.5px solid var(--wine); border-radius: 50%; }
#reservation .nv-intentions input:checked + .nv-radio-mark::after { content: ''; width: .66cqw; height: .66cqw; border-radius: 50%; background: var(--wine); }
#reservation .nv-booking-actions { display: flex; align-items: center; justify-content: space-between; gap: 17px; margin-top: 1.1cqw; }
#reservation .nv-actions-end { justify-content: flex-end; }
#reservation .nv-button {
  display: inline-flex; align-items: center; justify-content: center; gap: 1.1cqw;
  min-height: max(44px, 2.655cqw); padding: .55cqw 1.33cqw; border: 1px solid var(--wine); border-radius: .55cqw;
  background: var(--wine); color: var(--paper); font-size: .885cqw; font-weight: 500; line-height: 1.5;
  box-shadow: inset 0 1px #ffffff18; transition: background 180ms, box-shadow 180ms;
}
#reservation .nv-button > span { font-size: 1.38cqw; line-height: 1; }
#reservation .nv-button:not(:disabled):hover { background: var(--wine-dark); box-shadow: 0 5px 15px color-mix(in srgb, var(--wine) 12%, transparent); }
#reservation .nv-button:disabled { opacity: .55; cursor: not-allowed; }
#reservation .nv-button:focus-visible, #reservation .nv-back:focus-visible { outline: 2px solid var(--wine); outline-offset: 4px; }
#reservation .nv-button-outline { background: transparent; color: var(--wine); border-color: var(--nv-booking-line); }
#reservation .nv-button-outline:not(:disabled):hover { background: color-mix(in srgb, var(--wine) 7%, var(--paper)); }
#reservation .nv-back { min-height: 44px; padding: 9px 0; border: 0; background: transparent; color: var(--muted); font-size: 14px; text-align: left; }
#reservation .nv-back:hover { color: var(--wine); }
#reservation .nv-booking-note { margin: .885cqw 0 0; font-size: .72cqw; line-height: 1.62; text-align: center; color: var(--muted); }
#reservation .nv-calendar-empty { padding: 26px 15px 32px; border: 1px dashed var(--nv-booking-line); border-radius: 12px; background: color-mix(in srgb, var(--wine) 3%, var(--paper)); text-align: center; }
#reservation .nv-calendar-empty svg { width: 45px; height: 45px; margin: 0 auto 15px; color: var(--wine); stroke-width: 1.2; }
#reservation .nv-calendar-empty h4 { margin: 0 0 12px; font: 400 28px/1.2 var(--serif); color: var(--wine-dark); }
#reservation .nv-calendar-empty p { margin: 0; font-size: 15px; line-height: 1.7; color: var(--muted); }
#reservation .nv-preview-notice { margin: 20px 0; padding: 12px 15px; border-left: 2px solid var(--wine); background: color-mix(in srgb, var(--wine) 5%, var(--paper)); color: var(--muted); font-size: 14px; line-height: 1.75; }
#reservation .nv-preview-notice strong { display: block; color: var(--wine); font-weight: 550; }
#reservation .nv-contact-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 19px 22px; }
#reservation .nv-contact-fields label { display: flex; flex-direction: column; gap: 7px; min-width: 0; font-size: 14px; }
#reservation .nv-contact-fields input { width: 100%; min-height: 47px; padding: 11px 13px; border: 1px solid var(--nv-booking-line); border-radius: 8px; background: color-mix(in srgb, var(--paper) 65%, #fff); color: var(--ink); font: 400 16px/1.4 var(--sans); }
#reservation .nv-contact-fields input::placeholder { color: var(--muted); font-size: 14px; }
#reservation .nv-contact-fields input:focus-visible { outline: 2px solid var(--wine); outline-offset: 2px; }
#reservation .nv-booking-summary { margin: 24px 0; }
#reservation .nv-booking-summary > div { display: grid; grid-template-columns: 125px 1fr; gap: 20px; padding: 11px 0; border-bottom: 1px solid var(--nv-booking-line); font-size: 14px; }
#reservation .nv-booking-summary dt { color: var(--muted); }
#reservation .nv-booking-summary dd { margin: 0; overflow-wrap: anywhere; }

/* Each part enters once, then stays still, including while navigating the preview. */
@media (prefers-reduced-motion: no-preference) {
  #reservation.nv-booking-motion-ready .nv-booking-heading,
  #reservation.nv-booking-motion-ready .nv-booking-panel {
    opacity: 0; transform: translate3d(0, 14px, 0);
  }
  #reservation.nv-booking-motion-ready .nv-booking-enter-visible {
    opacity: 1; transform: none;
    transition: opacity 860ms cubic-bezier(.16, 1, .3, 1), transform 900ms cubic-bezier(.16, 1, .3, 1);
  }
  #reservation.nv-booking-motion-ready .nv-booking-panel.nv-booking-enter-visible { transition-delay: 140ms; }
}
.motion-paused #reservation .nv-booking-heading, .motion-paused #reservation .nv-booking-panel,
#reservation.nv-booking-entry-done .nv-booking-heading, #reservation.nv-booking-entry-done .nv-booking-panel {
  opacity: 1; transform: none; transition: none;
}
@media (prefers-reduced-motion: reduce) {
  #reservation .nv-booking-heading, #reservation .nv-booking-panel { opacity: 1; transform: none; transition: none; }
}

@media (max-width: 1600px) {
  #reservation .nv-booking-layout { padding-block: 38px 48px; }
  #reservation .nv-eyebrow { font-size: 12px; margin-bottom: 20px; letter-spacing: 1.4px; }
  #reservation h2 { font-size: 56px; letter-spacing: -1.5px; }
  #reservation .nv-intro { margin-top: 18px; font-size: 17px; }
  #reservation .nv-booking-format { margin-top: 20px; gap: 14px; font-size: 13px; }
  #reservation .nv-booking-format > span { gap: 8px; }
  #reservation .nv-booking-format > span + span::before { margin-right: 6px; }
  #reservation .nv-booking-format svg { width: 18px; height: 18px; }
  #reservation .nv-booking-panel { width: min(810px, calc(100% - 64px)); margin-top: 26px; padding: 24px 38px 27px; border-radius: 23px; }
  #reservation .nv-booking-status { gap: 8px; padding: 6px 11px; font-size: 12px; }
  #reservation .nv-booking-status > span { width: 9px; height: 9px; }
  #reservation .nv-booking-progress { gap: 18px; margin: 22px 0 25px; }
  #reservation .nv-booking-progress li { gap: 10px; padding-bottom: 10px; font-size: 13px; }
  #reservation .nv-booking-progress li > span { width: 32px; height: 32px; font-size: 13px; }
  #reservation .nv-booking-progress [aria-current="step"] { padding-bottom: 9px; }
  #reservation .nv-booking-step h3 { font-size: 35px; letter-spacing: -.7px; }
  #reservation .nv-step-description { margin: 7px 0 19px; font-size: 16px; }
  #reservation .nv-intentions { gap: 11px; }
  #reservation .nv-intentions label { min-height: 64px; padding: 17px 20px; gap: 18px; border-radius: 11px; font-size: 16px; }
  #reservation .nv-radio-mark { width: 22px; height: 22px; }
  #reservation .nv-intentions input:checked + .nv-radio-mark::after { width: 12px; height: 12px; }
  #reservation .nv-booking-actions { margin-top: 20px; }
  #reservation .nv-button { min-height: 48px; padding: 10px 24px; gap: 20px; border-radius: 9px; font-size: 16px; }
  #reservation .nv-button > span { font-size: 25px; }
  #reservation .nv-booking-note { margin-top: 16px; font-size: 12px; }
}
@media (max-width: 760px) {
  #reservation .nv-booking-layout { padding-block: 42px 38px; }
  #reservation .nv-centered { padding-inline: 20px; }
  #reservation .nv-eyebrow { font-size: 11px; margin-bottom: 18px; }
  #reservation h2 { font-size: clamp(32px, 7.55vw, 53px); line-height: 1.09; letter-spacing: -.8px; }
  #reservation .nv-intro { max-width: 440px; margin: 19px auto 0; font-size: 16px; line-height: 1.65; }
  #reservation .nv-booking-format { gap: 8px 12px; margin-top: 18px; font-size: 12px; }
  #reservation .nv-booking-format > span:last-child { flex-basis: 100%; justify-content: center; }
  #reservation .nv-booking-format > span:last-child::before { content: none; }
  #reservation .nv-booking-panel { width: calc(100% - 32px); margin-top: 20px; padding: 20px 22px 21px; border-radius: 20px; }
  #reservation .nv-booking-progress { gap: 12px; margin: 19px 0 20px; }
  #reservation .nv-booking-progress li { flex-direction: column; align-items: flex-start; gap: 8px; font-size: 12px; }
  #reservation .nv-booking-progress li > span { width: 30px; height: 30px; font-size: 12px; }
  #reservation .nv-booking-step h3 { font-size: 32px; line-height: 1.12; letter-spacing: -.6px; text-wrap: balance; }
  #reservation .nv-step-description { font-size: 15px; margin: 8px 0 16px; }
  #reservation .nv-intentions label { min-height: 62px; padding: 13px 16px; gap: 13px; font-size: 15px; }
  #reservation .nv-booking-actions { flex-wrap: wrap; gap: 12px; margin-top: 16px; }
  #reservation .nv-booking-actions .nv-button { width: 100%; min-height: 50px; order: -1; }
  #reservation .nv-booking-note { margin-top: 16px; font-size: 12px; line-height: 1.65; }
  #reservation [data-booking-step="1"] > .nv-booking-note { display: none; }
  #reservation .nv-calendar-empty { padding: 24px 14px; }
  #reservation .nv-calendar-empty h4 { font-size: 27px; }
  #reservation .nv-calendar-empty p { font-size: 14px; }
  #reservation .nv-calendar-empty p br { display: none; }
  #reservation .nv-contact-fields { grid-template-columns: 1fr; gap: 15px; }
  #reservation .nv-booking-summary > div { grid-template-columns: 1fr; gap: 3px; }
}
@media (max-width: 380px) {
  #reservation .nv-booking-panel { padding-inline: 16px; }
  #reservation .nv-booking-progress { gap: 8px; }
  #reservation .nv-booking-progress li { font-size: 11px; }
  #reservation .nv-intentions label { padding-inline: 12px; gap: 10px; }
}

@media (max-width: 1100px) {
  .nv-section h2 { font-size: 49px; }
  .nv-knowledge-scene { gap: 62px; }
  .nv-answer-link { width: 39px; right: calc(100% + 11px); }
  .nv-document-heading { padding: 20px; gap: 10px; }
  .nv-document-heading h3 { font-size: 12px; }
  .nv-document-heading p { font-size: 10px; }
  .nv-treatment { padding-inline: 24px; }
  .nv-answer-bubble { padding: 22px; }
  .nv-answer blockquote { font-size: 15px; }
  .nv-setup-steps { gap: 26px; }
  .nv-setup-steps li::before { right: -26px; }
  .nv-setup-steps h3 { font-size: 16px; }
  .nv-setup { padding-bottom: 68px; }
}
@media (min-width: 761px) and (max-width: 900px) {
  .nv-knowledge-scene { gap: 39px; grid-template-columns: 1fr 1fr; }
  .nv-answer-link { width: 25px; right: calc(100% + 7px); }
  .nv-document-heading { align-items: flex-start; padding: 18px; }
  .nv-knowledge-topics { padding-inline: 15px; gap: 7px; }
  .nv-knowledge-topics li { font-size: 11px; }
}
@media (max-width: 760px) {
  .nv-section h2 { font-size: clamp(35px, 9.7vw, 49px); letter-spacing: -.8px; line-height: 1.09; }
  .nv-eyebrow { font-size: 10px; letter-spacing: 1.1px; margin-bottom: 18px; }
  .nv-intro { font-size: 15px; line-height: 1.75; margin-top: 19px; }
  .nv-centered .nv-intro { max-width: 510px; }
  .nv-sophie { padding-block: 24px 35px; }
  .nv-knowledge-scene { grid-template-columns: 1fr; gap: 32px; margin-top: 29px; max-width: 510px; }
  .nv-document-heading { padding: 18px 20px; }
  .nv-document-heading h3 { font-size: 12px; }
  .nv-document-heading p { font-size: 10px; }
  .nv-knowledge-topics { grid-template-columns: 1fr 1fr; padding: 10px 20px; gap: 0 16px; }
  .nv-knowledge-topics li { padding: 6px 0; text-align: left; font-size: 12px; }
  .nv-knowledge-topics li:first-child { box-shadow: none; font-weight: 600; }
  .nv-knowledge-topics li::before { content: '·'; margin-right: 8px; color: #ba8fa3; }
  .nv-treatment { padding: 20px; }
  .nv-treatment h4 { font-size: 35px; margin-bottom: 18px; }
  .nv-treatment-data { gap: 16px; }
  .nv-treatment-data dd { font-size: 25px; }
  .nv-treatment-description dd, .nv-treatment-note dd { font-size: 14px; }
  .nv-treatment-data dt { font-size: 12px; }
  .nv-answer-link { top: -30px; left: 25px; right: auto; width: 25px; height: 27px; transform: rotate(90deg); }
  .nv-answer > .nv-small-label { margin: 0 0 13px 20px; font-size: 10px; }
  .nv-answer > .nv-small-label br { display: none; }
  .nv-answer-bubble { padding: 20px 23px 23px; }
  .nv-answer blockquote { font-size: 16px; line-height: 1.8; margin-top: 17px; }
  .nv-sophie-signature small { font-size: 11px; }
  .nv-example-note { font-size: 11px; margin: 13px 2px 0; max-width: none; }
  .nv-knowledge-footer { grid-template-columns: 1fr; gap: 16px; padding-top: 25px; margin-top: 27px; max-width: 510px; text-align: center; }
  .nv-control { font-size: 31px; line-height: 1.2; }
  .nv-knowledge-footer > p:last-child { font-size: 13px; line-height: 1.8; }
  .nv-knowledge-footer > p:last-child br { display: none; }
  .nv-setup { padding-block: 41px 46px; }
  .nv-setup-steps { grid-template-columns: 1fr; gap: 0; margin: 31px auto 0; max-width: 510px; }
  .nv-setup-steps li { display: grid; grid-template-columns: 36px 1fr; gap: 18px; padding-bottom: 27px; }
  .nv-setup-steps li:last-child { padding-bottom: 0; }
  .nv-setup-steps li::before { left: 17px; top: 41px; bottom: 6px; right: auto; border-top: 0; border-left: 1px solid #dcc7d0; }
  .nv-setup-steps li:last-child::before { display: none; }
  .nv-setup-number { width: 36px; height: 36px; font-size: 11px; }
  .nv-setup-steps h3 { margin: 6px 0 8px; font-size: 15px; }
  .nv-setup-steps p { font-size: 14px; max-width: none; line-height: 1.75; }
  .nv-setup-reassurance { font-size: 13px; margin: 28px auto 0; max-width: 440px; }
}
@media (prefers-reduced-motion: reduce) {
  .reveal-ready .nv-section [data-reveal] { transform: none; opacity: 1; }
}

/* Targeted art direction: only the four added sections and the homepage ending. */

/* Keep decorative overflow inside the authorised sections. */
.nv-sophie, .nv-booking { overflow: clip; overflow-clip-margin: 18px; }

/* Sophie: a softly layered dossier and a distinct response card. */
.nv-sophie .nv-knowledge-scene { position: relative; isolation: isolate; }
.nv-sophie .nv-knowledge-scene::before {
  content: ''; position: absolute; inset: -30px -25px -24px 32%; z-index: -2;
  border-radius: 85% 22% 58% 18% / 62% 35% 65% 38%;
  background: linear-gradient(140deg, #f5e4e600 12%, #efd4d780 28%, #e5bccbb3 57%, #f3ded980 79%, transparent);
  transform: rotate(-12deg); pointer-events: none;
}
.nv-sophie .nv-knowledge-scene::after {
  content: ''; position: absolute; inset: -4px 5% 0 55%; z-index: -1;
  border: 1px solid #d5a6ba45; border-radius: 85% 32% 60% 25% / 56% 37% 63% 44%;
  transform: rotate(12deg); pointer-events: none;
}
.nv-sophie .nv-knowledge {
  border-color: #dec6d0; border-radius: 17px;
  background: linear-gradient(145deg, #fffdfb, #fffaf8 60%, #fcf3f5);
  box-shadow: 0 25px 58px -30px #6b29434d, 0 3px 9px #64304405, inset 0 1px #fff;
}
.nv-sophie .nv-document-heading { background: #ffffff70; border-bottom: 1px solid #fff; }
.nv-sophie .nv-document-mark {
  background: linear-gradient(140deg, #fff7f7, #efd5e0);
  border: 1px solid #e6c7d3; box-shadow: inset 0 1px 0 #fff;
}
.nv-sophie .nv-knowledge-topics {
  gap: 8px; padding-block: 8px; border-color: #eddee3;
  background: linear-gradient(90deg, #faf0f3, #fdf6f4);
}
.nv-sophie .nv-knowledge-topics li {
  display: flex; justify-content: center; align-items: center; gap: 7px;
  padding-block: 9px; border-radius: 6px;
}
.nv-sophie .nv-knowledge-topics li:first-child {
  box-shadow: inset 0 0 0 1px #ecd0dc; background: #f3dfe8; font-weight: 550;
}
.nv-sophie .nv-topic-icon { display: inline-flex; color: #9b5f78; }
.nv-sophie .nv-topic-icon svg { width: 16px; height: 16px; stroke-width: 1.45; }
.nv-sophie .nv-treatment h4 { display: flex; align-items: center; gap: 14px; }
.nv-sophie .nv-treatment-emblem {
  display: grid; place-items: center; flex: 0 0 49px; height: 49px;
  border: 1px solid #e8c8cf; border-radius: 12px; color: #994861;
  background: radial-gradient(ellipse at 25% 22%, #fff9f2, transparent 55%), linear-gradient(135deg, #edc7c2, #f6e1dd 52%, #dbaeb8);
  box-shadow: inset 0 1px 0 #fff9, 0 4px 12px #7c374010;
}
.nv-sophie .nv-treatment-emblem svg { width: 29px; height: 29px; stroke-width: 1.2; }
.nv-sophie .nv-treatment-data { padding: 18px; border: 1px solid #e9d8df; border-radius: 10px; background: #fffdfbba; }
.nv-sophie .nv-treatment-data dt { color: #806571; }
.nv-sophie .nv-treatment-data dd { color: #573344; }
.nv-sophie .nv-treatment-note { border-top-color: #ead4de; }
.nv-sophie .nv-answer-link { color: #9a466b; width: 70px; right: calc(100% + 14px); top: 130px; }
.nv-sophie .nv-answer-link span { display: none; }
.nv-sophie .nv-answer-link svg { width: 100%; height: 45px; margin: 0; stroke-width: 1.5; }
.nv-sophie .nv-answer-bubble {
  padding: 23px; border: 1px solid #e0c6d2; border-radius: 15px;
  background: linear-gradient(145deg, #fffdfbcc, #fff9f7f5);
  box-shadow: 0 23px 48px -26px #72384c50, inset 0 1px #fff;
}
.nv-sophie .nv-sophie-signature { padding: 0 2px 17px; border-bottom: 1px solid #eedde4; }
.nv-sophie .nv-sophie-signature > span {
  background: linear-gradient(140deg, #fff9f6, #eed0df);
  box-shadow: 0 3px 9px #7536500a, inset 0 1px 0 #fff; border-color: #d6aec0;
}
.nv-sophie .nv-answer blockquote {
  margin-top: 17px; padding: 17px 19px; border-radius: 9px;
  background: linear-gradient(115deg, #f4e4eb, #f8ecf0);
}
.nv-sophie .nv-answer blockquote strong { font-weight: 600; }
.nv-sophie .nv-example-note { color: #7f6874; }
.nv-sophie .nv-knowledge-footer { border-top-color: #e2cbd5; }
.nv-sophie .nv-control { padding-left: 20px; border-left: 2px solid #a05275; }

/* Installation: retain the three-step rhythm, with a stronger human conclusion. */
.nv-setup .nv-setup-steps { gap: 35px; }
.nv-setup .nv-setup-steps li {
  padding: 25px 27px 28px; border: 1px solid #e7d3dc; border-radius: 13px;
  background: linear-gradient(145deg, #fffdfa, #fcf4f5);
  box-shadow: 0 16px 32px -27px #5f20384d, inset 0 1px #fff;
}
.nv-setup .nv-setup-steps li::before {
  top: 47px; left: auto; right: -29px; width: 22px; border-top: 1px dashed #cba0b3;
}
.nv-setup .nv-setup-steps li:last-child::before { display: none; }
.nv-setup .nv-setup-number {
  border: 0; border-radius: 0; width: auto; height: 43px; justify-content: start;
  font: 400 32px/1 var(--serif); color: #be8ca3;
}
.nv-setup .nv-setup-icon {
  position: absolute; right: 25px; top: 23px; width: 45px; height: 45px; border-radius: 50%;
  display: grid; place-items: center; color: #8c365b;
  background: radial-gradient(circle at 30% 20%, #fff8f8, #f0d7e2);
  border: 1px solid #f0dce4; box-shadow: inset 0 1px 0 #fff;
}
.nv-setup .nv-setup-icon svg { width: 24px; height: 24px; stroke-width: 1.45; }
.nv-setup .nv-setup-steps h3 { margin-top: 20px; }
.nv-setup .nv-setup-reassurance {
  max-width: 760px; margin: 43px auto 0; padding: 17px 28px;
  border-left: 2px solid #8d365c; border-radius: 0 10px 10px 0;
  background: linear-gradient(90deg, #f4e0e9b0, #f8edf066 56%, transparent);
  color: #782849; text-align: left; font-size: 20px; font-weight: 500; line-height: 1.65;
}
.nv-setup .nv-setup-reassurance strong { color: #782849; font-weight: 650; }

/* Homepage footer: the offer's wine base and rose glow, without the ribbon. */
.nv-footer-end {
  color: #fff4eb;
  background: radial-gradient(ellipse at 0% 0%, #ae49744d, transparent 66%),
    radial-gradient(ellipse at 100% 100%, #ae49744d, transparent 66%), var(--wine-dark);
}
.nv-footer-end > .footer { display: block; border: 0; padding-block: 54px; }
.nv-footer-invite { width: min(100%, 380px); margin-inline: auto; text-align: center; }
.nv-footer-end .nv-footer-eyebrow {
  margin: 0 0 20px; color: #ead6df; font-size: 11px; font-weight: 500; letter-spacing: 2.4px;
}
.nv-footer-cta {
  display: flex; align-items: center; justify-content: center; gap: 24px;
  min-height: 64px; padding: 18px 22px; border-radius: 12px;
  background: #ffe5e5; color: var(--wine-dark); font-size: 18px; font-weight: 550; line-height: 1.4;
}
.nv-footer-cta:hover { background: #fff5ed; }
.nv-footer-end a:focus-visible { outline-color: #f3b5c5; }
.nv-footer-end .nv-footer-note { margin: 16px 0 0; color: #dec3d0; font-size: 14px; }
.nv-footer-bottom {
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 24px;
  margin-top: 40px; padding-top: 26px; border-top: 1px solid #d19eb52b;
}
.nv-footer-end .brand { width: fit-content; color: #fff4eb; font-size: 32px; gap: 14px; }
.nv-footer-end .brand svg { width: 32px; height: 40px; color: #f3b5c5; }
.nv-footer-end .footer-legal { gap: 12px 28px; color: #dec3d0; font-size: 14px; }
.nv-footer-end .footer-legal a { display: inline-flex; align-items: center; min-height: 44px; }
.nv-footer-end .footer-legal a:hover { color: #fff4eb; }
.nv-footer-end .nv-footer-copyright { justify-self: end; color: #dec3d0; font-size: 14px; }
@media (max-width: 760px) {
  .nv-footer-end > .footer { width: calc(100% - 48px); padding-block: 66px 30px; }
  .nv-footer-bottom { grid-template-columns: 1fr; gap: 0; margin-top: 38px; }
  .nv-footer-end .brand { margin-bottom: 22px; }
  .nv-footer-end .footer-legal { order: initial; justify-content: space-between; gap: 0 12px; }
  .nv-footer-end .nv-footer-copyright { justify-self: start; margin-top: 8px; }
}
@media (max-width: 360px) {
  .nv-footer-cta { gap: 16px; padding-inline: 16px; font-size: 16px; }
  .nv-footer-end .footer-legal { font-size: 12px; }
  .nv-footer-end .nv-footer-note { font-size: 13px; }
}

@media (max-width: 1100px) {
  .nv-sophie .nv-knowledge-scene::before { inset: -22px -17px -24px 29%; }
  .nv-sophie .nv-knowledge-scene::after { right: 0; }
  .nv-sophie .nv-knowledge-topics { padding-inline: 16px; gap: 5px; }
  .nv-sophie .nv-knowledge-topics li { gap: 5px; font-size: 11px; }
  .nv-sophie .nv-topic-icon svg { width: 14px; height: 14px; }
  .nv-sophie .nv-answer-link { width: 42px; right: calc(100% + 9px); }
  .nv-sophie .nv-answer-bubble { padding: 20px; }
  .nv-sophie .nv-answer blockquote { padding: 15px; }
  .nv-setup .nv-setup-steps { gap: 25px; }
  .nv-setup .nv-setup-steps li { padding: 22px 20px 24px; }
  .nv-setup .nv-setup-steps li::before { right: -21px; width: 15px; }
  .nv-setup .nv-setup-icon { right: 18px; top: 22px; width: 40px; height: 40px; }
}
@media (min-width: 761px) and (max-width: 900px) {
  .nv-sophie .nv-topic-icon { display: none; }
  .nv-sophie .nv-answer-link { width: 25px; right: calc(100% + 7px); }
  .nv-sophie .nv-treatment-emblem { flex-basis: 38px; height: 38px; border-radius: 9px; }
  .nv-sophie .nv-treatment-emblem svg { width: 24px; height: 24px; }
  .nv-sophie .nv-treatment h4 { gap: 9px; font-size: 34px; }
  .nv-sophie .nv-treatment-data { padding: 14px; }
  .nv-sophie .nv-answer-bubble { padding: 17px; }
  .nv-setup .nv-setup-steps li { padding-inline: 16px; }
}
@media (max-width: 760px) {
  .nv-sophie .nv-knowledge-scene::before { inset: 25px -9px 10%; border-radius: 46% 54% 35% 65%; transform: rotate(-2deg); }
  .nv-sophie .nv-knowledge-scene::after { display: none; }
  .nv-sophie .nv-knowledge { border-radius: 13px; box-shadow: 0 16px 34px -23px #6b29434d; }
  .nv-sophie .nv-knowledge-topics { padding: 9px 18px; gap: 3px 12px; }
  .nv-sophie .nv-knowledge-topics li { justify-content: flex-start; padding: 7px 8px; font-size: 12px; gap: 8px; }
  .nv-sophie .nv-knowledge-topics li::before { display: none; }
  .nv-sophie .nv-topic-icon svg { width: 16px; height: 16px; }
  .nv-sophie .nv-treatment-emblem { flex-basis: 43px; height: 43px; }
  .nv-sophie .nv-treatment-emblem svg { width: 27px; height: 27px; }
  .nv-sophie .nv-treatment-data { padding: 15px; }
  .nv-sophie .nv-answer-link { top: -31px; left: 19px; right: auto; width: 31px; height: 28px; transform: rotate(80deg); }
  .nv-sophie .nv-answer-link svg { height: 28px; }
  .nv-sophie .nv-answer-bubble { padding: 19px; }
  .nv-sophie .nv-answer blockquote { padding: 16px; }
  .nv-sophie .nv-control { text-align: left; padding-left: 16px; width: fit-content; margin-inline: auto; }
  .nv-setup .nv-setup-steps { gap: 14px; }
  .nv-setup .nv-setup-steps li, .nv-setup .nv-setup-steps li:last-child {
    grid-template-columns: 28px 1fr; gap: 13px; padding: 19px 17px 21px;
  }
  .nv-setup .nv-setup-steps li > div { grid-column: 2; grid-row: 1; }
  .nv-setup .nv-setup-number { font-size: 27px; height: 30px; align-content: start; padding-top: 3px; }
  .nv-setup .nv-setup-steps li::before { left: 31px; right: auto; top: calc(100% + 1px); bottom: auto; width: 0; height: 13px; border-top: 0; border-left: 1px dashed #cba0b3; }
  .nv-setup .nv-setup-icon { width: 29px; height: 29px; top: 17px; right: 14px; }
  .nv-setup .nv-setup-icon svg { width: 18px; height: 18px; }
  .nv-setup .nv-setup-steps h3 { margin-top: 4px; padding-right: 27px; }
  .nv-setup .nv-setup-reassurance { padding: 14px 18px; margin-top: 30px; font-size: 16px; line-height: 1.7; max-width: 510px; }
}
/* Reference composition: every rule below is limited to Voici Sophie. */
#sophie {
  position: relative; width: 100%; max-width: none; margin-inline: 0; padding: 0;
  overflow: hidden; overflow-clip-margin: 0; isolation: isolate;
  color: #272528; background: #fdfaf8;
}
#sophie .nv-sophie-layout {
  position: relative; width: min(100%, 1810px); margin-inline: auto;
  aspect-ratio: 1810 / 869; container-type: inline-size; overflow: visible;
}
#sophie .nv-sophie-background {
  /* The section spans the viewport; the content alone retains its 1810px cap. */
  position: absolute; top: 0; left: -2px; z-index: -1;
  width: calc(100% + 4px); max-width: none; height: 100%;
  object-fit: fill; pointer-events: none; user-select: none;
}
#sophie .nv-sophie-heading {
  position: absolute; top: 2.76%; left: 0; right: 0;
  text-align: center;
}
#sophie .nv-sophie-eyebrow {
  margin: 0; color: var(--wine); font-size: .674cqw; line-height: 1.4;
  font-weight: 600; letter-spacing: .177cqw;
}
#sophie #nv-sophie-title {
  margin: .78cqw 0 0; color: #2b2929;
  font: 400 3.9cqw/1.04 var(--serif); letter-spacing: -.11cqw;
}
#sophie #nv-sophie-title em {
  display: block; margin-top: .06cqw;
  font-size: 3.55cqw; line-height: 1.04; letter-spacing: -.09cqw; color: var(--wine);
}
#sophie .nv-sophie-intro {
  max-width: 44cqw; margin: .82cqw auto 0;
  color: #626066; font-size: .906cqw; line-height: 1.46;
}
#sophie .nv-sophie-intro + .nv-sophie-intro { margin-top: .14cqw; }
/* The ribbon belongs to the scene, never to either floating card. */
#sophie .nv-sophie-card-decor {
  position: absolute; top: 32%; left: calc((100% - 100vw) / 2); z-index: -1;
  width: 100vw; max-width: none; height: 68%; pointer-events: none;
  stroke: none; background: #fdfaf8;
  mask-image: linear-gradient(to bottom, transparent, #000 8%);
}
#sophie .nv-sophie-card {
  position: absolute; border: 1.5px solid #fffffff0; border-radius: 1.6cqw;
  background: linear-gradient(125deg, #fffdfc80, #fffaf85c);
  -webkit-backdrop-filter: blur(7px); backdrop-filter: blur(7px);
  box-shadow: 0 1.65cqw 2.4cqw -.7cqw #4b2b3438, inset 0 1px #fff;
  transform: var(--nv-sophie-rest-transform);
}
#sophie .nv-sophie-dashboard {
  left: 16.5%; top: 34%; width: 33.4%; overflow: hidden;
  --nv-sophie-rest-transform: rotate(2.5deg);
  --nv-sophie-enter-x: -42px; --nv-sophie-enter-rotation: 3deg; --nv-sophie-enter-delay: 0ms;
  --nv-sophie-float: nv-sophie-dashboard-float; --nv-sophie-float-duration: 6.2s;
}
#sophie .nv-sophie-card-heading { display: flex; align-items: stretch; min-height: 5.7cqw; border-bottom: 1px solid #7828490a; }
#sophie .nv-sophie-card-brand { display: flex; align-items: center; justify-content: center; flex: 0 0 30%; border-right: 1px solid #7828490a; }
#sophie .nv-sophie-card-brand img { display: block; width: 6.5cqw; height: auto; }
#sophie .nv-sophie-card-label { display: flex; flex-direction: column; justify-content: center; padding: 1cqw 1.4cqw; min-width: 0; }
#sophie .nv-sophie-card-label h3 { margin: 0; font-size: .88cqw; line-height: 1.4; font-weight: 700; letter-spacing: .07cqw; text-transform: uppercase; color: #171719; }
#sophie .nv-sophie-card-label p { margin: .15cqw 0 0; font-size: .87cqw; line-height: 1.45; color: #626066; }
#sophie .nv-sophie-treatment { padding: 1cqw 1.85cqw 1.25cqw; }
#sophie .nv-sophie-treatment h4 { margin: 0 0 .45cqw; font: 400 1.85cqw/1.2 var(--serif); letter-spacing: -.04cqw; color: #171719; }
#sophie .nv-sophie-description { margin: 0 0 .8cqw; font-size: 1.025cqw; line-height: 1.45; color: #626066; }
#sophie .nv-sophie-details { margin: 0; font-size: 1cqw; line-height: 1.5; }
#sophie .nv-sophie-details > div { display: flex; justify-content: space-between; gap: 12px; padding: .63cqw 0; border-top: 1px solid #7828490a; }
#sophie .nv-sophie-details dt { font-weight: 550; color: #171719; }
#sophie .nv-sophie-details dd { margin: 0; color: var(--wine); font-weight: 550; white-space: nowrap; }
#sophie .nv-sophie-instruction { margin: .12cqw -.55cqw 0; padding: .85cqw 1.1cqw; border-radius: .8cqw; background: #78284906; }
#sophie .nv-sophie-instruction h5 { margin: 0 0 .2cqw; color: #171719; font-size: 1cqw; font-weight: 550; line-height: 1.4; }
#sophie .nv-sophie-instruction p { margin: 0; color: #626066; font-size: 1cqw; line-height: 1.45; }
#sophie .nv-sophie-response {
  left: 55.8%; top: 38%; width: 32.5%;
  --nv-sophie-rest-transform: rotate(-7deg); transform-origin: center;
  --nv-sophie-enter-x: 38px; --nv-sophie-enter-rotation: -4deg; --nv-sophie-enter-delay: 120ms;
  --nv-sophie-float: nv-sophie-response-float; --nv-sophie-float-duration: 6.8s;
}
#sophie .nv-sophie-response blockquote {
  margin: 1cqw 1.6cqw 1.3cqw; padding: .85cqw 1.1cqw 1cqw;
  border: 1px solid #78284905; border-radius: .8cqw; background: #78284902;
  font-size: 1.09cqw; line-height: 1.5; color: #626066; letter-spacing: -.012cqw;
}
#sophie .nv-sophie-response strong { font-weight: 550; color: var(--wine); white-space: nowrap; }
#sophie .nv-sophie-arrow { position: absolute; left: 49.7%; top: 57%; width: 5.5%; height: 5.2%; color: var(--wine); stroke-width: 3; pointer-events: none; }
#sophie .nv-sophie-rays { position: absolute; right: -2.35cqw; top: -1.8cqw; width: 2.6cqw; height: 2.82cqw; color: var(--wine); stroke-width: 3; pointer-events: none; }
/* JS enhances visible-by-default cards; only transform and opacity are animated. */
@media (prefers-reduced-motion: no-preference) {
  #sophie.nv-sophie-motion-ready .nv-sophie-card {
    opacity: 0;
    transform: translate3d(var(--nv-sophie-enter-x), 16px, 0) rotate(var(--nv-sophie-enter-rotation)) var(--nv-sophie-rest-transform);
  }
  #sophie.nv-sophie-motion-ready .nv-sophie-card.nv-sophie-visible {
    opacity: 1;
    animation:
      nv-sophie-card-enter 1050ms cubic-bezier(.16, 1, .3, 1) var(--nv-sophie-enter-delay) both,
      var(--nv-sophie-float) var(--nv-sophie-float-duration) ease-in-out calc(1050ms + var(--nv-sophie-enter-delay)) infinite;
  }
  #sophie.nv-sophie-motion-ready .nv-sophie-card.nv-sophie-skip-entry {
    opacity: 1;
    transform: var(--nv-sophie-rest-transform);
    animation: var(--nv-sophie-float) var(--nv-sophie-float-duration) ease-in-out infinite;
  }
}
@keyframes nv-sophie-card-enter {
  from {
    opacity: 0;
    transform: translate3d(var(--nv-sophie-enter-x), 16px, 0) rotate(var(--nv-sophie-enter-rotation)) var(--nv-sophie-rest-transform);
  }
  to { opacity: 1; transform: translate3d(0, 0, 0) rotate(0deg) var(--nv-sophie-rest-transform); }
}
@keyframes nv-sophie-dashboard-float {
  0%, 100% { transform: translate3d(0, 0, 0) rotate(0deg) var(--nv-sophie-rest-transform); }
  50% { transform: translate3d(2px, -9px, 0) rotate(.4deg) var(--nv-sophie-rest-transform); }
}
@keyframes nv-sophie-response-float {
  0%, 100% { transform: translate3d(0, 0, 0) rotate(0deg) var(--nv-sophie-rest-transform); }
  50% { transform: translate3d(-3px, 8px, 0) rotate(-.45deg) var(--nv-sophie-rest-transform); }
}
.motion-paused #sophie.nv-sophie-motion-ready .nv-sophie-card {
  animation: none; opacity: 1; transform: var(--nv-sophie-rest-transform);
}
@media (prefers-reduced-motion: reduce) {
  #sophie .nv-sophie-card { animation: none; opacity: 1; transform: var(--nv-sophie-rest-transform); }
}
@media (max-width: 1099px) {
  #sophie .nv-sophie-layout { aspect-ratio: auto; padding: 35px 26px 130px; }
  #sophie .nv-sophie-background { object-fit: cover; object-position: center bottom; }
  #sophie .nv-sophie-heading { position: relative; inset: auto; }
  #sophie .nv-sophie-eyebrow { font-size: 10px; letter-spacing: 1.8px; }
  #sophie #nv-sophie-title { margin-top: 19px; font-size: 61px; letter-spacing: -1.4px; }
  #sophie #nv-sophie-title em { margin-top: 5px; font-size: 55px; letter-spacing: -1px; }
  #sophie .nv-sophie-intro { max-width: 665px; margin-top: 18px; font-size: 15px; line-height: 1.6; }
  #sophie .nv-sophie-intro + .nv-sophie-intro { margin-top: 2px; }
  #sophie .nv-sophie-card { position: relative; left: auto; top: auto; border-radius: 18px; }
  #sophie .nv-sophie-card-decor { top: 320px; height: calc(100% - 320px); }
  #sophie .nv-sophie-dashboard {
    width: 600px; max-width: 94%; min-height: 422px; margin: 36px auto 0;
    --nv-sophie-rest-transform: perspective(1600px) rotateY(8deg) rotateX(4deg) rotateZ(.5deg);
  }
  #sophie .nv-sophie-card-heading { min-height: 80px; }
  #sophie .nv-sophie-card-brand img { width: 110px; max-width: 80%; }
  #sophie .nv-sophie-card-label { padding: 14px 20px; }
  #sophie .nv-sophie-card-label h3 { font-size: 13px; letter-spacing: 1px; }
  #sophie .nv-sophie-card-label p { margin-top: 3px; font-size: 12px; }
  #sophie .nv-sophie-treatment { padding: 18px 28px 22px; }
  #sophie .nv-sophie-treatment h4 { font-size: 32px; letter-spacing: -.5px; margin-bottom: 8px; }
  #sophie .nv-sophie-description { margin-bottom: 14px; font-size: 16px; }
  #sophie .nv-sophie-details { font-size: 16px; }
  #sophie .nv-sophie-details > div { padding: 10px 0; }
  #sophie .nv-sophie-instruction { margin: 3px -8px 0; padding: 12px 16px; border-radius: 12px; }
  #sophie .nv-sophie-instruction h5, #sophie .nv-sophie-instruction p { font-size: 15px; }
  #sophie .nv-sophie-instruction h5 { margin-bottom: 4px; }
  #sophie .nv-sophie-response { width: 420px; max-width: 83%; margin: 58px auto 0; --nv-sophie-rest-transform: rotate(-5deg); }
  #sophie .nv-sophie-response blockquote { margin: 18px 25px 24px; padding: 17px 22px 20px; border-radius: 14px; font-size: 18px; }
  #sophie .nv-sophie-response br { display: none; }
  #sophie .nv-sophie-rays { width: 44px; height: 49px; right: -32px; top: -28px; }
}
@media (max-width: 600px) {
  #sophie .nv-sophie-layout { padding: 30px 14px 119px; }
  #sophie .nv-sophie-eyebrow { font-size: 8.5px; letter-spacing: 1.25px; }
  #sophie #nv-sophie-title { font-size: 51px; }
  #sophie #nv-sophie-title em { font-size: clamp(32px, 8.5vw, 46px); white-space: nowrap; }
  #sophie .nv-sophie-intro { max-width: 430px; font-size: 14px; line-height: 1.6; padding-inline: 6px; }
  #sophie .nv-sophie-intro br { display: none; }
  #sophie .nv-sophie-dashboard { max-width: 100%; min-height: 0; margin-top: 30px; --nv-sophie-rest-transform: rotate(1deg); border-radius: 13px; }
  #sophie .nv-sophie-card-heading { min-height: 70px; }
  #sophie .nv-sophie-card-brand { flex-basis: 28%; }
  #sophie .nv-sophie-card-brand img { width: 78px; }
  #sophie .nv-sophie-card-label { padding: 12px 13px; }
  #sophie .nv-sophie-card-label h3 { font-size: 11px; letter-spacing: .65px; }
  #sophie .nv-sophie-card-label p { font-size: 11px; }
  #sophie .nv-sophie-treatment { padding: 16px 20px 18px; }
  #sophie .nv-sophie-treatment h4 { font-size: 27px; }
  #sophie .nv-sophie-description, #sophie .nv-sophie-details { font-size: 14px; }
  #sophie .nv-sophie-instruction { padding: 11px 12px; }
  #sophie .nv-sophie-instruction h5, #sophie .nv-sophie-instruction p { font-size: 13px; }
  #sophie .nv-sophie-response { max-width: calc(100% - 29px); margin-top: 54px; border-radius: 15px; --nv-sophie-rest-transform: rotate(-4deg); }
  #sophie .nv-sophie-response blockquote { margin: 14px 17px 18px; padding: 16px 17px; font-size: 16px; }
  #sophie .nv-sophie-rays { width: 30px; height: 36px; right: -17px; top: -28px; }
}

#sophie .nv-sophie-mobile-arrow { display: none; }
@media (max-width: 1099px) {
  #sophie .nv-sophie-arrow { display: none; }
  #sophie .nv-sophie-mobile-arrow {
    display: block; position: absolute; top: -52px; left: 58%;
    width: 67px; height: 40px; transform: rotate(79deg);
    color: var(--wine); stroke-width: 3; pointer-events: none;
  }
}
/* Keep the mobile arrow independent of the response entrance and float. */
#sophie .nv-sophie-response-anchor { display: contents; }
@media (max-width: 1099px) {
  #sophie .nv-sophie-response-anchor {
    display: block; position: relative; width: 420px; max-width: 83%;
    margin: 58px auto 0; transform: rotate(-5deg);
  }
  #sophie .nv-sophie-response {
    width: 100%; max-width: none; margin: 0; --nv-sophie-rest-transform: rotate(0deg);
  }
  #sophie .nv-sophie-mobile-arrow { top: -51px; left: calc(58% - .16px); }
  #sophie .nv-sophie-dashboard {
    --nv-sophie-enter-y: 10px; --nv-sophie-enter-rotation: -.65deg;
    --nv-sophie-float: nv-sophie-mobile-dashboard-float; --nv-sophie-float-duration: 8s;
  }
  #sophie .nv-sophie-response {
    --nv-sophie-enter-y: 14px; --nv-sophie-enter-rotation: .65deg; --nv-sophie-enter-delay: 720ms;
    --nv-sophie-float: nv-sophie-mobile-response-float; --nv-sophie-float-duration: 9.5s;
  }
}
@media (max-width: 600px) {
  /* Uniform 6% reduction keeps the existing card composition and transforms. */
  #sophie .nv-sophie-card { zoom: .94; }
  #sophie .nv-sophie-dashboard { width: calc(100vw - 28px); max-width: none; margin-top: calc(30px / .94); }
  #sophie .nv-sophie-response { width: min(420px, calc(100vw - 57px)); }
  #sophie .nv-sophie-response-anchor {
    width: 394.8px; max-width: calc((100% - 29px) * .94); margin-top: 54px; transform: rotate(-4deg);
  }
}
@media (max-width: 1099px) and (prefers-reduced-motion: no-preference) {
  #sophie.nv-sophie-motion-ready .nv-sophie-card {
    transform: translate3d(0, var(--nv-sophie-enter-y), 0) rotate(var(--nv-sophie-enter-rotation)) var(--nv-sophie-rest-transform);
  }
  #sophie.nv-sophie-motion-ready .nv-sophie-card.nv-sophie-visible {
    animation:
      nv-sophie-mobile-card-enter 850ms cubic-bezier(.22, 1, .36, 1) var(--nv-sophie-enter-delay) both,
      var(--nv-sophie-float) var(--nv-sophie-float-duration) ease-in-out calc(850ms + var(--nv-sophie-enter-delay)) infinite;
  }
  #sophie.nv-sophie-motion-ready .nv-sophie-mobile-arrow { opacity: 0; }
  #sophie.nv-sophie-motion-ready .nv-sophie-response-anchor:has(.nv-sophie-visible) .nv-sophie-mobile-arrow {
    animation: nv-sophie-mobile-arrow-enter 400ms ease-out 400ms both;
  }
  #sophie.nv-sophie-motion-ready .nv-sophie-card.nv-sophie-skip-entry {
    transform: var(--nv-sophie-rest-transform);
    animation: var(--nv-sophie-float) var(--nv-sophie-float-duration) ease-in-out infinite;
  }
  #sophie.nv-sophie-motion-ready .nv-sophie-response-anchor:has(.nv-sophie-skip-entry) .nv-sophie-mobile-arrow {
    animation: none; opacity: 1;
  }
  .motion-paused #sophie.nv-sophie-motion-ready .nv-sophie-card {
    animation: none; opacity: 1; transform: var(--nv-sophie-rest-transform);
  }
}
@keyframes nv-sophie-mobile-card-enter {
  from {
    opacity: 0;
    transform: translate3d(0, var(--nv-sophie-enter-y), 0) rotate(var(--nv-sophie-enter-rotation)) var(--nv-sophie-rest-transform);
  }
  to { opacity: 1; transform: translate3d(0, 0, 0) rotate(0deg) var(--nv-sophie-rest-transform); }
}
@keyframes nv-sophie-mobile-arrow-enter {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes nv-sophie-mobile-dashboard-float {
  0%, 100% { transform: translate3d(0, 0, 0) rotate(0deg) var(--nv-sophie-rest-transform); }
  50% { transform: translate3d(0, -3px, 0) rotate(.15deg) var(--nv-sophie-rest-transform); }
}
@keyframes nv-sophie-mobile-response-float {
  0%, 100% { transform: translate3d(0, 0, 0) rotate(0deg) var(--nv-sophie-rest-transform); }
  50% { transform: translate3d(0, 2.5px, 0) rotate(-.12deg) var(--nv-sophie-rest-transform); }
}
/* Reusable CTA chevron; preserve the original arrow slots and button geometry. */
.nv-cta-arrow {
  position: relative; display: block; flex-shrink: 0;
  height: 1lh;
}
/* Invisible text metrics keep the former glyph width across font fallbacks. */
.nv-cta-arrow::before { content: "\2197"; visibility: hidden; }
:is(.header-cta, .hero .hero-actions .button, #offer-cta) .nv-cta-arrow > svg {
  position: absolute; top: 50%; left: 0;
  width: 100%; height: .8em; transform: translateY(-50%);
  fill: none; stroke: currentColor; stroke-width: 1.7;
}
.button:hover .arrow.nv-cta-arrow,
.hero .hero-actions .button:hover .arrow.nv-cta-arrow { transform: none; }
.nv-cta-arrow-shaft {
  opacity: 0; transform: scaleX(0); transform-origin: 11px 8px;
  transition: transform 180ms ease-out, opacity 180ms ease-out;
}
@media (min-width: 761px) and (hover: hover) and (pointer: fine) {
  a:hover .nv-cta-arrow-shaft { opacity: 1; transform: scaleX(1); }
}
@media (max-width: 760px) {
  .hero .hero-actions .nv-cta-arrow::before { content: ">"; }
}
@media (prefers-reduced-motion: reduce) {
  .nv-cta-arrow-shaft { transition: none; }
}

/* Logo replacements retain the existing illustration and avatar boxes. */
#sophie img.nv-sophie-mark { object-fit: contain; }
#apres-appel .nv-email-avatar img,
#apres-appel .nv-sms-avatar img { display: block; width: 78%; height: 78%; object-fit: contain; }
