/* Prototype Chamonix : structure commune Annecy/Genève, identité alpine conservée. */

.chamonix-v2 {
  --paper: var(--snow);
  --paper-deep: var(--stone);
  --line: rgba(48, 54, 52, .14);
  --content: var(--max);
}

html,
body.chamonix-v2 { max-width: 100%; overflow-x: hidden; overflow-x: clip; }

/* Le hero garde ses contours, sa coupe alpine, sa photo et sa palette. */
.chamonix-v2 .chamonix-hero,
.chamonix-v2 .hero-grid { min-height: clamp(880px, 74svh, 940px); }
.chamonix-v2 .hero-grid { padding-top: 118px; padding-bottom: 92px; }
.chamonix-v2 .hero-copy h1 { line-height: .82; }
.chamonix-v2 .hero-copy h1 em { color: var(--terra); }
.chamonix-v2 .hero-lead { margin-top: 42px; }
.chamonix-v2 .hero-valley { bottom: 25px; }

/* Bande de réassurance identique aux pages validées. */
.quick-proof { position: relative; z-index: 4; padding: 0 6vw; border-top: 1px solid rgba(23,49,44,.08); border-bottom: 1px solid rgba(23,49,44,.12); background: rgba(246,245,241,.97); }
.quick-proof-inner { display: grid; grid-template-columns: .9fr 1.35fr 1fr .95fr 1.2fr; max-width: var(--content); margin: 0 auto; }
.quick-proof-item,
.quick-proof-intro { display: flex; min-height: 126px; flex-direction: column; justify-content: center; padding: 24px clamp(18px,2vw,31px); border-right: 1px solid var(--line); }
.quick-proof-item:first-child { padding-left: 0; }
.quick-proof-intro { padding-right: 0; border-right: 0; }
.quick-proof-item dt { color: var(--terra); font-size: .65rem; font-weight: 700; letter-spacing: 1.7px; text-transform: uppercase; }
.quick-proof-item dd { margin: 8px 0 0; color: var(--pine); font-family: var(--font-story); font-size: clamp(1.14rem,1.45vw,1.45rem); line-height: 1.15; white-space: nowrap; }
.quick-proof-cta { display: inline-flex; align-items: center; justify-content: center; align-self: center; min-height: 48px; padding: 13px 24px; border-radius: 999px; background: var(--terra); color: var(--white); font-size: .7rem; font-weight: 700; letter-spacing: .9px; text-decoration: none; text-transform: uppercase; transition: background-color .22s ease,transform .22s ease; }
.quick-proof-cta:hover { background: var(--terra-dark); transform: translateY(-2px); }

/* Rythme, titres et ordre éditorial communs. */
.chamonix-v2 .section-pad { padding-top: clamp(92px,9vw,148px); padding-bottom: clamp(92px,9vw,148px); }
.chamonix-v2 .films-heading,
.chamonix-v2 .reviews-heading,
.chamonix-v2 .formulas-heading { grid-template-columns: 1.15fr .85fr; gap: clamp(48px,7vw,98px); }
.chamonix-v2 .films-heading { grid-template-columns: 1fr; }
.chamonix-v2 .films-heading h2 { max-width: 820px; }
.chamonix-v2 .films-heading h2,
.chamonix-v2 .reviews-heading h2,
.chamonix-v2 .approach-heading h2,
.chamonix-v2 .formulas-heading h2,
.chamonix-v2 .valley-heading h2,
.chamonix-v2 .faq-heading h2 { font-size: clamp(3.45rem,5.5vw,6.15rem); line-height: .93; }

.chamonix-v2 .films-grid { gap: 22px; margin-top: clamp(48px,6vw,78px); }
.chamonix-v2 .film-card { border-radius: 12px; }
.chamonix-v2 .film-body h3 { font-size: clamp(2.35rem,3vw,3.5rem); white-space: nowrap; }
.chamonix-v2 .film-body ul { margin: 22px 0 0; }
.chamonix-v2 .film-body > p:not(.film-place) { margin-top: 24px; }
.chamonix-v2 .film-play { font-size: .54rem; letter-spacing: .07em; line-height: 1.15; text-align: center; }

/* Avis : même grille et mêmes proportions que sur Annecy et Genève. */
.chamonix-v2 .reviews-shell { display: block; }
.chamonix-v2 .reviews-heading { position: static; display: grid; align-items: end; }
.reviews-intro { max-width: none; }
.reviews-intro > p { margin: 0; color: var(--muted); }
.chamonix-v2 .reviews-intro > p { white-space: nowrap; }
.chamonix-v2 .reviews-google-link { margin-top: 22px; }
.reviews-grid { display: grid; grid-template-columns: 1.12fr .88fr .88fr; gap: 18px; margin-top: clamp(48px,5vw,74px); }
.chamonix-v2 .review-card { display: flex; min-height: 390px; flex-direction: column; margin: 0; padding: clamp(30px,3.2vw,48px); border: 1px solid rgba(48,54,52,.12); border-radius: 10px 42px 10px 42px; background: var(--white); }
.chamonix-v2 .review-card > p,
.chamonix-v2 .review-card-main > p { flex: 1; font-size: clamp(1.35rem,1.8vw,1.9rem); }
.chamonix-v2 .review-card-featured { background: var(--pine); color: var(--white); box-shadow: 0 28px 75px rgba(16,36,31,.16); }
.chamonix-v2 .review-card-featured footer span { color: rgba(255,255,255,.55); }

/* Approche : le cartouche alpin propre à Chamonix est conservé. */
.chamonix-v2 .approach-shell { grid-template-columns: minmax(0,.92fr) minmax(0,1.08fr); gap: clamp(60px,8vw,130px); align-items: start; }
.chamonix-v2 .approach-heading h2 { font-size: clamp(3.25rem,4.5vw,5rem); }
.chamonix-v2 .approach-copy { padding-top: 0; }

/* Prix replacés dans le bloc formules, comme sur les deux pages de référence. */
.chamonix-v2 .formulas-section { background: var(--pine); }
.pricing-context { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(38px,5vw,72px); align-items: end; margin-top: clamp(52px,6vw,82px); padding: clamp(38px,4vw,60px); overflow: hidden; border: 1px solid rgba(255,255,255,.13); border-radius: 10px 66px 10px 66px; background: var(--mist); color: var(--ink); }
.pricing-context-heading h3 { max-width: 620px; margin: 0; color: var(--pine); font-family: var(--font-story); font-size: clamp(2.65rem,3.8vw,4.3rem); font-weight: 400; letter-spacing: -.035em; line-height: 1; }
.pricing-context-heading h3 em { color: var(--terra); font-weight: 400; }
.pricing-context-summary > p { margin: 0; color: var(--muted); }
.pricing-context-summary > p + p { margin-top: 18px; }
.pricing-context-summary .pricing-lead { color: var(--ink); font-family: var(--font-story); font-size: clamp(1.55rem,2vw,2rem); line-height: 1.28; }
.pricing-context-details { display: grid; grid-column: 1/-1; grid-template-columns: repeat(3,1fr); margin-top: 8px; border-top: 1px solid rgba(23,49,44,.14); border-bottom: 0; }
.pricing-context-details > div { padding: 26px clamp(22px,3vw,36px); border-right: 1px solid rgba(23,49,44,.14); }
.pricing-context-details > div:first-child { padding-left: 0; }
.pricing-context-details > div:last-child { padding-right: 0; border-right: 0; }
.pricing-context-details strong { display: block; margin-bottom: 8px; color: var(--terra); font-size: .65rem; letter-spacing: 1.7px; text-transform: uppercase; }
.pricing-context-details p { margin: 0; color: var(--muted); font-size: .94rem; line-height: 1.65; }
.chamonix-v2 .formula-grid { margin-top: clamp(64px,7vw,96px); }
.chamonix-v2 .formula-card { padding-top: clamp(58px,4vw,68px); }
.chamonix-v2 .formula-card > h3 { margin: 0; font-family: var(--font-story); font-size: clamp(2.45rem,3.1vw,3.35rem); font-weight: 300; line-height: 1.04; white-space: nowrap; }
.chamonix-v2 .formula-price { margin: 20px 0 30px; color: #ee947e; font-size: .9rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.chamonix-v2 .formula-card li strong { font-size: 1.05rem; line-height: 1.4; }
.chamonix-v2 .formula-card li span { margin-top: 7px; font-size: .96rem; line-height: 1.55; }
.chamonix-v2 .formula-badge { display: inline-flex; min-height: 36px; align-items: center; justify-content: center; padding-top: 0; padding-bottom: 0; line-height: 1; }

/* Reprise exacte du cartouche CTA d'Annecy et de l'accueil. */
.formula-actions { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: clamp(40px,7vw,95px); max-width: 1160px; margin: 88px auto 0; padding: clamp(38px,4vw,54px); border: 0; border-radius: 32px; background: #1d3631; box-shadow: 0 24px 60px rgba(29,54,49,.16); }
.formula-actions-copy { max-width: 560px; }
.formula-actions-kicker { display: block; margin-bottom: 14px; color: var(--terra); font-size: .61rem; font-weight: 700; letter-spacing: 2.4px; text-transform: uppercase; }
.formula-actions-copy > p { margin: 0; color: var(--white); font-family: var(--font-story); font-size: clamp(1.5rem,2.2vw,2rem); line-height: 1.22; }
.formula-actions-note { display: block; margin-top: 16px; color: rgba(245,241,233,.72); font-size: .82rem; letter-spacing: .025em; }
.formula-actions-buttons { display: flex; flex-direction: column; align-items: stretch; gap: 12px; width: min(100%,350px); }
.formula-action { display: inline-flex; align-items: center; justify-content: center; width: 100%; min-height: 57px; padding: 16px 27px; border: 1px solid var(--terra); border-radius: 999px; cursor: pointer; color: var(--white); font-size: .65rem; font-weight: 700; letter-spacing: 1.7px; line-height: 1.35; text-align: center; text-decoration: none; text-transform: uppercase; transition: color .3s ease,border-color .3s ease,background .3s ease,transform .3s ease,box-shadow .3s ease; }
.formula-action-primary { background: var(--terra); box-shadow: 0 12px 28px rgba(0,0,0,.16); }
.formula-action-secondary { border-color: rgba(245,241,233,.5); background: transparent; }
.formula-action:hover { transform: translateY(-3px); }
.formula-action-primary:hover { background: var(--terra-dark); box-shadow: 0 14px 30px rgba(211,101,75,.22); }
.formula-action-secondary:hover { border-color: var(--white); background: rgba(255,255,255,.08); }

/* Bloc local et déroulé : mêmes respirations, détails alpins inchangés. */
.chamonix-v2 .valley-heading { display: block; text-align: center; }
.chamonix-v2 .valley-heading .section-kicker { margin-bottom: 28px; }
.chamonix-v2 .valley-heading h2 { max-width: 1180px; margin: 0 auto; text-wrap: balance; }
.chamonix-v2 .valley-layout { margin-top: clamp(62px,8vw,108px); }
.chamonix-v2 .valley-copy { border-top: 0; border-bottom: 0; }
.chamonix-v2 .valley-copy p,
.chamonix-v2 .valley-copy p:first-child { position: relative; margin: 0; padding: 25px 0 25px 28px; border-left: 1px solid rgba(239,148,126,.62); color: rgba(255,255,255,.68); font-family: var(--font-ui); font-size: 1rem; line-height: 1.75; }
.chamonix-v2 .valley-copy p + p { border-top: 1px solid rgba(255,255,255,.1); }
.chamonix-v2 .valley-copy strong { color: rgba(255,255,255,.94); font-family: var(--font-story); font-size: 1.32rem; font-weight: 400; line-height: 1.45; }
.valley-copy-label { display: block; margin-bottom: 10px; color: #ee947e; font-size: .62rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.chamonix-v2 .valley-photo { margin-top: clamp(72px,8vw,110px); }
.chamonix-v2 .method-shell { display: block; }
.chamonix-v2 .method-heading { position: static; display: block; text-align: center; }
.chamonix-v2 .method-heading h2 { font-size: clamp(3.4rem,5.2vw,6.4rem); line-height: .98; }
.chamonix-v2 .method-list { max-width: 736px; margin: clamp(44px,5vw,68px) auto 0; }
.chamonix-v2 .method-list li { grid-template-columns: 72px minmax(0,640px); justify-content: center; gap: 24px; padding-top: 20px; padding-bottom: 20px; }
.chamonix-v2 .method-list li:first-child { border-top: 0; }
.chamonix-v2 .method-list li:last-child { border-bottom: 0; }
.chamonix-v2 .method-list h3 { font-size: clamp(1.45rem,1.75vw,1.9rem); }
.chamonix-v2 .method-list p { margin-top: 10px; font-size: .95rem; line-height: 1.55; }

/* Bloc expérience ajouté au même emplacement que sur Annecy et Genève. */
.experience-section { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(55px,8vw,120px); align-items: stretch; max-width: 1500px; margin: 0 auto; background: var(--snow); }
.experience-media { position: relative; min-height: 720px; overflow: hidden; border-radius: 100px 8px 100px 8px; background: var(--pine); }
.experience-media::after { position: absolute; inset: 0; border: 1px solid rgba(23,49,44,.12); border-radius: inherit; content: ''; }
.experience-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 42%; }
.experience-copy { max-width: 650px; align-self: center; }
.experience-copy h2 { margin: 0; font-family: var(--font-story); font-size: clamp(3.3rem,5.5vw,6.3rem); font-weight: 300; letter-spacing: -.04em; line-height: .9; }
.experience-copy h2 em { color: var(--terra); font-weight: 400; }
.experience-copy > p:not(.section-kicker) { margin-top: 27px; color: var(--muted); }
.experience-points { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 40px; }
.experience-points div { min-height: 130px; padding: 23px; border-radius: 8px 28px 8px 28px; background: var(--pine); }
.experience-points strong { display: block; color: #ee947e; font-family: var(--font-story); font-size: 1.48rem; font-weight: 400; }
.experience-points span { display: block; margin-top: 7px; color: rgba(255,255,255,.68); font-size: .85rem; line-height: 1.55; }
.chamonix-v2 .experience-media { height: 100%; min-height: 0; align-self: stretch; }
.chamonix-v2 .experience-copy > .text-link { margin-top: 52px; }

/* FAQ : titre sans point final et même équilibre de colonnes. */
.chamonix-v2 .faq-shell { grid-template-columns: .72fr 1.28fr; }
.chamonix-v2 .faq-list summary { font-size: clamp(1.2rem,1.45vw,1.55rem); }

@media (min-width: 861px) {
  .chamonix-v2 .formula-card-featured .formula-badge {
    right: auto;
    left: 50%;
    transform: translateX(-50%);
  }
}

@media (max-width: 1050px) {
  .quick-proof-inner { grid-template-columns: repeat(4,1fr); }
  .quick-proof-intro { grid-column: 1/-1; min-height: 88px; padding: 18px 0; border-top: 0; }
  .quick-proof-item:nth-child(4) { border-right: 0; }
  .reviews-grid { grid-template-columns: 1fr 1fr; }
  .review-card-featured { grid-column: 1/-1; }
  .chamonix-v2 .approach-shell { grid-template-columns: 1fr 1fr; }
  .experience-section { grid-template-columns: .85fr 1.15fr; gap: 52px; }
}

@media (max-width: 860px) {
  .chamonix-v2 .chamonix-hero,
  .chamonix-v2 .hero-grid { min-height: 0; }
  .chamonix-v2 .hero-grid { padding-top: 132px; padding-bottom: 0; }
  .quick-proof { padding: 0 5vw; }
  .quick-proof-inner { grid-template-columns: 1fr 1fr; }
  .quick-proof-item { min-height: 96px; padding: 18px 16px; border-bottom: 1px solid var(--line); }
  .quick-proof-item:first-child,
  .quick-proof-item:nth-child(3) { padding-left: 0; }
  .quick-proof-item:nth-child(2),
  .quick-proof-item:nth-child(4) { padding-right: 0; border-right: 0; }
  .quick-proof-item dt { font-size: .68rem; }
  .quick-proof-item dd { font-size: 1.3rem; white-space: normal; }
  .quick-proof-intro { grid-column: 1/-1; }
  .chamonix-v2 .films-heading,
  .chamonix-v2 .reviews-heading,
  .chamonix-v2 .approach-shell,
  .chamonix-v2 .formulas-heading,
  .pricing-context,
  .chamonix-v2 .method-heading,
  .experience-section,
  .chamonix-v2 .faq-shell { grid-template-columns: 1fr; }
  .chamonix-v2 .reviews-intro > p { white-space: nowrap; font-size: .68rem; letter-spacing: -.03em; }
  .reviews-grid { grid-template-columns: 1fr; }
  .review-card-featured { grid-column: auto; }
  .pricing-context { align-items: start; }
  .pricing-context-details { grid-template-columns: 1fr; }
  .pricing-context-details > div { padding: 22px 0; border-right: 0; border-bottom: 1px solid rgba(23,49,44,.14); }
  .pricing-context-details > div:last-child { border-bottom: 0; }
  .formula-actions { grid-template-columns: 1fr; gap: 30px; margin-top: 52px; padding: 34px 28px; border-radius: 26px; }
  .formula-actions-buttons { width: 100%; }
  .chamonix-v2 .method-list li { grid-template-columns: 64px minmax(0,1fr); justify-content: stretch; }
  .chamonix-v2 .experience-media { height: 380px; min-height: 380px; }
  .chamonix-v2 .experience-media img { object-position: 50% 30%; }
  .experience-copy { max-width: none; }
}

@media (max-width: 560px) {
  .quick-proof-item dt { font-size: .66rem; }
  .quick-proof-item dd { font-size: 1.26rem; white-space: normal; }
  .chamonix-v2 .films-heading h2,
  .chamonix-v2 .reviews-heading h2,
  .chamonix-v2 .approach-heading h2,
  .chamonix-v2 .formulas-heading h2,
  .chamonix-v2 .valley-heading h2,
  .chamonix-v2 .faq-heading h2 { font-size: clamp(2.9rem,13vw,4.2rem); }
  .chamonix-v2 .film-body h3,
  .chamonix-v2 .formula-card > h3 { white-space: normal; }
  .chamonix-v2 .review-card { min-height: 0; }
  .pricing-context { padding: 30px 24px; border-radius: 8px 42px 8px 42px; }
  .pricing-context-heading h3 { font-size: clamp(2.2rem,11vw,3.15rem); }
  .formula-actions { padding: 30px 22px; }
  .formula-action { min-height: 56px; padding-right: 18px; padding-left: 18px; font-size: .6rem; letter-spacing: 1.25px; }
  .chamonix-v2 .experience-media { height: 340px; min-height: 340px; border-radius: 60px 6px 60px 6px; }
  .experience-points { grid-template-columns: 1fr; }
  .chamonix-v2 .method-heading h2 { font-size: clamp(2.4rem,11vw,3.4rem); }
}

@media (prefers-reduced-motion: reduce) {
  .quick-proof-cta { transition: none; }
}
