:root {
  --ink: #27231f;
  --ink-soft: #5f584f;
  --cream: #f7f3ec;
  --cream-2: #efe8de;
  --paper: #fcfaf6;
  --gold: #a48462;
  --white: #fff;
  --line: rgba(39, 35, 31, .16);
  --shadow: 0 18px 55px rgba(32, 25, 18, .10);
  --max: 1460px;
  --serif: "Libre Caslon Display", Georgia, serif;
  --sans: "DM Sans", Arial, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--sans);
  font-weight: 300;
  line-height: 1.6;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
img { display: block; width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
button { color: inherit; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: var(--serif); font-weight: 400; line-height: 1.03; }

.wrap { width: min(92vw, var(--max)); margin-inline: auto; }
.section { padding: clamp(72px, 8vw, 122px) 0; }
.eyebrow {
  margin-bottom: 14px;
  color: var(--gold);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .27em;
  text-transform: uppercase;
}
.choice-title .no-break {
  white-space: nowrap;
}
.display-title { font-size: clamp(43px, 4.3vw, 72px); }
.lead { color: var(--ink-soft); font-size: clamp(16px, 1.35vw, 19px); }
.skip-link {
  position: fixed;
  z-index: 1000;
  top: 12px;
  left: 12px;
  transform: translateY(-150%);
  padding: 11px 16px;
  background: var(--ink);
  color: #fff;
  transition: transform .2s ease;
}
.skip-link:focus { transform: translateY(0); }

/* Header */
.site-header {
  position: fixed;
  z-index: 100;
  top: 0;
  left: 0;
  width: 100%;
  color: #fff;
  transition: background .28s ease, color .28s ease, box-shadow .28s ease;
}
.site-header.is-scrolled,
.site-header.menu-active {
  color: var(--ink);
  background: rgba(252, 250, 246, .94);
  box-shadow: 0 10px 35px rgba(37, 30, 23, .08);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
.nav {
  min-height: 86px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 34px;
}
.brand {
  flex: 0 0 auto;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: .28em;
  font-size: 18px;
  font-weight: 500;
}
.brand small {
  display: block;
  margin-top: 8px;
  opacity: .78;
  font-size: 10px;
  letter-spacing: .44em;
}
.nav-links {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: clamp(18px, 2vw, 34px);
  font-size: 13px;
}
.nav-links > a:not(.nav-cta) { position: relative; }
.nav-links > a:not(.nav-cta)::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -7px;
  width: 100%;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform .25s ease;
}
.nav-links > a:not(.nav-cta):hover::after,
.nav-links > a:not(.nav-cta):focus-visible::after {
  transform: scaleX(1);
  transform-origin: left;
}
.nav-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 21px;
  border: 1px solid currentColor;
  border-radius: 999px;
  font-size: 9px;
  font-weight: 600;
  letter-spacing: .17em;
  text-transform: uppercase;
}
.menu-btn {
  display: none;
  width: 46px;
  height: 46px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.menu-btn span {
  display: block;
  width: 25px;
  height: 1px;
  margin: 6px auto;
  background: currentColor;
  transition: transform .25s ease, opacity .25s ease;
}
.menu-btn[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.menu-btn[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.menu-btn[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Hero */
.hero {
  position: relative;
  min-height: min(900px, 100svh);
  display: grid;
  align-items: end;
  overflow: hidden;
  color: #fff;
  background: #6d5d4c;
}
.hero-media,
.hero-media picture,
.hero-media img { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-media img { object-fit: cover; object-position: 56% center; }
.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(19, 17, 14, .69) 0%, rgba(19, 17, 14, .42) 38%, rgba(19, 17, 14, .07) 74%),
    linear-gradient(0deg, rgba(19, 17, 14, .28), transparent 48%);
}
.hero-content {
  position: relative;
  z-index: 2;
  max-width: 760px;
  padding: 190px 0 68px;
}
.hero h1 {
  max-width: 780px;
  margin-bottom: 20px;
  font-size: clamp(60px, 6.7vw, 105px);
  letter-spacing: -.025em;
}
.hero-services {
  margin-bottom: 18px;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .25em;
  line-height: 1.8;
  text-transform: uppercase;
}
.hero-copy {
  max-width: 560px;
  margin-bottom: 30px;
  color: rgba(255, 255, 255, .94);
  font-family: var(--serif);
  font-size: clamp(18px, 1.7vw, 24px);
  line-height: 1.38;
}
.btn-row { display: flex; flex-wrap: wrap; gap: 13px; }
.btn {
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  gap: 11px;
  padding: 0 24px;
  border: 1px solid currentColor;
  font-size: 9px;
  font-weight: 600;
  letter-spacing: .17em;
  text-transform: uppercase;
  transition: transform .22s ease, background .22s ease, color .22s ease;
}
.btn:hover, .btn:focus-visible { transform: translateY(-2px); }
.btn-solid { border-color: #fff; background: #fff; color: var(--ink); }
.btn-ghost { border-color: rgba(255, 255, 255, .68); background: rgba(27, 24, 20, .13); color: #fff; }
.hero-location {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-top: 21px;
  color: rgba(255, 255, 255, .82);
  font-size: 12px;
}
.hero-location svg { width: 15px; height: 15px; flex: 0 0 auto; }

/* Intro services */
.services { background: var(--paper); }
.section-intro {
  display: grid;
  grid-template-columns: 1.18fr .72fr auto;
  align-items: end;
  gap: clamp(32px, 5vw, 80px);
  margin-bottom: 34px;
}
.section-intro h2 { margin: 0; font-size: clamp(43px, 4vw, 66px); }
.section-intro p { margin-bottom: 4px; color: var(--ink-soft); font-size: 15px; }
.text-link {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding-bottom: 5px;
  border-bottom: 1px solid currentColor;
  font-size: 9px;
  font-weight: 600;
  letter-spacing: .17em;
  text-transform: uppercase;
  white-space: nowrap;
}
.service-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(13px, 1.5vw, 24px); }
.service-card { display: block; text-align: center; }
.service-card figure { margin: 0; aspect-ratio: 4 / 4.65; overflow: hidden; background: #ddd5c9; }
.service-card img { height: 100%; object-fit: cover; transition: transform .7s cubic-bezier(.2, .65, .2, 1); }
.service-card:hover img { transform: scale(1.035); }
.service-card h3 {
  margin: 16px 0 2px;
  font-family: var(--sans);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.service-card p { margin-bottom: 0; color: var(--ink-soft); font-size: 12px; }
.service-card p::after { content: ""; display: block; width: 45px; height: 1px; margin: 13px auto 0; background: #9d9488; }

/* Pro section */
.pro-section { padding: 0; background: var(--cream-2); }
.pro-grid {
  display: grid;
  grid-template-columns: 1.45fr 1fr .68fr;
  min-height: 700px;
}
.pro-main, .pro-side figure { margin: 0; overflow: hidden; }
.pro-main img, .pro-side img { height: 100%; object-fit: cover; }
.pro-copy { display: flex; align-items: center; padding: clamp(45px, 6vw, 92px); background: #f2ece3; }
.pro-copy h2 { margin-bottom: 24px; font-size: clamp(43px, 4.25vw, 69px); }
.pro-copy p { margin-bottom: 29px; color: var(--ink-soft); font-size: 16px; }
.btn-dark { border-color: var(--ink); background: var(--ink); color: #fff; }
.pro-side { display: grid; grid-template-rows: 1fr 1fr; gap: 4px; }

/* About */
.about-section { background: var(--paper); }
.about-grid {
  display: grid;
  grid-template-columns: .9fr 1.28fr .55fr;
  align-items: stretch;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.about-photo { margin: 0; min-height: 600px; overflow: hidden; }
.about-photo img { height: 100%; object-fit: cover; filter: grayscale(100%); }
.about-copy { display: flex; align-items: center; padding: clamp(48px, 6vw, 95px); }
.about-copy h2 { margin-bottom: 23px; font-size: clamp(42px, 4vw, 66px); }
.about-copy p { max-width: 760px; color: var(--ink-soft); font-size: 16px; }
.about-facts {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 30px;
  padding: 50px 38px;
  border-left: 1px solid var(--line);
  background: #fbf8f2;
}
.about-meta {
  display: grid;
  gap: 11px;
  margin: 0 0 34px;
  padding: 22px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  color: var(--ink-soft);
  font-size: 12px;
  letter-spacing: .02em;
}
.about-meta span {
  position: relative;
  padding-left: 18px;
}
.about-meta span::before {
  content: "—";
  position: absolute;
  left: 0;
  color: var(--gold);
}
.fact { display: grid; grid-template-columns: 26px 1fr; gap: 12px; align-items: start; color: var(--ink-soft); font-size: 13px; }
.fact svg { width: 20px; height: 20px; color: var(--gold); }

/* Editorial strip */
.editorial-strip { display: grid; grid-template-columns: repeat(4, 1fr); background: #d8cabc; }
.editorial-strip figure { margin: 0; aspect-ratio: 1.45 / 1; overflow: hidden; }
.editorial-strip img { height: 100%; object-fit: cover; transition: transform .7s ease; }
.editorial-strip figure:hover img { transform: scale(1.025); }

/* Reviews */
.reviews { background: #f8f4ed; text-align: center; }
.reviews h2 { margin-bottom: 40px; font-size: clamp(42px, 4vw, 66px); }
.review-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; text-align: left; }
.review-card { min-height: 205px; padding: 32px 35px; background: rgba(255, 255, 255, .45); border: 1px solid rgba(39, 35, 31, .05); }
.review-card blockquote { margin: 0 0 20px; font-family: var(--serif); font-size: 20px; font-style: italic; line-height: 1.45; }
.review-card cite { font-style: normal; font-size: 9px; font-weight: 600; letter-spacing: .17em; text-transform: uppercase; }
.reviews-more { margin-top: 28px; }

/* FAQ */


body.page-seances .faq {
  background: var(--cream);
}

.faq { background: var(--paper); }
.faq-grid { display: grid; grid-template-columns: .78fr 1.22fr; gap: clamp(45px, 8vw, 120px); align-items: start; }
.faq h2 { font-size: clamp(43px, 4vw, 67px); }
.faq-list { border-top: 1px solid var(--line); }
details { border-bottom: 1px solid var(--line); }
summary {
  position: relative;
  padding: 22px 42px 22px 0;
  cursor: pointer;
  list-style: none;
  font-size: 16px;
  font-weight: 500;
}
summary::-webkit-details-marker { display: none; }
summary::after { content: "+"; position: absolute; right: 2px; top: 18px; font-size: 23px; font-weight: 300; transition: transform .2s ease; }
details[open] summary::after { transform: rotate(45deg); }
details p { max-width: 780px; padding: 0 45px 24px 0; color: var(--ink-soft); }

/* Split CTA */
.split-cta { display: grid; grid-template-columns: 1fr 1fr; }
.cta-panel { position: relative; min-height: 470px; display: flex; align-items: flex-end; overflow: hidden; color: #fff; }
.cta-panel > img { position: absolute; inset: 0; height: 100%; object-fit: cover; }
.cta-panel::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(20, 17, 14, .68), rgba(20, 17, 14, .13)); }
.cta-panel-content { position: relative; z-index: 2; max-width: 470px; padding: clamp(40px, 6vw, 78px); }
.cta-panel h2 { margin-bottom: 17px; font-size: clamp(40px, 4vw, 64px); }
.cta-panel p { margin-bottom: 25px; color: rgba(255, 255, 255, .86); }

/* Footer */
.site-footer { padding: 58px 0 26px; background: #211e1a; color: #ece5dc; }
.footer-grid { display: grid; grid-template-columns: 1.05fr .75fr .75fr 1fr; gap: 42px; }
.footer-brand { font-size: 14px; font-weight: 500; letter-spacing: .24em; text-transform: uppercase; }
.footer-brand small { display: block; margin-top: 8px; opacity: .7; font-size: 8px; letter-spacing: .39em; }
.site-footer h3 { margin-bottom: 17px; font-family: var(--sans); font-size: 10px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; }
.footer-links { display: grid; gap: 9px; font-size: 13px; color: rgba(236, 229, 220, .78); }
.footer-bottom { display: flex; justify-content: space-between; gap: 25px; margin-top: 50px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.13); color: rgba(236,229,220,.57); font-size: 11px; }
.legal-links { display: flex; flex-wrap: wrap; gap: 18px; }

:focus-visible { outline: 2px solid var(--gold); outline-offset: 4px; }

@media (max-width: 1120px) {
  .nav-links { gap: 17px; }
  .service-grid { grid-template-columns: repeat(2, 1fr); row-gap: 38px; }
  .pro-grid { grid-template-columns: 1.05fr .95fr; }
  .pro-side { display: none; }
  .about-grid { grid-template-columns: .8fr 1.2fr; }
  .about-facts { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-left: 0; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 920px) {
  .menu-btn { display: block; }
  .nav { min-height: 76px; }

  .nav-links {
    position: fixed;
    z-index: 999;
    top: 76px;
    right: 0;
    bottom: auto;
    left: 0;

    width: 100%;
    height: calc(100vh - 76px);
    height: calc(100dvh - 76px);

    display: none;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;

    gap: 22px;
    padding: 42px 6vw max(70px, env(safe-area-inset-bottom));

    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;

    background: var(--paper);
    color: var(--ink);
    font-size: 18px;
  }

  .nav-links.open { display: flex; }

  .nav-links > a {
    flex: 0 0 auto;
  }

  .nav-cta { margin-top: 10px; }

  .hero { min-height: 760px; }
  .hero-media img { object-position: 64% center; }
  .section-intro { grid-template-columns: 1fr; gap: 16px; }
  .section-intro .text-link { justify-self: start; }
  .pro-grid { grid-template-columns: 1fr; }
  .pro-main { min-height: 560px; }
  .about-grid { grid-template-columns: 1fr; }
  .about-photo { min-height: 520px; }
  .about-facts { grid-template-columns: repeat(2, 1fr); }
  .review-grid { grid-template-columns: 1fr; }
  .faq-grid { grid-template-columns: 1fr; }
  .split-cta { grid-template-columns: 1fr; }
}

@media (max-width: 650px) {
  .wrap { width: min(89vw, var(--max)); }
  .section { padding: 68px 0; }
  .hero { min-height: 780px; }
  .hero-content { padding: 145px 0 54px; }
  .hero h1 { font-size: clamp(50px, 15vw, 67px); }
  .hero-services { max-width: 330px; font-size: 10px; }
  .btn-row { display: grid; grid-template-columns: 1fr; }
  .btn { width: 100%; }
  .hero-location { align-items: flex-start; font-size: 11px; }
  .service-grid { grid-template-columns: 1fr; }
  .service-card figure { aspect-ratio: 4 / 4.2; }
  .pro-main { min-height: 420px; }
  .pro-copy { padding: 50px 26px 58px; }
  .about-photo { min-height: 410px; }
  .about-copy { padding: 50px 3px; }
  .about-facts { grid-template-columns: 1fr; padding: 36px 22px; }
  .editorial-strip { grid-template-columns: 1fr 1fr; }
  .editorial-strip figure { aspect-ratio: 1.1 / 1; }
  .review-card { padding: 27px 25px; }
  .cta-panel { min-height: 410px; }
  .cta-panel-content { padding: 43px 28px; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-bottom { flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* =========================================================
   PAGE SEANCES PARTICULIERS
   Styles specifiques a shooting-particulier.html.
   Le reste (header, boutons, footer, variables, responsive commun)
   reste partage avec la homepage dans ce meme fichier.
   ========================================================= */

.eyebrow-light { color: rgba(255, 255, 255, .78); }
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.page-seances .nav-links > a.active::after {
  transform: scaleX(1);
  transform-origin: left;
}
.page-pro .nav-links > a.active::after {
  transform: scaleX(1);
  transform-origin: left;
}

/* Hero seances : meme langage que la homepage, cadrage adapte */
.page-seances .hero {
  min-height: min(820px, 96svh);
}
.page-seances .hero-media img {
  object-position: center 48%;
}
.page-seances .hero::after {
  background:
    linear-gradient(90deg, rgba(18,16,14,.72) 0%, rgba(18,16,14,.48) 36%, rgba(18,16,14,.08) 72%),
    linear-gradient(0deg, rgba(18,16,14,.28), transparent 50%);
}
.page-seances .hero-content {
  max-width: 800px;
  padding: 190px 0 56px;
}
.page-seances .hero h1 {
  max-width: 850px;
  font-size: clamp(58px, 6.5vw, 102px);
}
.page-seances .hero-copy {
  max-width: 550px;
  margin-bottom: 28px;
}
.page-seances .hero-tags {
  margin: 24px 0 0;
  color: rgba(255,255,255,.72);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .22em;
  line-height: 1.7;
  text-transform: uppercase;
}

/* Approche */
.page-seances .approach { background: var(--paper); }
.page-seances .approach-grid {
  display: grid;
  grid-template-columns: .82fr 1.18fr;
  gap: clamp(45px, 7vw, 110px);
  align-items: center;
}
.page-seances .approach-copy { max-width: 520px; }
.page-seances .approach-copy h2 {
  margin-bottom: 22px;
  font-size: clamp(48px, 5vw, 78px);
}
.page-seances .approach-copy p {
  max-width: 470px;
  color: var(--ink-soft);
  font-size: 16px;
}
.page-seances .approach-photo {
  margin: 0;
  aspect-ratio: 1.55 / 1;
  overflow: hidden;
  background: #ddd5ca;
}
.page-seances .approach-photo img {
  height: 100%;
  object-fit: cover;
}

/* Quatre univers principaux */
.page-seances .univers {
  padding-top: 0;
  background: var(--paper);
}
.page-seances .univers-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(18px, 2vw, 34px);
}
.page-seances .univers-card figure {
  margin: 0 0 20px;

  overflow: hidden;
  background: #ddd5c9;
}
.page-seances .univers-card img {
  height: 100%;
  object-fit: cover;
  transition: transform .6s cubic-bezier(.2,.65,.2,1);
}
.page-seances .univers-card h2 {
  margin-bottom: 10px;
  font-size: clamp(28px, 2vw, 36px);
}
.page-seances .univers-card p {
  margin-bottom: 18px;
  color: var(--ink-soft);
  font-size: 14px;
}

/* Histoires complementaires */
.page-seances .more-stories { background: var(--cream); }
.page-seances .stories-layout {
  display: grid;
  grid-template-columns: .72fr 1.55fr;
  gap: clamp(50px, 7vw, 110px);
  align-items: center;
}
.page-seances .stories-copy h2 {
  margin-bottom: 22px;
  font-size: clamp(50px, 5vw, 78px);
}
.page-seances .stories-copy p {
  max-width: 430px;
  margin-bottom: 28px;
  color: var(--ink-soft);
}
.page-seances .stories-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.page-seances .story-card {
  position: relative;
  overflow: hidden;
  background: #d6cec3;
}
.page-seances .story-card::after {
  content: "";
  position: absolute;
  inset: 40% 0 0;
  background: linear-gradient(0deg, rgba(16,14,12,.66), transparent);
}
.page-seances .story-card img {
  height: 100%;
  object-fit: cover;
  transition: transform .6s ease;
}
.page-seances .story-card:hover img { transform: scale(1.04); }
.page-seances .story-card span {
  position: absolute;
  z-index: 2;
  left: 18px;
  right: 18px;
  bottom: 14px;
  color: #fff;
  font-family: var(--serif);
  font-size: clamp(17px, 1.25vw, 22px);
  line-height: 1.12;
}

/* Lieux et lumiere */
.page-seances .places { background: var(--paper); }
.page-seances .places-grid {
  display: grid;
  grid-template-columns: .72fr 1.28fr;
  gap: clamp(48px, 6vw, 90px);
  align-items: center;
}
.page-seances .places-copy h2 {
  margin-bottom: 22px;
  font-size: clamp(48px, 4.8vw, 74px);
}
.page-seances .places-copy p {
  max-width: 520px;
  color: var(--ink-soft);
}
.page-seances .places-note {
  margin-top: 26px;
  padding-top: 18px;
  border-top: 1px solid var(--line);
  font-size: 12px !important;
  letter-spacing: .06em;
}
.page-seances .places-gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}
.page-seances .places-gallery figure {
  position: relative;
  margin: 0;
  aspect-ratio: .78 / 1;
  overflow: hidden;
  background: #ddd;
}
.page-seances .places-gallery img {
  height: 100%;
  object-fit: cover;
}
.page-seances .places-gallery figure::after {
  content: "";
  position: absolute;
  inset: 58% 0 0;
  background: linear-gradient(0deg, rgba(17,15,13,.54), transparent);
}
.page-seances .places-gallery figcaption {
  position: absolute;
  z-index: 2;
  left: 16px;
  right: 16px;
  bottom: 14px;
  color: #fff;
  font-size: 8px;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
}

/* Deroulement */
.page-seances .process { background: var(--cream); }
.page-seances .process-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 32px;
  border-top: 1px solid var(--line);
}
.page-seances .process-grid article {
  position: relative;
  padding: 36px clamp(20px,3vw,54px) 6px 0;
}
.page-seances .process-grid article + article {
  padding-left: clamp(24px,3vw,54px);
  border-left: 1px solid var(--line);
}
.page-seances .process-number {
  display: block;
  margin-bottom: 6px;
  color: #9b8b7a;
  font-family: var(--serif);
  font-size: 28px;
}
.page-seances .process-grid h3 {
  margin-bottom: 10px;
  font-size: 30px;
}
.page-seances .process-grid p {
  max-width: 330px;
  margin-bottom: 0;
  color: var(--ink-soft);
  font-size: 14px;
}

/* CTA final seances */
.page-seances .final-cta {
  position: relative;
  min-height: 560px;
  display: grid;
  align-items: center;
  overflow: hidden;
  color: #fff;
  background: #53483e;
}
.page-seances .final-cta-media,
.page-seances .final-cta-media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.page-seances .final-cta-media img {
  object-fit: cover;
  object-position: center 58%;
}
.page-seances .final-cta::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(17,15,13,.68), rgba(17,15,13,.20) 65%, rgba(17,15,13,.08));
}
.page-seances .final-cta-content {
  position: relative;
  z-index: 2;
  max-width: 730px;
  padding: 85px 0;
}
.page-seances .final-cta h2 {
  margin-bottom: 20px;
  font-size: clamp(52px, 5.2vw, 80px);
}
.page-seances .final-cta p {
  max-width: 560px;
  margin-bottom: 28px;
  color: rgba(255,255,255,.88);
  font-size: 16px;
}

/* Responsive page seances */
@media (max-width: 1120px) {
  .page-seances .approach-grid,
  .page-seances .stories-layout,
  .page-seances .places-grid {
    grid-template-columns: 1fr;
  }
  .page-seances .approach-photo { max-width: 900px; }
  .page-seances .univers-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 48px 24px;
  }
  .page-seances .univers-card p { min-height: auto; }
  .page-seances .stories-copy { max-width: 650px; }
}

@media (max-width: 920px) {
  .page-seances .hero { min-height: 760px; }
  .page-seances .hero-media img { object-position: 58% center; }
  .page-seances .hero-content { padding: 150px 0 54px; }
  .page-seances .process-grid {
    grid-template-columns: 1fr;
    margin-top: 20px;
    border-top: 0;
  }
  .page-seances .process-grid article,
  .page-seances .process-grid article + article {
    padding: 28px 0;
    border-top: 1px solid var(--line);
    border-left: 0;
  }
}

@media (max-width: 650px) {
  .page-seances .hero { min-height: 760px; }
  .page-seances .hero h1 { font-size: clamp(50px, 14vw, 72px); }
  .page-seances .hero-tags { font-size: 8px; }
  .page-seances .approach-grid { gap: 36px; }
  .page-seances .approach-photo { aspect-ratio: 1 / 1.08; }
  .page-seances .univers-grid {
    grid-template-columns: 1fr;
    gap: 46px;
  }

  .page-seances .stories-grid { grid-template-columns: 1fr 1fr; }

  .page-seances .places-gallery {
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }
  .page-seances .places-gallery figure:last-child {
    grid-column: 1 / -1;

  }
  .page-seances .final-cta { min-height: 620px; }
}

@media (max-width: 480px) {
  .page-seances .stories-grid {
    grid-template-columns: 1fr 1fr;
  }


  .page-seances .places-gallery { grid-template-columns: 1fr; }
  .page-seances .places-gallery figure,
  .page-seances .places-gallery figure:last-child {
    grid-column: auto;

  }
}



.page-mariage .nav-links .active::after {
  transform: scaleX(1);
  transform-origin: left;
}

/* Hero mariage */
.page-mariage .hero {
  min-height: min(900px, 100svh);
  background: #725a45;
}
.page-mariage .hero-media img {
  object-position: 58% center;
}
.page-mariage .hero::after {
  background:
    linear-gradient(90deg, rgba(19,17,14,.70) 0%, rgba(19,17,14,.40) 40%, rgba(19,17,14,.08) 75%),
    linear-gradient(0deg, rgba(19,17,14,.30), transparent 50%);
}
.page-mariage .hero-content {
  max-width: 800px;
}
.page-mariage .hero h1 {
  max-width: 820px;
}
.page-mariage .wedding-location {
  margin: 20px 0 0;
  color: rgba(255,255,255,.82);
  font-size: 12px;
  letter-spacing: .02em;
}

/* Intro */
.page-mariage .wedding-intro {
  background: var(--paper);
}
.page-mariage .wedding-intro-grid {
  display: grid;
  grid-template-columns: .9fr 1.25fr;
  align-items: center;
  gap: clamp(46px, 7vw, 110px);
}
.page-mariage .wedding-intro-copy {
  max-width: 610px;
}
.page-mariage .wedding-intro-copy h2 {
  margin-bottom: 24px;
  font-size: clamp(45px, 4.4vw, 72px);
}
.page-mariage .wedding-intro-copy p {
  max-width: 570px;
  margin-bottom: 0;
  color: var(--ink-soft);
  font-size: 16px;
}
.page-mariage .wedding-intro-photo {
  margin: 0;
  aspect-ratio: 1.55 / 1;
  overflow: hidden;
  background: #d8d0c6;
}
.page-mariage .wedding-intro-photo img {
  height: 100%;
  object-fit: cover;
  filter: grayscale(100%);
}

/* Les 5 temps de la journee */
.page-mariage .wedding-story {
  background: var(--cream);
}
.page-mariage .wedding-story-head {
  max-width: 840px;
  margin-bottom: 42px;
}
.page-mariage .wedding-story-head h2 {
  margin-bottom: 0;
  font-size: clamp(44px, 4.2vw, 70px);
}
.page-mariage .wedding-chapters {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 16px;
}
.page-mariage .wedding-chapter figure {
  margin: 0 0 19px;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: #d7cec2;
}
.page-mariage .wedding-chapter img {
  height: 100%;
  object-fit: cover;
}
.page-mariage .chapter-number {
  display: block;
  margin-bottom: 5px;
  color: var(--gold);
  font-size: 9px;
  font-weight: 600;
  letter-spacing: .18em;
}
.page-mariage .wedding-chapter h3 {
  margin-bottom: 8px;
  font-size: 26px;
}
.page-mariage .wedding-chapter p {
  margin-bottom: 0;
  color: var(--ink-soft);
  font-size: 13px;
  line-height: 1.55;
}

/* Philosophie */
.page-mariage .wedding-philosophy {
  padding: 0;
  background: #eee5da;
}
.page-mariage .wedding-philosophy-grid {
  display: grid;
  grid-template-columns: 1.28fr .72fr;
  min-height: 620px;
}
.page-mariage .wedding-philosophy-photo {
  margin: 0;
  overflow: hidden;
}
.page-mariage .wedding-philosophy-photo img {
  height: 100%;
  object-fit: cover;
}
.page-mariage .wedding-philosophy-copy {
  display: flex;
  align-items: center;
  padding: clamp(48px, 6vw, 95px);
}
.page-mariage .wedding-philosophy-copy > div {
  max-width: 560px;
}
.page-mariage .wedding-philosophy-copy h2 {
  margin-bottom: 24px;
  font-size: clamp(43px, 4vw, 67px);
}
.page-mariage .wedding-philosophy-copy p {
  margin-bottom: 0;
  color: var(--ink-soft);
  font-size: 16px;
}

/* Details et ambiances */
.page-mariage .wedding-details {
  background: var(--paper);
}
.page-mariage .wedding-details-grid {
  display: grid;
  grid-template-columns: .72fr 1.28fr;
  gap: clamp(45px, 7vw, 100px);
  align-items: center;
}
.page-mariage .wedding-details-copy h2 {
  margin-bottom: 22px;
  font-size: clamp(43px, 4vw, 67px);
}
.page-mariage .wedding-details-copy p {
  max-width: 500px;
  color: var(--ink-soft);
}
.page-mariage .wedding-details-mosaic {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px;
}
.page-mariage .wedding-details-mosaic figure {
  margin: 0;

  overflow: hidden;
  background: #d7cec2;
}
.page-mariage .wedding-details-mosaic img {
  height: 100%;
  object-fit: cover;
}

/* Formules */
.page-mariage .wedding-packages {
  background: var(--cream);
}
.page-mariage .packages-layout {
  display: grid;
  grid-template-columns: .7fr 1.3fr;
  gap: clamp(45px, 7vw, 100px);
  align-items: start;
}
.page-mariage .packages-intro h2 {
  margin-bottom: 20px;
  font-size: clamp(43px, 4vw, 67px);
}
.page-mariage .packages-intro p {
  max-width: 500px;
  color: var(--ink-soft);
}
.page-mariage .package-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.page-mariage .package-card {
  display: flex;
  min-height: 370px;
  flex-direction: column;
  padding: 36px 30px 30px;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.45);
}
.page-mariage .package-card h3 {
  margin-bottom: 12px;
  font-size: 30px;
}
.page-mariage .package-card > p {
  margin-bottom: 22px;
  color: var(--ink-soft);
  font-size: 14px;
}
.page-mariage .package-card ul {
  display: grid;
  gap: 9px;
  margin: 0 0 30px;
  padding: 0;
  color: var(--ink-soft);
  font-size: 12px;
  list-style: none;
}
.page-mariage .package-card li {
  position: relative;
  padding-left: 17px;
}
.page-mariage .package-card li::before {
  content: "—";
  position: absolute;
  left: 0;
  color: var(--gold);
}
.page-mariage .package-card .text-link {
  margin-top: auto;
  align-self: flex-start;
}
.page-mariage .package-card.featured {
  border-color: rgba(164,132,98,.6);
  background: #fffdf9;
}

/* Temoignage */
.page-mariage .wedding-testimonial {
  padding: 0;
  background: #f7f1e8;
}
.page-mariage .testimonial-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 470px;
}
.page-mariage .testimonial-photo {
  margin: 0;
  overflow: hidden;
}
.page-mariage .testimonial-photo img {
  height: 100%;
  object-fit: cover;
}
.page-mariage .testimonial-copy {
  display: flex;
  align-items: center;
  padding: clamp(45px, 6vw, 90px);
}
.page-mariage .testimonial-copy blockquote {
  margin: 0 0 24px;
  font-family: var(--serif);
  font-size: clamp(25px, 2.2vw, 36px);
  font-style: italic;
  line-height: 1.35;
}
.page-mariage .testimonial-copy cite {
  color: var(--ink-soft);
  font-size: 10px;
  font-style: normal;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.page-mariage .testimonial-placeholder {
  color: #8c8175;
  font-size: 11px;
}

/* FAQ mariage */
.page-mariage .faq {
  background: var(--paper);
}

/* CTA final */
.page-mariage .wedding-final-cta {
  position: relative;
  min-height: 610px;
  display: flex;
  align-items: center;
  overflow: hidden;
  color: #fff;
  background: #6b5948;
}
.page-mariage .wedding-final-cta > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.page-mariage .wedding-final-cta::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(18,16,13,.70) 0%, rgba(18,16,13,.44) 40%, rgba(18,16,13,.08) 78%);
}
.page-mariage .wedding-final-content {
  position: relative;
  z-index: 2;
  max-width: 650px;
  padding: 95px 0;
}
.page-mariage .wedding-final-content h2 {
  margin-bottom: 20px;
  font-size: clamp(52px, 5vw, 82px);
}
.page-mariage .wedding-final-content p {
  max-width: 560px;
  margin-bottom: 28px;
  color: rgba(255,255,255,.88);
  font-size: 16px;
}

/* Responsive mariage */
@media (max-width: 1120px) {
  .page-mariage .wedding-chapters {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    row-gap: 42px;
  }
  .page-mariage .wedding-details-grid,
  .page-mariage .packages-layout {
    grid-template-columns: 1fr;
  }
  .page-mariage .wedding-details-copy,
  .page-mariage .packages-intro {
    max-width: 700px;
  }
}

@media (max-width: 920px) {
  .page-mariage .hero-media img { object-position: 64% center; }
  .page-mariage .wedding-intro-grid,
  .page-mariage .wedding-philosophy-grid,
  .page-mariage .testimonial-grid {
    grid-template-columns: 1fr;
  }
  .page-mariage .wedding-intro-photo {
    aspect-ratio: 1.45 / 1;
  }
  .page-mariage .wedding-philosophy-photo,
  .page-mariage .testimonial-photo {
    min-height: 520px;
  }
  .page-mariage .wedding-details-mosaic {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .page-mariage .package-grid {
    grid-template-columns: 1fr;
  }
  .page-mariage .package-card {
    min-height: auto;
  }
}

@media (max-width: 650px) {
  .page-mariage .hero {
    min-height: 780px;
  }
  .page-mariage .hero h1 {
    font-size: clamp(48px, 14vw, 68px);
  }
  .page-mariage .wedding-intro-grid {
    gap: 34px;
  }
  .page-mariage .wedding-intro-photo {
    aspect-ratio: 1 / 1.05;
  }
  .page-mariage .wedding-chapters {
    grid-template-columns: 1fr 1fr;
    gap: 34px 10px;
  }
  .page-mariage .wedding-chapter figure {
    aspect-ratio: 4 / 5;
  }
  .page-mariage .wedding-chapter h3 {
    font-size: 22px;
  }
  .page-mariage .wedding-chapter p {
    font-size: 11px;
  }
  .page-mariage .wedding-philosophy-photo,
  .page-mariage .testimonial-photo {
    min-height: 390px;
  }
  .page-mariage .wedding-philosophy-copy,
  .page-mariage .testimonial-copy {
    padding: 52px 26px;
  }
  .page-mariage .wedding-details-mosaic {
    gap: 4px;
  }
  .page-mariage .wedding-details-mosaic figure {

  }
  .page-mariage .wedding-final-cta {
    min-height: 650px;
  }
  .page-mariage .wedding-final-content {
    padding: 80px 0;
  }
}

@media (max-width: 420px) {
  .page-mariage .wedding-chapters {
    grid-template-columns: 1fr;
  }
  .page-mariage .wedding-chapter {
    display: grid;
    grid-template-columns: .85fr 1.15fr;
    gap: 16px;
    align-items: start;
  }
  .page-mariage .wedding-chapter figure {
    margin: 0;
    aspect-ratio: 4 / 5;
  }
}
/* =========================================================
   MARIAGE — FORMULES PREMIUM
   ========================================================= */

.page-mariage .wedding-packages {
  background: var(--cream);
}

.page-mariage .packages-layout {
  display: grid;
  grid-template-columns: minmax(280px, .8fr) minmax(0, 2fr);
  gap: clamp(55px, 7vw, 120px);
  align-items: start;
}

.page-mariage .packages-intro {
  position: static;
  top: 140px;
}

.page-mariage .packages-intro h2 {
  max-width: 520px;
  margin: 18px 0 24px;
}

.page-mariage .packages-intro p {
  max-width: 440px;
  line-height: 1.8;
  color: var(--muted);
  margin-bottom: 30px;
}


/* GRILLE */

.page-mariage .package-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  align-items: stretch;
}


/* CARTE */

.page-mariage .package-card {
  position: relative;
  min-height: 500px;
  padding: 34px 30px 30px;
  display: flex;
  flex-direction: column;

  background: rgba(255,255,255,.34);
  border: 1px solid rgba(38, 34, 29, .13);

  transition:
    transform .3s ease,
    background .3s ease,
    border-color .3s ease;
}

.page-mariage .package-card:hover {
  transform: translateY(-5px);
  background: rgba(255,255,255,.62);
  border-color: rgba(38, 34, 29, .26);
}


/* PETIT HAUT DE CARTE */

.page-mariage .package-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 15px;
  margin-bottom: 50px;
}

.page-mariage .package-number {
  font-family: var(--sans);
  font-size: 10px;
  letter-spacing: .22em;
  color: var(--accent);
}

.page-mariage .package-type {
  font-family: var(--sans);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: .18em;
  color: var(--muted);
}


/* TITRES */

.page-mariage .package-card h3 {
  margin: 0 0 18px;
  font-family: var(--serif);
  font-size: clamp(31px, 2.7vw, 44px);
  font-weight: 400;
  line-height: 1;
  letter-spacing: -.02em;
}

.page-mariage .package-description {
  margin: 0;
  min-height: 90px;
  line-height: 1.7;
  color: var(--muted);
}


/* SEPARATEUR */

.page-mariage .package-divider {
  width: 36px;
  height: 1px;
  margin: 30px 0;
  background: var(--accent);
}


/* LISTE */

.page-mariage .package-card ul {
  margin: 0 0 38px;
  padding: 0;
  list-style: none;
}

.page-mariage .package-card li {
  position: relative;
  padding: 10px 0 10px 17px;
  border-bottom: 1px solid rgba(38,34,29,.08);

  font-size: 13px;
  line-height: 1.5;
}

.page-mariage .package-card li::before {
  content: "—";
  position: absolute;
  left: 0;
  color: var(--accent);
}


/* LIENS */

.page-mariage .package-link {
  margin-top: auto;
  width: fit-content;

  color: var(--ink);
  text-decoration: none;
  text-transform: uppercase;
  font-size: 9px;
  letter-spacing: .18em;

  padding-bottom: 6px;
  border-bottom: 1px solid currentColor;
}


/* CRISTAL — FORMULE MISE EN AVANT */

.page-mariage .package-card.featured {
  background: #ded3c4;
  border-color: #ded3c4;
  transform: translateY(-18px);
}

.page-mariage .package-card.featured:hover {
  transform: translateY(-23px);
  background: #d9cdbd;
}

.page-mariage .package-badge {
  position: absolute;
  top: 0;
  left: 30px;
  transform: translateY(-50%);

  padding: 8px 13px;

  background: var(--ink);
  color: var(--cream);

  font-family: var(--sans);
  font-size: 8px;
  text-transform: uppercase;
  letter-spacing: .2em;
}

.page-mariage .package-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  margin-top: auto;
  padding: 16px 19px;
  width: fit-content;

  background: var(--ink);
  color: var(--cream);

  text-decoration: none;
  text-transform: uppercase;
  font-size: 8px;
  letter-spacing: .2em;

  transition: opacity .25s ease;
}

.page-mariage .package-button:hover {
  opacity: .82;
}


/* TABLETTE */

@media (max-width: 1050px) {

  .page-mariage .packages-layout {
    grid-template-columns: 1fr;
  }

  .page-mariage .packages-intro {
    position: static;
    max-width: 650px;
  }

  .page-mariage .package-grid {
    grid-template-columns: repeat(3, 1fr);
  }

}


/* MOBILE */

@media (max-width: 760px) {

  .page-mariage .package-grid {
    grid-template-columns: 1fr;
    gap: 22px;
  }

  .page-mariage .package-card,
  .page-mariage .package-card.featured {
    min-height: 0;
    transform: none;
  }

  .page-mariage .package-card.featured:hover {
    transform: none;
  }

  .page-mariage .package-top {
    margin-bottom: 35px;
  }

  .page-mariage .package-description {
    min-height: auto;
  }

}


/* =========================================================
   PAGE PROFESSIONNELS
   ========================================================= */


/* ---------------------------------------------------------
   HEADER PRO
   --------------------------------------------------------- */

.page-pro .site-header {
  color: var(--ink);
  background: rgba(252, 250, 246, .96);
  box-shadow: 0 1px 0 rgba(39, 35, 31, .07);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}


/* INSTAGRAM MENU */

.nav-instagram {
  width: 28px;
  height: 28px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  margin-left: -6px;

  opacity: .68;

  transition:
    opacity .2s ease,
    transform .2s ease;
}

.nav-instagram:hover {
  opacity: 1;
  transform: translateY(-1px);
}

.nav-instagram svg {
  width: 17px;
  height: 17px;

  fill: none;
  stroke: currentColor;
  stroke-width: 1.45;
}

.nav-instagram .insta-dot {
  fill: currentColor;
  stroke: none;
}


/* ---------------------------------------------------------
   HERO
   --------------------------------------------------------- */

.page-pro .pro-hero {
  min-height: 720px;

  padding-top: 86px;

  display: grid;
  grid-template-columns: 47% 53%;

  background: var(--cream);
}


.page-pro .pro-hero-copy {
  padding:
    clamp(90px, 9vw, 150px)
    clamp(50px, 7vw, 130px);

  display: flex;
  flex-direction: column;
  justify-content: center;
}


.page-pro .pro-hero-copy h1 {
  max-width: 700px;

  margin:
    22px 0
    28px;

  font-family: var(--serif);

  font-size:
    clamp(58px, 5.6vw, 94px);

  font-weight: 400;

  line-height: .98;

  letter-spacing: -.035em;
}


.page-pro .pro-hero-copy > p {
  max-width: 610px;

  margin: 0 0 34px;

  color: var(--ink-soft);

  font-size: 16px;

  line-height: 1.75;
}


.page-pro .pro-hero-image {
  margin: 0;

  min-height: 720px;

  overflow: hidden;
}


.page-pro .pro-hero-image img {
  width: 100%;
  height: 100%;

  display: block;

  object-fit: cover;
}


.page-pro .pro-location {
  margin-top: 28px;

  font-size: 11px;

  letter-spacing: .04em;

  color: var(--ink-soft);
}


.page-pro .btn-ghost-dark {
  color: var(--ink);

  border: 1px solid rgba(39,35,31,.35);
}


/* ---------------------------------------------------------
   TITRE PRESTATIONS
   --------------------------------------------------------- */

.page-pro .pro-services {
  background: var(--paper);
}


.page-pro .pro-section-heading {
  margin-bottom:
    clamp(50px, 7vw, 90px);

  display: grid;

  grid-template-columns:
    minmax(0, 1.25fr)
    minmax(280px, .65fr);

  gap: 70px;

  align-items: end;
}


.page-pro .pro-section-heading h2 {
  max-width: 760px;

  margin:
    16px 0
    0;

  font-family: var(--serif);

  font-size:
    clamp(48px, 5vw, 78px);

  font-weight: 400;

  line-height: 1.02;

  letter-spacing: -.03em;
}


.page-pro .pro-section-heading > p {
  max-width: 480px;

  margin: 0;

  color: var(--ink-soft);

  line-height: 1.8;
}


/* ---------------------------------------------------------
   GRILLE SERVICES
   --------------------------------------------------------- */

.page-pro .pro-services-grid {
  display: grid;

  grid-template-columns:
    repeat(4, minmax(0, 1fr));

  gap:
    45px
    14px;
}


.page-pro .pro-service-card {
  min-width: 0;
}


.page-pro .pro-service-card a {
  display: block;

  color: inherit;

  text-decoration: none;
}


.page-pro .pro-service-card figure {
  margin: 0 0 22px;

  aspect-ratio: 1 / .78;

  overflow: hidden;

  background: var(--cream-2);
}


.page-pro .pro-service-card img {
  width: 100%;
  height: 100%;

  display: block;

  object-fit: cover;

  transition:
    transform .55s
    cubic-bezier(.2,.7,.2,1);
}


.page-pro .pro-service-card:hover img {
  transform: scale(1.025);
}


.page-pro .pro-card-copy {
  position: relative;

  padding:
    0
    5px
    0;
}


.page-pro .pro-number {
  display: block;

  margin-bottom: 13px;

  color: var(--gold);

  font-size: 9px;

  letter-spacing: .2em;
}


.page-pro .pro-card-copy h3 {
  margin:
    0 0
    9px;

  font-family: var(--serif);

  font-size:
    clamp(24px, 2vw, 31px);

  font-weight: 400;

  line-height: 1.1;
}


.page-pro .pro-card-copy p {
  min-height: 48px;

  margin:
    0 0
    19px;

  color: var(--ink-soft);

  font-size: 13px;

  line-height: 1.6;
}


.page-pro .pro-card-link {
  display: inline-block;

  padding-bottom: 4px;

  border-bottom:
    1px solid currentColor;

  font-size: 8px;

  letter-spacing: .19em;

  text-transform: uppercase;
}


/* ---------------------------------------------------------
   APPROCHE
   --------------------------------------------------------- */

.page-pro .pro-approach {
  background: var(--cream);
}


.page-pro .pro-approach-grid {
  display: grid;

  grid-template-columns:
    1.3fr
    1fr
    1fr
    1fr;

  gap: 0;
}


.page-pro .pro-approach-intro {
  padding-right: 70px;
}


.page-pro .pro-approach-intro h2 {
  margin:
    17px 0
    23px;

  font-family: var(--serif);

  font-size:
    clamp(44px, 4vw, 68px);

  font-weight: 400;

  line-height: 1.04;

  letter-spacing: -.03em;
}


.page-pro .pro-approach-intro p {
  max-width: 470px;

  margin: 0;

  color: var(--ink-soft);

  line-height: 1.75;
}


.page-pro .pro-approach-item {
  padding:
    10px
    38px
    10px
    42px;

  border-left:
    1px solid var(--line);
}


.page-pro .pro-approach-item > span {
  display: block;

  margin-bottom: 65px;

  color: var(--gold);

  font-size: 9px;

  letter-spacing: .2em;
}


.page-pro .pro-approach-item h3 {
  margin:
    0 0
    14px;

  font-family: var(--serif);

  font-size: 27px;

  font-weight: 400;
}


.page-pro .pro-approach-item p {
  margin: 0;

  color: var(--ink-soft);

  font-size: 13px;

  line-height: 1.7;
}


/* ---------------------------------------------------------
   CTA FINAL
   --------------------------------------------------------- */

.page-pro .pro-final-cta {
  position: relative;

  min-height: 680px;

  display: flex;
  align-items: center;

  overflow: hidden;

  color: #fff;

  background: #25211d;
}


.page-pro .pro-final-cta::after {
  content: "";

  position: absolute;
  inset: 0;

  background:
    linear-gradient(
      90deg,
      rgba(20,17,14,.72) 0%,
      rgba(20,17,14,.48) 44%,
      rgba(20,17,14,.10) 100%
    );
}


.page-pro .pro-final-cta > img {
  position: absolute;
  inset: 0;

  width: 100%;
  height: 100%;

  object-fit: cover;
}


.page-pro .pro-final-content {
  position: relative;
  z-index: 2;

  width: 100%;
}


.page-pro .pro-final-content h2 {
  max-width: 730px;

  margin:
    18px 0
    22px;

  font-family: var(--serif);

  font-size:
    clamp(55px, 6vw, 95px);

  font-weight: 400;

  line-height: .98;

  letter-spacing: -.03em;
}


.page-pro .pro-final-content p {
  max-width: 520px;

  margin:
    0 0
    31px;

  color:
    rgba(255,255,255,.82);

  line-height: 1.75;
}


/* ---------------------------------------------------------
   TABLETTE
   --------------------------------------------------------- */

@media (max-width: 1100px) {

  .page-pro .pro-hero {
    grid-template-columns: 1fr 1fr;
  }


  .page-pro .pro-hero-copy {
    padding:
      120px
      45px
      70px;
  }


  .page-pro .pro-services-grid {
    grid-template-columns:
      repeat(2, 1fr);
  }


  .page-pro .pro-approach-grid {
    grid-template-columns:
      1fr 1fr;
  }


  .page-pro .pro-approach-intro {
    grid-column:
      1 / -1;

    margin-bottom:
      55px;

    padding-right: 0;
  }


  .page-pro .pro-approach-item {
    border-left: 0;

    border-top:
      1px solid var(--line);

    padding:
      38px
      35px
      25px
      0;
  }


  .page-pro .pro-approach-item > span {
    margin-bottom:
      35px;
  }

}


/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 760px) {

  .page-pro .pro-hero {
    display: flex;
    flex-direction: column;

    padding-top: 76px;
  }


  .page-pro .pro-hero-copy {
    padding:
      65px
      24px
      55px;
  }


  .page-pro .pro-hero-copy h1 {
    font-size:
      clamp(48px, 14vw, 66px);
  }


  .page-pro .pro-hero-image {
    min-height: 490px;
  }


  .page-pro .pro-section-heading {
    grid-template-columns: 1fr;

    gap: 25px;
  }


  .page-pro .pro-services-grid {
    grid-template-columns: 1fr;

    gap: 45px;
  }


  .page-pro .pro-service-card figure {
    aspect-ratio:
      1 / .82;
  }


  .page-pro .pro-card-copy p {
    min-height: 0;
  }


  .page-pro .pro-approach-grid {
    grid-template-columns: 1fr;
  }


  .page-pro .pro-approach-item {
    padding:
      35px
      0;

    border-top:
      1px solid var(--line);
  }


  .page-pro .pro-final-cta {
    min-height: 650px;
  }


  .nav-instagram {
    width: auto;
    height: auto;

    margin-left: 0;
  }


  .nav-instagram svg {
    width: 19px;
    height: 19px;
  }

	
}

/* =========================================================
   NAV ICONS — ACCUEIL + INSTAGRAM
   ========================================================= */

.nav-icon {
  width: 28px;
  height: 28px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  flex: 0 0 auto;

  opacity: .68;

  transition:
    opacity .2s ease,
    transform .2s ease;
}

.nav-icon:hover,
.nav-icon:focus-visible {
  opacity: 1;
  transform: translateY(-1px);
}

.nav-icon svg {
  width: 17px;
  height: 17px;

  display: block;

  fill: none;
  stroke: currentColor;
  stroke-width: 1.45;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.nav-instagram .insta-dot {
  fill: currentColor;
  stroke: none;
}

.nav-links > a.nav-icon::after {
  display: none;
}


/* =========================================================
   PAGE A PROPOS — NOUVELLE VERSION
   ========================================================= */

.page-about .site-header {
  color: var(--ink);
  background: rgba(252, 250, 246, .96);
  box-shadow: 0 1px 0 rgba(39, 35, 31, .07);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

.page-about .nav-links > a.active::after {
  transform: scaleX(1);
  transform-origin: left;
}


/* HERO — photo volontairement plus petite */

.page-about .about-hero {
  padding: 86px 0 0;
  background: var(--cream);
}

.page-about .about-hero-inner {
  min-height: 690px;

  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(300px, .55fr);
  gap: clamp(55px, 8vw, 125px);

  align-items: center;

  padding:
    clamp(75px, 7vw, 110px)
    0
    clamp(70px, 7vw, 105px);
}

.page-about .about-hero-copy {
  max-width: 760px;
}

.page-about .about-hero-copy h1 {
  max-width: 760px;

  margin: 17px 0 28px;

  font-size: clamp(58px, 6vw, 94px);
  line-height: .98;
  letter-spacing: -.035em;
}

.page-about .about-hero-lead {
  max-width: 690px;

  margin-bottom: 30px;

  color: var(--ink-soft);

  font-size: 16px;
  line-height: 1.85;
}

.page-about .about-hero-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 25px;

  margin: 0 0 31px;
  padding: 20px 0;

  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);

  color: var(--ink-soft);

  font-size: 9px;
  font-weight: 500;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.page-about .about-hero-photo {
  position: relative;

  width: min(100%, 390px);

  justify-self: end;

  margin: 0;

  aspect-ratio: .82 / 1;

  overflow: hidden;

  background: #ded7cd;
}

.page-about .about-hero-photo img {
  width: 100%;
  height: 100%;

  object-fit: cover;

  filter: grayscale(100%);
}

.page-about .about-hero-photo figcaption {
  position: absolute;

  right: 0;
  bottom: 0;
  left: 0;

  padding: 18px 21px;

  background: rgba(247,243,236,.92);

  color: var(--ink-soft);

  font-size: 9px;
  line-height: 1.5;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.page-about .about-hero-photo figcaption strong {
  display: block;

  margin-bottom: 3px;

  color: var(--ink);

  font-family: var(--serif);
  font-size: 18px;
  font-weight: 400;

  letter-spacing: 0;
  text-transform: none;
}


/* MON REGARD */

.page-about .about-story {
  background: var(--paper);
}

.page-about .about-story-grid {
  display: grid;
  grid-template-columns: 1.05fr .95fr;

  gap: clamp(55px, 8vw, 125px);

  align-items: center;
}

.page-about .about-story-images {
  position: relative;

  padding:
    0 76px
    66px 0;
}

.page-about .about-story-main {
  margin: 0;

  aspect-ratio: 1.3 / 1;

  overflow: hidden;

  background: #ddd5ca;
}

.page-about .about-story-detail {
  position: absolute;

  right: 0;
  bottom: 0;

  width: 40%;

  margin: 0;

  aspect-ratio: .88 / 1;

  overflow: hidden;

  border: 9px solid var(--paper);

  background: #ddd5ca;
}

.page-about .about-story-main img,
.page-about .about-story-detail img {
  width: 100%;
  height: 100%;

  object-fit: cover;
}

.page-about .about-story-copy {
  max-width: 610px;
}

.page-about .about-story-copy h2 {
  margin: 16px 0 27px;

  font-size: clamp(48px, 4.8vw, 76px);
  letter-spacing: -.025em;
}

.page-about .about-story-copy p {
  max-width: 560px;

  margin-bottom: 19px;

  color: var(--ink-soft);

  font-size: 15px;
  line-height: 1.82;
}


/* PUBLICATIONS & DISTINCTIONS */

.page-about .about-recognition {
  background: #25211d;
  color: #f7f3ec;
}

.page-about .about-recognition .eyebrow-light {
  color: #c3a583;
}

.page-about .about-recognition-head {
  display: grid;
  grid-template-columns: 1.15fr .65fr;

  gap: clamp(45px, 7vw, 100px);

  align-items: end;

  margin-bottom: 58px;
}

.page-about .about-recognition-head h2 {
  max-width: 850px;

  margin: 16px 0 0;

  font-size: clamp(50px, 5.2vw, 82px);
  line-height: 1;
  letter-spacing: -.03em;
}

.page-about .about-recognition-head > p {
  max-width: 500px;

  margin: 0;

  color: rgba(247,243,236,.68);

  font-size: 14px;
  line-height: 1.8;
}

.page-about .about-recognition-summary {
  display: grid;
  grid-template-columns: repeat(3, 1fr);

  margin-bottom: 44px;

  border-top: 1px solid rgba(255,255,255,.16);
  border-bottom: 1px solid rgba(255,255,255,.16);
}

.page-about .about-recognition-summary > div {
  display: flex;
  align-items: baseline;
  gap: 14px;

  padding: 24px 28px;
}

.page-about .about-recognition-summary > div + div {
  border-left: 1px solid rgba(255,255,255,.16);
}

.page-about .about-recognition-summary strong {
  font-family: var(--serif);
  font-size: clamp(42px, 4vw, 64px);
  font-weight: 400;
  line-height: 1;
}

.page-about .about-recognition-summary span {
  color: rgba(247,243,236,.66);

  font-size: 9px;
  font-weight: 600;
  letter-spacing: .17em;
  text-transform: uppercase;
}

.page-about .about-awards-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));

  gap: 12px;
}

.page-about .about-award-card {
  min-height: 315px;

  display: flex;
  flex-direction: column;

  padding: 30px 27px;

  border: 1px solid rgba(255,255,255,.15);

  background: rgba(255,255,255,.025);
}

.page-about .about-award-card.featured {
  border-color: rgba(195,165,131,.72);
  background: rgba(195,165,131,.08);
}

.page-about .about-award-top {
  display: flex;
  justify-content: space-between;
  gap: 15px;

  margin-bottom: 62px;

  font-size: 8px;
  font-weight: 600;
  letter-spacing: .17em;
  text-transform: uppercase;
}

.page-about .about-award-year {
  color: #c3a583;
}

.page-about .about-award-type {
  color: rgba(247,243,236,.56);
  text-align: right;
}

.page-about .about-award-card h3 {
  margin: 0 0 18px;

  color: #f7f3ec;

  font-size: clamp(25px, 2vw, 33px);
  line-height: 1.08;
}

.page-about .about-award-card p {
  margin: auto 0 0;

  color: rgba(247,243,236,.68);

  font-size: 13px;
  line-height: 1.7;
}

.page-about .about-award-card p strong,
.page-about .about-award-card p em {
  color: #f7f3ec;
}


/* APPROCHE + 3 UNIVERS */

.page-about .about-practice {
  background: var(--cream);
}

.page-about .about-practice-head {
  display: grid;
  grid-template-columns: 1.1fr .7fr;

  gap: clamp(40px, 7vw, 95px);

  align-items: end;

  margin-bottom: clamp(50px, 6vw, 80px);
}

.page-about .about-practice-head h2 {
  max-width: 790px;

  margin: 16px 0 0;

  font-size: clamp(48px, 5vw, 78px);
  letter-spacing: -.03em;
}

.page-about .about-practice-head > p {
  max-width: 510px;

  margin: 0;

  color: var(--ink-soft);

  line-height: 1.8;
}

.page-about .about-universe-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);

  gap: 18px;

  margin-bottom: clamp(65px, 7vw, 95px);
}

.page-about .about-universe-card {
  display: block;
}

.page-about .about-universe-card figure {
  margin: 0;

  aspect-ratio: 4 / 4.25;

  overflow: hidden;

  background: #ddd5ca;
}

.page-about .about-universe-card img {
  width: 100%;
  height: 100%;

  object-fit: cover;

  transition:
    transform .6s
    cubic-bezier(.2,.65,.2,1);
}

.page-about .about-universe-card:hover img {
  transform: scale(1.03);
}

.page-about .about-universe-card > div {
  padding: 22px 4px 0;
}

.page-about .about-universe-card span {
  color: var(--gold);

  font-size: 8px;
  letter-spacing: .2em;
}

.page-about .about-universe-card h3 {
  margin: 9px 0 8px;

  font-size: clamp(30px, 3vw, 44px);
}

.page-about .about-universe-card p {
  min-height: 44px;

  margin-bottom: 18px;

  color: var(--ink-soft);

  font-size: 13px;
}

.page-about .about-universe-card strong {
  display: inline-block;

  padding-bottom: 5px;

  border-bottom: 1px solid currentColor;

  font-size: 8px;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
}


/* Méthode intégrée au même bloc */

.page-about .about-method-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);

  border-top: 1px solid var(--line);
}

.page-about .about-method-grid article {
  min-height: 250px;

  padding:
    35px
    clamp(22px, 3.5vw, 52px)
    10px;
}

.page-about .about-method-grid article + article {
  border-left: 1px solid var(--line);
}

.page-about .about-method-grid span {
  display: block;

  margin-bottom: 44px;

  color: var(--gold);

  font-size: 9px;
  letter-spacing: .2em;
}

.page-about .about-method-grid h3 {
  margin-bottom: 14px;

  font-size: clamp(27px, 2.2vw, 35px);
}

.page-about .about-method-grid p {
  max-width: 350px;

  margin: 0;

  color: var(--ink-soft);

  font-size: 14px;
  line-height: 1.72;
}


/* PHRASE SIGNATURE */

.page-about .about-signature {
  padding: clamp(88px, 10vw, 150px) 0;

  background: var(--paper);

  color: var(--ink);
}

.page-about .about-signature-inner {
  display: flex;
  justify-content: center;
}

.page-about .about-signature p {
  max-width: 1080px;

  margin: 0;

  text-align: center;

  font-family: var(--serif);

  font-size: clamp(36px, 4.7vw, 68px);
  line-height: 1.18;
  letter-spacing: -.025em;
}


/* CTA FINAL */

.page-about .about-final-cta {
  position: relative;

  min-height: 640px;

  display: flex;
  align-items: center;

  overflow: hidden;

  color: #fff;

  background: #3c332b;
}

.page-about .about-final-cta > img {
  position: absolute;
  inset: 0;

  width: 100%;
  height: 100%;

  object-fit: cover;
}

.page-about .about-final-cta::after {
  content: "";

  position: absolute;
  inset: 0;

  background:
    linear-gradient(
      90deg,
      rgba(18,16,14,.75) 0%,
      rgba(18,16,14,.50) 42%,
      rgba(18,16,14,.09) 78%
    );
}

.page-about .about-final-content {
  position: relative;
  z-index: 2;

  width: 100%;

  padding: 95px 0;
}

.page-about .about-final-content h2 {
  max-width: 900px;

  margin: 17px 0 22px;

  font-size: clamp(51px, 5.7vw, 88px);
  line-height: .99;
  letter-spacing: -.035em;
}

.page-about .about-final-content p {
  max-width: 570px;

  margin-bottom: 30px;

  color: rgba(255,255,255,.86);

  font-size: 16px;
  line-height: 1.7;
}


/* =========================================================
   TABLETTE — A PROPOS
   ========================================================= */

@media (max-width: 1050px) {

  .page-about .about-hero-inner {
    grid-template-columns: 1fr .55fr;
    gap: 45px;
  }

  .page-about .about-hero-photo {
    width: min(100%, 340px);
  }

  .page-about .about-story-grid,
  .page-about .about-recognition-head,
  .page-about .about-practice-head {
    grid-template-columns: 1fr;
  }

  .page-about .about-story-images {
    max-width: 850px;
  }

  .page-about .about-awards-grid {
    grid-template-columns: 1fr 1fr;
  }

}


/* =========================================================
   MOBILE — A PROPOS
   ========================================================= */

@media (max-width: 760px) {

  .page-about .about-hero {
    padding-top: 76px;
  }

  .page-about .about-hero-inner {
    min-height: 0;

    grid-template-columns: 1fr;

    gap: 42px;

    padding: 60px 0 62px;
  }

  .page-about .about-hero-copy h1 {
    font-size: clamp(49px, 14vw, 68px);
  }

  .page-about .about-hero-photo {
    width: min(78vw, 300px);

    justify-self: start;
  }

  .page-about .about-hero-meta {
    display: grid;
  }

  .page-about .about-story-images {
    padding:
      0 42px
      52px 0;
  }

  .page-about .about-story-detail {
    width: 45%;
    border-width: 6px;
  }

  .page-about .about-recognition-summary {
    grid-template-columns: 1fr;
  }

  .page-about .about-recognition-summary > div + div {
    border-left: 0;
    border-top: 1px solid rgba(255,255,255,.16);
  }

  .page-about .about-awards-grid {
    grid-template-columns: 1fr;
  }

  .page-about .about-award-card {
    min-height: 260px;
  }

  .page-about .about-award-top {
    margin-bottom: 42px;
  }

  .page-about .about-universe-grid {
    grid-template-columns: 1fr;
    gap: 45px;
  }

  .page-about .about-universe-card figure {
    aspect-ratio: 4 / 4.05;
  }

  .page-about .about-universe-card p {
    min-height: 0;
  }

  .page-about .about-method-grid {
    grid-template-columns: 1fr;
    border-top: 0;
  }

  .page-about .about-method-grid article,
  .page-about .about-method-grid article + article {
    min-height: 0;

    padding: 30px 0;

    border-top: 1px solid var(--line);
    border-left: 0;
  }

  .page-about .about-method-grid span {
    margin-bottom: 23px;
  }

  .page-about .about-final-cta {
    min-height: 640px;
  }

}


/* =========================================================
   MENU MOBILE — CORRECTIF PLEINE HAUTEUR
   Ce bloc est volontairement en dernier pour prendre le dessus
   sur les styles de page spécifiques.
   ========================================================= */

@media (max-width: 920px) {

  .site-header.menu-active,
  .page-pro .site-header.menu-active,
  .page-about .site-header.menu-active {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  .nav-links {
    position: fixed !important;

    top: 76px !important;
    right: 0 !important;
    bottom: auto !important;
    left: 0 !important;

    width: 100vw !important;

    height: calc(100vh - 76px) !important;
    height: calc(100dvh - 76px) !important;

    max-height: calc(100dvh - 76px) !important;

    overflow-y: auto !important;
    overscroll-behavior: contain;

    padding-bottom: max(70px, env(safe-area-inset-bottom)) !important;

    background: var(--paper) !important;
  }

  .nav-icon {
    width: 30px;
    height: 30px;

    margin-left: 0;
  }

  .nav-icon svg {
    width: 19px;
    height: 19px;
  }

}

/* =========================================================
   PAGE TARIFS
   ========================================================= */

.page-tarifs .site-header {
  color: var(--ink);
  background: rgba(252, 250, 246, .96);
  box-shadow: 0 1px 0 rgba(39, 35, 31, .07);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

.page-tarifs .nav-links > a.active::after {
  transform: scaleX(1);
  transform-origin: left;
}


/* ---------------------------------------------------------
   HERO
   --------------------------------------------------------- */

.page-tarifs .tarifs-hero {
  padding-top: 86px;
  background: var(--cream);
}

.page-tarifs .tarifs-hero-grid {
  min-height: 700px;

  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: clamp(55px, 7vw, 110px);

  align-items: center;

  padding:
    clamp(70px, 7vw, 110px)
    0;
}

.page-tarifs .tarifs-hero-copy {
  max-width: 720px;
}

.page-tarifs .tarifs-hero-copy h1 {
  margin: 17px 0 28px;

  font-size: clamp(58px, 5.8vw, 92px);
  line-height: .98;
  letter-spacing: -.035em;
}

.page-tarifs .tarifs-hero-copy > p {
  max-width: 610px;

  margin-bottom: 34px;

  color: var(--ink-soft);

  font-size: 16px;
  line-height: 1.8;
}

.page-tarifs .tarifs-anchor-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.page-tarifs .tarifs-anchor-nav a {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-height: 42px;

  padding: 0 17px;

  border: 1px solid var(--line);

  background: rgba(255,255,255,.32);

  font-size: 8px;
  font-weight: 600;
  letter-spacing: .17em;
  text-transform: uppercase;

  transition:
    background .2s ease,
    border-color .2s ease;
}

.page-tarifs .tarifs-anchor-nav a:hover {
  background: #fff;
  border-color: rgba(39,35,31,.3);
}

.page-tarifs .tarifs-hero-mosaic {
  min-height: 530px;

  display: grid;
  grid-template-columns: .82fr 1.05fr .72fr;
  gap: 7px;

  align-items: stretch;
}

.page-tarifs .tarifs-hero-photo {
  margin: 0;

  overflow: hidden;

  background: #d7cec2;
}

.page-tarifs .tarifs-hero-photo-a {
  margin-top: 85px;
  margin-bottom: 25px;
}

.page-tarifs .tarifs-hero-photo-b {
  margin-bottom: 75px;
}

.page-tarifs .tarifs-hero-photo-c {
  margin-top: 140px;
}

.page-tarifs .tarifs-hero-photo img {
  width: 100%;
  height: 100%;

  object-fit: cover;
}


/* ---------------------------------------------------------
   CARTE CADEAU
   --------------------------------------------------------- */

.page-tarifs .tarifs-gift {
  padding:
    clamp(65px, 7vw, 95px)
    0;

  background: #26221e;
  color: #f8f4ed;
}

.page-tarifs .tarifs-gift-grid {
  display: grid;
  grid-template-columns: .85fr 1.15fr;
  gap: clamp(45px, 8vw, 120px);
}

.page-tarifs .tarifs-gift h2 {
  max-width: 600px;

  margin: 15px 0 0;

  font-size: clamp(46px, 4.8vw, 72px);
  line-height: 1.02;
}

.page-tarifs .tarifs-gift .eyebrow {
  color: #c2a17e;
}

.page-tarifs .tarifs-gift-copy {
  max-width: 680px;
}

.page-tarifs .tarifs-gift-copy p {
  color: rgba(248,244,237,.72);
  line-height: 1.8;
}

.page-tarifs .tarifs-gift .text-link {
  margin-top: 10px;
  color: #f8f4ed;
}


/* ---------------------------------------------------------
   SECTIONS COMMUNES
   --------------------------------------------------------- */

.page-tarifs .tarifs-section {
  scroll-margin-top: 100px;
}

.page-tarifs .tarifs-section-head {
  display: grid;

  gap: clamp(45px, 7vw, 105px);

  align-items: end;

  margin-bottom:
    clamp(48px, 6vw, 78px);
}

.page-tarifs .tarifs-section-head h2 {
  max-width: 800px;

  margin: 15px 0 0;

  font-size: clamp(48px, 5vw, 78px);
  line-height: 1.01;
  letter-spacing: -.03em;
}

.page-tarifs .tarifs-section-head > p,
.page-tarifs .tarifs-section-head > div > p {
  max-width: 520px;

  margin: 0 0 20px;

  color: var(--ink-soft);

  line-height: 1.8;
}

.page-tarifs .tarifs-note {
  margin-top: 42px;
  padding-top: 20px;

  border-top: 1px solid var(--line);

  color: var(--ink-soft);

  font-size: 11px;
  line-height: 1.7;
  text-align: center;
}


/* ---------------------------------------------------------
   SEANCES
   --------------------------------------------------------- */

.page-tarifs .tarifs-seances {
  background: var(--paper);
}

.page-tarifs .tarifs-lifestyle-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;

  align-items: stretch;
}

.page-tarifs .tarif-card {
  position: relative;

  display: flex;
  flex-direction: column;

  min-width: 0;

  border: 1px solid var(--line);

  background: #fffdf9;

  transition:
    transform .28s ease,
    border-color .28s ease,
    box-shadow .28s ease;
}

.page-tarifs .tarif-card:hover {
  transform: translateY(-4px);

  border-color: rgba(39,35,31,.28);

  box-shadow: var(--shadow);
}

.page-tarifs .tarif-card.featured {
  border-color: rgba(164,132,98,.65);
  background: #f1e8dc;
}

.page-tarifs .tarif-badge {
  position: absolute;
  z-index: 2;

  top: 0;
  left: 26px;

  transform: translateY(-50%);

  padding: 8px 12px;

  background: var(--ink);
  color: #fff;

  font-size: 8px;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.page-tarifs .tarif-card figure {
  margin: 0;




  background: #ddd5c9;
}

.page-tarifs .tarif-card figure img {
  width: 100%;
  height: 100%;

  object-fit: cover;
}

.page-tarifs .tarif-card-body {
  display: flex;
  flex-direction: column;

  height: 100%;

  padding:
    29px
    clamp(24px, 2.8vw, 38px)
    34px;
}

.page-tarifs .tarif-kicker {
  display: block;

  margin-bottom: 10px;

  color: var(--gold);

  font-size: 9px;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.page-tarifs .tarif-card h3 {
  margin-bottom: 18px;

  font-size: clamp(30px, 2.6vw, 40px);
}

.page-tarifs .tarif-price {
  margin-bottom: 28px;

  padding-bottom: 21px;

  border-bottom: 1px solid var(--line);

  font-family: var(--serif);
  font-size: clamp(37px, 3vw, 49px);
  line-height: 1;
}

.page-tarifs .tarif-card ul,
.page-tarifs .wedding-price-card ul {
  display: grid;
  gap: 9px;

  margin: 0;
  padding: 0;

  color: var(--ink-soft);

  font-size: 13px;
  line-height: 1.6;

  list-style: none;
}

.page-tarifs .tarif-card li,
.page-tarifs .wedding-price-card li {
  position: relative;

  padding-left: 16px;
}

.page-tarifs .tarif-card li::before,
.page-tarifs .wedding-price-card li::before {
  content: "—";

  position: absolute;
  left: 0;

  color: var(--gold);
}


/* ---------------------------------------------------------
   MARIAGES
   --------------------------------------------------------- */

.page-tarifs .tarifs-wedding {
  background: var(--cream);
}

.page-tarifs .tarifs-wedding-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 13px;

  align-items: start;
}

.page-tarifs .wedding-price-card {
  position: relative;

  min-width: 0;

  border: 1px solid var(--line);

  background: rgba(255,255,255,.45);
}

.page-tarifs .wedding-price-card.featured {
  border-color: rgba(164,132,98,.65);
  background: #fffdf9;
}

.page-tarifs .wedding-price-card figure {
  margin: 0;



  background: #d7cec2;
}

.page-tarifs .wedding-price-card figure img {
  width: 100%;
  height: 100%;

  object-fit: cover;
}

.page-tarifs .wedding-price-body {
  padding:
    27px
    24px
    31px;
}

.page-tarifs .wedding-price-top {
  display: flex;
  justify-content: space-between;
  gap: 15px;

  margin-bottom: 21px;

  align-items: baseline;
}

.page-tarifs .wedding-price-top span {
  font-family: var(--serif);
  font-size: 31px;
}

.page-tarifs .wedding-price-top small {
  color: var(--gold);

  font-size: 8px;
  font-weight: 600;
  letter-spacing: .15em;
  text-align: right;
  text-transform: uppercase;
}

.page-tarifs .wedding-price-card h3 {
  min-height: 58px;

  margin-bottom: 23px;

  font-family: var(--sans);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: .03em;
}

.page-tarifs .wedding-price-options,
.page-tarifs .cristal-options {
  display: grid;
  gap: 17px;

  margin-top: 27px;
  padding-top: 24px;

  border-top: 1px solid var(--line);
}

.page-tarifs .wedding-price-options > div + div,
.page-tarifs .cristal-options > div + div {
  padding-top: 17px;
  border-top: 1px solid rgba(39,35,31,.08);
}

.page-tarifs .wedding-price-options strong,
.page-tarifs .cristal-options > div > strong {
  display: block;

  margin-bottom: 3px;

  font-size: 10px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.page-tarifs .wedding-price-options span {
  display: block;

  color: var(--ink-soft);

  font-size: 11px;
}

.page-tarifs .wedding-price-options p,
.page-tarifs .cristal-options p {
  margin: 10px 0 0;

  color: var(--ink-soft);

  font-size: 12px;
  line-height: 1.7;
}

.page-tarifs .wedding-price-options b,
.page-tarifs .cristal-options b {
  float: right;

  color: var(--ink);

  font-weight: 600;
}

.page-tarifs .cristal-options ul {
  margin-top: 10px;
}

.page-tarifs .wedding-big-price {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 20px;

  margin-top: 28px;
  padding-top: 23px;

  border-top: 1px solid var(--line);
}

.page-tarifs .wedding-big-price span {
  max-width: 100px;

  color: var(--ink-soft);

  font-size: 11px;
  line-height: 1.5;
}

.page-tarifs .wedding-big-price strong {
  font-family: var(--serif);
  font-size: 30px;
  font-weight: 400;
  white-space: nowrap;
}


/* ---------------------------------------------------------
   EVENEMENTS
   --------------------------------------------------------- */

.page-tarifs .tarifs-events {
  background: var(--paper);
}

.page-tarifs .event-price-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1.15fr;
  gap: 15px;
}

.page-tarifs .event-price-card {
  min-height: 390px;

  display: flex;
  flex-direction: column;

  padding:
    37px
    clamp(27px, 3.2vw, 48px);

  border: 1px solid var(--line);

  background: var(--cream);
}

.page-tarifs .event-price-card.film {
  background: #26221e;
  color: #f8f4ed;
}

.page-tarifs .event-label {
  display: block;

  margin-bottom: 48px;

  color: var(--gold);

  font-size: 8px;
  font-weight: 600;
  letter-spacing: .2em;
  text-transform: uppercase;
}

.page-tarifs .event-price-card h3 {
  margin-bottom: 19px;

  font-size: clamp(31px, 3vw, 45px);
  line-height: 1.05;
}

.page-tarifs .event-price-card > p {
  max-width: 390px;

  margin-bottom: 30px;

  color: var(--ink-soft);

  font-size: 14px;
  line-height: 1.75;
}

.page-tarifs .event-price-card.film > p {
  color: rgba(248,244,237,.7);
}

.page-tarifs .event-price {
  margin-top: auto;

  font-family: var(--serif);
  font-size: 42px;
  font-weight: 400;
}

.page-tarifs .film-prices {
  display: grid;
  gap: 13px;

  margin-top: auto;
}

.page-tarifs .film-prices > div {
  display: flex;
  justify-content: space-between;
  gap: 20px;

  padding-top: 13px;

  border-top: 1px solid rgba(255,255,255,.16);
}

.page-tarifs .film-prices span {
  color: rgba(248,244,237,.68);

  font-size: 11px;
}

.page-tarifs .film-prices strong {
  font-size: 14px;
}


/* ---------------------------------------------------------
   PROFESSIONNELS
   --------------------------------------------------------- */

.page-tarifs .tarifs-pro {
  background: var(--cream);
}

.page-tarifs .pro-price-list {
  display: grid;
  gap: 14px;
}

.page-tarifs .pro-price-row {
  display: grid;
  grid-template-columns: minmax(250px, .58fr) minmax(0, 1.42fr);

  min-height: 270px;

  border: 1px solid var(--line);

  background: rgba(255,255,255,.45);
}

.page-tarifs .pro-price-row figure {
  margin: 0;

  overflow: hidden;

  background: #d7cec2;
}

.page-tarifs .pro-price-row figure img {
  width: 100%;
  height: 100%;

  object-fit: cover;
}

.page-tarifs .pro-price-copy {
  padding:
    37px
    clamp(30px, 5vw, 72px);
}

.page-tarifs .pro-price-copy h3 {
  margin-bottom: 30px;

  font-size: clamp(31px, 3vw, 44px);
}

.page-tarifs .pro-price-lines {
  border-top: 1px solid var(--line);
}

.page-tarifs .pro-price-lines > div {
  display: flex;
  justify-content: space-between;
  gap: 30px;

  padding: 16px 0;

  border-bottom: 1px solid var(--line);

  font-size: 13px;
}

.page-tarifs .pro-price-lines span {
  color: var(--ink-soft);
}

.page-tarifs .pro-price-lines strong {
  font-weight: 500;
  white-space: nowrap;
}


/* ---------------------------------------------------------
   CTA FINAL
   --------------------------------------------------------- */

.page-tarifs .tarifs-final-cta {
  padding:
    clamp(75px, 8vw, 120px)
    0;

  background: var(--paper);
}

.page-tarifs .tarifs-final-grid {
  display: grid;
  grid-template-columns: 1.1fr .7fr;
  gap: clamp(45px, 7vw, 110px);

  align-items: end;
}

.page-tarifs .tarifs-final-grid h2 {
  max-width: 800px;

  margin: 15px 0 0;

  font-size: clamp(47px, 4.8vw, 74px);
  line-height: 1.03;
  letter-spacing: -.03em;
}

.page-tarifs .tarifs-final-grid > div:last-child {
  max-width: 520px;
}

.page-tarifs .tarifs-final-grid p {
  margin-bottom: 28px;

  color: var(--ink-soft);

  line-height: 1.8;
}


/* ---------------------------------------------------------
   TABLETTE
   --------------------------------------------------------- */

@media (max-width: 1120px) {

  .page-tarifs .tarifs-hero-grid {
    grid-template-columns: .9fr 1.1fr;
    gap: 45px;
  }

  .page-tarifs .tarifs-wedding-grid {
    grid-template-columns: 1fr 1fr;
  }

  .page-tarifs .pro-price-row {
    grid-template-columns: .72fr 1.28fr;
  }

}


/* ---------------------------------------------------------
   MOBILE / TABLETTE ETROITE
   --------------------------------------------------------- */

@media (max-width: 920px) {

  .page-tarifs .tarifs-hero {
    padding-top: 76px;
  }

  .page-tarifs .tarifs-hero-grid,
  .page-tarifs .tarifs-gift-grid,
  .page-tarifs .tarifs-section-head,
  .page-tarifs .tarifs-final-grid {
    grid-template-columns: 1fr;
  }

  .page-tarifs .tarifs-hero-grid {
    min-height: 0;
  }

  .page-tarifs .tarifs-hero-mosaic {
    min-height: 420px;
  }

  .page-tarifs .tarifs-section-head {
    gap: 22px;
  }

  .page-tarifs .tarifs-lifestyle-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .page-tarifs .event-price-grid {
    grid-template-columns: 1fr;
  }

  .page-tarifs .pro-price-row {
    grid-template-columns: 1fr;
  }

  .page-tarifs .pro-price-row figure {
    min-height: 330px;
  }

}


/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 650px) {

  .page-tarifs .tarifs-hero-grid {
    padding:
      55px 0
      65px;
  }

  .page-tarifs .tarifs-hero-copy h1 {
    font-size: clamp(49px, 14vw, 67px);
  }

  .page-tarifs .tarifs-anchor-nav {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .page-tarifs .tarifs-hero-mosaic {
    min-height: 330px;

    grid-template-columns: 1fr 1fr;
  }

  .page-tarifs .tarifs-hero-photo-a {
    margin-top: 45px;
    margin-bottom: 0;
  }

  .page-tarifs .tarifs-hero-photo-b {
    margin-bottom: 40px;
  }

  .page-tarifs .tarifs-hero-photo-c {
    display: none;
  }

  .page-tarifs .tarifs-wedding-grid {
    grid-template-columns: 1fr;
    gap: 27px;
  }

  .page-tarifs .wedding-price-card figure {

  }

  .page-tarifs .event-price-card {
    min-height: 330px;
  }

  .page-tarifs .pro-price-copy {
    padding: 33px 25px;
  }

  .page-tarifs .pro-price-lines > div {
    gap: 18px;
  }

}

/* =========================================================
   PAGE CONTACT
   ========================================================= */

.page-contact .site-header {
  color: var(--ink);
  background: rgba(252, 250, 246, .96);
  box-shadow: 0 1px 0 rgba(39, 35, 31, .07);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

.page-contact .nav-links > a.active::after {
  transform: scaleX(1);
  transform-origin: left;
}


/* ---------------------------------------------------------
   CONTACT PRINCIPAL
   --------------------------------------------------------- */

.page-contact .contact-main {
  padding:
    calc(86px + clamp(60px, 7vw, 105px))
    0
    clamp(80px, 8vw, 125px);

  background: var(--cream);
}

.page-contact .contact-main-grid {
  display: grid;
  grid-template-columns: .78fr 1.22fr;
  gap: clamp(60px, 8vw, 125px);

  align-items: start;
}

.page-contact .contact-intro {
  position: sticky;
  top: 125px;
}

.page-contact .contact-intro h1 {
  max-width: 650px;

  margin: 16px 0 27px;

  font-size: clamp(58px, 5.8vw, 91px);
  line-height: .98;
  letter-spacing: -.035em;
}

.page-contact .contact-lead {
  max-width: 570px;

  margin-bottom: 37px;

  color: var(--ink-soft);

  font-size: 16px;
  line-height: 1.82;
}

.page-contact .contact-direct {
  display: grid;

  margin-bottom: 38px;

  border-top: 1px solid var(--line);
}

.page-contact .contact-direct > div {
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 20px;

  padding: 16px 0;

  border-bottom: 1px solid var(--line);
}

.page-contact .contact-direct span {
  color: var(--gold);

  font-size: 8px;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.page-contact .contact-direct a,
.page-contact .contact-direct p {
  margin: 0;

  color: var(--ink-soft);

  font-size: 13px;
}

.page-contact .contact-direct a:hover {
  color: var(--ink);
}

.page-contact .contact-photo {
  margin: 0;


  overflow: hidden;

  background: #d7cec2;
}

.page-contact .contact-photo img {
  width: 100%;
  height: 100%;

  object-fit: cover;
  object-position: center 57%;
}


/* ---------------------------------------------------------
   FORMULAIRE
   --------------------------------------------------------- */

.page-contact .contact-form-wrap {
  padding:
    clamp(38px, 5vw, 70px)
    clamp(30px, 5vw, 72px);

  border: 1px solid var(--line);

  background: var(--paper);
}

.page-contact .contact-form-head {
  display: flex;
  justify-content: space-between;
  gap: 25px;

  margin-bottom: 47px;
  padding-bottom: 21px;

  border-bottom: 1px solid var(--line);
}

.page-contact .contact-form-head > span {
  font-family: var(--serif);
  font-size: 31px;
}

.page-contact .contact-form-head p {
  margin: 0;

  align-self: end;

  color: var(--ink-soft);

  font-size: 10px;
}

.page-contact .contact-form {
  display: grid;
  gap: 28px;
}

.page-contact .form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px;
}

.page-contact .field {
  display: grid;
  gap: 9px;
}

.page-contact .field label {
  font-size: 9px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.page-contact .field input,
.page-contact .field select,
.page-contact .field textarea {
  width: 100%;

  border: 0;
  border-bottom: 1px solid rgba(39,35,31,.28);
  border-radius: 0;

  padding: 12px 0;

  background: transparent;
  color: var(--ink);

  font-family: var(--sans);
  font-size: 15px;
  font-weight: 300;

  outline: none;

  transition: border-color .2s ease;
}

.page-contact .field select {
  min-height: 48px;

  appearance: none;

  background-image:
    linear-gradient(45deg, transparent 50%, var(--ink) 50%),
    linear-gradient(135deg, var(--ink) 50%, transparent 50%);

  background-position:
    calc(100% - 8px) 50%,
    calc(100% - 3px) 50%;

  background-size:
    5px 5px,
    5px 5px;

  background-repeat: no-repeat;

  padding-right: 25px;
}

.page-contact .field textarea {
  resize: vertical;

  min-height: 145px;

  line-height: 1.7;
}

.page-contact .field input:focus,
.page-contact .field select:focus,
.page-contact .field textarea:focus {
  border-color: var(--gold);
}

.page-contact .field input::placeholder,
.page-contact .field textarea::placeholder {
  color: #9b938a;
}

.page-contact .consent-field {
  display: grid;
  grid-template-columns: 17px 1fr;
  gap: 11px;

  align-items: start;

  color: var(--ink-soft);

  font-size: 11px;
  line-height: 1.6;
}

.page-contact .consent-field input {
  width: 15px;
  height: 15px;

  margin-top: 2px;

  accent-color: var(--ink);
}

.page-contact .contact-submit {
  width: fit-content;

  cursor: pointer;
}


/* ---------------------------------------------------------
   PROJETS
   --------------------------------------------------------- */

.page-contact .contact-projects {
  background: var(--paper);
}

.page-contact .contact-projects-head {
  max-width: 830px;

  margin-bottom: clamp(45px, 6vw, 75px);
}

.page-contact .contact-projects-head h2 {
  margin: 15px 0 0;

  font-size: clamp(47px, 4.7vw, 74px);
  letter-spacing: -.03em;
}

.page-contact .contact-project-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);

  gap: 17px;
}

.page-contact .contact-project-card figure {
  margin: 0;

  aspect-ratio: 4 / 4.15;

  overflow: hidden;

  background: #ddd5ca;
}

.page-contact .contact-project-card img {
  width: 100%;
  height: 100%;

  object-fit: cover;

  transition:
    transform .6s
    cubic-bezier(.2,.65,.2,1);
}

.page-contact .contact-project-card:hover img {
  transform: scale(1.03);
}

.page-contact .contact-project-card > div {
  padding: 22px 3px 0;
}

.page-contact .contact-project-card h3 {
  margin: 0 0 8px;

  font-size: clamp(31px, 3vw, 44px);
}

.page-contact .contact-project-card p {
  min-height: 42px;

  margin-bottom: 17px;

  color: var(--ink-soft);

  font-size: 13px;
}

.page-contact .contact-project-card strong {
  display: inline-block;

  padding-bottom: 5px;

  border-bottom: 1px solid currentColor;

  font-size: 8px;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
}


/* ---------------------------------------------------------
   TABLETTE
   --------------------------------------------------------- */

@media (max-width: 1050px) {

  .page-contact .contact-main-grid {
    grid-template-columns: 1fr;
  }

  .page-contact .contact-intro {
    position: static;
  }

  .page-contact .contact-photo {
    max-width: 760px;
  }

}


/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 760px) {

  .page-contact .contact-main {
    padding:
      calc(76px + 48px)
      0
      70px;
  }

  .page-contact .contact-intro h1 {
    font-size: clamp(50px, 14vw, 68px);
  }

  .page-contact .contact-direct > div {
    grid-template-columns: 1fr;
    gap: 5px;
  }

  .page-contact .contact-form-wrap {
    padding:
      34px
      24px;
  }

  .page-contact .contact-form-head {
    display: grid;
    gap: 7px;
  }

  .page-contact .form-row {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .page-contact .contact-submit {
    width: 100%;
  }

  .page-contact .contact-project-grid {
    grid-template-columns: 1fr;
    gap: 43px;
  }

  .page-contact .contact-project-card p {
    min-height: 0;
  }

}
/* =========================================================
   TARIFS — HERO + CARTE CADEAU FUSIONNÉS
   ========================================================= */

.page-tarifs .tarifs-hero-combined {
  padding-top: 86px;
  background:
    linear-gradient(
      to right,
      var(--cream) 0%,
      var(--cream) 54%,
      #27231f 54%,
      #27231f 100%
    );
}


.page-tarifs .tarifs-hero-combined-grid {
  min-height: 760px;

  display: grid;
  grid-template-columns: 54% 46%;

  align-items: stretch;
}


/* =========================================================
   GAUCHE — TARIFS
   ========================================================= */

.page-tarifs .tarifs-hero-combined .tarifs-hero-copy {
  max-width: none;

  display: flex;
  flex-direction: column;

  padding:
    clamp(75px, 8vw, 125px)
    clamp(45px, 6vw, 95px)
    clamp(75px, 8vw, 125px)
    max(6vw, calc((100vw - 1460px) / 2));
}


.page-tarifs .tarifs-hero-combined .tarifs-hero-copy h1 {
  max-width: 760px;

  margin:
    18px 0
    28px;

  font-size:
    clamp(58px, 6vw, 96px);

  line-height: .96;

  letter-spacing: -.04em;
}


.page-tarifs .tarifs-hero-combined .tarifs-hero-copy > p {
  max-width: 650px;

  margin-bottom: 38px;

  color: var(--ink-soft);

  font-size: 16px;

  line-height: 1.8;
}


/* Boutons catégories */

.page-tarifs .tarifs-hero-combined .tarifs-anchor-nav {
  display: flex;
  flex-wrap: wrap;

  gap: 10px;
}


.page-tarifs .tarifs-hero-combined .tarifs-anchor-nav a {
  min-height: 48px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  padding:
    0 20px;

  border:
    1px solid rgba(39,35,31,.20);

  background:
    rgba(255,255,255,.18);

  color: var(--ink);

  font-size: 9px;

  font-weight: 600;

  letter-spacing: .17em;

  text-transform: uppercase;

  transition:
    background .2s ease,
    border-color .2s ease,
    transform .2s ease;
}


.page-tarifs .tarifs-hero-combined .tarifs-anchor-nav a:hover {
  background: #fff;

  border-color:
    rgba(39,35,31,.34);

  transform:
    translateY(-2px);
}


/* =========================================================
   DROITE — CARTE CADEAU
   ========================================================= */

.page-tarifs .tarifs-gift-panel {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;

  padding:
    clamp(55px, 6vw, 90px)
    clamp(40px, 5vw, 80px);

  background: #27231f;

  color: #f8f4ed;

  text-align: center;
}


/* Photo ronde */

.page-tarifs .tarifs-gift-photo {
  width:
    clamp(240px, 22vw, 360px);

  aspect-ratio: 1 / 1;

  margin:
    0 0
    34px;

  overflow: hidden;

  border-radius: 50%;

  background: #d8cfc4;
}


.page-tarifs .tarifs-gift-photo img {
  width: 100%;
  height: 100%;

  object-fit: cover;
}


/* Contenu carte cadeau */

.page-tarifs .tarifs-gift-content {
  max-width: 560px;
}


.page-tarifs .tarifs-gift-content .eyebrow {
  margin-bottom: 12px;

  color: #c5a98b;
}


.page-tarifs .tarifs-gift-pretitle {
  margin:
    0 0
    12px;

  color:
    rgba(248,244,237,.78);

  font-family: var(--serif);

  font-size: 18px;
}


.page-tarifs .tarifs-gift-content h2 {
  margin:
    0 0
    22px;

  color: #f8f4ed;

  font-size:
    clamp(38px, 4vw, 60px);

  line-height: 1.02;
}


.page-tarifs .tarifs-gift-content > p:not(.tarifs-gift-pretitle):not(.tarifs-gift-small) {
  max-width: 500px;

  margin:
    0 auto
    18px;

  color:
    rgba(248,244,237,.76);

  font-size: 14px;

  line-height: 1.75;
}


.page-tarifs .tarifs-gift-small {
  max-width: 470px;

  margin:
    0 auto
    28px;

  color:
    rgba(248,244,237,.52);

  font-size: 12px;

  line-height: 1.65;
}


/* Bouton carte cadeau */

.page-tarifs .btn-gift {
  border-color: #f8f4ed;

  background: #f8f4ed;

  color: var(--ink);
}


.page-tarifs .btn-gift:hover {
  background: transparent;

  color: #f8f4ed;
}


/* =========================================================
   ON DÉSACTIVE L'ANCIENNE CARTE CADEAU SI ELLE RESTE
   PAR ERREUR DANS LE HTML
   ========================================================= */

.page-tarifs .tarifs-gift {
  display: none;
}


/* =========================================================
   TABLETTE
   ========================================================= */

@media (max-width: 1100px) {

  .page-tarifs .tarifs-hero-combined {
    background:
      linear-gradient(
        to right,
        var(--cream) 0%,
        var(--cream) 50%,
        #27231f 50%,
        #27231f 100%
      );
  }


  .page-tarifs .tarifs-hero-combined-grid {
    grid-template-columns: 1fr 1fr;
  }


  .page-tarifs .tarifs-hero-combined .tarifs-hero-copy {
    padding:
      80px
      45px;
  }


  .page-tarifs .tarifs-gift-panel {
    padding:
      65px
      40px;
  }

}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 760px) {

  .page-tarifs .tarifs-hero-combined {
    padding-top: 76px;

    background: var(--cream);
  }


  .page-tarifs .tarifs-hero-combined-grid {
    display: block;

    min-height: 0;
  }


  /* Partie tarifs */

  .page-tarifs .tarifs-hero-combined .tarifs-hero-copy {
    padding:
      58px
      5.5vw
      65px;
  }


  .page-tarifs .tarifs-hero-combined .tarifs-hero-copy h1 {
    font-size:
      clamp(50px, 14vw, 68px);
  }


  .page-tarifs .tarifs-hero-combined .tarifs-anchor-nav {
    display: grid;

    grid-template-columns:
      1fr 1fr;

    width: 100%;
  }


  .page-tarifs .tarifs-hero-combined .tarifs-anchor-nav a {
    width: 100%;

    padding:
      0 10px;
  }


  /* Carte cadeau */

  .page-tarifs .tarifs-gift-panel {
    padding:
      62px
      5.5vw
      68px;
  }


  .page-tarifs .tarifs-gift-photo {
    width:
      min(72vw, 310px);

    margin-bottom:
      30px;
  }


  .page-tarifs .tarifs-gift-content h2 {
    font-size:
      clamp(39px, 11vw, 54px);
  }


  .page-tarifs .btn-gift {
    width: 100%;
  }

}

/* =========================================================
   BANDEAU AVIS GOOGLE — HOME
   ========================================================= */

.google-proof {
  background: #27231f;
  color: #f7f3ec;
}


.google-proof-inner {
  min-height: 98px;

  display: grid;
  grid-template-columns:
    1fr
    1fr
    1fr;

  align-items: center;
}


.google-proof-item {
  min-height: 44px;

  display: flex;
  align-items: center;
  justify-content: center;

  gap: 12px;

  font-family: var(--serif);

  font-size: 17px;
}


.google-proof-item + .google-proof-item {
  border-left:
    1px solid rgba(247,243,236,.26);
}


/* GOOGLE */

.google-proof-brand {
  font-size: 18px;
}


.google-g {
  display: inline-flex;

  align-items: center;
  justify-content: center;

  font-family: var(--sans);

  font-size: 19px;
  font-weight: 600;
}


/* ÉTOILES */

.google-proof-rating {
  gap: 11px;
}


.google-stars {
  font-family: var(--sans);

  font-size: 15px;

  letter-spacing: 1px;
}


.google-proof-rating strong {
  font-family: var(--serif);

  font-size: 18px;
  font-weight: 400;
}


/* NOMBRE D'AVIS */

.google-proof-reviews {
  gap: 5px;
}


.google-proof-reviews strong {
  font-family: var(--serif);

  font-size: 20px;
  font-weight: 400;
}


.google-proof-reviews span {
  color:
    rgba(247,243,236,.82);
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 650px) {

  .google-proof-inner {
    min-height: 82px;

    width: 94vw;

    grid-template-columns:
      .85fr
      1.15fr
      1fr;
  }


  .google-proof-item {
    min-height: 36px;

    gap: 6px;

    font-size: 12px;
  }


  .google-proof-brand {
    font-size: 12px;
  }


  .google-g {
    font-size: 14px;
  }


  .google-stars {
    font-size: 10px;

    letter-spacing: 0;
  }


  .google-proof-rating strong {
    font-size: 14px;
  }


  .google-proof-reviews {
    flex-direction: column;

    gap: 0;

    line-height: 1.2;
  }


  .google-proof-reviews strong {
    font-size: 16px;
  }


  .google-proof-reviews span {
    font-size: 9px;
  }

}

@media (max-width: 760px) {

  .page-contact .contact-main-grid {
    width: 100%;
    max-width: none;

    margin: 0;
    padding: 0;

    gap: 0;
  }

  .page-contact .contact-intro {
    padding:
      0
      5.5vw
      45px;
  }

  .page-contact .contact-photo {
    width: 100vw;

    margin: 0;

    min-height: 480px !important;

    border: 0;
  }

  .page-contact .contact-photo img {
    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;
  }

}

/* ==========================================================
   PAGE SEANCES — PORTFOLIO : COLONNES EXPLICITES
   Les 5 colonnes restent presentes meme quand 6 photos
   seulement sont visibles. Ne modifie aucune autre page.
   ========================================================== */
body.page-seances #galerie-seances {
  background: var(--cream);
  padding-block: clamp(64px, 7.5vw, 110px);
  scroll-margin-top: 105px;
}
body.page-seances .faq { background: var(--paper); }
body.page-seances #galerie-seances > .seances-portfolio-wrap {
  width: calc(100% - 64px);
  max-width: 1440px;
  margin-inline: auto;
  padding: 0;
}
body.page-seances #galerie-seances .seances-portfolio-opening {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
  gap: 6px;
  align-items: stretch;
  margin-bottom: 6px;
}
body.page-seances .seances-portfolio-intro {
  align-self: center;
  padding: clamp(28px, 5vw, 74px) clamp(28px, 4vw, 60px) 28px 0;
}
body.page-seances .seances-portfolio-intro h2 {
  margin: 16px 0 28px;
  font-size: clamp(46px, 4.5vw, 75px);
  line-height: 1.02;
  letter-spacing: -.035em;
}
body.page-seances .seances-portfolio-intro p {
  max-width: 440px;
  color: var(--ink-soft);
  line-height: 1.85;
  font-size: 15px;
}
body.page-seances .seances-portfolio-secondary { font-size: 13px !important; opacity: .78; }
body.page-seances .seances-portfolio-feature { min-width: 0; column-count: 3; column-gap: 6px; }
body.page-seances #seances-gallery-masonry {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 6px;
  width: 100%;
  max-width: none;
  min-width: 0;
  column-count: auto;
}
body.page-seances #seances-gallery-masonry .seances-masonry-column { min-width: 0; }
body.page-seances #galerie-seances .seances-gallery-item {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  margin: 0 0 6px;
  padding: 0;
  overflow: hidden;
  background: #ece5da;
  cursor: default;
  break-inside: avoid;
}
body.page-seances #galerie-seances [hidden] { display: none !important; }
body.page-seances #galerie-seances .seances-gallery-item img {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
  object-fit: contain;
  cursor: default;
}
body.page-seances .seances-gallery-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 22px;
  margin-top: 42px;
}
body.page-seances .seances-gallery-less {
  border: none;
  border-bottom: 1px solid currentColor;
  background: transparent;
  padding: 12px;
  font: 600 11px var(--sans);
  letter-spacing: .12em;
  text-transform: uppercase;
  cursor: pointer;
}
@media (max-width: 1050px) {
  body.page-seances #seances-gallery-masonry { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 850px) {
  body.page-seances #galerie-seances .seances-portfolio-opening { grid-template-columns: 1fr; gap: 24px; }
  body.page-seances .seances-portfolio-intro { padding: 0 0 12px; }
  body.page-seances .seances-portfolio-feature { column-count: 3; }
  body.page-seances #seances-gallery-masonry { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  body.page-seances #galerie-seances > .seances-portfolio-wrap { width: calc(100% - 24px); }
  body.page-seances .seances-portfolio-feature { column-count: 2; column-gap: 4px; }
  body.page-seances #seances-gallery-masonry { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px; }
  body.page-seances #galerie-seances .seances-gallery-item { margin-bottom: 4px; }
  body.page-seances .seances-portfolio-intro { padding: 0 9px 12px; }
  body.page-seances .seances-gallery-actions { flex-wrap: wrap; }
}


/* SECTION « CHAQUE HISTOIRE » — presentation comme la page Mariage */
body.page-seances #galerie-seances { background:var(--cream); padding:clamp(65px,7vw,110px) 0; }
body.page-seances #galerie-seances > .seances-portfolio-wrap {width:calc(100% - 80px);max-width:1380px;margin:auto;padding:0;}
body.page-seances #galerie-seances .seances-portfolio-opening {display:grid;grid-template-columns: 40% minmax(0,60%);gap:0;align-items:center;margin:0;}
body.page-seances #galerie-seances .seances-portfolio-intro {padding:24px 12% 24px 0;align-self:center;}
body.page-seances #galerie-seances .seances-portfolio-intro h2 {font-size:clamp(47px,4.3vw,70px);line-height:1.05;letter-spacing:-.025em;margin:14px 0 20px;}
body.page-seances #galerie-seances .seances-portfolio-intro p {max-width:420px;font-size:15px;line-height:1.65;}
body.page-seances #galerie-seances .seances-portfolio-feature {display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:5px;column-count:initial!important;min-width:0;aspect-ratio: 1.63;}
body.page-seances #galerie-seances .seances-portfolio-feature .seances-gallery-item {display:block;aspect-ratio:auto;margin:0!important;overflow:hidden;min-width:0;min-height:0;}
body.page-seances #galerie-seances .seances-portfolio-feature .seances-gallery-item img {display:block;width:100%;height:100%;object-fit:cover;}
body.page-seances #galerie-seances .seances-gallery-actions {display:flex;justify-content:center;align-items:center;gap:25px;margin:30px auto 0;flex-wrap:wrap;}
body.page-seances #galerie-seances #seances-gallery-more {text-transform:uppercase;letter-spacing:.13em;font-size:11px;}
body.page-seances #seances-gallery-masonry {display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr))!important;gap:5px;width:100%;margin-top:32px;column-count:initial!important;}
body.page-seances #seances-gallery-masonry .seances-gallery-item {display:block;aspect-ratio:3/4;margin:0!important;min-width:0;overflow:hidden;}
body.page-seances #seances-gallery-masonry .seances-gallery-item img {display:block;width:100%;height:100%;object-fit:cover;}
body.page-seances #galerie-seances [hidden] {display:none!important;}
@media(max-width:1050px) {
 body.page-seances #galerie-seances .seances-portfolio-opening {grid-template-columns:36% minmax(0,64%);}
 body.page-seances #seances-gallery-masonry {grid-template-columns:repeat(4,minmax(0,1fr))!important;}
}
@media(max-width:760px) {
 body.page-seances #galerie-seances>.seances-portfolio-wrap {width:calc(100% - 32px);}
 body.page-seances #galerie-seances .seances-portfolio-opening {grid-template-columns:1fr;gap:25px;}
 body.page-seances #galerie-seances .seances-portfolio-intro {padding:0 0 5px;}
 body.page-seances #galerie-seances .seances-portfolio-feature {aspect-ratio:1.45;}
 body.page-seances #seances-gallery-masonry {grid-template-columns:repeat(3,minmax(0,1fr))!important;}
}
@media(max-width:480px) {
 body.page-seances #galerie-seances .seances-portfolio-feature {grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(4,1fr);aspect-ratio: .78;}
 body.page-seances #seances-gallery-masonry {grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}


/* ===============================================================
   SEANCES : grille commune de 6 colonnes, boutons sous la galerie
   Texte = 2/6; photos du haut = 4/6, subdivisees en 4 colonnes.
   Galerie ajoutee = 6 colonnes alignees a celles du haut.
   =============================================================== */
body.page-seances-alignee #galerie-seances {
  background: var(--cream, #f7f3ec);
}
body.page-seances-alignee #galerie-seances > .seances-portfolio-wrap {
  width: calc(100% - 80px);
  max-width: 1380px;
  margin-inline: auto;
  padding: 0;
}
body.page-seances-alignee #galerie-seances .seances-portfolio-opening {
  display: grid !important;
  grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
  gap: 5px !important;
  align-items: stretch;
  margin: 0 !important;
}
body.page-seances-alignee #galerie-seances .seances-portfolio-intro {
  grid-column: span 2;
  align-self: center;
  min-width: 0;
  padding: 20px clamp(16px, 2.5vw, 35px) 20px 0;
}
body.page-seances-alignee #galerie-seances .seances-portfolio-intro h2 {
  font-size: clamp(39px, 3.6vw, 62px);
}
body.page-seances-alignee #galerie-seances .seances-portfolio-feature {
  grid-column: span 4;
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  grid-template-rows: repeat(2, minmax(0, 1fr));
  column-count: initial !important;
  gap: 5px;
  width: 100%;
  min-width: 0;
  aspect-ratio: 1.63;
}
body.page-seances-alignee #galerie-seances .seances-portfolio-feature .seances-gallery-item {
  margin: 0 !important;
  min-height: 0;
  min-width: 0;
  overflow: hidden;
}
body.page-seances-alignee #galerie-seances .seances-portfolio-feature img {
  width: 100%; height: 100%; object-fit: cover;
}
body.page-seances-alignee #galerie-seances #seances-gallery-masonry {
  display: grid !important;
  grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
  gap: 5px;
  margin-top: 5px !important;
}
body.page-seances-alignee #galerie-seances #seances-gallery-masonry .seances-gallery-item {
  aspect-ratio: 3/4;
  margin: 0 !important;
  min-width: 0;
}
body.page-seances-alignee #galerie-seances #seances-gallery-masonry img {
  width: 100%; height: 100%; object-fit: cover;
}
body.page-seances-alignee #galerie-seances [hidden] { display: none !important; }
body.page-seances-alignee #galerie-seances .seances-gallery-actions {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 24px;
  margin: 30px 0 0;
}
@media (max-width: 850px) {
  body.page-seances-alignee #galerie-seances .seances-portfolio-opening {
    grid-template-columns: 1fr !important;
    gap: 22px !important;
  }
  body.page-seances-alignee #galerie-seances .seances-portfolio-intro,
  body.page-seances-alignee #galerie-seances .seances-portfolio-feature { grid-column: 1; }
  body.page-seances-alignee #galerie-seances .seances-portfolio-intro { padding: 0 0 10px; }
  body.page-seances-alignee #galerie-seances #seances-gallery-masonry {
    grid-template-columns: repeat(3, minmax(0,1fr)) !important;
    margin-top: 5px !important;
  }
}
@media (max-width: 520px) {
  body.page-seances-alignee #galerie-seances > .seances-portfolio-wrap { width: calc(100% - 28px); }
  body.page-seances-alignee #galerie-seances .seances-portfolio-feature {
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    grid-template-rows: repeat(4, 1fr);
    aspect-ratio: .8;
  }
  body.page-seances-alignee #galerie-seances #seances-gallery-masonry {
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
  }
}

/* ==============================================================
   SEANCES — 4 UNIVERS EN PANNEAUX EDITORIAUX ALTERNES
   Fond doux conservé, texte/photo 50/50, lignes régulières.
   ============================================================= */
body.page-seances #univers.univers {
  background: var(--paper, #fbfaf7);
  padding: 20px 0 clamp(64px, 7vw, 108px);
}
body.page-seances #univers .univers-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 16px;
}
body.page-seances #univers .univers-card {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  min-height: 286px;
  background: #f1ece4;
  overflow: hidden;
}
body.page-seances #univers .univers-card:nth-child(even) { background: #f7f3ec; }
body.page-seances #univers .univers-card figure {
  grid-column: 2;
  grid-row: 1;
  margin: 0;
  height: 100%;
  min-height: 286px;
  aspect-ratio: auto;
  overflow: hidden;
  background: #ddd5ca;
}
body.page-seances #univers .univers-card--reverse figure { grid-column: 1; }
body.page-seances #univers .univers-card img {
  display: block;
  width: 100%; height: 100%;
  object-fit: cover;
  transition: none;
  transform: none;
}
body.page-seances #univers .univers-card:hover img { transform: none; }
body.page-seances #univers .univers-card-copy {
  grid-column: 1;
  grid-row: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  padding: clamp(24px, 4.4vw, 72px);
  min-width: 0;
}
body.page-seances #univers .univers-card--reverse .univers-card-copy { grid-column: 2; }
body.page-seances #univers .univers-card-number {
  display: block;
  color: #a48160;
  font-family: 'DM Sans', sans-serif;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
  margin-bottom: 17px;
}
body.page-seances #univers .univers-card h2 {
  margin: 0 0 14px;
  font-size: clamp(38px, 4vw, 62px);
  line-height: 1.05;
  font-weight: 400;
}
body.page-seances #univers .univers-card p {
  margin: 0;
  color: var(--ink-soft, #777068);
  font-size: clamp(13px, 1.1vw, 15px);
  line-height: 1.8;
  max-width: 385px;
}
@media (max-width: 700px) {
  body.page-seances #univers .univers-grid { gap: 14px; }
  body.page-seances #univers .univers-card,
  body.page-seances #univers .univers-card:nth-child(even) {
    grid-template-columns: 1fr;
    min-height: 0;
  }
  body.page-seances #univers .univers-card figure,
  body.page-seances #univers .univers-card--reverse figure {
    grid-column: 1;
    grid-row: 1;
    height: auto;
    min-height: 0;
    aspect-ratio: 1.7 / 1;
  }
  body.page-seances #univers .univers-card-copy,
  body.page-seances #univers .univers-card--reverse .univers-card-copy {
    grid-column: 1;
    grid-row: 2;
    padding: 26px 24px 30px;
  }
  body.page-seances #univers .univers-card h2 { font-size: 42px; }
}

/* SEANCES : images immobiles, sans effet de survol */
body.page-seances #univers .univers-card,
body.page-seances #univers .univers-card figure,
body.page-seances #univers .univers-card img,
body.page-seances #univers .univers-card:hover img {
  transform: none !important;
  transition: none !important;
  animation: none !important;
  filter: none !important;
}

/* Mobile : conserver la photographie en entier, sans recadrage */
@media (max-width: 700px) {
  body.page-seances #univers .univers-card figure,
  body.page-seances #univers .univers-card--reverse figure {
    aspect-ratio: auto !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
  }
  body.page-seances #univers .univers-card figure img,
  body.page-seances #univers .univers-card--reverse figure img {
    display: block;
    width: 100%;
    height: auto !important;
    aspect-ratio: auto !important;
    object-fit: contain !important;
    object-position: center;
  }
}

/* Portfolio seances - mobile : afficher chaque photo dans son cadrage integral */
@media (max-width: 700px) {
  body.page-seances-alignee #galerie-seances .seances-portfolio-feature {
    aspect-ratio: auto !important;
    height: auto !important;
    grid-template-rows: none !important;
    grid-auto-rows: auto !important;
    align-items: start !important;
  }
  body.page-seances-alignee #galerie-seances .seances-portfolio-feature .seances-gallery-item,
  body.page-seances-alignee #galerie-seances #seances-gallery-masonry .seances-gallery-item {
    aspect-ratio: auto !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
    align-self: start !important;
  }
  body.page-seances-alignee #galerie-seances .seances-portfolio-feature .seances-gallery-item img,
  body.page-seances-alignee #galerie-seances #seances-gallery-masonry .seances-gallery-item img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    aspect-ratio: auto !important;
    object-fit: contain !important;
    transform: none !important;
  }
}

/* Portfolio : sur mobile, 6 photos avant le bouton « En voir plus ».
   Des que la galerie supplementaire est ouverte, les 8 photos initiales reapparaissent. */
@media (max-width: 700px) {
  body.page-seances #galerie-seances:has(#seances-gallery-masonry[hidden])
    .seances-portfolio-feature > .seances-gallery-item:nth-last-child(-n+2) {
    display: none !important;
  }
}

/* Portfolio Seances : meme ratio 3:4 sur ordinateur, tablette et mobile */
@media (max-width: 1024px) {
  body.page-seances-alignee #galerie-seances .seances-portfolio-feature {
    aspect-ratio: auto !important;
    height: auto !important;
    grid-template-rows: none !important;
    grid-auto-rows: auto !important;
    align-items: stretch !important;
  }
  body.page-seances-alignee #galerie-seances .seances-portfolio-feature .seances-gallery-item,
  body.page-seances-alignee #galerie-seances #seances-gallery-masonry .seances-gallery-item {
    aspect-ratio: 3 / 4 !important;
    height: auto !important;
    overflow: hidden !important;
    align-self: stretch !important;
  }
  body.page-seances-alignee #galerie-seances .seances-portfolio-feature .seances-gallery-item img,
  body.page-seances-alignee #galerie-seances #seances-gallery-masonry .seances-gallery-item img {
    width: 100% !important;
    height: 100% !important;
    aspect-ratio: auto !important;
    object-fit: cover !important;
    object-position: center !important;
    max-height: none !important;
    transform: none !important;
  }
}

/* ===========================================================
   MARIAGE - Portfolio aligné sur la grille de 6 colonnes
   Texte = 2 colonnes / mosaïque = 4 colonnes (4 x 2 photos)
   En voir plus : 6 colonnes et commandes toujours sous la grille
   =========================================================== */
body.page-mariage #galerie-mariage { background: var(--paper, #f7f3ec); }
body.page-mariage #galerie-mariage > .wedding-portfolio-wrap {
  max-width: 1380px;
  width: calc(100% - 80px);
  margin-inline: auto;
  padding: 0;
}
body.page-mariage #galerie-mariage .wedding-portfolio-opening {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 5px;
  align-items: stretch;
}
body.page-mariage #galerie-mariage .wedding-details-copy {
  grid-column: span 2;
  align-self: center;
  min-width: 0;
  padding: 20px clamp(16px, 2.5vw, 35px) 20px 0;
}
body.page-mariage #galerie-mariage .wedding-details-copy h2 {
  font-size: clamp(39px, 3.6vw, 62px);
  line-height: 1.08;
}
body.page-mariage #galerie-mariage .wedding-portfolio-feature {
  grid-column: span 4;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: 5px;
  min-width: 0;
  aspect-ratio: 1.63;
}
body.page-mariage #galerie-mariage .wedding-portfolio-photo {
  display: block;
  min-width: 0;
  min-height: 0;
  margin: 0;
  overflow: hidden;
  background: #d7cec2;
}
body.page-mariage #galerie-mariage .wedding-portfolio-feature .wedding-portfolio-photo img,
body.page-mariage #galerie-mariage .wedding-portfolio-extra .wedding-portfolio-photo img {
  display: block;
  width: 100%; height: 100%; object-fit: cover;
  transform: none !important;
  transition: none !important;
}
body.page-mariage #galerie-mariage .wedding-portfolio-extra {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 5px;
  margin-top: 5px;
}
body.page-mariage #galerie-mariage .wedding-portfolio-extra .wedding-portfolio-photo { aspect-ratio: 3 / 4; }
body.page-mariage #galerie-mariage [hidden] { display: none !important; }
body.page-mariage #galerie-mariage .wedding-portfolio-actions {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 16px;
  margin: 30px 0 0;
}
@media (max-width: 850px) {
  body.page-mariage #galerie-mariage .wedding-portfolio-opening { grid-template-columns: 1fr; gap: 24px; }
  body.page-mariage #galerie-mariage .wedding-details-copy,
  body.page-mariage #galerie-mariage .wedding-portfolio-feature { grid-column: 1; }
  body.page-mariage #galerie-mariage .wedding-details-copy { padding: 0 0 10px; }
  body.page-mariage #galerie-mariage .wedding-portfolio-extra { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  body.page-mariage #galerie-mariage > .wedding-portfolio-wrap { width: calc(100% - 28px); }
  body.page-mariage #galerie-mariage .wedding-portfolio-feature {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: auto;
    aspect-ratio: auto;
    align-items: start;
  }
  body.page-mariage #galerie-mariage .wedding-portfolio-extra { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.page-mariage #galerie-mariage .wedding-portfolio-feature .wedding-portfolio-photo,
  body.page-mariage #galerie-mariage .wedding-portfolio-extra .wedding-portfolio-photo { aspect-ratio: auto; overflow: visible; }
  body.page-mariage #galerie-mariage .wedding-portfolio-feature .wedding-portfolio-photo img,
  body.page-mariage #galerie-mariage .wedding-portfolio-extra .wedding-portfolio-photo img {
    height: auto !important; aspect-ratio: auto !important; max-height: none !important;
    object-fit: contain !important;
  }
}


/* ===== Styles extraits des fichiers HTML (sans modifier les autres pages) ===== */
.extracted-inline-1 {margin-top:22px;color:rgba(236,229,220,.72);font-size:13px;}
.extracted-inline-2 {margin-top:22px;color:rgba(236,229,220,.72);font-size:13px;}
.extracted-inline-3 {color:#fff;opacity:.82}
.extracted-inline-4 {color:#fff;opacity:.82}
.extracted-inline-5 {margin-top:22px;color:rgba(236,229,220,.72);font-size:13px;}
.extracted-inline-6 {margin-top:22px;
              color:rgba(236,229,220,.72);
              font-size:13px;}

/* Source: bio.html (styles de page) */

    /* Hero plus proche du header */
    .page-about .about-hero-inner {
      min-height: 600px;
      padding-top: 38px;
      padding-bottom: 58px;
    }

    /* Distinctions : version éditoriale avec les photos visibles */
    .page-about .about-recognition-head {
      margin-bottom: 52px;
    }

    .page-about .about-awards-showcase {
      display: grid;
      gap: 18px;
    }

    .page-about .about-award-feature {
      display: grid;
      grid-template-columns: .72fr 1.28fr;
      min-height: 420px;
      border: 1px solid rgba(255,255,255,.15);
      background: rgba(255,255,255,.025);
      overflow: hidden;
    }

    .page-about .about-award-feature.reverse {
      grid-template-columns: 1.28fr .72fr;
    }

    .page-about .about-award-feature.reverse .about-award-media {
      order: 1;
    }

    .page-about .about-award-feature.reverse .about-award-copy {
      order: 2;
    }

    .page-about .about-award-copy {
      display: flex;
      flex-direction: column;
      justify-content: center;
      padding: clamp(35px, 5vw, 70px);
    }

    .page-about .about-award-kicker {
      display: block;
      margin-bottom: 27px;
      color: #c3a583;
      font-size: 9px;
      font-weight: 600;
      letter-spacing: .19em;
      text-transform: uppercase;
    }

    .page-about .about-award-copy h3 {
      margin: 0 0 20px;
      color: #f7f3ec;
      font-size: clamp(31px, 3.2vw, 50px);
      line-height: 1.04;
    }

    .page-about .about-award-copy p {
      max-width: 500px;
      margin: 0;
      color: rgba(247,243,236,.69);
      font-size: 14px;
      line-height: 1.75;
    }

    .page-about .about-award-copy strong,
    .page-about .about-award-copy em {
      color: #f7f3ec;
    }

    .page-about .about-award-media {
      margin: 0;
      min-height: 420px;
      overflow: hidden;
      background: #171512;
    }

    .page-about .about-award-media img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

    .page-about .about-award-duo {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 4px;
      min-height: 420px;
      background: #171512;
    }

    .page-about .about-award-duo figure {
      position: relative;
      margin: 0;
      overflow: hidden;
    }

    .page-about .about-award-duo img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

    .page-about .about-award-duo figcaption {
      position: absolute;
      right: 14px;
      bottom: 14px;
      left: 14px;
      padding: 10px 12px;
      background: rgba(23,21,18,.72);
      color: #f7f3ec;
      font-size: 8px;
      font-weight: 600;
      letter-spacing: .14em;
      text-transform: uppercase;
    }

    /* Plus aucun effet de suite 01 / 02 / 03 */
    .page-about .about-universe-card > div > span,
    .page-about .about-method-grid > article > span {
      display: none;
    }

    .page-about .about-universe-card h3 {
      margin-top: 0;
    }

    .page-about .about-method-grid article {
      padding-top: 42px;
    }

    /* CTA : le contenu reste bien dans le wrap */
    .page-about .about-final-cta > .wrap {
      position: relative;
      z-index: 2;
      width: min(92vw, var(--max));
      margin-inline: auto;
    }

    .page-about .about-final-cta > .wrap .about-final-content {
      width: 100%;
    }

    @media (max-width: 1050px) {
      .page-about .about-award-feature,
      .page-about .about-award-feature.reverse {
        grid-template-columns: 1fr;
      }

      .page-about .about-award-feature.reverse .about-award-media,
      .page-about .about-award-feature.reverse .about-award-copy {
        order: initial;
      }

      .page-about .about-award-media,
      .page-about .about-award-duo {
        min-height: 380px;
      }
    }

    @media (max-width: 760px) {
      .page-about .about-hero-inner {
        padding-top: 28px;
        padding-bottom: 52px;
      }

      .page-about .about-award-feature {
        min-height: 0;
      }

      .page-about .about-award-copy {
        padding: 36px 26px 40px;
      }

      .page-about .about-award-media {
        min-height: 330px;
      }

      .page-about .about-award-duo {
        grid-template-columns: 1fr;
        min-height: 0;
      }

      .page-about .about-award-duo figure {
        min-height: 330px;
      }
    }

    /* VERSION EDITORIALE EPUREE — UNIQUEMENT PAGE A PROPOS */
    .page-about .about-hero-new {background:#f7f3ec;}
    .page-about .about-hero-new .about-hero-inner {grid-template-columns:minmax(0,1.15fr) minmax(280px,.7fr);gap:clamp(36px,6vw,95px);min-height:610px;}
    .page-about .about-hero-new .about-hero-copy h1 {font-size:clamp(52px,5.2vw,83px);}
    .page-about .about-hero-new .about-hero-lead {font-family:var(--serif);font-size:clamp(22px,2.15vw,31px);line-height:1.37;color:var(--ink);max-width:650px;}
    .page-about .about-hero-secondary {font-size:14px;line-height:1.8;color:var(--ink-soft);max-width:560px;margin-bottom:32px;}
    .page-about .about-story-note {font-size:13px!important;border-top:1px solid var(--line);padding-top:18px;margin-top:26px;}
    .page-about .about-recognition-quiet {background:#f1ece4;color:var(--ink);padding:clamp(55px,6vw,90px) 0;}
    .page-about .about-recognition-quiet h2 {font-size:clamp(34px,3.4vw,53px);margin:0 0 12px;}
    .page-about .about-recognition-intro {max-width:650px;font-size:14px;line-height:1.8;color:var(--ink-soft);margin-bottom:36px;}
    .page-about .about-recognition-list {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}
    .page-about .about-recognition-entry {min-width:0;display:flex;align-items:center;gap:16px;padding:17px 0;border-top:1px solid var(--line);}
    .page-about .about-recognition-entry > img,.page-about .about-recognition-pair {width:84px;height:92px;flex:0 0 84px;object-fit:cover;background:#ded6cc;}
    .page-about .about-recognition-pair {display:grid;grid-template-columns:1fr 1fr;gap:2px;overflow:hidden;}
    .page-about .about-recognition-pair img {height:100%;width:100%;object-fit:cover;}
    .page-about .about-recognition-entry span {color:var(--gold);font-size:9px;font-weight:600;letter-spacing:.10em;text-transform:uppercase;}
    .page-about .about-recognition-entry h3 {font-size:clamp(19px,1.6vw,24px);line-height:1.1;margin:7px 0;}
    .page-about .about-recognition-entry p {font-size:12px;line-height:1.5;color:var(--ink-soft);margin:0;}
    .page-about .about-final-actions {display:flex;flex-wrap:wrap;gap:12px;}
    .page-about .about-final-cta-new .about-final-content h2 {max-width:900px;}
    @media(max-width:1000px) {.page-about .about-recognition-list {grid-template-columns:1fr;gap:2px;}.page-about .about-recognition-entry > img,.page-about .about-recognition-pair{width:100px;height:100px;flex-basis:100px;}}
    @media(max-width:760px) {.page-about .about-hero-new .about-hero-inner {grid-template-columns:1fr;}.page-about .about-hero-new .about-hero-copy h1 {font-size:clamp(46px,12vw,66px);}.page-about .about-final-actions{flex-direction:column;}.page-about .about-final-actions .btn{width:100%;}.page-about .about-recognition-entry h3{font-size:21px;}}
  

/* À PROPOS : mise en page éditoriale, uniquement sur cette page */
.page-about .about-hero-editorial { background:#f7f3ec; padding:120px 0 90px; }
.page-about .about-hero-editorial .about-hero-inner { min-height:0; display:grid; grid-template-columns:minmax(0,520px) minmax(0,1fr); gap:clamp(18px,2vw,30px); align-items:center; padding:0; }
.page-about .about-hero-editorial .about-hero-photo { width:100%; max-width:520px; aspect-ratio:auto; justify-self:end; background:transparent; overflow:visible; }
.page-about .about-hero-editorial .about-hero-photo img { display:block; width:100%; height:auto; filter:grayscale(100%); object-fit:contain; }
.page-about .about-hero-editorial .about-hero-copy { max-width:680px; }
.page-about .about-hero-editorial .about-hero-copy h1 { font-size:clamp(56px,5.9vw,94px); margin:12px 0 25px; line-height:1; }
.page-about .about-hero-editorial .about-hero-lead { font-size:20px; line-height:1.6; font-family:var(--serif); color:var(--ink); margin-bottom:20px; }
.page-about .about-hero-editorial .about-hero-copy p:not(.about-hero-lead) { color:var(--ink-soft); font-size:14px; line-height:1.83; margin:0 0 17px; }
.page-about .about-hero-editorial .about-intro-signature { padding-top:10px; font-family:var(--serif); font-size:27px !important; color:var(--ink) !important; }
.page-about .about-hero-editorial .about-intro-signature span { display:block; font:400 10px var(--sans); letter-spacing:.11em; color:var(--ink-soft); margin-top:5px; text-transform:uppercase; }
.page-about .about-hero-editorial .text-link { margin-top:9px; }
.page-about .about-recognition-editorial { background:#f7f3ec; color:var(--ink); }
.page-about .about-recognition-editorial .eyebrow { color:var(--gold); }
.page-about .about-recognition-editorial h2 { font-size:clamp(39px,3.6vw,57px); line-height:1.06; margin:15px 0 17px; }
.page-about .about-recognition-editorial .about-recognition-intro { max-width:690px; color:var(--ink-soft); font-size:14px; line-height:1.8; margin:0 0 48px; }
.page-about .about-recognition-editorial .about-award-year { display:flex; align-items:baseline; gap:20px; border-top:none; padding:20px 0 18px; margin-top:28px; font-family:var(--serif); font-size:30px; }
.page-about .about-recognition-editorial .about-award-year span { font:400 13px var(--sans); color:var(--ink-soft); }
.page-about .about-publication-image { max-width:1200px;  }
.page-about .about-publication-image img { width:auto; max-width:100%; height:auto; max-height:none; object-fit:contain; object-position:left center; }
.page-about .about-2021-intro { color:var(--ink-soft); font-size:14px; line-height:1.8; max-width:1000px; margin:0 0 22px; }
.page-about .about-awards-native { display:grid; grid-template-columns:1.35fr 1fr .8fr; gap:18px; align-items:start; }
.page-about .about-awards-native figure { margin:0; min-width:0; }
.page-about .about-awards-native img { width:100%; height:auto; display:block; object-fit:contain; }
.page-about .about-awards-native figcaption { margin-top:11px; font-size:11px; color:var(--ink-soft); }
@media(max-width:920px) { .page-about .about-hero-editorial { padding:105px 0 60px; } .page-about .about-hero-editorial .about-hero-inner { grid-template-columns:1fr 1fr; gap:22px; } .page-about .about-awards-native { grid-template-columns:1fr 1fr; } }
@media(max-width:760px) { .page-about .about-hero-editorial { padding:100px 0 58px; } .page-about .about-hero-editorial .about-hero-inner { grid-template-columns:1fr; gap:29px; } .page-about .about-hero-editorial .about-hero-photo { max-width:420px; width:100%; } .page-about .about-hero-editorial .about-hero-copy h1 { font-size:clamp(51px,12vw,72px); } .page-about .about-awards-native { grid-template-columns:1fr; gap:35px; } .page-about .about-recognition-editorial .about-award-year { display:block; } .page-about .about-recognition-editorial .about-award-year span { display:block; margin-top:3px; } }

/* Photographie personnelle integree a Publications & distinctions */
.page-about .about-personal-in-recognition {
  display:grid;
  grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
  gap:clamp(30px,5vw,75px);
  align-items:center;
  padding:22px 0 46px;
  margin-bottom:26px;
  border-bottom:1px solid var(--line);
}
.page-about .about-personal-in-recognition-copy h3 {
  margin:12px 0 22px;
  font-size:clamp(32px,3.1vw,49px);
  line-height:1.08;
}
.page-about .about-personal-in-recognition-copy p {
  max-width:520px;
  color:var(--ink-soft);
  font-size:14px;
  line-height:1.85;
  margin:0 0 15px;
}
.page-about .about-personal-in-recognition-photos {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  align-items:start;
}
.page-about .about-personal-in-recognition-photos figure { margin:0;min-width:0; }
.page-about .about-personal-in-recognition-photos img {
  width:100%;height:auto;display:block;object-fit:contain;
}
/* Science & Vie plus petite, sans recadrage */
.page-about .about-recognition-editorial .about-publication-image img {
  display:block;width:auto;max-width:100%;max-height:440px;height:auto;object-fit:contain;
}
/* Prix : image principale bien plus grande, au format naturel */
.page-about .about-recognition-editorial .about-awards-native {
  display:block;
}
.page-about .about-recognition-editorial .about-awards-native > img {
  display:block;width:min(100%,1050px);height:auto;object-fit:contain;
}
@media (max-width:920px) {
  .page-about .about-personal-in-recognition { grid-template-columns:1fr; }
  .page-about .about-personal-in-recognition-photos { max-width:750px; }
}
@media (max-width:600px) {
  .page-about .about-personal-in-recognition-photos { gap:9px; }
  .page-about .about-recognition-editorial .about-publication-image img { max-height:none; }
}

/* Ajustements V8 : conserver l'ordre souhaite et une composition plus resserree */
.page-about .about-recognition-editorial { padding-top:clamp(30px,3.5vw,52px); }
.page-about .about-personal-in-recognition {
  padding-top:0;
  padding-bottom:clamp(24px,3vw,42px);
  margin-bottom:clamp(20px,2.8vw,38px);
  border-bottom:0;
}
.page-about .about-recognition-editorial .about-publication-image img {
  max-height:none;
  width:100%;
  max-width:min(100%,1400px);
}
.page-about .about-recognition-editorial .about-awards-native > img {
  width:min(100%,790px);
}
@media(max-width:600px) {
  .page-about .about-recognition-editorial .about-publication-image img { max-height:none; width:100%; }
  .page-about .about-recognition-editorial .about-awards-native > img { width:100%; }
}

/* À propos : récompenses mises en valeur et publication agrandissable */
.page-about .about-first-prizes {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(14px,2.2vw,28px);
  margin:24px 0 14px;
  max-width:950px;
}
.page-about .about-first-prize {
  padding:25px clamp(20px,3vw,38px) 27px;
  background:#eee5d8;
  border-left:3px solid #a48462;
}
.page-about .about-first-prize-rank {
  display:block;
  color:#8d6b46;
  font-family:var(--serif);
  font-size:clamp(38px,4vw,60px);
  line-height:1.05;
  margin-bottom:13px;
}
.page-about .about-first-prize-category {
  display:block;
  color:var(--ink);
  font-size:clamp(12px,1.15vw,15px);
  font-weight:600;
  line-height:1.5;
}
.page-about .about-first-prizes-caption {
  max-width:950px;
  margin:0 0 32px;
  font-size:12px;
  color:var(--ink-soft);
}
.page-about .about-publication-zoom {
  display:inline-flex;
  flex-direction:column;
  align-items:flex-start;
  max-width:100%;
  cursor:zoom-in;
}
.page-about .about-publication-zoom-label {
  margin-top:12px;
  color:var(--ink-soft);
  font-size:11px;
  letter-spacing:.07em;
  border-bottom:1px solid currentColor;
}
.page-about .about-publication-zoom:hover .about-publication-zoom-label,
.page-about .about-publication-zoom:focus-visible .about-publication-zoom-label {color:var(--ink);}
@media(max-width:650px) {
  .page-about .about-first-prizes {grid-template-columns:1fr;}
  .page-about .about-first-prize {padding:22px 24px;}
}

/* V11 : photographie d'art et prix, sans changer le CSS commun */
.page-about .about-personal-art-link {display:block; min-width:0; align-self:center; text-decoration:none;}
.page-about .about-personal-art-link figure {margin:0; position:relative; background:#e6ded3;}
.page-about .about-personal-art-link img {width:100%;height:auto;max-height:540px;object-fit:contain;display:block;transition:opacity .25s ease;}
.page-about .about-personal-art-link:hover img {opacity:.9;}
.page-about .about-personal-art-link figcaption {padding:12px 0 0;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;}
.page-about .about-personal-art-link figcaption span {padding-left:8px;}
.page-about .about-first-prizes-photos {max-width:1200px;align-items:stretch;gap:clamp(16px,2.7vw,35px);}
.page-about .about-first-prize-with-photo {padding:0;display:flex;flex-direction:column;border-left:0;background:#eee5d8;overflow:hidden;}
.page-about .about-first-prize-with-photo figure {margin:0;background:#e3d9cc;padding:18px;display:flex;align-items:center;justify-content:center;min-height:290px;}
.page-about .about-first-prize-with-photo figure img {display:block;max-width:100%;width:auto;height:auto;max-height:400px;object-fit:contain;}
.page-about .about-first-prize-info {padding:25px 30px 28px;border-left:3px solid #a48462;flex:1;}
.page-about .about-first-prize-with-photo .about-first-prize-rank {font-size:clamp(28px,3.5vw,28px);margin-bottom:9px;}
.page-about .about-first-prize-with-photo .about-first-prize-category {font-family:var(--sans);font-size:clamp(14px,1.25vw,17px);font-weight:600;margin:0 0 12px;}
.page-about .about-first-prize-info p {font-size:12px;line-height:1.6;color:var(--ink-soft);margin:0;}
@media(max-width:650px){.page-about .about-first-prize-with-photo figure {min-height:180px;}.page-about .about-first-prize-info {padding:20px 22px;}}

.extracted-inline-7 {color:#fff;opacity:.8}
.extracted-inline-8 {margin-top:22px;
              color:rgba(236,229,220,.72);
              font-size:13px;}

/* Source: photo-art.html (styles de page) */

    /* Hero plus proche du header */
    .page-about .about-hero-inner {
      min-height: 600px;
      padding-top: 38px;
      padding-bottom: 58px;
    }

    /* Distinctions : version éditoriale avec les photos visibles */
    .page-about .about-recognition-head {
      margin-bottom: 52px;
    }

    .page-about .about-awards-showcase {
      display: grid;
      gap: 18px;
    }

    .page-about .about-award-feature {
      display: grid;
      grid-template-columns: .72fr 1.28fr;
      min-height: 420px;
      border: 1px solid rgba(255,255,255,.15);
      background: rgba(255,255,255,.025);
      overflow: hidden;
    }

    .page-about .about-award-feature.reverse {
      grid-template-columns: 1.28fr .72fr;
    }

    .page-about .about-award-feature.reverse .about-award-media {
      order: 1;
    }

    .page-about .about-award-feature.reverse .about-award-copy {
      order: 2;
    }

    .page-about .about-award-copy {
      display: flex;
      flex-direction: column;
      justify-content: center;
      padding: clamp(35px, 5vw, 70px);
    }

    .page-about .about-award-kicker {
      display: block;
      margin-bottom: 27px;
      color: #c3a583;
      font-size: 9px;
      font-weight: 600;
      letter-spacing: .19em;
      text-transform: uppercase;
    }

    .page-about .about-award-copy h3 {
      margin: 0 0 20px;
      color: #f7f3ec;
      font-size: clamp(31px, 3.2vw, 50px);
      line-height: 1.04;
    }

    .page-about .about-award-copy p {
      max-width: 500px;
      margin: 0;
      color: rgba(247,243,236,.69);
      font-size: 14px;
      line-height: 1.75;
    }

    .page-about .about-award-copy strong,
    .page-about .about-award-copy em {
      color: #f7f3ec;
    }

    .page-about .about-award-media {
      margin: 0;
      min-height: 420px;
      overflow: hidden;
      background: #171512;
    }

    .page-about .about-award-media img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

    .page-about .about-award-duo {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 4px;
      min-height: 420px;
      background: #171512;
    }

    .page-about .about-award-duo figure {
      position: relative;
      margin: 0;
      overflow: hidden;
    }

    .page-about .about-award-duo img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

    .page-about .about-award-duo figcaption {
      position: absolute;
      right: 14px;
      bottom: 14px;
      left: 14px;
      padding: 10px 12px;
      background: rgba(23,21,18,.72);
      color: #f7f3ec;
      font-size: 8px;
      font-weight: 600;
      letter-spacing: .14em;
      text-transform: uppercase;
    }

    /* Plus aucun effet de suite 01 / 02 / 03 */
    .page-about .about-universe-card > div > span,
    .page-about .about-method-grid > article > span {
      display: none;
    }

    .page-about .about-universe-card h3 {
      margin-top: 0;
    }

    .page-about .about-method-grid article {
      padding-top: 42px;
    }

    /* CTA : le contenu reste bien dans le wrap */
    .page-about .about-final-cta > .wrap {
      position: relative;
      z-index: 2;
      width: min(92vw, var(--max));
      margin-inline: auto;
    }

    .page-about .about-final-cta > .wrap .about-final-content {
      width: 100%;
    }

    @media (max-width: 1050px) {
      .page-about .about-award-feature,
      .page-about .about-award-feature.reverse {
        grid-template-columns: 1fr;
      }

      .page-about .about-award-feature.reverse .about-award-media,
      .page-about .about-award-feature.reverse .about-award-copy {
        order: initial;
      }

      .page-about .about-award-media,
      .page-about .about-award-duo {
        min-height: 380px;
      }
    }

    @media (max-width: 760px) {
      .page-about .about-hero-inner {
        padding-top: 28px;
        padding-bottom: 52px;
      }

      .page-about .about-award-feature {
        min-height: 0;
      }

      .page-about .about-award-copy {
        padding: 36px 26px 40px;
      }

      .page-about .about-award-media {
        min-height: 330px;
      }

      .page-about .about-award-duo {
        grid-template-columns: 1fr;
        min-height: 0;
      }

      .page-about .about-award-duo figure {
        min-height: 330px;
      }
    }

    /* VERSION EDITORIALE EPUREE — UNIQUEMENT PAGE A PROPOS */
    .page-about .about-hero-new {background:#f7f3ec;}
    .page-about .about-hero-new .about-hero-inner {grid-template-columns:minmax(0,1.15fr) minmax(280px,.7fr);gap:clamp(36px,6vw,95px);min-height:610px;}
    .page-about .about-hero-new .about-hero-copy h1 {font-size:clamp(52px,5.2vw,83px);}
    .page-about .about-hero-new .about-hero-lead {font-family:var(--serif);font-size:clamp(22px,2.15vw,31px);line-height:1.37;color:var(--ink);max-width:650px;}
    .page-about .about-hero-secondary {font-size:14px;line-height:1.8;color:var(--ink-soft);max-width:560px;margin-bottom:32px;}
    .page-about .about-story-note {font-size:13px!important;border-top:1px solid var(--line);padding-top:18px;margin-top:26px;}
    .page-about .about-recognition-quiet {background:#f1ece4;color:var(--ink);padding:clamp(55px,6vw,90px) 0;}
    .page-about .about-recognition-quiet h2 {font-size:clamp(34px,3.4vw,53px);margin:0 0 12px;}
    .page-about .about-recognition-intro {max-width:650px;font-size:14px;line-height:1.8;color:var(--ink-soft);margin-bottom:36px;}
    .page-about .about-recognition-list {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}
    .page-about .about-recognition-entry {min-width:0;display:flex;align-items:center;gap:16px;padding:17px 0;border-top:1px solid var(--line);}
    .page-about .about-recognition-entry > img,.page-about .about-recognition-pair {width:84px;height:92px;flex:0 0 84px;object-fit:cover;background:#ded6cc;}
    .page-about .about-recognition-pair {display:grid;grid-template-columns:1fr 1fr;gap:2px;overflow:hidden;}
    .page-about .about-recognition-pair img {height:100%;width:100%;object-fit:cover;}
    .page-about .about-recognition-entry span {color:var(--gold);font-size:9px;font-weight:600;letter-spacing:.10em;text-transform:uppercase;}
    .page-about .about-recognition-entry h3 {font-size:clamp(19px,1.6vw,24px);line-height:1.1;margin:7px 0;}
    .page-about .about-recognition-entry p {font-size:12px;line-height:1.5;color:var(--ink-soft);margin:0;}
    .page-about .about-final-actions {display:flex;flex-wrap:wrap;gap:12px;}
    .page-about .about-final-cta-new .about-final-content h2 {max-width:900px;}
    @media(max-width:1000px) {.page-about .about-recognition-list {grid-template-columns:1fr;gap:2px;}.page-about .about-recognition-entry > img,.page-about .about-recognition-pair{width:100px;height:100px;flex-basis:100px;}}
    @media(max-width:760px) {.page-about .about-hero-new .about-hero-inner {grid-template-columns:1fr;}.page-about .about-hero-new .about-hero-copy h1 {font-size:clamp(46px,12vw,66px);}.page-about .about-final-actions{flex-direction:column;}.page-about .about-final-actions .btn{width:100%;}.page-about .about-recognition-entry h3{font-size:21px;}}
  

/* À PROPOS : mise en page éditoriale, uniquement sur cette page */
.page-about .about-hero-editorial { background:#f7f3ec; padding:120px 0 90px; }
.page-about .about-hero-editorial .about-hero-inner { min-height:0; display:grid; grid-template-columns:minmax(0,520px) minmax(0,1fr); gap:clamp(18px,2vw,30px); align-items:center; padding:0; }
.page-about .about-hero-editorial .about-hero-photo { width:100%; max-width:520px; aspect-ratio:auto; justify-self:end; background:transparent; overflow:visible; }
.page-about .about-hero-editorial .about-hero-photo img { display:block; width:100%; height:auto; filter:grayscale(100%); object-fit:contain; }
.page-about .about-hero-editorial .about-hero-copy { max-width:680px; }
.page-about .about-hero-editorial .about-hero-copy h1 { font-size:clamp(56px,5.9vw,94px); margin:12px 0 25px; line-height:1; }
.page-about .about-hero-editorial .about-hero-lead { font-size:20px; line-height:1.6; font-family:var(--serif); color:var(--ink); margin-bottom:20px; }
.page-about .about-hero-editorial .about-hero-copy p:not(.about-hero-lead) { color:var(--ink-soft); font-size:14px; line-height:1.83; margin:0 0 17px; }
.page-about .about-hero-editorial .about-intro-signature { padding-top:10px; font-family:var(--serif); font-size:27px !important; color:var(--ink) !important; }
.page-about .about-hero-editorial .about-intro-signature span { display:block; font:400 10px var(--sans); letter-spacing:.11em; color:var(--ink-soft); margin-top:5px; text-transform:uppercase; }
.page-about .about-hero-editorial .text-link { margin-top:9px; }
.page-about .about-recognition-editorial { background:#f7f3ec; color:var(--ink); }
.page-about .about-recognition-editorial .eyebrow { color:var(--gold); }
.page-about .about-recognition-editorial h2 { font-size:clamp(39px,3.6vw,57px); line-height:1.06; margin:15px 0 17px; }
.page-about .about-recognition-editorial .about-recognition-intro { max-width:690px; color:var(--ink-soft); font-size:14px; line-height:1.8; margin:0 0 48px; }
.page-about .about-recognition-editorial .about-award-year { display:flex; align-items:baseline; gap:20px; border-top:none; padding:20px 0 18px; margin-top:28px; font-family:var(--serif); font-size:30px; }
.page-about .about-recognition-editorial .about-award-year span { font:400 13px var(--sans); color:var(--ink-soft); }
.page-about .about-publication-image { max-width:1200px;  }
.page-about .about-publication-image img { width:auto; max-width:100%; height:auto; max-height:none; object-fit:contain; object-position:left center; }
.page-about .about-2021-intro { color:var(--ink-soft); font-size:14px; line-height:1.8; max-width:1000px; margin:0 0 22px; }
.page-about .about-awards-native { display:grid; grid-template-columns:1.35fr 1fr .8fr; gap:18px; align-items:start; }
.page-about .about-awards-native figure { margin:0; min-width:0; }
.page-about .about-awards-native img { width:100%; height:auto; display:block; object-fit:contain; }
.page-about .about-awards-native figcaption { margin-top:11px; font-size:11px; color:var(--ink-soft); }
@media(max-width:920px) { .page-about .about-hero-editorial { padding:105px 0 60px; } .page-about .about-hero-editorial .about-hero-inner { grid-template-columns:1fr 1fr; gap:22px; } .page-about .about-awards-native { grid-template-columns:1fr 1fr; } }
@media(max-width:760px) { .page-about .about-hero-editorial { padding:100px 0 58px; } .page-about .about-hero-editorial .about-hero-inner { grid-template-columns:1fr; gap:29px; } .page-about .about-hero-editorial .about-hero-photo { max-width:420px; width:100%; } .page-about .about-hero-editorial .about-hero-copy h1 { font-size:clamp(51px,12vw,72px); } .page-about .about-awards-native { grid-template-columns:1fr; gap:35px; } .page-about .about-recognition-editorial .about-award-year { display:block; } .page-about .about-recognition-editorial .about-award-year span { display:block; margin-top:3px; } }

/* Photographie personnelle integree a Publications & distinctions */
.page-about .about-personal-in-recognition {
  display:grid;
  grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
  gap:clamp(30px,5vw,75px);
  align-items:center;
  padding:22px 0 46px;
  margin-bottom:26px;
  border-bottom:1px solid var(--line);
}
.page-about .about-personal-in-recognition-copy h3 {
  margin:12px 0 22px;
  font-size:clamp(32px,3.1vw,49px);
  line-height:1.08;
}
.page-about .about-personal-in-recognition-copy p {
  max-width:520px;
  color:var(--ink-soft);
  font-size:14px;
  line-height:1.85;
  margin:0 0 15px;
}
.page-about .about-personal-in-recognition-photos {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  align-items:start;
}
.page-about .about-personal-in-recognition-photos figure { margin:0;min-width:0; }
.page-about .about-personal-in-recognition-photos img {
  width:100%;height:auto;display:block;object-fit:contain;
}
/* Science & Vie plus petite, sans recadrage */
.page-about .about-recognition-editorial .about-publication-image img {
  display:block;width:auto;max-width:100%;max-height:440px;height:auto;object-fit:contain;
}
/* Prix : image principale bien plus grande, au format naturel */
.page-about .about-recognition-editorial .about-awards-native {
  display:block;
}
.page-about .about-recognition-editorial .about-awards-native > img {
  display:block;width:min(100%,1050px);height:auto;object-fit:contain;
}
@media (max-width:920px) {
  .page-about .about-personal-in-recognition { grid-template-columns:1fr; }
  .page-about .about-personal-in-recognition-photos { max-width:750px; }
}
@media (max-width:600px) {
  .page-about .about-personal-in-recognition-photos { gap:9px; }
  .page-about .about-recognition-editorial .about-publication-image img { max-height:none; }
}

/* Ajustements V8 : conserver l'ordre souhaite et une composition plus resserree */
.page-about .about-recognition-editorial { padding-top:clamp(30px,3.5vw,52px); }
.page-about .about-personal-in-recognition {
  padding-top:0;
  padding-bottom:clamp(24px,3vw,42px);
  margin-bottom:clamp(20px,2.8vw,38px);
  border-bottom:0;
}
.page-about .about-recognition-editorial .about-publication-image img {
  max-height:none;
  width:100%;
  max-width:min(100%,1400px);
}
.page-about .about-recognition-editorial .about-awards-native > img {
  width:min(100%,790px);
}
@media(max-width:600px) {
  .page-about .about-recognition-editorial .about-publication-image img { max-height:none; width:100%; }
  .page-about .about-recognition-editorial .about-awards-native > img { width:100%; }
}

/* À propos : récompenses mises en valeur et publication agrandissable */
.page-about .about-first-prizes {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(14px,2.2vw,28px);
  margin:24px 0 14px;
  max-width:950px;
}
.page-about .about-first-prize {
  padding:25px clamp(20px,3vw,38px) 27px;
  background:#eee5d8;
  border-left:3px solid #a48462;
}
.page-about .about-first-prize-rank {
  display:block;
  color:#8d6b46;
  font-family:var(--serif);
  font-size:clamp(38px,4vw,60px);
  line-height:1.05;
  margin-bottom:13px;
}
.page-about .about-first-prize-category {
  display:block;
  color:var(--ink);
  font-size:clamp(12px,1.15vw,15px);
  font-weight:600;
  line-height:1.5;
}
.page-about .about-first-prizes-caption {
  max-width:950px;
  margin:0 0 32px;
  font-size:12px;
  color:var(--ink-soft);
}
.page-about .about-publication-zoom {
  display:inline-flex;
  flex-direction:column;
  align-items:flex-start;
  max-width:100%;
  cursor:zoom-in;
}
.page-about .about-publication-zoom-label {
  margin-top:12px;
  color:var(--ink-soft);
  font-size:11px;
  letter-spacing:.07em;
  border-bottom:1px solid currentColor;
}
.page-about .about-publication-zoom:hover .about-publication-zoom-label,
.page-about .about-publication-zoom:focus-visible .about-publication-zoom-label {color:var(--ink);}
@media(max-width:650px) {
  .page-about .about-first-prizes {grid-template-columns:1fr;}
  .page-about .about-first-prize {padding:22px 24px;}
}

/* V11 : photographie d'art et prix, sans changer le CSS commun */
.page-about .about-personal-art-link {display:block; min-width:0; align-self:center; text-decoration:none;}
.page-about .about-personal-art-link figure {margin:0; position:relative; background:#e6ded3;}
.page-about .about-personal-art-link img {width:100%;height:auto;max-height:540px;object-fit:contain;display:block;transition:opacity .25s ease;}
.page-about .about-personal-art-link:hover img {opacity:.9;}
.page-about .about-personal-art-link figcaption {padding:12px 0 0;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;}
.page-about .about-personal-art-link figcaption span {padding-left:8px;}
.page-about .about-first-prizes-photos {max-width:1200px;align-items:stretch;gap:clamp(16px,2.7vw,35px);}
.page-about .about-first-prize-with-photo {padding:0;display:flex;flex-direction:column;border-left:0;background:#eee5d8;overflow:hidden;}
.page-about .about-first-prize-with-photo figure {margin:0;background:#e3d9cc;padding:18px;display:flex;align-items:center;justify-content:center;min-height:290px;}
.page-about .about-first-prize-with-photo figure img {display:block;max-width:100%;width:auto;height:auto;max-height:400px;object-fit:contain;}
.page-about .about-first-prize-info {padding:25px 30px 28px;border-left:3px solid #a48462;flex:1;}
.page-about .about-first-prize-with-photo .about-first-prize-rank {font-size:clamp(28px,3.5vw,28px);margin-bottom:9px;}
.page-about .about-first-prize-with-photo .about-first-prize-category {font-family:var(--sans);font-size:clamp(14px,1.25vw,17px);font-weight:600;margin:0 0 12px;}
.page-about .about-first-prize-info p {font-size:12px;line-height:1.6;color:var(--ink-soft);margin:0;}
@media(max-width:650px){.page-about .about-first-prize-with-photo figure {min-height:180px;}.page-about .about-first-prize-info {padding:20px 22px;}}


/* Source: photo-art.html (styles de page) */

.page-about .art-hero{padding:clamp(155px,15vw,235px) 0 clamp(70px,8vw,120px);background:var(--cream);}
.page-about .art-hero h1{font-size:clamp(65px,8vw,128px);line-height:.98;margin:18px 0 24px;}
.page-about .art-hero p{max-width:700px;color:var(--ink-soft);font-size:clamp(15px,1.5vw,18px);line-height:1.85;}
.page-about .art-intro{background:var(--paper);}
.page-about .art-intro h2{font-size:clamp(36px,4.1vw,62px);max-width:820px;}
.page-about .art-intro p{max-width:720px;color:var(--ink-soft);}
.page-about .art-gallery{background:var(--cream);padding-top:60px;}
.page-about .art-gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(28px,4vw,70px);align-items:start;}
.page-about .art-gallery figure{margin:0;}
.page-about .art-gallery img{display:block;width:100%;height:auto;object-fit:contain;background:#e8dfd3;}
.page-about .art-gallery figcaption{color:var(--ink-soft);font-size:11px;margin-top:12px;letter-spacing:.04em;}
.page-about .art-back{display:inline-block;margin-top:50px;border-bottom:1px solid;padding-bottom:5px;font-size:10px;letter-spacing:.13em;text-transform:uppercase;}
@media(max-width:760px){.page-about .art-gallery-grid{grid-template-columns:1fr;}.page-about .art-hero{padding-top:145px;}}

.extracted-inline-9 {margin-top:22px;
              color:rgba(236,229,220,.72);
              font-size:13px;}

/* Fenêtre d’agrandissement de la publication, accessible et responsive */
.page-about .publication-lightbox { position:fixed; inset:0; width: min(96vw, 1500px); max-width:96vw; max-height:94dvh; border:0; padding:40px 15px 15px; background:#f7f3ec; box-shadow:0 25px 100px rgba(0,0,0,.3); overflow:auto; }
.page-about .publication-lightbox::backdrop { background:rgba(20,17,14,.85); }
.page-about .publication-lightbox-img { display:block; margin:auto; width:auto; max-width:100%; height:auto; }
.page-about .publication-lightbox-close { position:sticky; top:-34px; float:right; z-index:2; border:0; background:#27231f; color:white; font-size:30px; width:43px; height:43px; line-height:1; cursor:pointer; }
.page-about .about-publication-zoom { cursor:zoom-in; }
@media(max-width:600px){.page-about .publication-lightbox { width:100vw;max-width:100vw;max-height:96dvh;padding:44px 8px 8px; }}
/* Lien supplémentaire sur grands menus : compacter sans changer la grille mobile */
@media(min-width:921px){.nav-links { gap:clamp(12px,1.3vw,23px); }}

/* Publication : image seule, clic pour agrandir puis refermer */
.page-about .publication-lightbox-img { cursor: zoom-out; }
.page-about .about-publication-zoom-label { display:none; }

/* Publication : la vignette est un bouton accessible, sans navigation */
.page-about button.about-publication-zoom { display:block; padding:0; border:0; background:transparent; width:fit-content; max-width:100%; text-align:left; cursor:zoom-in; }


/* CONTACT — image à droite : texte et image défilent ensemble. */
.page-contact .contact-main-grid { align-items: start; }
.page-contact .contact-intro { position: static; top: auto; align-self: start; }
.page-contact .contact-photo {  min-height: 650px; height: 100%; align-self: stretch; }
.page-contact .contact-photo img { width: 100%; height: 100%; object-fit: cover; }
.page-contact .footer-brand + p { margin-top: 22px; color: rgba(236,229,220,.72); font-size: 13px; }
@media (max-width: 760px) {
  .page-contact .contact-photo { min-height: 480px; }
}

/* A propos - photos personnelles sans fond ni effet au survol */
.page-about .about-personal-art-link figure {
  background: transparent;
  padding: 0;
}
.page-about .about-personal-art-link img,
.page-about .about-personal-art-link:hover img,
.page-about .about-personal-art-link:focus-visible img {
  opacity: 1;
  filter: none;
  transform: none;
  transition: none;
}

/* A propos : 3 emplacements de distinctions de meme largeur */
@media (min-width: 921px) {
  .page-about .about-first-prizes.about-first-prizes-photos {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    max-width: none;
    width: 100%;
  }
}
@media (min-width: 651px) and (max-width: 920px) {
  .page-about .about-first-prizes.about-first-prizes-photos {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: none;
  }
}
@media (max-width: 650px) {
  .page-about .about-first-prizes.about-first-prizes-photos {
    grid-template-columns: 1fr;
    max-width: none;
  }
}


/* À propos : présentation éditoriale des distinctions — V12 */
.page-about .about-recognition-lead{max-width:760px;margin:0 0 36px;color:var(--ink-soft);font-size:15px;line-height:1.8}
.page-about .about-first-prizes.about-first-prizes-photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,1.8vw,26px);align-items:stretch;margin:23px 0 0;max-width:none}
.page-about .about-first-prize-with-photo{min-width:0;display:flex;flex-direction:column;background:transparent;border:1px solid rgba(39,35,31,.13);overflow:hidden}
.page-about .about-first-prize-with-photo figure,.page-about .about-first-prize-nomination .about-first-prize-visual{height:clamp(230px,25vw,370px);min-height:0;padding:18px;background:#e9e1d6;display:flex;justify-content:center;align-items:center}
.page-about .about-first-prize-with-photo figure img{display:block;width:100%;height:100%;max-height:none;object-fit:contain}
.page-about .about-first-prize-info{flex:1;padding:24px 25px 26px;border-left:0;border-top:2px solid #a48462;background:#f7f3ec}
.page-about .about-first-prize-with-photo .about-first-prize-rank{display:block;margin:0 0 10px;color:#906e4b;font-family:var(--serif);font-size:clamp(32px,3vw,43px);line-height:1.05}
.page-about .about-first-prize-with-photo .about-first-prize-category{margin:0 0 10px;font-family:var(--sans);font-size:clamp(14px,1.2vw,17px);font-weight:600;line-height:1.45;text-transform:none}
.page-about .about-first-prize-info p{margin:0;color:var(--ink-soft);font-size:12px;line-height:1.65}
.page-about .about-first-prize-nomination .about-first-prize-visual{flex-direction:column;text-align:center;gap:5px;padding:25px;background:#ded5c8;color:var(--ink)}
.page-about .about-nomination-kicker{font-size:9px;letter-spacing:.17em;text-transform:uppercase;color:#836a51}
.page-about .about-nomination-big{font-family:var(--serif);font-size:clamp(50px,5vw,86px);line-height:1.05}
.page-about .about-nomination-small{font-family:var(--serif);font-size:clamp(22px,2.1vw,35px);line-height:1.15}
.page-about .about-nomination-sub{margin-top:20px;font-size:11px;color:var(--ink-soft)}
@media(max-width:920px){.page-about .about-first-prizes.about-first-prizes-photos{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.page-about .about-first-prizes.about-first-prizes-photos{grid-template-columns:1fr}.page-about .about-first-prize-with-photo figure,.page-about .about-first-prize-nomination .about-first-prize-visual{height:310px}}

/* À propos : une seule photographie d’auteur, sans légende ni effet au survol */
.page-about .about-personal-in-recognition {
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  gap: clamp(35px, 5vw, 90px);
}
.page-about .about-personal-art-link {
  display: block;
  width: 100%;
  max-width: 670px;
  justify-self: end;
}
.page-about .about-personal-art-link figure {
  margin: 0;
  padding: 0;
  background: transparent;
  border: 0;
}
.page-about .about-personal-art-link img,
.page-about .about-personal-art-link:hover img,
.page-about .about-personal-art-link:focus-visible img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 620px;
  object-fit: contain;
  object-position: center;
  background: transparent;
  opacity: 1;
  filter: none;
  transform: none;
  transition: none;
}
@media (max-width: 920px) {
  .page-about .about-personal-in-recognition {grid-template-columns: 1fr;}
  .page-about .about-personal-art-link {justify-self: start; max-width: 650px;}
}


/* ==========================================
   TARIFS — ÉVÉNEMENTS
   Texte à gauche, 2 cartes à droite
   ========================================== */

.page-tarifs #evenements .tarifs-events-layout {
  display: grid;
  grid-template-columns: minmax(240px, .85fr) minmax(0, 2fr);
  gap: clamp(28px, 3.8vw, 70px);
  align-items: start;
}

.page-tarifs #evenements .tarifs-section-head {
  margin: 0;
  min-width: 0;
}

.page-tarifs #evenements .tarifs-section-head h2 {
  font-size: clamp(38px, 4vw, 60px);
}

.page-tarifs #evenements .event-price-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 15px;
  min-width: 0;
}

.page-tarifs #evenements .event-price-card {
  min-height: 350px;
  padding: 32px clamp(20px, 2vw, 35px);
}

.page-tarifs #evenements .event-price-card h3 {
  font-size: clamp(28px, 2.5vw, 39px);
}

/* Tablette */
@media (max-width: 1100px) {
  .page-tarifs #evenements .tarifs-events-layout {
    grid-template-columns: 1fr;
    gap: 30px;
  }
}

/* Mobile */
@media (max-width: 680px) {
  .page-tarifs #evenements .event-price-grid {
    grid-template-columns: 1fr;
  }

  .page-tarifs #evenements .event-price-card {
    min-height: 0;
  }
}


/* PROFESSIONNELS — Afficher la photo entière */

.page-pro .pro-hero-image {
  height: auto;
  min-height: 0;
  overflow: visible;
  align-self: center;
}

.page-pro .pro-hero-image img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

/* Tablette et mobile */
@media (max-width: 1100px) {
  .page-pro .pro-hero-image {
    min-height: 0;
    height: auto;
  }

  .page-pro .pro-hero-image img {
    height: auto;
    object-fit: contain;
  }
}


/* ==========================================
   PHOTO D'ART — Images sans recadrage
   ========================================== */

.page-art .art-gallery-grid figure {
  height: auto;
  min-height: 0;
  overflow: visible;
}

.page-art .art-gallery-grid img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  object-fit: contain;
  max-height: none;
}

/* Tablette et mobile */
@media (max-width: 1100px) {
  .page-art .art-gallery-grid figure,
  .page-art .art-gallery-grid img {
    height: auto;
    min-height: 0;
    aspect-ratio: auto;
  }
}
/* PHOTO D'ART — Photo entière sans recadrage */

.page-art .pro-hero-image {
  min-height: 0;
  height: auto;
  align-self: center;
  overflow: visible;
}

.page-art .pro-hero-image img {
  width: 100%;
  height: auto;
  object-fit: contain;
}


/* ACCUEIL — Photo centrée sur mobile uniquement */

@media (max-width: 768px) {
  body:not([class]) .hero .hero-media img {
    object-fit: cover;
    object-position: 35% center !important;
  }
}

/* MARIAGE — Photo d'en-tête centrée sur mobile */

@media (max-width: 768px) {
  .page-mariage .hero .hero-media img {
    object-fit: cover;
    object-position: 60% center !important;
  }
}
