:root {
  --cream: #fff8ea;
  --paper: #fffdf7;
  --ink: #253230;
  --teal: #086b72;
  --deep-teal: #064e54;
  --turquoise: #38aeb0;
  --orange: #ef6a24;
  --gold: #f4ae2b;
  --leaf: #6f7c4b;
  --line: rgba(8, 107, 114, .16);
  --radius: 28px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: "DM Sans", sans-serif;
  font-size: 17px;
  line-height: 1.6;
}
a { color: inherit; }
img { max-width: 100%; display: block; }

.site-header {
  position: absolute;
  z-index: 10;
  inset: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: min(1180px, calc(100% - 48px));
  margin: 0 auto;
  padding: 24px 0;
}
.brand { display: flex; align-items: center; gap: 12px; text-decoration: none; font-weight: 700; font-size: 1.18rem; }
.brand img { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; }
nav { display: flex; align-items: center; gap: 30px; }
nav a { text-decoration: none; font-size: .94rem; font-weight: 600; }
nav a:hover { color: var(--orange); }
.nav-cta { padding: 11px 18px; border: 1px solid var(--teal); border-radius: 999px; }
.menu-toggle { display: none; }

.hero {
  position: relative;
  min-height: 820px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 44px;
  overflow: hidden;
  padding: 130px max(6vw, calc((100vw - 1180px) / 2)) 90px;
  background:
    radial-gradient(circle at 82% 24%, rgba(244,174,43,.22), transparent 27%),
    linear-gradient(120deg, var(--cream) 0 57%, #c9ece9 57% 100%);
}
.hero::before { content:""; position:absolute; width:320px; height:320px; border:1px solid rgba(239,106,36,.35); border-radius:50%; left:-170px; bottom:50px; }
.hero-copy { position: relative; z-index: 2; max-width: 650px; }
.eyebrow { margin: 0 0 12px; color: var(--orange); font-size: .78rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
h1, h2, blockquote { font-family: "Playfair Display", serif; }
h1 { margin: 0; color: var(--deep-teal); font-size: clamp(3.7rem, 6.2vw, 6.5rem); line-height: .98; letter-spacing: -.04em; }
h1 em { color: var(--orange); font-weight: 600; }
.intro { max-width: 600px; margin: 30px 0; font-size: 1.18rem; }
.hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:20px; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:50px; padding: 12px 23px; border-radius:999px; font-weight:700; text-decoration:none; transition:.25s ease; }
.button:hover { transform: translateY(-2px); }
.primary { color:white; background:var(--teal); box-shadow:0 12px 30px rgba(8,107,114,.18); }
.primary:hover { background:var(--deep-teal); }
.text-link { padding-inline:4px; color:var(--teal); }
.text-link span { margin-left:8px; }

.hero-visual { position:relative; z-index:1; display:grid; place-items:center; min-height:570px; }
.hero-visual::after { content:""; position:absolute; width:78%; aspect-ratio:1; border:1px dashed rgba(8,107,114,.28); border-radius:50%; }
.hero-visual img { position:relative; z-index:2; width:min(520px, 90%); aspect-ratio:1; object-fit:cover; border-radius:50%; filter:drop-shadow(0 28px 32px rgba(43,64,58,.24)); }
.sun-disc { position:absolute; width:82%; aspect-ratio:1; border-radius:50%; background:rgba(255,255,255,.58); filter:blur(2px); }
.orbit { position:absolute; z-index:3; padding:8px 15px; border-radius:999px; background:white; color:var(--teal); font-size:.78rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; box-shadow:0 10px 28px rgba(26,91,92,.15); }
.orbit-one { top:10%; left:1%; }
.orbit-two { top:22%; right:-2%; }
.orbit-three { bottom:8%; right:8%; }
.scroll-cue { position:absolute; bottom:28px; left:50%; transform:translateX(-50%); font-size:.82rem; font-weight:600; text-decoration:none; }
.scroll-cue span { margin-left:10px; color:var(--orange); }

.section { padding: 110px max(6vw, calc((100vw - 1180px) / 2)); }
.section-heading { max-width:720px; }
h2 { margin:0; color:var(--deep-teal); font-size:clamp(2.55rem, 4.2vw, 4.35rem); line-height:1.08; letter-spacing:-.03em; }
.universe-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; margin-top:54px; }
.universe-card { position:relative; min-height:265px; display:grid; grid-template-columns:auto 1fr auto; gap:22px; align-items:start; padding:32px; border-radius:var(--radius); text-decoration:none; overflow:hidden; transition:.3s ease; }
.universe-card:hover { transform:translateY(-5px); box-shadow:0 20px 42px rgba(32,62,59,.13); }
.universe-card .number { font-size:.78rem; font-weight:700; opacity:.65; }
.universe-card div { position:relative; z-index:1; align-self:end; padding-right:105px; }
.universe-card h3 { margin:0 0 10px; font-family:"Playfair Display",serif; font-size:2rem; line-height:1.1; }
.universe-card p { margin:0; max-width:400px; }
.universe-card .arrow { font-size:1.5rem; }
.universe-emblem { position:absolute; z-index:0; right:18px; bottom:15px; width:112px; height:112px; object-fit:contain; transform:rotate(-3deg); transition:transform .35s ease; }
.universe-card:nth-child(even) .universe-emblem { transform:rotate(4deg); }
.universe-card:hover .universe-emblem { transform:rotate(0) scale(1.06); }
.theatre { color:#71300f; background:radial-gradient(circle at 91% 88%,rgba(238,112,47,.32),rgba(238,112,47,.1) 24%,transparent 53%),#ffe1c7; }
.formations { color:#084f54; background:radial-gradient(circle at 91% 88%,rgba(8,107,114,.25),rgba(111,201,194,.13) 26%,transparent 54%),#c9eeeb; }
.bienetre { color:#533d0a; background:radial-gradient(circle at 91% 88%,rgba(238,112,47,.25),rgba(255,244,210,.14) 28%,transparent 55%),#f5cf61; }
.stages { color:#3f4b25; background:radial-gradient(circle at 91% 88%,rgba(243,200,75,.42),rgba(111,201,194,.12) 27%,transparent 55%),#dce3c1; }

.agenda { background:var(--cream); }
.agenda-top { display:flex; justify-content:space-between; align-items:end; gap:20px; }
.outline { color:var(--teal); border:1px solid var(--teal); }
.events { margin-top:55px; border-top:1px solid var(--line); }
.event { display:grid; grid-template-columns:170px 1fr auto; align-items:center; gap:35px; padding:30px 12px; border-bottom:1px solid var(--line); }
.event.featured { border-left:5px solid var(--orange); padding-left:24px; }
.date { display:flex; flex-direction:column; color:var(--teal); }
.date strong { font-family:"Playfair Display",serif; font-size:1.9rem; line-height:1.1; }
.date span { font-size:.86rem; font-weight:600; }
.tag { color:var(--orange); font-size:.74rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.event h3 { margin:3px 0 4px; font-family:"Playfair Display",serif; font-size:1.65rem; }
.event p { margin:0; }
.event>a { color:var(--teal); font-weight:700; text-decoration:none; }

.manifesto { position:relative; overflow:hidden; padding:120px max(8vw, calc((100vw - 1040px) / 2)); text-align:center; color:white; background:var(--deep-teal); }
.manifesto::before,.manifesto::after { content:""; position:absolute; border-radius:50%; background:var(--turquoise); opacity:.16; }
.manifesto::before { width:460px; height:460px; top:-250px; left:-130px; }
.manifesto::after { width:340px; height:340px; right:-100px; bottom:-200px; background:var(--orange); opacity:.24; }
.manifesto-mark { height:50px; color:var(--gold); font-family:"Playfair Display",serif; font-size:6rem; line-height:1; }
.manifesto blockquote { position:relative; z-index:1; margin:20px auto 28px; font-size:clamp(2.3rem,4.4vw,4.4rem); line-height:1.12; }
.manifesto blockquote em { color:var(--gold); }
.manifesto p { position:relative; z-index:1; max-width:720px; margin:0 auto 34px; font-size:1.08rem; opacity:.9; }
.light { position:relative; z-index:1; color:var(--deep-teal); background:white; }

.contact { display:flex; justify-content:space-between; align-items:end; gap:60px; }
.contact>div:first-child { max-width:720px; }
.contact-actions { min-width:260px; text-align:center; }
.contact-actions p { margin:15px 0 0; font-size:.84rem; }

footer { display:flex; justify-content:space-between; align-items:center; gap:30px; padding:32px max(6vw, calc((100vw - 1180px) / 2)); color:white; background:#253230; font-size:.84rem; }
.footer-brand { display:flex; align-items:center; gap:12px; font-size:1rem; font-weight:700; }
.footer-brand img { width:40px; height:40px; border-radius:50%; }
.footer-socials { display:flex; align-items:center; gap:8px; }
.footer-socials a { padding:9px 13px; border:1px solid rgba(255,255,255,.24); border-radius:999px; color:white; font-weight:700; text-decoration:none; transition:.25s ease; }
.footer-socials a:hover,.footer-socials a:focus-visible { color:#253230; background:var(--gold); border-color:var(--gold); transform:translateY(-2px); }
.footer-socials span { margin-left:4px; }
.whatsapp-preference { white-space:nowrap; font-size:.84em; font-weight:600; opacity:.78; }
.footer-legal { text-align:right; }
.footer-legal p { margin:2px 0; }

@media (max-width: 900px) {
  .site-header { width:calc(100% - 32px); }
  .menu-toggle { display:block; padding:10px 15px; color:var(--teal); background:white; border:1px solid var(--teal); border-radius:999px; font:inherit; font-weight:700; }
  nav { position:absolute; top:86px; left:0; right:0; display:none; flex-direction:column; align-items:stretch; gap:0; padding:14px; background:white; border-radius:20px; box-shadow:0 20px 40px rgba(20,60,57,.18); }
  nav.open { display:flex; }
  nav a { padding:12px 15px; }
  .nav-cta { border:0; background:var(--cream); }
  .hero { min-height:auto; grid-template-columns:1fr; padding:135px 24px 85px; background:linear-gradient(160deg,var(--cream) 0 53%,#c9ece9 53% 100%); }
  .hero-visual { min-height:440px; order:-1; margin-top:15px; }
  .hero-visual img { width:min(390px,82vw); }
  .hero-copy { text-align:center; margin:auto; }
  .hero-actions { justify-content:center; }
  .intro { margin-inline:auto; }
  .scroll-cue { display:none; }
  .universe-grid { grid-template-columns:1fr; }
  .agenda-top,.contact { align-items:flex-start; flex-direction:column; }
  .event { grid-template-columns:125px 1fr; }
  .event>a { grid-column:2; }
  .contact-actions { text-align:left; }
  footer { flex-direction:column; text-align:center; }
  .footer-socials { position:static; display:flex; flex-direction:row; align-items:center; gap:8px; padding:0; background:transparent; border-radius:0; box-shadow:none; }
  .footer-socials a { padding:9px 13px; }
  .footer-legal { text-align:center; }
}

@media (max-width: 560px) {
  body { font-size:16px; }
  .brand span { display:none; }
  .brand img { width:48px; height:48px; }
  .hero { padding-inline:18px; }
  h1 { font-size:3.15rem; }
  .hero-visual { min-height:360px; }
  .orbit { font-size:.65rem; }
  .orbit-one { left:-1%; }
  .orbit-two { right:-1%; }
  .section { padding:78px 20px; }
  .universe-card { min-height:235px; padding:24px; }
  .universe-card div { padding-right:72px; }
  .universe-emblem { right:10px; bottom:12px; width:86px; height:86px; opacity:.94; }
  .event { grid-template-columns:1fr; gap:12px; padding:25px 4px; }
  .event>a { grid-column:1; }
  .event.featured { padding-left:16px; }
  .manifesto { padding:90px 22px; }
  footer { flex-direction:column; text-align:center; }
  .footer-socials { flex-wrap:wrap; justify-content:center; }
}

/* Cases à cocher : le texte reste toujours dans la largeur du formulaire. */
:where(.real-form,#formation-form,#theatre-form) label.check {
  display:grid!important;
  grid-template-columns:20px minmax(0,1fr)!important;
  align-items:start;
  gap:10px;
  width:100%;
  max-width:100%;
  min-width:0;
}
:where(.real-form,#formation-form,#theatre-form) label.check input[type="checkbox"] {
  width:18px!important;
  min-width:18px;
  max-width:18px;
  margin:3px 0 0!important;
  padding:0;
}
:where(.real-form,#formation-form,#theatre-form) label.check span {
  min-width:0;
  max-width:100%;
  overflow-wrap:anywhere;
}
:where(.real-form,#formation-form,#theatre-form),.field-row,.field-row>* { min-width:0; }
