:root {
  --ink: #171512;
  --ink-soft: #36312c;
  --cream: #f4ede2;
  --paper: #fffaf2;
  --wine: #7b171d;
  --wine-dark: #4e0d11;
  --gold: #bd9554;
  --line: rgba(23,21,18,.16);
  --line-light: rgba(255,255,255,.18);
  --serif: "Playfair Display", Georgia, serif;
  --sans: "DM Sans", Arial, sans-serif;
  --container: min(1180px, calc(100% - 48px));
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--cream);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.65;
  overflow-x: hidden;
}
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }

.skip-link {
  position: fixed;
  top: 10px;
  left: 10px;
  z-index: 999;
  padding: 10px 14px;
  background: #fff;
  color: #000;
  transform: translateY(-160%);
  transition: transform .2s;
}
.skip-link:focus { transform: translateY(0); }

.container { width: var(--container); margin-inline: auto; }
.section { position: relative; padding: 150px 0; overflow: hidden; }
.section-index {
  position: absolute;
  top: 72px;
  left: max(24px, calc((100vw - 1180px)/2 - 80px));
  color: rgba(23,21,18,.18);
  font-size: .72rem;
  letter-spacing: .24em;
  writing-mode: vertical-rl;
}
.section-index::after { content:""; display:block; width:1px; height:82px; margin:18px auto 0; background: currentColor; }
.section-index.light { color: rgba(255,255,255,.36); }

.site-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 100;
  background: rgba(244,237,226,.92);
  border-bottom: 1px solid transparent;
  backdrop-filter: blur(14px);
  transition: background .25s, border-color .25s, box-shadow .25s;
}
.site-header.is-scrolled { border-color: var(--line); box-shadow: 0 8px 28px rgba(35,23,12,.07); }
.nav-wrap {
  min-height: 84px;
  width: min(1380px, calc(100% - 48px));
  margin-inline: auto;
  display: grid;
  grid-template-columns: 270px 1fr auto;
  align-items: center;
  gap: 28px;
}
.brand { width: 245px; }
.brand img { width: 100%; height: auto; }
.site-nav { justify-self: center; display: flex; gap: clamp(18px, 2.2vw, 36px); align-items:center; }
.site-nav a { position: relative; padding: 29px 0 25px; font-size: .9rem; font-weight: 600; }
.site-nav a::after { content:""; position:absolute; left:0; right:100%; bottom:19px; height:2px; background:var(--wine); transition:right .25s; }
.site-nav a:hover::after, .site-nav a.is-active::after { right:0; }
.nav-cta { padding: 11px 18px; background: var(--ink); color:#fff; font-size:.85rem; font-weight:700; transition:background .2s, transform .2s; }
.nav-cta:hover { background: var(--wine); transform:translateY(-2px); }
.menu-toggle { display:none; border:0; background:transparent; padding:10px; cursor:pointer; }
.menu-toggle span { display:block; width:28px; height:2px; margin:6px 0; background:var(--ink); transition:.25s; }

.hero {
  min-height: 100vh;
  padding: 150px max(24px, calc((100vw - 1380px)/2)) 84px;
  display: grid;
  grid-template-columns: .92fr 1.08fr;
  align-items:center;
  gap: clamp(52px, 7vw, 120px);
  background:
    radial-gradient(circle at 12% 18%, rgba(189,149,84,.16), transparent 24%),
    linear-gradient(135deg, #f8f2e8 0%, #f4ede2 62%, #ebe0d1 100%);
  overflow:hidden;
}
.hero::before { content:""; position:absolute; width:520px; height:520px; border:1px solid rgba(123,23,29,.12); border-radius:50%; left:-310px; top:20%; }
.hero-copy { position:relative; z-index:2; max-width:650px; }
.kicker { margin:0 0 24px; display:flex; align-items:center; gap:12px; color:var(--wine); font-size:.75rem; font-weight:700; text-transform:uppercase; letter-spacing:.18em; }
.kicker span { width:34px; height:1px; background:currentColor; }
.kicker.dark { color: var(--wine); }
.kicker.light { color: #dfbe84; }
.hero h1, h2, .showcase-panel h3, .formation-card h3 {
  margin:0;
  font-family:var(--serif);
  font-weight:600;
  line-height:.98;
  letter-spacing:-.035em;
}
.hero h1 { max-width:760px; font-size:clamp(3.6rem, 6vw, 6.8rem); }
.hero .lead { max-width:610px; margin:30px 0 0; color:var(--ink-soft); font-size:clamp(1.05rem, 1.5vw, 1.28rem); }
.hero-actions { display:flex; align-items:center; gap:26px; margin-top:38px; flex-wrap:wrap; }
.btn { display:inline-flex; align-items:center; justify-content:center; min-height:52px; padding:14px 23px; border:1px solid transparent; font-weight:700; font-size:.9rem; transition:transform .2s, background .2s, color .2s, border-color .2s; cursor:pointer; }
.btn:hover { transform:translateY(-2px); }
.btn-dark { background:var(--ink); color:#fff; }
.btn-dark:hover { background:var(--wine); }
.btn-cream { background:var(--cream); color:var(--ink); }
.btn-cream:hover { background:#fff; }
.btn-text { padding-inline:0; min-height:auto; border-bottom:1px solid var(--ink); }
.btn-text span { margin-left:10px; }
.btn-full { width:100%; }
.hero-facts { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; max-width:540px; margin-top:58px; padding-top:24px; border-top:1px solid var(--line); }
.hero-facts div { display:flex; flex-direction:column; }
.hero-facts strong { font-family:var(--serif); font-size:1.9rem; line-height:1; }
.hero-facts span { margin-top:6px; color:#6d6257; font-size:.78rem; }
.hero-visual { position:relative; z-index:1; min-width:0; }
.hero-frame { position:relative; aspect-ratio:4/5; max-height:720px; overflow:hidden; background:#1b1612; box-shadow:0 35px 80px rgba(46,28,15,.2); }
.hero-frame::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, transparent 58%, rgba(20,10,6,.42)); pointer-events:none; }
.hero-frame img { width:100%; height:100%; object-fit:cover; object-position:center; }
.hero-stamp { position:absolute; top:46px; left:-54px; width:124px; height:124px; padding:18px; border-radius:50%; border:1px solid var(--gold); outline:1px solid var(--gold); outline-offset:5px; background:var(--wine); color:#fff; display:flex; flex-direction:column; justify-content:center; text-align:center; transform:rotate(-9deg); }
.hero-stamp span { font-size:.58rem; letter-spacing:.13em; text-transform:uppercase; }
.hero-stamp strong { margin:4px 0; font-size:.74rem; line-height:1.1; }
.hero-caption { position:absolute; right:-34px; bottom:38px; width:min(360px, 72%); padding:20px 24px; background:var(--paper); display:grid; grid-template-columns:auto 1fr; gap:16px; align-items:start; box-shadow:0 20px 45px rgba(46,28,15,.14); }
.hero-caption p { margin:0; font-family:var(--serif); font-style:italic; line-height:1.35; }
.caption-index { color:var(--wine); font-size:.68rem; font-weight:700; }
.ticker { position:absolute; left:0; right:0; bottom:0; height:42px; overflow:hidden; background:var(--wine); color:#fff; display:flex; align-items:center; }
.ticker-track { min-width:max-content; display:flex; align-items:center; gap:24px; animation:ticker 34s linear infinite; font-size:.69rem; letter-spacing:.22em; font-weight:700; }
.ticker i { color:#e0bd7c; font-style:normal; }
@keyframes ticker { to { transform:translateX(-50%); } }

.entreprise { background:var(--paper); }
.entreprise-grid { display:grid; grid-template-columns:1.03fr .97fr; gap:clamp(70px, 9vw, 130px); align-items:center; }
.entreprise-media { position:relative; padding:0 55px 55px 0; }
.entreprise-media figure { margin:0; aspect-ratio:4/5; overflow:hidden; }
.entreprise-media img { width:100%; height:100%; object-fit:cover; object-position:center; }
.year-card { position:absolute; right:0; bottom:0; width:225px; min-height:200px; padding:27px; background:var(--wine); color:#fff; display:flex; flex-direction:column; justify-content:center; }
.year-card small { font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; }
.year-card strong { margin:8px 0; font-family:var(--serif); font-size:4.4rem; line-height:.9; color:#e5c58c; }
.year-card span { font-size:.78rem; }
.section-copy h2, .heading-row h2, .quote-copy h2, .contact h2 { font-size:clamp(2.7rem, 4.4vw, 5rem); }
.section-copy .lead-sm, .quote-copy > p { margin:28px 0 18px; font-family:var(--serif); font-size:1.25rem; line-height:1.5; color:#443b33; }
.section-copy > p:not(.kicker):not(.lead-sm) { color:#675d53; }
.signature-list { list-style:none; padding:0; margin:36px 0; border-top:1px solid var(--line); }
.signature-list li { display:grid; grid-template-columns:42px 1fr; gap:12px; padding:13px 0; border-bottom:1px solid var(--line); font-weight:600; }
.signature-list span { color:var(--wine); font-size:.68rem; letter-spacing:.12em; }
.arrow-link { display:inline-flex; gap:14px; font-weight:700; border-bottom:1px solid var(--ink); padding-bottom:5px; }
.arrow-link span { color:var(--wine); }

.services { background:var(--ink); color:#fff; }
.heading-row { display:grid; grid-template-columns:1.35fr .65fr; gap:80px; align-items:end; margin-bottom:72px; }
.heading-row h2 { max-width:780px; }
.heading-row > p { margin:0 0 8px; color:#bfb5aa; }
.service-list { border-top:1px solid var(--line-light); }
.service-item { display:grid; grid-template-columns:70px 1.15fr 1fr 56px; align-items:center; gap:34px; min-height:158px; padding:26px 8px; border-bottom:1px solid var(--line-light); transition:background .25s, padding .25s; }
.service-item:hover { padding-inline:24px; background:rgba(255,255,255,.045); }
.service-no { color:#8e8177; font-size:.7rem; letter-spacing:.12em; }
.service-title { display:flex; align-items:center; gap:20px; }
.service-symbol { color:#d7ad68; font-size:2.1rem; }
.service-item h3 { margin:0; font-family:var(--serif); font-size:clamp(1.7rem, 2.6vw, 2.8rem); font-weight:600; }
.service-item p { margin:0; color:#bfb5aa; font-size:.93rem; }
.service-item > a { width:46px; height:46px; border:1px solid var(--line-light); border-radius:50%; display:grid; place-items:center; font-size:1.2rem; transition:background .2s, color .2s, transform .2s; }
.service-item > a:hover { background:#fff; color:var(--ink); transform:rotate(10deg); }
.services-showcase { position:relative; min-height:590px; margin-top:100px; overflow:hidden; }
.services-showcase::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(18,14,11,.05), rgba(18,14,11,.82)); }
.services-showcase img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.showcase-panel { position:relative; z-index:2; max-width:520px; margin-left:auto; padding:92px 76px; }
.showcase-panel h3 { font-size:clamp(2.6rem, 4.2vw, 4.8rem); }
.showcase-panel .btn { margin-top:34px; }

.soumission { background:var(--cream); }
.quote-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(60px, 9vw, 130px); align-items:start; }
.quote-copy { position:sticky; top:130px; }
.quote-copy > p { color:#51483f; }
.quote-steps { margin-top:42px; border-top:1px solid var(--line); }
.quote-steps div { display:grid; grid-template-columns:48px 1fr; align-items:center; gap:15px; padding:16px 0; border-bottom:1px solid var(--line); }
.quote-steps span { width:34px; height:34px; border:1px solid var(--wine); border-radius:50%; display:grid; place-items:center; color:var(--wine); font-size:.72rem; font-weight:700; }
.quote-steps p { margin:0; }
.quote-form { padding:48px; background:var(--paper); box-shadow:0 25px 70px rgba(49,30,18,.11); border-top:4px solid var(--wine); }
.form-head { display:flex; align-items:end; justify-content:space-between; gap:18px; margin-bottom:32px; padding-bottom:20px; border-bottom:1px solid var(--line); }
.form-head span { font-family:var(--serif); font-size:1.7rem; font-weight:700; }
.form-head small { color:#7d7167; }
.form-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
.form-grid label { display:flex; flex-direction:column; gap:8px; }
.form-grid label > span { font-size:.75rem; font-weight:700; }
.form-grid .full { grid-column:1/-1; }
input, select, textarea { width:100%; border:1px solid #d8ccbd; background:#fff; color:var(--ink); padding:13px 14px; outline:0; border-radius:0; transition:border-color .2s, box-shadow .2s; }
input:focus, select:focus, textarea:focus { border-color:var(--wine); box-shadow:0 0 0 3px rgba(123,23,29,.09); }
textarea { resize:vertical; }
.quote-form .btn { margin-top:24px; }
.form-note { margin:13px 0 0; text-align:center; color:#7b7067; font-size:.75rem; }
.privacy-consent { margin-top:20px; padding:18px; border:1px solid rgba(66,35,24,.18); background:#fffaf2; border-radius:4px; }
.privacy-consent label { display:grid; grid-template-columns:auto 1fr; gap:12px; align-items:start; cursor:pointer; }
.privacy-consent input { width:18px; height:18px; margin-top:2px; accent-color:var(--wine); }
.privacy-consent span { font-size:.78rem; line-height:1.55; color:#5f544c; }
.privacy-consent strong { color:var(--ink); }

.formation { background:#e8ddcf; }
.formation-grid { display:grid; grid-template-columns:.74fr 1.26fr; gap:clamp(60px, 9vw, 130px); align-items:center; }
.formation-card { min-height:610px; padding:54px; background:var(--wine); color:#fff; display:flex; flex-direction:column; justify-content:flex-end; position:relative; overflow:hidden; box-shadow:0 28px 60px rgba(63,20,18,.22); }
.formation-card::before { content:""; position:absolute; width:420px; height:420px; top:-235px; right:-210px; border:1px solid rgba(255,255,255,.2); border-radius:50%; box-shadow:0 0 0 60px rgba(255,255,255,.035), 0 0 0 120px rgba(255,255,255,.02); }
.card-label { position:absolute; top:40px; left:48px; margin:0; font-size:.68rem; letter-spacing:.18em; text-transform:uppercase; color:#e3bf83; }
.card-suits { display:flex; gap:10px; margin-bottom:auto; font-size:2rem; color:#e5c58c; }
.card-suits span:nth-child(2) { color:#fff; }
.formation-card h3 { font-size:clamp(2.8rem, 4vw, 4.6rem); }
.formation-card p:not(.card-label) { color:#e4cfd0; }
.formation-card .btn { align-self:flex-start; margin-top:25px; }
.game-grid { display:grid; grid-template-columns:repeat(2,1fr); margin-top:36px; border-top:1px solid var(--line); border-left:1px solid var(--line); }
.game-grid article { min-height:170px; padding:26px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.game-grid span { color:var(--wine); font-size:.68rem; }
.game-grid h3 { margin:22px 0 6px; font-family:var(--serif); font-size:1.55rem; }
.game-grid p { margin:0; color:#675d53; font-size:.86rem; }

.contact { padding:135px 0 0; background:var(--wine-dark); color:#fff; }
.contact-grid { display:grid; grid-template-columns:1.25fr .75fr; gap:110px; padding-bottom:110px; }
.contact-copy h2 { max-width:800px; }
.contact-copy > p { max-width:650px; color:#d8c4c5; font-size:1.05rem; }
.contact-email { display:inline-flex; align-items:center; gap:20px; margin-top:28px; font-family:var(--serif); font-size:clamp(1.35rem, 2.4vw, 2.3rem); border-bottom:1px solid rgba(255,255,255,.45); }
.contact-email span { color:#e5c58c; }
.contact-details { align-self:end; border-top:1px solid var(--line-light); }
.contact-details div { padding:22px 0; border-bottom:1px solid var(--line-light); display:flex; flex-direction:column; gap:6px; }
.contact-details small { color:#c2a8aa; font-size:.7rem; letter-spacing:.13em; text-transform:uppercase; }
.contact-details strong, .contact-details a { font-size:.95rem; }
.site-footer { width:min(1380px, calc(100% - 48px)); margin:auto; min-height:115px; border-top:1px solid var(--line-light); display:grid; grid-template-columns:250px 1fr auto; align-items:center; gap:30px; color:#ccb8b9; font-size:.78rem; }
.footer-brand { width:220px; padding:8px 14px; background:#fff; }
.site-footer p { text-align:center; }

.toast { position:fixed; right:24px; bottom:24px; z-index:200; max-width:360px; padding:18px 22px; background:var(--ink); color:#fff; box-shadow:0 20px 60px rgba(0,0,0,.25); transform:translateY(160%); opacity:0; transition:.35s; display:flex; flex-direction:column; }
.toast.is-visible { transform:translateY(0); opacity:1; }
.toast strong { color:#e5c58c; }
.toast span { font-size:.84rem; }

.reveal { opacity:0; transform:translateY(28px); transition:opacity .7s ease, transform .7s ease; }
.reveal.is-visible { opacity:1; transform:none; }

@media (max-width: 1100px) {
  .nav-wrap { grid-template-columns:220px 1fr auto; }
  .brand { width:205px; }
  .site-nav { gap:18px; }
  .site-nav a { font-size:.82rem; }
  .hero { grid-template-columns:1fr 1fr; gap:55px; }
  .hero h1 { font-size:clamp(3.2rem, 5.8vw, 5.3rem); }
  .entreprise-grid, .quote-grid, .formation-grid { gap:65px; }
  .service-item { grid-template-columns:55px 1fr 1fr 46px; gap:24px; }
  .contact-grid { gap:70px; }
}

@media (max-width: 900px) {
  :root { --container:min(calc(100% - 36px), 760px); }
  .section { padding:110px 0; }
  .section-index { display:none; }
  .nav-wrap { width:calc(100% - 32px); min-height:72px; grid-template-columns:1fr auto; }
  .brand { width:210px; }
  .nav-cta { display:none; }
  .menu-toggle { display:block; z-index:2; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform:translateY(4px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform:translateY(-4px) rotate(-45deg); }
  .site-nav { position:fixed; inset:72px 0 auto; padding:24px; background:var(--paper); border-bottom:1px solid var(--line); display:grid; gap:0; transform:translateY(-130%); opacity:0; transition:.3s; box-shadow:0 20px 40px rgba(0,0,0,.1); }
  .site-nav.is-open { transform:translateY(0); opacity:1; }
  .site-nav a { padding:14px 0; border-bottom:1px solid var(--line); font-size:1rem; }
  .site-nav a::after { display:none; }
  .hero { min-height:auto; padding:120px 30px 86px; grid-template-columns:1fr; }
  .hero-copy { max-width:760px; }
  .hero-frame { aspect-ratio:16/12; max-height:none; }
  .hero-stamp { left:20px; top:-32px; }
  .hero-caption { right:18px; bottom:18px; }
  .entreprise-grid, .quote-grid, .formation-grid, .contact-grid { grid-template-columns:1fr; }
  .entreprise-media { max-width:620px; }
  .heading-row { grid-template-columns:1fr; gap:24px; }
  .service-item { grid-template-columns:48px 1fr 44px; }
  .service-item p { grid-column:2/3; }
  .service-item > a { grid-column:3; grid-row:1/3; }
  .showcase-panel { padding:72px 45px; }
  .quote-copy { position:static; }
  .formation-card { min-height:520px; }
  .contact-grid { gap:60px; }
  .site-footer { grid-template-columns:1fr; justify-items:center; padding:32px 0; text-align:center; }
  .site-footer p { margin:0; }
}

@media (max-width: 600px) {
  :root { --container:calc(100% - 32px); }
  .section { padding:88px 0; }
  .brand { width:185px; }
  .hero { padding:108px 16px 76px; gap:45px; }
  .hero h1 { font-size:clamp(3rem, 15vw, 4.2rem); }
  .hero .lead { font-size:1rem; }
  .hero-actions { align-items:flex-start; flex-direction:column; gap:18px; }
  .hero-facts { gap:10px; }
  .hero-facts strong { font-size:1.55rem; }
  .hero-facts span { font-size:.68rem; }
  .hero-frame { aspect-ratio:4/5; }
  .hero-stamp { width:100px; height:100px; left:10px; top:-25px; }
  .hero-caption { width:calc(100% - 36px); right:18px; bottom:18px; }
  .entreprise-media { padding:0 30px 40px 0; }
  .year-card { width:175px; min-height:165px; padding:22px; }
  .year-card strong { font-size:3.3rem; }
  .section-copy h2, .heading-row h2, .quote-copy h2, .contact h2 { font-size:clamp(2.5rem, 12vw, 3.7rem); }
  .service-item { grid-template-columns:32px 1fr; gap:14px; padding:28px 0; }
  .service-title { align-items:flex-start; gap:12px; }
  .service-symbol { font-size:1.5rem; }
  .service-item p { grid-column:2; }
  .service-item > a { grid-column:2; grid-row:auto; justify-self:start; margin-top:5px; }
  .services-showcase { min-height:610px; }
  .services-showcase::after { background:linear-gradient(180deg, rgba(18,14,11,.18), rgba(18,14,11,.9)); }
  .showcase-panel { position:absolute; inset:auto 0 0; padding:36px 26px; }
  .quote-form { padding:28px 20px; }
  .form-grid { grid-template-columns:1fr; }
  .form-grid .full { grid-column:auto; }
  .form-head { align-items:flex-start; flex-direction:column; }
  .formation-card { min-height:500px; padding:35px 28px; }
  .card-label { left:28px; }
  .game-grid { grid-template-columns:1fr; }
  .contact { padding-top:88px; }
  .contact-email { font-size:1.25rem; word-break:break-all; }
  .footer-brand { width:195px; }
}

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


/* --- Correctifs et ajouts demandés --- */
.hero-post-actions {
  position: relative;
  z-index: 3;
  padding: 24px 0 26px;
  background: var(--paper);
  border-bottom: 1px solid var(--line);
}
.hero-post-actions .container {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 30px;
  flex-wrap: wrap;
}

.testimonials { background: #efe5d8; padding-top: 135px; }
.testimonials-heading {
  display: grid;
  grid-template-columns: 1.35fr .65fr;
  gap: 80px;
  align-items: end;
  margin-bottom: 58px;
}
.testimonials-heading h2 {
  margin: 0;
  max-width: 850px;
  font-family: var(--serif);
  font-size: clamp(2.7rem, 4.4vw, 5rem);
  font-weight: 600;
  line-height: .98;
  letter-spacing: -.035em;
}
.testimonials-heading > p { margin: 0 0 8px; color: #675d53; }
.testimonial-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.testimonial-card {
  min-width: 0;
  padding: 32px;
  background: var(--paper);
  border: 1px solid rgba(23,21,18,.11);
  display: grid;
  grid-template-rows: 86px 1fr auto;
  gap: 24px;
  box-shadow: 0 16px 38px rgba(55,36,20,.06);
}
.client-logo {
  width: 168px;
  height: 78px;
  padding: 8px 10px;
  background: #fff;
  border: 1px solid rgba(23,21,18,.08);
  display: grid;
  place-items: center;
}
.client-logo img { width: 100%; height: 100%; object-fit: contain; }
.testimonial-card blockquote {
  margin: 0;
  color: #40382f;
  font-family: var(--serif);
  font-size: 1.08rem;
  line-height: 1.58;
}
.testimonial-card footer { padding-top: 18px; border-top: 1px solid var(--line); display: flex; flex-direction: column; gap: 3px; }
.testimonial-card footer strong { color: var(--wine); font-size: .92rem; }
.testimonial-card footer span { color: #70655b; font-size: .78rem; line-height: 1.4; }

.quote-grid { grid-template-columns: .68fr 1.32fr; gap: clamp(52px, 7vw, 105px); }
.quote-form { padding: 46px; }
.form-section { margin: 0 0 38px; padding: 0; border: 0; }
.form-section + .form-section { padding-top: 34px; border-top: 1px solid var(--line); }
.form-section legend {
  padding: 0;
  margin: 0 0 22px;
  color: var(--wine);
  font-family: var(--serif);
  font-size: 1.35rem;
  font-weight: 700;
}
.fieldset-intro { margin: -10px 0 22px; color: #6d6257; font-size: .86rem; }
.legend-row { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.legend-row legend { margin-bottom: 0; }
.table-total { min-width: 126px; padding: 10px 14px; background: var(--wine); color: #fff; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.table-total span { font-size: .65rem; text-transform: uppercase; letter-spacing: .08em; }
.table-total strong { font-family: var(--serif); font-size: 1.5rem; color: #f0cf95; }
.game-choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.game-choice {
  min-height: 62px;
  padding: 10px 12px 10px 16px;
  border: 1px solid #ded2c4;
  background: #fff;
  display: grid !important;
  grid-template-columns: 1fr 74px;
  align-items: center;
  gap: 12px !important;
}
.game-choice > span { color: #40382f; font-size: .77rem !important; line-height: 1.28; }
.game-choice select { min-width: 0; padding: 9px 8px; }
.standalone-label { display: flex; flex-direction: column; gap: 8px; }
.standalone-label > span { font-size: .75rem; font-weight: 700; }
.table-warning { margin: 15px 0 0; padding: 11px 14px; background: #fff2df; border-left: 3px solid var(--gold); color: #6f4c1e; font-size: .79rem; }
input.is-invalid { border-color: #a31820; box-shadow: 0 0 0 3px rgba(163,24,32,.09); }

.footer-brand {
  width: 230px;
  height: 58px;
  padding: 9px 15px;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.footer-brand img { width: 100%; height: 100%; object-fit: contain; }

@media (max-width: 1100px) {
  .testimonial-grid { grid-template-columns: 1fr 1fr; }
  .quote-grid { grid-template-columns: .72fr 1.28fr; gap: 50px; }
  .quote-form { padding: 38px; }
}

@media (max-width: 900px) {
  .testimonials-heading { grid-template-columns: 1fr; gap: 22px; }
  .quote-grid { grid-template-columns: 1fr; }
  .testimonial-grid { grid-template-columns: 1fr; }
  .testimonial-card { grid-template-rows: auto auto auto; }
}

@media (max-width: 600px) {
  .hero-post-actions { padding: 20px 0 22px; }
  .hero-post-actions .container { align-items: stretch; flex-direction: column; gap: 14px; }
  .hero-post-actions .btn { width: 100%; }
  .hero-post-actions .btn-text { justify-content: center; padding: 11px 0; }
  .testimonials { padding-top: 86px; }
  .testimonial-card { padding: 24px 20px; }
  .client-logo { width: 145px; height: 70px; }
  .quote-form { padding: 28px 18px; }
  .game-choice-grid { grid-template-columns: 1fr; }
  .legend-row { align-items: flex-start; flex-direction: column; }
  .table-total { width: 100%; }
  .game-choice { grid-template-columns: 1fr 70px; }
  .footer-brand { width: 205px; height: 54px; }
}

/* Conservation stricte des proportions du logo au pied de page */
.footer-brand { width: 260px; height: auto; padding: 12px 16px; }
.footer-brand img { width: 100%; height: auto; object-fit: initial; }
@media (max-width: 600px) {
  .footer-brand { width: 220px; height: auto; }
}



/* --- Version 3 : correctifs supplémentaires demandés --- */
.hero { padding-bottom: 40px; }
.hero .kicker { gap: 0; }
.hero .kicker span { display: none; }

.ticker {
  position: relative;
  left: auto;
  right: auto;
  bottom: auto;
  grid-column: 1 / -1;
  margin-top: 26px;
  border-radius: 0;
}

.game-section .legend-row {
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 16px;
}
.game-section .fieldset-intro {
  margin: 14px 0 22px;
}
.game-section .table-total {
  flex-shrink: 0;
}

.back-to-top {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 210;
  width: 48px;
  height: 48px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: rgba(23,21,18,.92);
  color: #fff;
  box-shadow: 0 18px 34px rgba(25,15,10,.24);
  font-size: 1.1rem;
  font-weight: 700;
  transition: transform .2s, background .2s, opacity .2s;
}
.back-to-top:hover { background: var(--wine); transform: translateY(-2px); }
.back-to-top:focus-visible { outline: 3px solid rgba(189,149,84,.55); outline-offset: 3px; }

.training-gallery {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-top: 36px;
}
.training-game-card {
  background: var(--paper);
  border: 1px solid rgba(23,21,18,.12);
  box-shadow: 0 16px 38px rgba(55,36,20,.07);
  overflow: hidden;
}
.training-game-card figure { margin: 0; }
.training-game-image {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #1b1612;
}
.training-game-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.training-game-copy {
  padding: 22px 22px 24px;
}
.training-game-copy span {
  color: var(--wine);
  font-size: .68rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.training-game-copy h3 {
  margin: 10px 0 8px;
  font-family: var(--serif);
  font-size: 1.55rem;
}
.training-game-copy p {
  margin: 0;
  color: #675d53;
  font-size: .92rem;
  line-height: 1.6;
}

@media (max-width: 900px) {
  .ticker { margin-top: 22px; }
}

@media (max-width: 700px) {
  .game-section .table-total {
    width: 100%;
    max-width: 220px;
  }
}

@media (max-width: 600px) {
  .ticker { margin-top: 18px; }
  .back-to-top {
    right: 14px;
    bottom: 14px;
    width: 44px;
    height: 44px;
  }
  .training-gallery { grid-template-columns: 1fr; gap: 16px; }
  .training-game-copy { padding: 20px; }
}


/* --- Mise à jour : bandeau témoignages + services horizontaux --- */
.testimonials {
  background: #efe5d8;
  padding-top: 135px;
}
.testimonials-slider {
  position: relative;
  overflow: hidden;
}
.testimonials-viewport {
  overflow: hidden;
  border: 1px solid rgba(23,21,18,.09);
  background: linear-gradient(180deg, rgba(255,255,255,.45), rgba(255,255,255,.12));
}
.testimonials-track {
  display: flex;
  will-change: transform;
}
.testimonial-slide {
  flex: 0 0 100%;
  min-width: 100%;
  padding: 34px;
  background: var(--paper);
  display: grid;
  grid-template-columns: 190px 1fr;
  grid-template-rows: auto auto;
  gap: 24px 30px;
  align-items: start;
}
.testimonial-slide .client-logo {
  width: 168px;
  height: 78px;
  margin-top: 4px;
}
.testimonial-slide blockquote {
  margin: 0;
  color: #40382f;
  font-family: var(--serif);
  font-size: clamp(1.05rem, 1.8vw, 1.28rem);
  line-height: 1.66;
}
.testimonial-slide footer {
  grid-column: 2;
  padding-top: 16px;
  border-top: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.testimonial-slide footer strong { color: var(--wine); font-size: .95rem; }
.testimonial-slide footer span { color: #70655b; font-size: .8rem; line-height: 1.4; }
.testimonial-dots {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-top: 22px;
  flex-wrap: wrap;
}
.testimonial-dot {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: rgba(123,23,29,.24);
  border: 0;
  padding: 0;
  cursor: pointer;
  transition: transform .2s, background .2s;
}
.testimonial-dot.is-active { background: var(--wine); transform: scale(1.18); }

.services {
  background: #efe5d8;
  color: var(--ink);
}
.services .heading-row > p { color: #675d53; }
.services-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}
.service-card {
  background: var(--paper);
  border: 1px solid rgba(23,21,18,.09);
  box-shadow: 0 16px 38px rgba(55,36,20,.06);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.service-card-media {
  aspect-ratio: 4 / 3;
  background: #ddd0bf;
  overflow: hidden;
}
.service-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.service-card-copy {
  padding: 24px 24px 28px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 230px;
}
.service-letter {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 1px solid rgba(123,23,29,.24);
  display: grid;
  place-items: center;
  color: var(--wine);
  font-size: .78rem;
  font-weight: 700;
}
.service-card h3 {
  margin: 2px 0 0;
  font-family: var(--serif);
  font-size: clamp(1.7rem, 2.3vw, 2.25rem);
  color: var(--ink);
}
.service-card p {
  margin: 0;
  color: #675d53;
  font-size: 1rem;
  line-height: 1.55;
}
.service-card .arrow-link {
  margin-top: auto;
  width: fit-content;
  border-bottom-color: rgba(23,21,18,.4);
}
.service-list,
.services-showcase { display: none !important; }

@media (max-width: 900px) {
  .testimonial-slide {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto;
    gap: 20px;
    padding: 26px 22px;
  }
  .testimonial-slide footer { grid-column: 1; }
  .services-cards { grid-template-columns: 1fr; }
  .service-card-copy { min-height: auto; }
}

@media (max-width: 600px) {
  .testimonial-slide .client-logo { width: 145px; height: 70px; }
  .testimonial-slide blockquote { font-size: 1rem; }
  .testimonials { padding-top: 86px; }
}


/* =========================================================
   VERSION MULTIPAGE — NAVIGATION, PAGES ET FORMATIONS
   ========================================================= */
.inner-page main { padding-top: 84px; }
.inner-page .section:first-child { min-height: calc(100vh - 84px); }

.site-nav > a,
.nav-item > a {
  position: relative;
  padding: 29px 0 25px;
  font-size: .9rem;
  font-weight: 600;
}
.nav-item { position: relative; display: flex; align-items: center; gap: 4px; }
.nav-item.is-active > a::after { right: 0; }
.submenu-toggle {
  width: 24px;
  height: 24px;
  display: grid;
  place-items: center;
  border: 0;
  background: transparent;
  cursor: pointer;
  font-size: 1rem;
  line-height: 1;
  transition: transform .2s;
}
.has-submenu.is-submenu-open .submenu-toggle { transform: rotate(180deg); }
.submenu {
  position: absolute;
  top: calc(100% - 14px);
  left: 50%;
  z-index: 130;
  width: 230px;
  padding: 10px;
  background: var(--paper);
  border: 1px solid var(--line);
  box-shadow: 0 20px 44px rgba(38,24,14,.16);
  opacity: 0;
  visibility: hidden;
  transform: translate(-50%, 10px);
  transition: opacity .2s, transform .2s, visibility .2s;
}
.has-submenu:hover .submenu,
.has-submenu:focus-within .submenu,
.has-submenu.is-submenu-open .submenu {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, 0);
}
.site-nav .submenu a {
  display: block;
  padding: 10px 12px;
  border-bottom: 1px solid var(--line);
  font-size: .84rem;
  font-weight: 600;
}
.site-nav .submenu a:last-child { border-bottom: 0; }
.site-nav .submenu a::after { display: none; }
.site-nav .submenu a:hover,
.site-nav .submenu a.is-active { background: var(--wine); color: #fff; }

.page-heading { max-width: 900px; margin-bottom: 56px; }
.page-heading h1,
.page-heading h2 {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(2.8rem, 5vw, 5.8rem);
  font-weight: 600;
  line-height: .98;
  letter-spacing: -.035em;
}
.page-heading > p:last-child { max-width: 760px; margin: 25px 0 0; color: #675d53; font-size: 1.08rem; }

.home-directory { background: var(--paper); padding-top: 110px; padding-bottom: 110px; }
.home-directory-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; }
.home-directory-card { min-height: 230px; padding: 24px; border: 1px solid var(--line); background: #fff; display: flex; flex-direction: column; transition: transform .2s, box-shadow .2s, border-color .2s; }
.home-directory-card:hover { transform: translateY(-5px); border-color: rgba(123,23,29,.45); box-shadow: 0 18px 42px rgba(55,36,20,.09); }
.home-directory-card > span { color: var(--wine); font-size: .68rem; letter-spacing: .14em; }
.home-directory-card h3 { margin: auto 0 8px; font-family: var(--serif); font-size: 1.6rem; }
.home-directory-card p { margin: 0; color: #675d53; font-size: .88rem; }

.formation-overview { background: #e8ddcf; }
.formation-page-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.formation-link-card { background: var(--paper); border: 1px solid rgba(23,21,18,.1); overflow: hidden; }
.formation-link-card:last-child { grid-column: 1 / -1; }
.formation-link-card > a { display: grid; grid-template-columns: 42% 58%; min-height: 310px; }
.formation-link-image { overflow: hidden; background: #1c1713; }
.formation-link-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s; }
.formation-link-card:hover .formation-link-image img { transform: scale(1.035); }
.formation-link-copy { padding: 30px; display: flex; flex-direction: column; }
.formation-link-copy > span { color: var(--wine); font-size: .7rem; letter-spacing: .14em; }
.formation-link-copy h2 { margin: auto 0 12px; font-family: var(--serif); font-size: clamp(2rem, 3vw, 3rem); }
.formation-link-copy p { margin: 0 0 22px; color: #675d53; }
.formation-link-copy strong { color: var(--wine); font-size: .86rem; }

.game-hero { padding: 150px 0 90px; background: linear-gradient(135deg, #f8f2e8, #e8ddcf); }
.game-hero-grid { display: grid; grid-template-columns: .88fr 1.12fr; gap: clamp(50px, 8vw, 110px); align-items: center; }
.game-hero-copy h1 { margin: 0; font-family: var(--serif); font-size: clamp(3rem, 5.5vw, 6rem); line-height: .98; letter-spacing: -.04em; }
.game-hero-copy > p:last-of-type { margin: 28px 0 0; color: #51483f; font-size: 1.12rem; line-height: 1.75; }
.game-hero-actions { display: flex; gap: 22px; align-items: center; flex-wrap: wrap; margin-top: 34px; }
.game-hero-image { margin: 0; min-height: 480px; max-height: 650px; overflow: hidden; box-shadow: 0 28px 68px rgba(49,30,18,.18); }
.game-hero-image img { width: 100%; height: 100%; object-fit: cover; }
.game-content-section { padding: 105px 0 130px; background: var(--paper); }
.game-content-grid { display: grid; grid-template-columns: 235px minmax(0, 820px); justify-content: center; gap: 70px; align-items: start; }
.game-toc { position: sticky; top: 120px; padding: 22px; background: #efe5d8; border-top: 3px solid var(--wine); display: flex; flex-direction: column; }
.game-toc strong { margin-bottom: 13px; font-family: var(--serif); font-size: 1.15rem; }
.game-toc a { padding: 9px 0; border-bottom: 1px solid rgba(23,21,18,.12); font-size: .84rem; }
.game-toc a:hover { color: var(--wine); }
.game-article { min-width: 0; }
.game-article > h2,
.game-article section > h2 { margin: 0 0 22px; padding-top: 18px; font-family: var(--serif); font-size: clamp(2rem, 3.4vw, 3.3rem); line-height: 1.1; }
.game-article > h2:not(:first-child) { margin-top: 60px; }
.game-article p { color: #51483f; font-size: 1.02rem; line-height: 1.85; }
.rules-list { margin: 30px 0 45px; padding: 0; list-style: none; counter-reset: rule; }
.rules-list li { position: relative; padding: 17px 18px 17px 64px; border-bottom: 1px solid var(--line); color: #41382f; line-height: 1.65; counter-increment: rule; }
.rules-list li::before { content: counter(rule, decimal-leading-zero); position: absolute; left: 12px; top: 16px; color: var(--wine); font-size: .74rem; font-weight: 700; letter-spacing: .08em; }
.game-video-section { margin-top: 70px; }
.video-frame { position: relative; aspect-ratio: 16 / 9; background: #111; overflow: hidden; box-shadow: 0 20px 48px rgba(30,20,14,.15); }
.video-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.video-link { margin-top: 14px !important; }
.video-secondary-title { margin: 46px 0 18px; font-family: var(--serif); font-size: 1.75rem; }
.hand-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.hand-card { min-width: 0; border: 1px solid var(--line); background: #fff; overflow: hidden; }
.hand-image { height: 140px; display: grid; place-items: center; background: #f6f0e7; }
.hand-image img { max-width: 100%; max-height: 100%; object-fit: contain; }
.hand-card > div:last-child { padding: 20px; }
.hand-card h3 { margin: 0 0 8px; font-family: var(--serif); font-size: 1.35rem; }
.hand-card p { margin: 0; font-size: .88rem; line-height: 1.6; }
.game-note { margin-top: 24px !important; padding: 18px 20px; border-left: 4px solid var(--gold); background: #fff6e8; font-size: .9rem !important; }
.payout-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 28px 0 35px; }
.payout-grid > div { padding: 20px; border: 1px solid var(--line); background: #fff; display: flex; flex-direction: column; gap: 6px; }
.payout-grid strong { font-family: var(--serif); font-size: 1.22rem; }
.payout-grid span { color: var(--wine); font-weight: 700; }
.payout-grid small { color: #71675e; }
.rules-diagram { margin: 42px 0 0; padding: 24px; background: #efe5d8; text-align: center; }
.rules-diagram img { margin: auto; max-width: 100%; }
.rules-diagram figcaption { margin-top: 12px; color: #6d6257; font-size: .78rem; }
.game-callout { margin-top: 35px; padding: 26px; background: var(--wine); color: #fff; }
.game-callout strong { font-family: var(--serif); font-size: 1.55rem; color: #f0cf95; }
.game-callout p { margin-bottom: 0; color: #fff; }

.global-footer { padding: 50px 0; background: var(--wine-dark); color: #d9c7c8; }
.global-footer-grid { display: grid; grid-template-columns: 230px 1fr auto; gap: 40px; align-items: center; }
.global-footer .footer-brand { width: 220px; height: 58px; }
.footer-links { display: flex; justify-content: center; gap: 24px; flex-wrap: wrap; }
.footer-links a { font-size: .8rem; }
.footer-links a:hover { color: #fff; }
.global-footer p { margin: 0; font-size: .76rem; text-align: right; }

/* The contact block is now a page section; its original embedded footer was removed. */
.inner-page .contact { padding-bottom: 110px; }

@media (max-width: 1150px) {
  .home-directory-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .global-footer-grid { grid-template-columns: 210px 1fr; }
  .global-footer p { grid-column: 1 / -1; text-align: center; }
}

@media (max-width: 900px) {
  .inner-page main { padding-top: 72px; }
  .nav-item { display: grid; grid-template-columns: 1fr auto; }
  .nav-item > a { padding: 14px 0; border-bottom: 1px solid var(--line); font-size: 1rem; }
  .submenu-toggle { width: 42px; height: 42px; }
  .submenu {
    position: static;
    grid-column: 1 / -1;
    width: 100%;
    padding: 0 0 0 18px;
    border: 0;
    box-shadow: none;
    opacity: 1;
    visibility: visible;
    transform: none;
    display: none;
    background: #f7efe5;
  }
  .has-submenu.is-submenu-open .submenu { display: block; transform: none; }
  .site-nav .submenu a { padding: 11px 12px; font-size: .9rem; }
  .game-hero { padding-top: 110px; }
  .game-hero-grid { grid-template-columns: 1fr; }
  .game-hero-image { min-height: 420px; }
  .game-content-grid { grid-template-columns: 1fr; gap: 35px; }
  .game-toc { position: static; }
  .formation-page-grid { grid-template-columns: 1fr; }
  .formation-link-card:last-child { grid-column: auto; }
  .global-footer-grid { grid-template-columns: 1fr; justify-items: center; text-align: center; }
  .footer-links { justify-content: center; }
  .global-footer p { grid-column: auto; }
}

@media (max-width: 650px) {
  .home-directory-grid { grid-template-columns: 1fr; }
  .formation-link-card > a { grid-template-columns: 1fr; }
  .formation-link-image { aspect-ratio: 16 / 10; }
  .formation-link-copy { min-height: 230px; }
  .game-hero { padding: 105px 0 65px; }
  .game-hero-image { min-height: 320px; }
  .game-content-section { padding: 75px 0 90px; }
  .hand-grid, .payout-grid { grid-template-columns: 1fr; }
  .game-hero-actions { align-items: stretch; flex-direction: column; }
  .game-hero-actions .btn { width: 100%; }
  .footer-links { flex-direction: column; gap: 10px; }
}


/* --- Version 5 : services, formation, contact et plan du site --- */
.services-intro { background: var(--paper); padding-top: 135px; }
.services-intro .section-copy h1 {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(2.7rem, 4.4vw, 5rem);
  font-weight: 600;
  line-height: .98;
  letter-spacing: -.035em;
}
.services-intro-media figure { aspect-ratio: 4 / 3; }
.services-intro-media img { object-position: center; }
.services-options { background: #efe5d8; color: var(--ink); }

.formation-guidance {
  max-width: 950px;
  margin: 72px auto 0;
  padding: clamp(28px, 5vw, 58px);
  background: var(--paper);
  border-top: 4px solid var(--wine);
  box-shadow: 0 22px 55px rgba(49,30,18,.09);
}
.formation-guidance h2 {
  margin: 0 0 26px;
  font-family: var(--serif);
  font-size: clamp(2.1rem, 3.8vw, 3.6rem);
  line-height: 1.05;
}
.formation-guidance p { color: #5f554b; }
.formation-duty-list {
  list-style: none;
  padding: 0;
  margin: 30px 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 30px;
  border-top: 1px solid var(--line);
}
.formation-duty-list li {
  position: relative;
  padding: 14px 8px 14px 30px;
  border-bottom: 1px solid var(--line);
  color: #40382f;
}
.formation-duty-list li::before {
  content: "◆";
  position: absolute;
  left: 5px;
  top: 15px;
  color: var(--wine);
  font-size: .66rem;
}
.formation-guidance-emphasis {
  margin-top: 25px;
  color: var(--wine) !important;
  font-family: var(--serif);
  font-size: 1.25rem;
  font-weight: 700;
}

.contact-social {
  padding-top: 80px;
  padding-bottom: 110px;
  border-top: 1px solid var(--line-light);
}
.contact-social h2 {
  max-width: 850px;
  margin: 0 0 36px;
  font-family: var(--serif);
  font-size: clamp(2.4rem, 4vw, 4.5rem);
  line-height: 1;
}
.contact-social-links {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}
.contact-social-links a {
  min-height: 145px;
  padding: 24px;
  border: 1px solid var(--line-light);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  transition: background .2s, color .2s, transform .2s;
}
.contact-social-links a:hover { background: #fff; color: var(--wine-dark); transform: translateY(-3px); }
.contact-social-links strong { font-family: var(--serif); font-size: 1.45rem; }
.contact-social-links span { font-size: .8rem; color: #d8c4c5; }
.contact-social-links a:hover span { color: #675d53; }

.sitemap-section { background: var(--cream); padding-top: 145px; }
.sitemap-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 25px;
  margin-top: 60px;
}
.sitemap-grid > section {
  padding: 30px;
  background: var(--paper);
  border-top: 4px solid var(--wine);
  box-shadow: 0 18px 45px rgba(49,30,18,.07);
}
.sitemap-grid h2 { margin: 0 0 20px; font-family: var(--serif); font-size: 1.8rem; }
.sitemap-grid ul { list-style: none; padding: 0; margin: 0; }
.sitemap-grid li + li { border-top: 1px solid var(--line); }
.sitemap-grid a { display: flex; flex-direction: column; gap: 4px; padding: 14px 0; }
.sitemap-grid a:hover strong { color: var(--wine); }
.sitemap-grid strong { font-size: .95rem; transition: color .2s; }
.sitemap-grid span { color: #70655b; font-size: .8rem; line-height: 1.45; }

@media (max-width: 1000px) {
  .contact-social-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sitemap-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 700px) {
  .formation-duty-list { grid-template-columns: 1fr; }
  .contact-social-links, .sitemap-grid { grid-template-columns: 1fr; }
  .services-intro { padding-top: 110px; }
}



/* YOUTUBE_PLAYER_FIX_START */
.youtube-player {
  min-height: 270px;
  display: grid;
  place-items: center;
}
.youtube-player iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
.youtube-player-loading {
  color: #fff;
  font-size: .9rem;
  letter-spacing: .03em;
}
.youtube-player-local-warning {
  position: relative;
  padding: 28px;
  background:
    linear-gradient(135deg, rgba(23,21,18,.92), rgba(78,13,17,.9)),
    #171512;
  text-align: center;
}
.youtube-local-message {
  position: relative;
  z-index: 2;
  max-width: 620px;
  color: #fff;
}
.youtube-local-message strong {
  display: block;
  margin-bottom: 8px;
  font-family: var(--serif);
  font-size: clamp(1.35rem, 2.5vw, 2rem);
  color: #f0cf95;
}
.youtube-local-message p {
  margin: 0 0 20px;
  color: #eadede;
}
.youtube-local-message .btn {
  display: inline-flex;
}
@media (max-width: 600px) {
  .youtube-player { min-height: 210px; }
  .youtube-player-local-warning { padding: 22px 16px; }
}
/* YOUTUBE_PLAYER_FIX_END */


/* VERSION_6_CUSTOM_START */
/* Typographie plus équilibrée sur toutes les pages */
.hero h1 { font-size: clamp(2.75rem, 4.8vw, 5.15rem); }
.section-copy h2,
.heading-row h2,
.quote-copy h2,
.contact h2 { font-size: clamp(2.2rem, 3.55vw, 4rem); }
.page-heading h1,
.page-heading h2 { font-size: clamp(2.35rem, 4vw, 4.5rem); }
.game-hero-copy h1 { font-size: clamp(2.6rem, 4.45vw, 4.85rem); }
.game-article > h2,
.game-article section > h2 { font-size: clamp(1.75rem, 2.7vw, 2.7rem); }
.services-intro .section-copy h1 { font-size: clamp(2.25rem, 3.65vw, 4.1rem); }
.formation-link-copy h2 { font-size: clamp(1.65rem, 2.5vw, 2.45rem); }
.formation-guidance h2,
.contact-social h2 { font-size: clamp(2rem, 3.2vw, 3.35rem); }

/* Casino Mobile RM à la télévision */
.television-section { background: var(--paper); }
.television-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}
.television-card {
  margin: 0;
  background: #fff;
  border: 1px solid var(--line);
  box-shadow: 0 18px 44px rgba(49,30,18,.07);
  overflow: hidden;
}
.television-image { aspect-ratio: 16 / 10; overflow: hidden; background: #1a1714; }
.television-image img { width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform .45s; }
.television-card:hover .television-image img { transform: scale(1.025); }
.television-card figcaption { padding: 24px 26px 28px; }
.television-card figcaption strong { color: var(--wine); font-family: var(--serif); font-size: 1.45rem; }
.television-card figcaption p { margin: 10px 0 0; color: #675d53; line-height: 1.65; }

/* Contact : question, réseaux sociaux et infolettre */

.contact-quote-callout { grid-column: 1 / -1; margin-top: 10px; padding: 28px 32px; background: var(--paper); border: 1px solid var(--line); display: flex; justify-content: space-between; align-items: center; gap: 28px; }
.contact-quote-callout strong { color: var(--wine); font-family: var(--serif); font-size: 1.45rem; }
.contact-quote-callout p { margin: 5px 0 0; color: #675d53; }
.contact-quote-callout .btn { flex: 0 0 auto; }

.contact-write-section { background: var(--cream); }
.contact-write-grid { display: grid; grid-template-columns: .78fr 1.22fr; gap: clamp(50px, 8vw, 110px); align-items: start; }
.contact-write-copy { position: sticky; top: 125px; }
.contact-write-copy h2 { margin: 0 0 22px; font-family: var(--serif); font-size: clamp(2.25rem, 3.7vw, 3.9rem); line-height: 1; }
.contact-write-copy p { color: #5f554b; }
.contact-write-copy .btn { margin: 10px 0 18px; }
.contact-question-form { padding: 42px; background: var(--paper); border-top: 4px solid var(--wine); box-shadow: 0 25px 70px rgba(49,30,18,.11); }
.contact-consent { margin: 20px 0 0; display: grid; grid-template-columns: auto 1fr; gap: 12px; align-items: start; color: #5f544c; font-size: .8rem; }
.contact-consent input { width: 18px; height: 18px; margin-top: 3px; accent-color: var(--wine); }
.form-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.contact-connect-section { background: #efe5d8; }
.connected-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.connected-card { padding: clamp(28px, 4vw, 48px); background: var(--paper); border: 1px solid var(--line); display: flex; flex-direction: column; align-items: flex-start; min-height: 390px; box-shadow: 0 18px 44px rgba(49,30,18,.07); }
.connected-card h3 { margin: 22px 0 10px; font-family: var(--serif); font-size: 2rem; }
.connected-card p { margin: 0 0 28px; color: #675d53; }
.connected-card .btn { margin-top: auto; min-width: 170px; }
.social-icon { width: 82px; height: 82px; display: grid; place-items: center; color: var(--wine); }
.social-icon svg { width: 100%; height: 100%; fill: currentColor; }

.newsletter-modal[hidden] { display: none; }
.newsletter-modal { position: fixed; inset: 0; z-index: 500; display: grid; place-items: center; padding: 22px; }
.newsletter-backdrop { position: absolute; inset: 0; background: rgba(18,14,11,.68); backdrop-filter: blur(5px); }
.newsletter-dialog { position: relative; z-index: 1; width: min(540px, 100%); padding: clamp(34px, 6vw, 58px); background: var(--paper); border-top: 5px solid var(--wine); box-shadow: 0 30px 90px rgba(0,0,0,.35); }
.newsletter-dialog h2 { margin: 0 0 16px; font-family: var(--serif); font-size: clamp(2rem, 5vw, 3.2rem); line-height: 1; }
.newsletter-dialog p:not(.kicker) { color: #5f554b; }
.newsletter-dialog .btn { margin-top: 12px; }
.newsletter-close { position: absolute; top: 13px; right: 15px; width: 40px; height: 40px; border: 0; background: transparent; color: var(--wine); font-size: 2rem; line-height: 1; cursor: pointer; }
.newsletter-chip { display: grid; place-items: center; width: 48px; height: 48px; margin-bottom: 20px; border-radius: 50%; background: var(--wine); color: #fff; }
body.modal-open { overflow: hidden; }

@media (max-width: 900px) {
  .television-grid, .connected-grid, .contact-write-grid { grid-template-columns: 1fr; }
  .contact-quote-callout { flex-direction: column; align-items: flex-start; }
  .contact-write-copy { position: static; }
}
@media (max-width: 600px) {
  .hero h1 { font-size: clamp(2.55rem, 13vw, 3.65rem); }
  .section-copy h2, .heading-row h2, .quote-copy h2, .contact h2,
  .page-heading h1, .page-heading h2 { font-size: clamp(2.1rem, 10vw, 3.15rem); }
  .game-hero-copy h1 { font-size: clamp(2.35rem, 11vw, 3.5rem); }
  .contact-question-form { padding: 28px 19px; }
  .connected-card { min-height: 330px; }
  .television-card figcaption { padding: 21px; }
}
/* VERSION_6_CUSTOM_END */


/* --- Version 7 : mosaïques, corrections entreprise/soumission et harmonisation formation --- */
.nowrap { white-space: nowrap; }

.photo-mosaic-section {
  background: #efe5d8;
}
.photo-mosaic-section--paper {
  background: var(--paper);
}
.photo-mosaic-heading {
  display: grid;
  gap: 14px;
  max-width: 820px;
  margin-bottom: 34px;
}
.photo-mosaic-heading h2 {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(2.25rem, 3.6vw, 4rem);
  line-height: 1.02;
  letter-spacing: -.03em;
}
.photo-mosaic-heading p:last-child {
  margin: 0;
  color: #675d53;
  line-height: 1.7;
}
.photo-mosaic-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.photo-mosaic-card {
  margin: 0;
  overflow: hidden;
  background: #1b1612;
  box-shadow: 0 18px 36px rgba(33, 20, 11, .12);
  animation: mosaicFloat 18s ease-in-out infinite;
}
.photo-mosaic-card:nth-child(2n) { animation-duration: 20s; animation-delay: -5s; }
.photo-mosaic-card:nth-child(3n) { animation-duration: 22s; animation-delay: -9s; }
.photo-mosaic-card img {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.photo-mosaic-card.is-wide { grid-column: span 2; }
.photo-mosaic-card.is-wide img { aspect-ratio: 16 / 10; }
@keyframes mosaicFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}

.game-hero-image {
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible;
  background: transparent;
}
.game-hero-image img {
  display: block;
  width: 100%;
  height: auto !important;
  object-fit: initial;
}

@media (max-width: 900px) {
  .photo-mosaic-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .photo-mosaic-card.is-wide {
    grid-column: span 2;
  }
  .game-hero-image { min-height: 0 !important; }
}

@media (max-width: 640px) {
  .photo-mosaic-grid {
    grid-template-columns: 1fr;
  }
  .photo-mosaic-card,
  .photo-mosaic-card.is-wide {
    grid-column: auto;
  }
  .photo-mosaic-card img,
  .photo-mosaic-card.is-wide img {
    aspect-ratio: 4 / 3;
  }
}


/* --- Version 8 : services, provenance de la soumission et visuel Contact --- */
.referral-question small {
  display: block;
  margin: -2px 0 4px;
  color: #74685d;
  font-size: .78rem;
  font-weight: 400;
  line-height: 1.55;
}

.contact-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(390px, 1.08fr);
  gap: clamp(48px, 7vw, 100px);
  align-items: center;
  padding-bottom: 105px;
}
.contact-hero-visual {
  position: relative;
}
.contact-hero-image {
  margin: 0;
  overflow: hidden;
  background: #1b1513;
  box-shadow: 0 28px 72px rgba(0,0,0,.27);
}
.contact-hero-image img {
  display: block;
  width: 100%;
  height: auto;
}
.contact-next-step {
  width: min(360px, calc(100% - 36px));
  margin: -42px 0 0 auto;
  position: relative;
  z-index: 2;
  padding: 22px 25px;
  background: var(--paper);
  border-left: 4px solid var(--wine);
  box-shadow: 0 18px 45px rgba(0,0,0,.22);
  display: flex;
  flex-direction: column;
  gap: 7px;
}
.contact-next-step small {
  color: #7a6a61;
  font-size: .67rem;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.contact-next-step a {
  color: var(--wine);
  font-family: var(--serif);
  font-size: 1.28rem;
  font-weight: 700;
}
.contact-next-step a:hover { color: var(--wine-dark); }

@media (max-width: 900px) {
  .contact-hero-grid {
    grid-template-columns: 1fr;
    gap: 46px;
  }
  .contact-hero-visual { max-width: 760px; }
}

@media (max-width: 600px) {
  .contact-hero-grid { padding-bottom: 78px; }
  .contact-next-step {
    width: calc(100% - 20px);
    margin-top: -26px;
    padding: 19px 20px;
  }
}


/* --- Version 9 : styles sémantiques SEO --- */
.section-copy h1, .quote-copy h1, .contact-copy h1 {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(2.35rem, 4vw, 4.5rem);
  font-weight: 600;
  line-height: .98;
  letter-spacing: -.035em;
}
.contact-copy h1 { max-width: 800px; }
@media (max-width: 600px) {
  .section-copy h1, .quote-copy h1, .contact-copy h1 { font-size: clamp(2.1rem, 10vw, 3.15rem); }
}
