/* Prototype Genève : structure validée sur Annecy, direction artistique Genève. */

.geneva-v2 {
  --paper: #f6f5f2;
  --paper-deep: #ecebe6;
  --sage: #e4e9e5;
  --lake-deep: #223230;
  --terra: #d3654b;
  --terra-dark: #b8523d;
  --ink: #353837;
  --muted: #6e7772;
  --line: rgba(53, 56, 55, .13);
}

/* Empêche le déplacement latéral du viewport sur les navigateurs mobiles. */
html,
body.geneva-v2 {
  max-width: 100%;
  overflow-x: hidden;
  overflow-x: clip;
}

.geneva-v2 .geneva-hero,
.geneva-v2 .geneva-hero-grid { height: clamp(880px, 74svh, 940px); min-height: clamp(880px, 74svh, 940px); }
.geneva-v2 .geneva-hero-copy { padding-top: 100px; padding-bottom: 80px; }
.geneva-v2 .geneva-hero-media { min-height: 0; }
.geneva-v2 .geneva-hero-media img { object-position: 50% 50%; }
.geneva-v2 .geneva-hero-media::after { background: linear-gradient(180deg, rgba(18, 34, 31, .01), rgba(18, 34, 31, .14)); }
.geneva-v2 .geneva-hero h1 em { color: var(--terra); }

/* Trois traits strictement identiques dans le bouton flottant mobile. */
.geneva-v2 .site-header.is-floating .menu-toggle::before {
  width: 19px;
  height: 1.5px;
  background: currentColor;
  box-shadow: 0 -6px 0 currentColor, 0 6px 0 currentColor;
}

/* Bande de réassurance compacte sous le hero. */
.quick-proof {
  position: relative;
  z-index: 4;
  padding: 0 6vw;
  border-top: 1px solid rgba(34, 50, 48, .08);
  border-bottom: 1px solid rgba(34, 50, 48, .12);
  background: rgba(246, 245, 242, .97);
}

.quick-proof-inner {
  display: grid;
  grid-template-columns: .9fr 1.35fr 1fr .82fr 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(--lake-deep); 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); }
.quick-proof-cta:active { transform: translateY(1px); }

/* Films et avis plus tôt dans le parcours, avec les surfaces de Genève. */
.geneva-v2 .films-section { background: var(--lake-deep); }
.geneva-v2 .films-heading h2 em { color: var(--terra); }
.geneva-v2 .films-grid { margin-top: clamp(48px, 6vw, 78px); }
.geneva-v2 .film-showcase-card:first-child { border-color: rgba(211, 101, 75, .48); box-shadow: 0 28px 80px rgba(9, 21, 19, .28); }
.geneva-v2 .film-card-body h3 { font-size: clamp(2.35rem, 3vw, 3.5rem); letter-spacing: -.035em; white-space: nowrap; }
.geneva-v2 .reviews-section { padding-top: clamp(82px, 8vw, 124px); padding-bottom: clamp(86px, 8vw, 130px); background: var(--sage); }
.geneva-v2 .reviews-grid { grid-template-columns: 1.12fr .88fr .88fr; gap: 18px; margin-top: clamp(48px, 5vw, 74px); }
.geneva-v2 .review-card { min-height: 390px; }
.geneva-v2 .review-card-featured { background: var(--lake-deep); color: var(--white); }

/* L'approche reprend la composition image + texte d'Annecy, avec la palette genevoise. */
.geneva-v2 .intro-grid { grid-template-columns: 1.08fr .92fr; align-items: stretch; }
.intro-title-line { white-space: nowrap; }
.geneva-v2 .intro-copy .lead strong { color: var(--ink); font-weight: 600; }
.geneva-v2 .intro-copy > .intro-detail {
  position: relative;
  padding: 4px 0 4px 28px;
  border-left: 1px solid rgba(211, 101, 75, .5);
}
.geneva-v2 .intro-copy > .intro-detail strong { color: var(--ink); font-weight: 700; }
.intro-image { position: relative; min-height: 650px; overflow: hidden; border-radius: 8px 72px 8px 72px; background: var(--lake-deep); box-shadow: 0 28px 74px rgba(34, 50, 48, .15); }
.intro-image::after { position: absolute; inset: 52% 0 0; background: linear-gradient(180deg, transparent, rgba(12, 27, 24, .72)); content: ''; }
.intro-image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 54% center; }
.intro-image figcaption { position: absolute; top: auto; right: 28px; bottom: 24px; left: 28px; z-index: 1; color: rgba(255, 255, 255, .9); font-size: .65rem; font-weight: 700; letter-spacing: 2px; text-align: center; text-shadow: 0 2px 14px rgba(11, 24, 22, .72); text-transform: uppercase; transform: none; }

/* Le bloc réponse/prix quitte le haut de page et devient un contexte des formules. */
.geneva-v2 .formulas-section { padding-top: clamp(92px, 9vw, 148px); background: var(--paper-deep); }
.formulas-shell { max-width: var(--content); margin: 0 auto; }
.geneva-v2 .formulas-heading,
.geneva-v2 .formula-grid { max-width: none; }
.geneva-v2 .formulas-heading { grid-template-columns: 1fr; }
.geneva-v2 .formulas-heading .section-kicker { grid-column: auto; margin-bottom: 25px; }
.geneva-v2 .formulas-heading h2 { max-width: 760px; }
.heading-nowrap { white-space: nowrap; }

.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(34, 50, 48, .13);
  border-radius: 10px 66px 10px 66px;
  background: var(--sage);
}

.pricing-context-heading h3 { max-width: 620px; color: var(--lake-deep); font-size: clamp(2.65rem, 3.8vw, 4.3rem); letter-spacing: -.035em; line-height: 1; text-wrap: balance; }
.pricing-context-heading h3 em { color: var(--terra); font-weight: 400; }
.pricing-context-summary > p { 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-summary .pricing-lead strong { font-weight: 600; }
.pricing-context-details { display: grid; grid-column: 1 / -1; grid-template-columns: repeat(3, 1fr); margin-top: 8px; border-top: 1px solid rgba(34, 50, 48, .14); border-bottom: 1px solid rgba(34, 50, 48, .14); }
.pricing-context-details > div { padding: 26px clamp(22px, 3vw, 36px); border-right: 1px solid rgba(34, 50, 48, .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; font-weight: 700; letter-spacing: 1.7px; text-transform: uppercase; }
.pricing-context-details p { color: var(--muted); font-size: .98rem; line-height: 1.65; }

.geneva-v2 .formula-grid { margin-top: clamp(64px, 7vw, 96px); }
.geneva-v2 .formula-card-featured { box-shadow: 0 28px 75px rgba(34, 50, 48, .18); }
.geneva-v2 .formula-card { padding-top: clamp(58px, 4vw, 68px); }
.geneva-v2 .formula-name { min-height: 1.04em; font-size: clamp(2.45rem, 3.1vw, 3.35rem); line-height: 1.04; white-space: nowrap; }
.geneva-v2 .formula-price { margin-top: 20px; }
.geneva-v2 .formula-intro { min-height: 126px; margin-top: 30px; }
.geneva-v2 .formula-card ul { margin-top: 26px; }
.geneva-v2 .formula-card li { font-size: .96rem; line-height: 1.6; }

/* Genève et le Léman : même structure éditoriale qu'Annecy, DA sombre conservée. */
.local-shell { max-width: var(--content); margin: 0 auto; }
.geneva-v2 .local-heading { max-width: none; }
.geneva-v2 .local-heading h2 em { color: var(--terra); }
.local-composition { display: grid; grid-template-columns: .94fr 1.06fr; gap: clamp(50px, 7vw, 108px); align-items: center; margin-top: clamp(62px, 8vw, 108px); }
.local-photo { position: relative; }
.local-photo::before { position: absolute; top: -25px; right: -25px; width: 46%; height: 52%; border: 1px solid rgba(211, 101, 75, .54); border-radius: 0 82px 0 0; content: ''; }
.local-photo img { position: relative; width: 100%; height: clamp(460px, 45vw, 650px); object-fit: cover; object-position: 50% 46%; border-radius: 7px 88px 7px 7px; }
.local-photo figcaption { margin-top: 14px; color: rgba(255, 255, 255, .5); font-size: .61rem; letter-spacing: .8px; text-transform: uppercase; }
.geneva-v2 .local-copy { max-width: none; }
.geneva-v2 .local-copy-item { grid-template-columns: 38px minmax(0, 1fr); padding: 25px 0; }
.local-zones { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 30px; }
.local-zones span,
.local-zones a { padding: 9px 14px; border: 1px solid rgba(255, 255, 255, .18); border-radius: 999px; color: rgba(255, 255, 255, .82); font-size: .88rem; line-height: 1.3; text-decoration: none; }
.local-zones a { border-color: rgba(211, 101, 75, .62); color: #efb3a4; transition: background .25s ease, color .25s ease; }
.local-zones a:hover { background: var(--terra); color: var(--white); }

/* Déroulé et expérience : fin de tunnel commune, habillage Genève. */
.method-shell { max-width: var(--content); margin: 0 auto; }
.geneva-v2 .method-heading { display: block; text-align: center; }
.geneva-v2 .method-heading .section-kicker { margin-bottom: 28px; }
.geneva-v2 .method-heading h2 { max-width: 1120px; margin: 0 auto; font-size: clamp(3.4rem, 5.2vw, 6.4rem); line-height: .98; text-wrap: balance; }
.geneva-v2 .method-list li { padding-top: 27px; padding-bottom: 27px; }
.geneva-v2 .method-list h3 { font-size: clamp(1.7rem, 2.2vw, 2.35rem); line-height: 1.04; }

.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(--paper); }
.experience-media { position: relative; min-height: 720px; overflow: hidden; border-radius: 100px 8px 100px 8px; }
.experience-media::after { position: absolute; inset: 0; border: 1px solid rgba(34, 50, 48, .12); border-radius: inherit; content: ''; }
.experience-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 62% center; }
.experience-copy { max-width: 650px; align-self: center; }
.experience-copy h2 { font-size: clamp(3.3rem, 5.5vw, 6.3rem); letter-spacing: -.04em; }
.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: 1px solid rgba(255, 255, 255, .08); border-radius: 8px 28px 8px 28px; background: var(--lake-deep); }
.experience-points strong { display: block; color: var(--terra); 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; }

.geneva-v2 .contact-icon { display: grid; place-items: center; font-family: var(--font-ui); font-size: 1rem; }
.geneva-v2 .social-links a { font-size: .62rem; font-weight: 700; letter-spacing: .7px; }

@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: 1px solid var(--line); }
  .quick-proof-item:nth-child(4) { border-right: 0; }
  .geneva-v2 .reviews-grid { grid-template-columns: 1fr 1fr; }
  .geneva-v2 .review-card-featured { grid-column: 1 / -1; }
  .local-composition { grid-template-columns: .9fr 1.1fr; gap: 48px; }
  .experience-section { grid-template-columns: .85fr 1.15fr; gap: 52px; }
  .geneva-v2 .formula-intro { min-height: 0; }
}

@media (max-width: 860px) {
  .geneva-v2 .geneva-hero,
  .geneva-v2 .geneva-hero-grid { height: auto; min-height: 0; }
  .geneva-v2 .geneva-hero-copy { padding: 132px 7vw 72px; }
  .geneva-v2 .geneva-hero-media { min-height: 72vw; }
  .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-intro { grid-column: 1 / -1; }

  .geneva-v2 .films-heading,
  .geneva-v2 .reviews-heading,
  .geneva-v2 .formulas-heading,
  .geneva-v2 .method-heading,
  .pricing-context,
  .local-composition,
  .experience-section { grid-template-columns: 1fr; }

  .geneva-v2 .films-grid,
  .geneva-v2 .reviews-grid,
  .geneva-v2 .formula-grid { grid-template-columns: 1fr; }
  .geneva-v2 .review-card-featured { grid-column: auto; }
  .geneva-v2 .film-card-body h3 { white-space: normal; }
  .geneva-v2 .intro-grid { grid-template-columns: 1fr; }
  .intro-image { min-height: 560px; }

  .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(34, 50, 48, .14); }
  .pricing-context-details > div:last-child { border-bottom: 0; }

  .local-photo { width: min(680px, 100%); }
  .local-photo img { height: min(105vw, 650px); }
  .experience-media { min-height: 650px; }
  .experience-copy { max-width: none; }
}

@media (max-width: 620px) {
  .geneva-v2 .geneva-hero-copy { padding: 118px 7vw 58px; }
  .geneva-v2 .geneva-hero-media { min-height: 108vw; }
  .intro-title-line { white-space: normal; }
  .geneva-v2 .local-heading h2 { font-size: clamp(2.2rem, 9.5vw, 2.65rem); }
  .geneva-v2 .local-heading .heading-nowrap { white-space: normal; }
  .geneva-v2 .formula-card li { font-size: .9rem; }
  .local-zones span,
  .local-zones a { font-size: .76rem; }
  .geneva-v2 .method-list h3 { font-size: 1.9rem; }
}

@media (max-width: 560px) {
  .geneva-v2 .geneva-hero-copy { padding: 118px 7vw 58px; }
  .geneva-v2 .geneva-hero-media { min-height: 108vw; }
  .quick-proof-item:not(:nth-child(4)) dd { font-size: 1.28rem; }
  .quick-proof-item:nth-child(4) dd { font-size: 1.08rem; }
  .quick-proof-item dt { font-size: .58rem; }
  .geneva-v2 .review-card { min-height: 0; }
  .geneva-v2 .formula-card { padding-top: 34px; }
  .geneva-v2 .formula-name { white-space: normal; }
  .intro-image { min-height: 470px; border-radius: 6px 48px 6px 48px; }
  .pricing-context { padding: 30px 24px; border-radius: 8px 42px 8px 42px; }
  .pricing-context-heading h3 { font-size: clamp(2.2rem, 11vw, 3.15rem); }
  .local-photo::before { top: -14px; right: 0; }
  .geneva-v2 .local-copy-item { grid-template-columns: 28px minmax(0, 1fr); gap: 15px; }
  .experience-media { min-height: 520px; border-radius: 60px 6px 60px 6px; }
  .experience-points { grid-template-columns: 1fr; }
  .geneva-v2 .method-heading h2 { font-size: clamp(2.05rem, 9vw, 2.8rem); }
}

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