:root {
  --paper: #f3efe5;
  --paper-2: #ebe4d4;
  --ink: #17332c;
  --ink-soft: #456158;
  --leaf: #2f6f59;
  --leaf-dark: #245746;
  --signal: #d96f4d;
  --signal-soft: #f2d6c9;
  --line: rgba(23, 51, 44, .18);
  --white: #fffdf7;
  --shadow: 0 18px 50px rgba(23, 51, 44, .12);
  --radius: 24px;
  --radius-sm: 14px;
  --max: 1160px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.6;
  text-rendering: optimizeLegibility;
}

a { color: inherit; text-underline-offset: .2em; }
a:hover { text-decoration-thickness: 2px; }
button, a { -webkit-tap-highlight-color: transparent; }
img, svg { max-width: 100%; }

.skip-link {
  position: absolute;
  left: 1rem;
  top: -5rem;
  z-index: 100;
  padding: .8rem 1rem;
  background: var(--ink);
  color: white;
  border-radius: 10px;
}
.skip-link:focus { top: 1rem; }

.wrap { width: min(var(--max), calc(100% - 40px)); margin-inline: auto; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 20;
  border-bottom: 1px solid var(--line);
  background: color-mix(in srgb, var(--paper) 92%, transparent);
  backdrop-filter: blur(12px);
}
.header-inner {
  min-height: 76px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
}
.brand {
  display: inline-flex;
  align-items: center;
  gap: .7rem;
  color: var(--ink);
  font-weight: 850;
  font-size: 1.18rem;
  text-decoration: none;
  letter-spacing: -.02em;
}
.brand-mark {
  width: 2.45rem;
  height: 2.45rem;
  flex: 0 0 2.45rem;
  display: inline-block;
  overflow: hidden;
  border-radius: .72rem;
  background: url('/assets/favicon.svg') center / contain no-repeat;
  color: transparent;
  font-size: 0;
  line-height: 0;
}
.nav { display: flex; align-items: center; gap: 1.35rem; font-size: .94rem; font-weight: 700; }
.nav a { text-decoration: none; }
.nav a:hover, .nav a:focus-visible { color: var(--leaf); }
.lang-link {
  padding: .42rem .65rem;
  border: 1px solid var(--line);
  border-radius: 999px;
}

.hero { padding: clamp(4.5rem, 9vw, 8rem) 0 5rem; overflow: hidden; }
.hero-grid {
  display: grid;
  grid-template-columns: 1.12fr .88fr;
  gap: clamp(3rem, 7vw, 7rem);
  align-items: center;
}
.eyebrow, .kicker, .roadmap-label {
  margin: 0 0 1rem;
  color: var(--leaf-dark);
  font-size: .78rem;
  line-height: 1.2;
  font-weight: 850;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.status-dot {
  width: .65rem;
  height: .65rem;
  display: inline-block;
  margin-right: .5rem;
  border-radius: 50%;
  background: var(--signal);
  box-shadow: 0 0 0 5px var(--signal-soft);
}
h1, h2, h3 { margin-top: 0; line-height: 1.08; letter-spacing: -.035em; }
h1 { margin-bottom: 1.6rem; font-size: clamp(3.1rem, 7vw, 6.5rem); max-width: 12ch; }
h1 span { color: var(--leaf); }
h2 { margin-bottom: 1.2rem; font-size: clamp(2.25rem, 4.4vw, 4rem); }
h3 { margin-bottom: .65rem; font-size: 1.25rem; }
.lead { max-width: 64ch; margin: 0 0 2rem; color: var(--ink-soft); font-size: clamp(1.08rem, 2vw, 1.28rem); }
.lead-small { font-size: 1.12rem; color: var(--ink-soft); }
.actions { display: flex; flex-wrap: wrap; gap: .8rem; margin: 2rem 0 1.6rem; }
.button {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .8rem 1.1rem;
  border: 1px solid var(--ink);
  border-radius: 999px;
  text-decoration: none;
  font-weight: 800;
  transition: transform .15s ease, background .15s ease;
}
.button:hover { transform: translateY(-2px); }
.button.primary { background: var(--ink); color: var(--white); }
.button.primary:hover { background: var(--leaf-dark); }
.button.secondary { background: transparent; }
.button.secondary:hover { background: var(--white); }
.text-link { font-weight: 800; color: var(--leaf-dark); }
.chips { display: flex; flex-wrap: wrap; gap: .55rem; padding: 0; margin: 0; list-style: none; }
.chips li { padding: .42rem .7rem; background: var(--paper-2); border-radius: 999px; font-size: .86rem; font-weight: 750; }

.hero-demo { position: relative; min-height: 540px; display: grid; place-items: center; }
.phone {
  position: relative;
  z-index: 3;
  width: min(320px, 84vw);
  padding: 12px;
  border: 3px solid var(--ink);
  border-radius: 44px;
  background: var(--ink);
  box-shadow: var(--shadow);
  transform: rotate(2deg);
}
.phone-top { width: 35%; height: 8px; margin: 3px auto 10px; border-radius: 999px; background: rgba(255,255,255,.24); }
.phone-screen { min-height: 470px; padding: 1.25rem; border-radius: 32px; background: var(--white); }
.screen-label { margin: .15rem 0 1rem; color: var(--ink-soft); font-size: .78rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.message { max-width: 84%; padding: .8rem .95rem; border-radius: 18px; font-weight: 750; line-height: 1.35; }
.message.incoming { margin: 0 auto 1.7rem 0; background: var(--paper-2); border-bottom-left-radius: 5px; }
.message.outgoing { margin: 1.6rem 0 0 auto; background: var(--leaf); color: white; border-bottom-right-radius: 5px; }
.message small { opacity: .78; font-weight: 600; }
.flow-step { display: flex; align-items: center; gap: .75rem; padding: .58rem 0; border-bottom: 1px dashed var(--line); font-size: .88rem; font-weight: 720; }
.flow-step span { flex: 0 0 auto; width: 1.65rem; height: 1.65rem; display: grid; place-items: center; border-radius: 50%; background: var(--signal-soft); color: var(--ink); font-size: .76rem; }
.paper-note { position: absolute; z-index: 4; padding: .75rem 1rem; background: #fff7bd; border: 1px solid rgba(23,51,44,.16); box-shadow: 0 8px 24px rgba(23,51,44,.12); font-weight: 820; font-size: .9rem; }
.note-a { top: 11%; left: -1%; transform: rotate(-7deg); }
.note-b { right: -2%; bottom: 10%; transform: rotate(6deg); background: #d9ece3; }
.hero-demo::before, .hero-demo::after { content: ""; position: absolute; border-radius: 50%; }
.hero-demo::before { width: 440px; height: 440px; background: var(--paper-2); }
.hero-demo::after { width: 280px; height: 280px; border: 2px dashed var(--signal); opacity: .45; }

.section { padding: clamp(4rem, 8vw, 7rem) 0; }
.section.compact { padding-top: 2rem; }
.section.tinted { background: var(--paper-2); border-block: 1px solid var(--line); }
.statement { max-width: 920px; }
.statement h2 { max-width: 18ch; }
.statement > p:last-child { max-width: 72ch; color: var(--ink-soft); font-size: 1.08rem; }
.section-heading { max-width: 780px; margin-bottom: 3rem; }
.section-heading > p:last-child { color: var(--ink-soft); font-size: 1.08rem; }

.steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; padding: 0; margin: 0; list-style: none; background: var(--line); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.steps li { min-height: 290px; padding: 1.6rem; background: var(--white); }
.step-number { display: block; margin-bottom: 3.5rem; color: var(--signal); font-weight: 900; font-size: .84rem; letter-spacing: .08em; }
.steps p { color: var(--ink-soft); }

.split { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(2.5rem, 6vw, 6rem); align-items: start; }
.principle-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.card, .roadmap-card { padding: 1.55rem; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--white); }
.card p, .roadmap-card p, .roadmap-card li { color: var(--ink-soft); }

.warning-section { padding-top: 5rem; padding-bottom: 5rem; }
.warning-box { display: grid; grid-template-columns: auto 1fr; gap: 1.5rem; padding: clamp(1.6rem, 4vw, 3rem); border: 2px solid var(--signal); border-radius: var(--radius); background: var(--signal-soft); }
.warning-icon { width: 3rem; height: 3rem; display: grid; place-items: center; border-radius: 50%; background: var(--signal); color: white; font-weight: 950; font-size: 1.4rem; }
.warning-box h2 { font-size: clamp(2rem, 4vw, 3.2rem); }
.warning-box p { max-width: 78ch; }

.roadmap-grid { display: grid; grid-template-columns: 1.2fr .9fr .9fr; gap: 1rem; }
.roadmap-card { min-height: 320px; }
.roadmap-card.current { background: var(--ink); color: var(--white); }
.roadmap-card.current p, .roadmap-card.current li { color: rgba(255,255,255,.76); }
.roadmap-card.current .roadmap-label { color: #b7ddce; }
.roadmap-card ul { padding-left: 1.2rem; }
.roadmap-link { margin-top: 1.5rem; font-weight: 800; }

.participate-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 4rem; align-items: center; }
.participate-grid > div:first-child p:last-child { max-width: 62ch; color: var(--ink-soft); }
.participate-actions { display: flex; flex-direction: column; align-items: flex-start; gap: .9rem; }
.final-cta { text-align: center; }
.final-card { max-width: 880px; padding: clamp(2rem, 6vw, 5rem); border-radius: 36px; background: var(--leaf); color: white; box-shadow: var(--shadow); }
.final-card .kicker { color: #d5ece2; }
.final-card p { max-width: 60ch; margin-inline: auto; color: rgba(255,255,255,.82); }
.final-card .button { margin-top: 1rem; background: var(--white); color: var(--ink); border-color: var(--white); }

.site-footer { padding: 3rem 0; border-top: 1px solid var(--line); }
.footer-grid { display: flex; justify-content: space-between; gap: 2rem; align-items: flex-start; }
.footer-brand { margin-bottom: .8rem; }
.footer-grid p { margin: 0; color: var(--ink-soft); max-width: 38ch; font-size: .92rem; }
.footer-links { display: flex; flex-wrap: wrap; gap: 1rem 1.4rem; font-weight: 720; font-size: .92rem; }

:focus-visible { outline: 3px solid var(--signal); outline-offset: 4px; border-radius: 4px; }

@media (max-width: 920px) {
  .nav a:not(.lang-link) { display: none; }
  .hero-grid, .split, .participate-grid { grid-template-columns: 1fr; }
  .hero-demo { min-height: 500px; }
  .steps { grid-template-columns: 1fr 1fr; }
  .roadmap-grid { grid-template-columns: 1fr; }
  .roadmap-card { min-height: auto; }
  .principle-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 620px) {
  .wrap { width: min(100% - 28px, var(--max)); }
  .site-header { position: static; }
  .header-inner { min-height: 66px; }
  h1 { font-size: clamp(2.75rem, 15vw, 4.4rem); }
  .hero { padding-top: 3.5rem; }
  .hero-demo { min-height: 470px; }
  .note-a { left: 0; }
  .note-b { right: 0; }
  .steps, .principle-grid { grid-template-columns: 1fr; }
  .steps li { min-height: auto; }
  .step-number { margin-bottom: 1.8rem; }
  .warning-box { grid-template-columns: 1fr; }
  .footer-grid { flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}


/* Optional accessible version: concrete visual simplification and stronger contrast. */
.a11y-toggle{
  min-height:44px;
  padding:.5rem .75rem;
  border:2px solid var(--ink);
  background:var(--white);
  color:var(--ink);
  font:750 .82rem/1.2 system-ui,sans-serif;
  cursor:pointer;
}

html[data-vevak-accessible="true"]{
  font-size:112.5%;
  scroll-behavior:auto;
}

html[data-vevak-accessible="true"] body{
  --paper:#fff;
  --paper-2:#f5f5f5;
  --ink:#111;
  --ink-soft:#222;
  --leaf:#004c5f;
  --leaf-dark:#003d4c;
  --signal:#005fcc;
  --signal-soft:#e8f0ff;
  --line:#111;
  --white:#fff;
  --shadow:none;
  --radius:6px;
  --radius-sm:4px;
  background:#fff!important;
  background-image:none!important;
  color:#111!important;
  font-family:Verdana,Tahoma,Arial,sans-serif!important;
  line-height:1.8!important;
}

html[data-vevak-accessible="true"] .wrap{
  width:min(920px,calc(100% - 32px));
}

html[data-vevak-accessible="true"] h1,
html[data-vevak-accessible="true"] h2,
html[data-vevak-accessible="true"] h3{
  font-family:Verdana,Tahoma,Arial,sans-serif!important;
  letter-spacing:0!important;
  line-height:1.3!important;
  max-width:none!important;
}

html[data-vevak-accessible="true"] h1{
  font-size:clamp(2.35rem,5vw,4rem)!important;
}

html[data-vevak-accessible="true"] h2{
  font-size:clamp(1.8rem,3.5vw,2.8rem)!important;
}

html[data-vevak-accessible="true"] .eyebrow,
html[data-vevak-accessible="true"] .kicker,
html[data-vevak-accessible="true"] .roadmap-label{
  text-transform:none!important;
  letter-spacing:0!important;
  font-size:.95rem!important;
  color:#111!important;
}

html[data-vevak-accessible="true"] a{
  color:#003d7a!important;
  text-decoration:underline!important;
  text-decoration-thickness:2px!important;
  text-underline-offset:.22em!important;
}

html[data-vevak-accessible="true"] .site-header{
  position:static!important;
  background:#fff!important;
  backdrop-filter:none!important;
  border-bottom:2px solid #111!important;
}

html[data-vevak-accessible="true"] .hero{
  padding:3rem 0!important;
}

html[data-vevak-accessible="true"] .hero-grid,
html[data-vevak-accessible="true"] .split,
html[data-vevak-accessible="true"] .participate-grid{
  grid-template-columns:1fr!important;
  gap:2rem!important;
}

html[data-vevak-accessible="true"] .hero-demo{
  min-height:auto!important;
  place-items:start!important;
}

html[data-vevak-accessible="true"] .hero-demo::before,
html[data-vevak-accessible="true"] .hero-demo::after,
html[data-vevak-accessible="true"] .paper-note{
  display:none!important;
}

html[data-vevak-accessible="true"] .phone{
  width:min(100%,420px)!important;
  transform:none!important;
  box-shadow:none!important;
  border-radius:8px!important;
  border-width:2px!important;
}

html[data-vevak-accessible="true"] .phone-screen{
  min-height:auto!important;
  border-radius:4px!important;
}

html[data-vevak-accessible="true"] .button{
  border:2px solid #111!important;
  border-radius:4px!important;
  background:#fff!important;
  color:#111!important;
  box-shadow:none!important;
  transform:none!important;
  min-height:48px!important;
}

html[data-vevak-accessible="true"] .button.primary{
  background:#111!important;
  color:#fff!important;
}

html[data-vevak-accessible="true"] .button.primary,
html[data-vevak-accessible="true"] .button.primary:visited{
  color:#fff!important;
  text-decoration:none!important;
}

html[data-vevak-accessible="true"] .chips li,
html[data-vevak-accessible="true"] .card,
html[data-vevak-accessible="true"] .roadmap-card,
html[data-vevak-accessible="true"] .steps,
html[data-vevak-accessible="true"] .steps li,
html[data-vevak-accessible="true"] .tester-card{
  border-radius:4px!important;
  box-shadow:none!important;
}

html[data-vevak-accessible="true"] .section.tinted,
html[data-vevak-accessible="true"] .final-card{
  background:#fff!important;
  color:#111!important;
}

html[data-vevak-accessible="true"] .final-card{
  border:2px solid #111!important;
  border-radius:4px!important;
  box-shadow:none!important;
}

html[data-vevak-accessible="true"] .final-card p,
html[data-vevak-accessible="true"] .final-card .kicker,
html[data-vevak-accessible="true"] .roadmap-card.current,
html[data-vevak-accessible="true"] .roadmap-card.current p,
html[data-vevak-accessible="true"] .roadmap-card.current li,
html[data-vevak-accessible="true"] .roadmap-card.current .roadmap-label{
  color:#111!important;
}

html[data-vevak-accessible="true"] .roadmap-card.current{
  background:#fff!important;
  border:2px solid #111!important;
}

html[data-vevak-accessible="true"] .warning-box{
  background:#fff!important;
  border:3px solid #111!important;
  border-radius:4px!important;
}

html[data-vevak-accessible="true"] .warning-icon{
  background:#111!important;
  color:#fff!important;
}

html[data-vevak-accessible="true"] .status-dot{
  background:#005fcc!important;
  box-shadow:none!important;
  border:2px solid #111!important;
}

html[data-vevak-accessible="true"] :focus-visible{
  outline:4px solid #005fcc!important;
  outline-offset:4px!important;
}

html[data-vevak-accessible="true"] *,
html[data-vevak-accessible="true"] *::before,
html[data-vevak-accessible="true"] *::after{
  animation:none!important;
  transition:none!important;
  scroll-behavior:auto!important;
}

/* Header unifié des sites du Potager : navigation et actions restent distinctes. */
.brand-copy{display:flex;flex-direction:column;min-width:0;line-height:1.05}
.brand-copy strong{font:inherit}
.brand-copy small{margin-top:.28rem;color:var(--ink-soft);font-size:.68rem;font-weight:700;letter-spacing:.02em}
.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:.75rem;min-width:0}
.menu-toggle{display:none;width:46px;height:46px;flex:0 0 46px;border:1px solid var(--line);border-radius:.75rem;background:var(--white);color:var(--ink);cursor:pointer;align-items:center;justify-content:center;flex-direction:column;gap:4px}
.menu-toggle span{display:block;width:20px;height:2px;border-radius:99px;background:currentColor}
.a11y-toggle{flex:0 0 auto;border-radius:999px;white-space:nowrap}
html[data-site-ref="prestadmin"] .brand-copy small{color:#7b2940}
@media (max-width:1100px){
  .menu-toggle{display:flex}
  .nav{position:absolute;left:0;right:0;top:100%;display:none;padding:1rem max(1rem,calc((100% - var(--max))/2));background:var(--white);border-bottom:1px solid var(--line);box-shadow:0 18px 36px rgba(23,51,44,.12);flex-wrap:wrap;align-items:stretch}
  .nav[data-open="true"]{display:flex}
  .nav a{min-height:44px;display:inline-flex!important;align-items:center;padding:.55rem .7rem;border-radius:.6rem}
}
@media (max-width:700px){
  .header-inner{gap:.75rem}
  .brand-copy small{display:none}
  .a11y-toggle{max-width:9.6rem}
  .header-actions{gap:.45rem}
}
@media (max-width:460px){
  .a11y-toggle{width:46px;padding:0;overflow:hidden;color:transparent;position:relative}
}
/* repo-factory: universal-access-icon */
[class*="a11y-toggle"]::before,
[class*="accessibility-toggle"]::before{
  content:"";
  display:inline-block;
  width:1.15em;
  height:1.15em;
  flex:0 0 1.15em;
  margin-right:.4em;
  vertical-align:-.18em;
  background:#005fcc;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='10' fill='none' stroke='black' stroke-width='2'/%3E%3Ccircle cx='12' cy='6.2' r='1.8' fill='black'/%3E%3Cpath d='M6.7 9h10.6v2H13v2.5l3.1 5.2h-2.5L12 15.9l-1.6 2.8H7.9l3.1-5.2V11H6.7z' fill='black'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='10' fill='none' stroke='black' stroke-width='2'/%3E%3Ccircle cx='12' cy='6.2' r='1.8' fill='black'/%3E%3Cpath d='M6.7 9h10.6v2H13v2.5l3.1 5.2h-2.5L12 15.9l-1.6 2.8H7.9l3.1-5.2V11H6.7z' fill='black'/%3E%3C/svg%3E") center/contain no-repeat;
}
@media(max-width:520px){
  [class*="a11y-toggle"],[class*="accessibility-toggle"]{font-size:0!important}
  [class*="a11y-toggle"]::before,[class*="accessibility-toggle"]::before{width:20px;height:20px;flex-basis:20px;margin:0;vertical-align:middle}
}
