/* Prototype Lausanne V2.
   Composition, rythme et échelles typographiques alignés sur Annecy.
   Palette, images et formes propres à Lausanne conservées. */

.lausanne-v2 .section-pad { padding: clamp(90px, 10vw, 160px) 6vw; }
.lausanne-v2 .heading-line { display: block; }
.lausanne-v2 .section-kicker { text-wrap: balance; }
.lausanne-v2 .intro-copy h2,
.lausanne-v2 .local-heading h2,
.lausanne-v2 .method-heading h2,
.lausanne-v2 .experience-copy h2,
.lausanne-v2 .films-heading h2,
.lausanne-v2 .reviews-heading h2,
.lausanne-v2 .formulas-heading h2,
.lausanne-v2 .faq-heading h2 { font-size: clamp(3.6rem, 6.3vw, 7rem); letter-spacing: -.045em; }

/* Repères */
.lausanne-v2 .quick-proof { position: relative; z-index: 4; padding: 0 6vw; border-top: 1px solid rgba(24,53,50,.08); border-bottom: 1px solid rgba(24,53,50,.12); background: var(--sage-pale); }
.lausanne-v2 .quick-proof-inner { display: grid; grid-template-columns: .95fr .95fr .95fr 1.35fr 1.15fr; max-width: var(--content); margin: 0 auto; }
.lausanne-v2 .quick-proof-intro,
.lausanne-v2 .quick-proof-item { display: flex; min-height: 116px; flex-direction: column; justify-content: center; padding: 24px clamp(18px,2vw,32px); border-right: 1px solid var(--line); }
.lausanne-v2 .quick-proof-intro { padding-right: 0; border-right: 0; }
.lausanne-v2 .quick-proof-item:first-child { padding-left: 0; }
.lausanne-v2 .quick-proof-item dt { color: var(--terra); font-size: .67rem; font-weight: 700; letter-spacing: 1.6px; text-transform: uppercase; }
.lausanne-v2 .quick-proof-item dd { margin: 8px 0 0; color: var(--leman); font-family: var(--font-story); font-size: clamp(1.2rem,1.6vw,1.55rem); line-height: 1.15; }
.lausanne-v2 .quick-proof-item-drone dd span { display: block; white-space: nowrap; }
.lausanne-v2 .quick-proof-cta { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; align-self: center; padding: 13px 24px; border-radius: 999px; background: var(--terra); color: var(--white); font-size: .72rem; font-weight: 700; letter-spacing: .8px; text-decoration: none; text-transform: uppercase; transition: background-color .22s ease,transform .22s ease; }
.lausanne-v2 .quick-proof-cta:hover { background: var(--terra-dark); transform: translateY(-1px); }
.lausanne-v2 .quick-proof-cta:active { transform: translateY(1px); }

/* Films */
.lausanne-v2 .films-section { background: var(--paper-deep); }
.lausanne-v2 .films-heading { grid-template-columns: 1.15fr .85fr; gap: clamp(55px,8vw,120px); align-items: end; }
.lausanne-v2 .films-grid { gap: 26px; margin-top: clamp(48px,6vw,78px); }
.lausanne-v2 .film-card:first-child { border: 1px solid rgba(211,101,75,.25); box-shadow: 0 24px 70px rgba(24,53,50,.11); }
.lausanne-v2 .film-frame { position: relative; overflow: hidden; aspect-ratio: 16/9; }
.lausanne-v2 .film-play::before { display: none; }
.lausanne-v2 .film-play-icon { display: grid; width: 48px; height: 48px; flex: 0 0 48px; place-items: center; border: 1px solid rgba(255,255,255,.78); border-radius: 50%; background: rgba(24,53,50,.55); }
.lausanne-v2 .film-play-icon::before { width: 0; height: 0; border-top: 5px solid transparent; border-bottom: 5px solid transparent; border-left: 8px solid var(--white); content: ""; transform: translateX(1px); }
.lausanne-v2 .film-body h3 { font-size: clamp(2.35rem,3vw,3.5rem); letter-spacing: -.035em; white-space: nowrap; }

/* Avis */
.lausanne-v2 .reviews-section { padding-top: clamp(78px,8vw,120px); padding-bottom: clamp(82px,8vw,126px); background: var(--sage-pale); }
.lausanne-v2 .reviews-heading { grid-template-columns: 1.15fr .85fr; gap: clamp(55px,8vw,120px); align-items: end; }
.lausanne-v2 .reviews-intro { max-width: 660px; }
.lausanne-v2 .reviews-intro > p { font-size: 1.05rem; line-height: 1.75; }
.lausanne-v2 .reviews-grid { grid-template-columns: 1.12fr .88fr .88fr; align-items: stretch; gap: 18px; margin-top: clamp(45px,5vw,72px); }
.lausanne-v2 .review-card,
.lausanne-v2 .review-card:first-child,
.lausanne-v2 .review-card-dark { display: flex; min-height: 380px; grid-row: auto; flex-direction: column; justify-content: space-between; padding: clamp(30px,3vw,44px); }
.lausanne-v2 .review-card:first-child { background: var(--leman); color: var(--white); }
.lausanne-v2 .review-card:first-child footer { border-color: rgba(255,255,255,.16); }
.lausanne-v2 .review-card:first-child footer span { color: rgba(255,255,255,.5); }
.lausanne-v2 .review-card > p,
.lausanne-v2 .review-card:first-child > p { margin: 32px 0 42px; font-size: clamp(1.55rem,2.05vw,2.15rem); line-height: 1.27; }

/* Approche */
.lausanne-v2 .intro-section { padding-top: clamp(96px,10vw,155px); }
.lausanne-v2 .intro-grid { grid-template-columns: 1.16fr .84fr; gap: clamp(65px,9vw,140px); align-items: stretch; }
.lausanne-v2 .intro-copy { max-width: 740px; }
.lausanne-v2 .intro-copy h2 { font-size: clamp(3.45rem,4.25vw,4.85rem); }
.lausanne-v2 .intro-copy .lead { margin-top: 45px; font-size: clamp(1.6rem,2.2vw,2.25rem); line-height: 1.38; }
.lausanne-v2 .intro-copy > p:not(.section-kicker):not(.lead) { max-width: 660px; margin-top: 25px; font-size: 1.05rem; line-height: 1.8; }
.lausanne-v2 .intro-image { position: relative; min-height: 620px; overflow: hidden; border-radius: 72px 8px 72px 8px; background: var(--sage-pale); box-shadow: 0 26px 76px rgba(24,53,50,.1); }
.lausanne-v2 .intro-image::after { position: absolute; inset: 55% 0 0; background: linear-gradient(180deg,transparent,rgba(15,41,39,.66)); content: ""; }
.lausanne-v2 .intro-image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 38%; }
.lausanne-v2 .intro-image figcaption { position: absolute; right: 0; bottom: 25px; left: 0; z-index: 1; color: rgba(255,255,255,.84); font-size: .66rem; font-weight: 700; letter-spacing: 2px; text-align: center; text-transform: uppercase; }

/* Formules et prix */
.lausanne-v2 .formulas-section { padding-top: clamp(90px,9vw,145px); }
.lausanne-v2 .formulas-heading { grid-template-columns: 1.18fr .82fr; gap: 70px; align-items: end; }
.lausanne-v2 .formulas-heading > p:last-child { max-width: 670px; }
.lausanne-v2 .pricing-context { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(38px,5vw,72px); align-items: end; margin: clamp(52px,6vw,82px) 0 0; padding: clamp(38px,4vw,60px); border: 1px solid rgba(255,255,255,.13); border-radius: 8px 76px 8px 76px; background: rgba(255,255,255,.045); }
.lausanne-v2 .pricing-context-heading h3 { max-width: 620px; color: var(--white); font-size: clamp(2.7rem,3.8vw,4.35rem); letter-spacing: -.035em; text-wrap: balance; }
.lausanne-v2 .pricing-context-heading h3 em { color: var(--terra); font-weight: 400; }
.lausanne-v2 .pricing-context-summary > p { max-width: 600px; color: rgba(255,255,255,.64); }
.lausanne-v2 .pricing-context-summary > p + p { margin-top: 22px; }
.lausanne-v2 .pricing-context-summary .pricing-lead { color: var(--white); font-family: var(--font-story); font-size: clamp(1.45rem,2vw,2rem); line-height: 1.35; }
.lausanne-v2 .pricing-context-details { display: grid; grid-column: 1/-1; grid-template-columns: repeat(3,1fr); gap: 0; margin-top: 4px; border-top: 1px solid rgba(255,255,255,.14); border-bottom: 1px solid rgba(255,255,255,.14); }
.lausanne-v2 .pricing-context-details > div { padding: 25px clamp(18px,2.2vw,34px); border-right: 1px solid rgba(255,255,255,.13); }
.lausanne-v2 .pricing-context-details > div:first-child { padding-left: 0; }
.lausanne-v2 .pricing-context-details > div:last-child { padding-right: 0; border-right: 0; }
.lausanne-v2 .pricing-context-details strong { display: block; color: #ef9b88; font-size: .7rem; letter-spacing: 1.4px; text-transform: uppercase; }
.lausanne-v2 .pricing-context-details p { margin-top: 9px; color: rgba(255,255,255,.62); font-size: .98rem; line-height: 1.72; }
.lausanne-v2 .pricing-context-footer { display: flex; grid-column: 1/-1; min-height: 64px; align-items: center; justify-content: center; gap: 24px; }
.lausanne-v2 .pricing-context-links { display: flex; width: 100%; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px 16px; }
.lausanne-v2 .pricing-context-links a { display: inline-flex; align-items: center; color: #ef9b88; font-size: .9rem; font-weight: 700; text-align: center; text-underline-offset: 4px; }
.lausanne-v2 .formula-grid { gap: clamp(20px,2.5vw,34px); align-items: stretch; margin-top: clamp(54px,6vw,82px); }
.lausanne-v2 .formula-card { min-height: 0; padding: clamp(34px,3vw,48px); }
.lausanne-v2 .formula-card-featured { padding-top: clamp(64px,5vw,78px); }
.lausanne-v2 .formula-card h3 { margin-top: 0; font-size: clamp(2.35rem,3vw,3.5rem); line-height: 1; text-align: center; white-space: nowrap; }
.lausanne-v2 .formula-price { margin: 22px auto 50px; text-align: center; }

/* Lausanne et le Léman */
.lausanne-v2 .local-heading { display: grid; grid-template-columns: 1fr; max-width: 980px; }
.lausanne-v2 .local-heading h2 em { color: var(--terra); }
.lausanne-v2 .local-layout { grid-template-columns: 1.05fr .95fr; gap: clamp(48px,7vw,110px); align-items: start; margin-top: clamp(65px,8vw,110px); }
.lausanne-v2 .local-photo img { height: clamp(410px,25vw,440px); min-height: 0; }
.lausanne-v2 .local-copy p + p { margin-top: 32px; }

/* Déroulé */
.lausanne-v2 .method-heading { grid-template-columns: 1fr; gap: 0; text-align: center; }
.lausanne-v2 .method-heading .section-kicker { padding-top: 0; }
.lausanne-v2 .method-heading h2 { max-width: 1400px; margin-right: auto; margin-left: auto; font-size: clamp(3.4rem,5vw,6.5rem); text-wrap: balance; }
.lausanne-v2 .method-list { display: grid; grid-template-columns: repeat(4,1fr); margin-top: 64px; border-top: 1px solid var(--line); }
.lausanne-v2 .method-list li { display: block; min-height: 360px; padding: 35px clamp(22px,2.5vw,38px); border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.lausanne-v2 .method-list li:first-child { padding-left: 0; }
.lausanne-v2 .method-list li:last-child { padding-right: 0; border-right: 0; }
.lausanne-v2 .method-number { display: block; color: var(--terra); font-size: .65rem; font-weight: 700; letter-spacing: 2px; }
.lausanne-v2 .method-list h3 { display: flex; min-height: 2em; align-items: flex-end; margin-top: 84px; color: var(--leman); font-size: clamp(2rem,2.25vw,2.55rem); line-height: 1; text-wrap: balance; }
.lausanne-v2 .method-list p { margin-top: 24px; font-size: 1rem; line-height: 1.7; }

/* Expérience */
.lausanne-v2 .experience-v2 { display: grid; grid-template-columns: .92fr 1.08fr; gap: clamp(55px,8vw,120px); align-items: stretch; max-width: 1500px; margin: 0 auto; background: var(--sage-pale); }
.lausanne-v2 .experience-media { position: relative; min-height: 0; overflow: hidden; border-radius: 8px 82px 8px 8px; background: var(--leman); box-shadow: 0 28px 82px rgba(24,53,50,.12); }
.lausanne-v2 .experience-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 40%; }
.lausanne-v2 .experience-copy { max-width: 650px; }
.lausanne-v2 .experience-copy h2 { color: var(--leman); font-size: clamp(3.25rem,4.45vw,5.1rem); }
.lausanne-v2 .experience-copy h2 .heading-line { white-space: normal; }
.lausanne-v2 .experience-copy h2 em { font-size: .88em; }
.lausanne-v2 .experience-points { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 42px; background: transparent; }
.lausanne-v2 .experience-points > div { min-height: 132px; padding: 24px; border: 1px solid var(--line); border-radius: 8px 34px 8px 8px; background: var(--paper); }
.lausanne-v2 .experience-points strong { display: block; color: var(--terra); font-family: var(--font-story); font-size: 1.5rem; font-weight: 400; }
.lausanne-v2 .experience-points span { display: block; margin-top: 8px; color: var(--muted); font-size: .88rem; line-height: 1.55; }

/* FAQ */
.lausanne-v2 .faq-section { grid-template-columns: .72fr 1.28fr; gap: clamp(60px,9vw,140px); max-width: 1420px; }
.lausanne-v2 .faq-list summary { padding: 28px 4px; font-size: 1.45rem; }
.lausanne-v2 .button,
.lausanne-v2 .formula-action,
.lausanne-v2 .brochure-submit { font-size: max(.72rem,12px); }

@media (min-width: 861px) {
  .lausanne-v2 .quick-proof-item dd { font-size: clamp(1.12rem,1.35vw,1.4rem); }
  .lausanne-v2 .formula-price { font-size: .9rem; }
  .lausanne-v2 .formula-card li { font-size: 1rem; line-height: 1.7; }
}

@media (max-width: 1060px) {
  .lausanne-v2 .quick-proof-inner { grid-template-columns: repeat(2,1fr) 1.25fr; }
  .lausanne-v2 .quick-proof-intro { grid-column: 3; grid-row: 1/3; }
  .lausanne-v2 .quick-proof-item:nth-child(3),
  .lausanne-v2 .quick-proof-item:nth-child(4) { border-top: 1px solid var(--line); }
  .lausanne-v2 .reviews-grid { grid-template-columns: 1fr 1fr; }
  .lausanne-v2 .review-card:first-child { grid-column: 1/-1; min-height: 320px; }
  .lausanne-v2 .method-list { grid-template-columns: 1fr 1fr; }
  .lausanne-v2 .method-list li:nth-child(2) { border-right: 0; }
}

@media (max-width: 860px) {
  .lausanne-v2 .quick-proof-inner { grid-template-columns: 1fr 1fr; }
  .lausanne-v2 .quick-proof-intro { grid-column: 1/-1; grid-row: auto; min-height: 120px; padding: 24px 0; border-top: 1px solid var(--line); border-right: 0; }
  .lausanne-v2 .quick-proof-item { min-height: 116px; padding: 20px 0; }
  .lausanne-v2 .quick-proof-item:nth-child(odd) { padding-right: 18px; padding-left: 0; border-right: 1px solid var(--line); }
  .lausanne-v2 .quick-proof-item:nth-child(even) { padding-right: 0; padding-left: 18px; border-right: 0; }
  .lausanne-v2 .films-heading,
  .lausanne-v2 .reviews-heading,
  .lausanne-v2 .formulas-heading,
  .lausanne-v2 .intro-grid,
  .lausanne-v2 .local-layout,
  .lausanne-v2 .pricing-context,
  .lausanne-v2 .experience-v2,
  .lausanne-v2 .faq-section { grid-template-columns: 1fr; }
  .lausanne-v2 .reviews-grid { grid-template-columns: 1fr; }
  .lausanne-v2 .review-card:first-child { grid-column: auto; }
  .lausanne-v2 .pricing-context { gap: 34px; padding: 34px 28px; border-radius: 8px 50px 8px 50px; }
  .lausanne-v2 .pricing-context-details { grid-column: auto; grid-template-columns: 1fr; }
  .lausanne-v2 .pricing-context-details > div,
  .lausanne-v2 .pricing-context-details > div:first-child,
  .lausanne-v2 .pricing-context-details > div:last-child { padding: 20px 0; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.13); }
  .lausanne-v2 .pricing-context-details > div:last-child { border-bottom: 0; }
  .lausanne-v2 .pricing-context-footer { grid-column: auto; align-items: flex-start; flex-direction: column; }
  .lausanne-v2 .pricing-context-links { justify-content: flex-start; }
  .lausanne-v2 .local-photo img { height: min(72vw,480px); min-height: 0; }
  .lausanne-v2 .experience-v2 { gap: 52px; }
  .lausanne-v2 .experience-media { min-height: 580px; }
}

@media (max-width: 620px) {
  .lausanne-v2 .section-pad { padding-top: 70px; padding-bottom: 76px; }
  .lausanne-v2 .quick-proof-item-drone dd span { white-space: normal; }
  .lausanne-v2 .quick-proof-item dt { font-size: .68rem; letter-spacing: 1.25px; }
  .lausanne-v2 .quick-proof-item dd { font-size: 1.35rem; line-height: 1.12; }
  .lausanne-v2 .film-body h3 { font-size: clamp(2rem,9vw,2.65rem); white-space: normal; }
  .lausanne-v2 .formula-card h3 { white-space: normal; }
  .lausanne-v2 .formula-card-featured { padding-top: 72px; }
  .lausanne-v2 .films-heading,
  .lausanne-v2 .reviews-heading,
  .lausanne-v2 .formulas-heading { gap: 28px; }
  .lausanne-v2 .films-grid,
  .lausanne-v2 .reviews-grid { margin-top: 42px; }
  .lausanne-v2 .review-card,
  .lausanne-v2 .review-card:first-child,
  .lausanne-v2 .review-card-dark { min-height: 0; }
  .lausanne-v2 .review-card > p,
  .lausanne-v2 .review-card:first-child > p { font-size: 1.85rem; }
  .lausanne-v2 .local-heading h2 { font-size: clamp(2.8rem,8.8vw,3.15rem); line-height: .95; }
  .lausanne-v2 .local-copy p + p { margin-top: 28px; }
  .lausanne-v2 .method-heading h2 { font-size: clamp(2rem,8.2vw,2.6rem); letter-spacing: -.035em; line-height: 1.08; text-wrap: normal; }
  .lausanne-v2 .method-list { grid-template-columns: 1fr; }
  .lausanne-v2 .method-list li,
  .lausanne-v2 .method-list li:first-child,
  .lausanne-v2 .method-list li:last-child { min-height: 0; padding: 30px 0; border-right: 0; }
  .lausanne-v2 .method-list h3 { min-height: 0; margin-top: 30px; font-size: clamp(1.65rem,7.5vw,1.9rem); line-height: 1.05; }
  .lausanne-v2 .pricing-context { margin-top: 42px; padding: 30px 23px; }
  .lausanne-v2 .pricing-context-heading h3 { font-size: 2.75rem; }
  .lausanne-v2 .experience-media { min-height: 500px; }
  .lausanne-v2 .experience-points { grid-template-columns: 1fr; }
}
