/* Version 2 : composition aérée et illustrations harmonisées. */
.v2-symbols { position: absolute; width: 0; height: 0; overflow: hidden; pointer-events: none; }
.hero { min-height: min(900px, 100svh); height: auto; padding: 9rem max(1.25rem, 5vw) 9rem; text-align: left; }
.v2-hero-layout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 2rem; align-items: center; width: 100%; max-width: 1240px; margin: auto; position: relative; z-index: 2; }
.hero-inner { max-width: none; min-width: 0; }
.hero-kicker { font-size: .8rem; letter-spacing: .27em; margin-bottom: 1.65rem; }
.hero h1 { font-size: clamp(3.1rem, 5.3vw, 4.9rem); line-height: 1.06; letter-spacing: -.045em; margin-bottom: 1.65rem; }
.hero h1 .grad { background-image: linear-gradient(105deg, #5B3FA0 0%, #8462B7 62%, #BA6C96 100%); background-size: 100%; animation: none; }
.hero-sub { font-size: 1.03rem; line-height: 1.7; max-width: 49ch; margin-bottom: 2rem; }
.v2-hero-lead { display: block; font-family: var(--font-title); font-size: 1.27rem; font-weight: 400; color: var(--violet-deep); margin-bottom: .5rem; }
.hero-chips, .hero-cta { justify-content: flex-start; }
.hero-chips { gap: .45rem; margin-bottom: 2rem; }
.hero-chips .chip { font-size: .73rem; padding: .4rem .7rem; animation: none; background: color-mix(in srgb, var(--c) 7%, #FBF9F5); border-color: color-mix(in srgb, var(--c) 25%, transparent); }
.chip .dot { width: 5px; height: 5px; box-shadow: none; margin-right: .35rem; }
.approche-label { margin-bottom: 1.05rem; font-size: .68rem; }
.hero-cta { gap: .7rem; }
.hero-cta .btn { font-size: .85rem; padding: .85rem 1.4rem; }
.hero-cta .btn:not(.btn-ghost) { animation: none; }
.v2-hero-art { width: 100%; max-width: 540px; justify-self: center; }
.v2-hero-art > svg { display: block; width: 100%; height: auto; overflow: visible; }
.hero-orbs .orb { opacity: .28; animation: none; }
.hero .o1 { left: -25vmax; top: -27vmax; }
.hero .o2 { right: -14vmax; bottom: -22vmax; }
.hero .o3 { left: auto; right: 15%; bottom: 10%; width: 20vmax; height: 20vmax; opacity: .2; }
.hero-scroll { bottom: 7.3rem; width: 20px; height: 31px; opacity: .4; }
.hero-scroll span { animation-iteration-count: 2; }
.v2-motion .v2-draw { stroke-dasharray: 1; stroke-dashoffset: 1; animation: v2Draw 3.7s cubic-bezier(.2,.6,.3,1) forwards; }
.v2-motion .v2-rosette .v2-draw { animation-delay: var(--delay, .35s); }
.v2-motion .v2-triangle { animation-delay: .65s; }
.v2-motion .v2-inner { animation-delay: .9s; }
.v2-motion .v2-geometry-points { animation: v2Appear 1.2s .9s both; }
@keyframes v2Draw { to { stroke-dashoffset: 0; } }
@keyframes v2Appear { from { opacity: 0; } to { opacity: 1; } }

/* Les symboles partagent le même dessin dans les cartes et le parcours. */
.card-deco { width: 70px; height: 70px; top: 1.25rem; right: 1.15rem; animation: none; opacity: .92; }
.card { border: 1px solid color-mix(in srgb, var(--tint) 8%, transparent); }
.card::before { background: radial-gradient(180px 190px at 100% 0%, color-mix(in srgb, var(--tint) 11%, transparent), transparent 75%); }
.card h3 { padding-right: 4rem; font-size: 1.25rem; }
.card .card-meta { padding-right: 0; color: #9A7935; letter-spacing: .035em; }
.card summary { display: flex; align-items: center; justify-content: space-between; gap: .6rem; padding-top: .8rem; border-top: 1px solid color-mix(in srgb, var(--tint) 14%, transparent); }
.card summary::after { flex: none; font-size: 1.15rem; font-weight: 300; }
.card summary::-webkit-details-marker { display: none; }
.card:hover .card-deco { transform: translateY(-2px); }
.card-deco { transition: transform .45s ease; }
.card .dcontent strong { font-weight: 600; }
.card-actions { display: grid; gap: 1rem; margin-block: 1.25rem .2rem; }
.card-resource { color: var(--violet-deep); text-underline-offset: .2em; text-decoration-thickness: 1px; }
.card-actions .btn { justify-self: start; text-align: center; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
@media (min-width: 721px) {
  .card h3 { min-height: 3.45em; }
  .card .card-meta { min-height: 3.3em; }
  .card summary { min-height: 3.7em; }
}

/* Le fil se trace une fois, puis les étapes restent visibles. */
.frise { gap: 1rem; padding-top: 0; }
.frise::before { top: 32px; height: 1px; left: 6%; right: 6%; opacity: .7; background: linear-gradient(90deg, #D2B96B, #AB90C9, #D2B96B); transform-origin: left center; }
.frise-ico { width: 64px; height: 64px; padding: 6px; background: #FBF9F5; border: 0; border-radius: 0; box-shadow: none; animation: none; }
.frise li { gap: .55rem; }
.frise b { font-size: 1.6rem; }
.frise span { font-size: .8rem; line-height: 1.6; }
.v2-motion .frise::before { transform: scaleX(0); }
.v2-motion .frise.v2-in-view::before { animation: v2Timeline 2.4s ease forwards; }
.v2-motion .frise li .frise-ico { opacity: 0; transform: translateY(7px); }
.v2-motion .frise li.v2-in-view .frise-ico { animation: v2Milestone .65s var(--step-delay, 0s) both; }
@keyframes v2Timeline { to { transform: scaleX(1); } }
@keyframes v2Milestone { to { transform: translateY(0); opacity: 1; } }

/* Les trois formules sont identifiables par une teinte douce. */
.price-card { --session-tint: #8D70B8; position: relative; border: 1px solid color-mix(in srgb, var(--session-tint) 17%, transparent); background: linear-gradient(165deg, color-mix(in srgb, var(--session-tint) 10%, #fff), #fff 72%); overflow: hidden; }
.price-card:nth-child(2) { --session-tint: #658FAC; }
.price-card:nth-child(3) { --session-tint: #77966D; }
.price-card::before { content: ''; position: absolute; width: 112px; height: 112px; border: 1px solid color-mix(in srgb, var(--session-tint) 13%, transparent); border-radius: 50%; top: -64px; right: -42px; pointer-events: none; }
.price-illus { color: var(--session-tint); animation: none; }
.price b { color: color-mix(in srgb, var(--session-tint) 80%, #36234D); }
.price-card .btn-ghost { color: color-mix(in srgb, var(--session-tint) 75%, #36234D); box-shadow: inset 0 0 0 1px var(--session-tint); }
.price-card { display: flex; flex-direction: column; align-items: center; }
.price-card > .btn { margin-top: auto; }
.price-child { display: inline-flex; align-items: baseline; gap: .65rem; margin: -.2rem 0 1.15rem; padding: .4rem .85rem; border-radius: 999px; background: #F0E9F8; color: var(--violet-deep); font-size: .88rem; text-decoration: none; }
.price-child strong { font-size: 1.05rem; font-weight: 500; }
.price-child:hover { background: #E7DCF3; }
.contact-form { grid-template-columns: minmax(0, 1fr); }
.contact-form > * { min-width: 0; }
.form-hint { font-size: .85rem; line-height: 1.6; color: var(--ink-soft); padding-left: .85rem; border-left: 2px solid #D2B96B; }
.cf-turnstile { width: 100%; min-height: 65px; }
.cf-turnstile[data-size="compact"] { min-height: 140px; }

.v2-footer-emblem { position: relative; width: 230px; height: 108px; margin: 0 auto .75rem; display: grid; place-items: center; }
.v2-footer-emblem svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.v2-footer-emblem img { position: relative; margin: 0; width: 43px; height: 43px; }
.footer { padding-top: 1.7rem; }
.v2-comparison { display: inline-flex; align-items: center; gap: .8rem; border-top: 1px solid #D8CCBB; margin-top: 1.5rem; padding-top: .9rem; font-size: .72rem; color: var(--ink-soft); }
.v2-comparison a { color: var(--violet-deep); text-underline-offset: 3px; }

@media (max-width: 1100px) {
  .hero { padding-inline: 4vw; }
  .v2-hero-layout { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: .5rem; }
  .hero h1 { font-size: clamp(3rem, 5.5vw, 4rem); }
  .hero-chips { max-width: 430px; }
}
@media (max-width: 980px) {
  .frise { display: grid; grid-template-columns: 1fr; gap: 1.5rem; max-width: 570px; }
  .frise::before { display: block; left: 31px; top: 32px; bottom: 32px; width: 1px; height: auto; right: auto; background: linear-gradient(#D2B96B, #AB90C9, #D2B96B); transform-origin: center top; }
  .frise li { display: grid; grid-template-columns: 64px 82px minmax(0, 1fr); align-items: center; gap: 1.2rem; text-align: left; min-height: 76px; }
  .frise span { max-width: none; font-size: .9rem; }
  .v2-motion .frise::before { transform: scaleY(0); }
  .v2-motion .frise.v2-in-view::before { animation-name: v2TimelineVertical; }
  .v2-motion .frise li.v2-in-view .frise-ico { animation-delay: 0s; }
  @keyframes v2TimelineVertical { to { transform: scaleY(1); } }
}
@media (max-width: 780px) {
  .hero { min-height: auto; padding: 7.5rem 1.5rem 6.5rem; }
  .v2-hero-layout { grid-template-columns: minmax(0, 1fr); gap: 1.2rem; max-width: 590px; }
  .hero h1 { font-size: clamp(2.65rem, 8.6vw, 4.3rem); }
  .v2-hero-art { max-width: 340px; }
  .hero-scroll { display: none; }
  .hero-chips { max-width: none; }
  .hero-sub { font-size: .98rem; }
}
@media (max-width: 540px) {
  .hero { padding-inline: 1.25rem; }
  .hero h1 { font-size: clamp(2.45rem, 10.4vw, 3.7rem); }
  .v2-hero-lead { font-size: 1.15rem; }
  .v2-hero-art { max-width: 290px; }
  .hero-cta { flex-direction: column; align-items: stretch; max-width: 330px; }
  .hero-cta .btn { text-align: center; justify-content: center; }
  .cards { grid-template-columns: minmax(0, 1fr); }
  .card { padding: 1.65rem 1.35rem; }
  .card h3 { font-size: 1.15rem; padding-right: 3.7rem; }
  .card-deco { width: 64px; height: 64px; right: .95rem; }
  .card .card-meta { margin-top: .6rem; }
  .frise li { grid-template-columns: 56px minmax(0, 1fr); column-gap: 1.1rem; row-gap: .2rem; }
  .frise-ico { grid-row: span 2; width: 56px; height: 56px; padding: 4px; }
  .frise b { align-self: end; font-size: 1.4rem; }
  .frise span { grid-column: 2; align-self: start; font-size: .85rem; }
  .frise::before { left: 27px; }
  .pricing { grid-template-columns: minmax(0, 340px); }
}
@media (prefers-reduced-motion: reduce) {
  .v2-draw { stroke-dasharray: none !important; stroke-dashoffset: 0 !important; }
  .v2-hero-art * { animation: none !important; }
  .frise::before, .frise li .frise-ico { animation: none !important; opacity: 1 !important; transform: none !important; }
  .card:hover .card-deco { transform: none; }
}
