:root {
  --ink:#06111f;
  --navy:#071a33;
  --blue:#075bff;
  --blue2:#0b83ff;
  --gold:#ffc928;
  --silver:#dbe4ee;
  --paper:#f4f6fa;
  --muted:#627087;
  --line:#dce2eb;
  --white:#fff;
  --radius:22px
}

* {
  box-sizing:border-box
}

html {
  scroll-behavior:smooth
}

body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:Arial,var(--font-geist-sans),sans-serif
}

a {
  color:inherit;
  text-decoration:none
}

button,input,textarea,select {
  font:inherit
}

.shell {
  width:min(1240px,calc(100% - 48px));
  margin-inline:auto
}

.eyebrow {
  margin:0 0 16px;
  color:var(--blue);
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.18em
}

.site-header {
  height:76px;
  padding:0 max(24px,calc((100% - 1240px)/2));
  display:flex;
  align-items:center;
  gap:28px;
  background:#040d19f2;
  color:white;
  position:sticky;
  top:0;
  z-index:50;
  border-bottom:1px solid #ffffff1f;
  backdrop-filter:blur(14px)
}

.brand {
  display:flex;
  align-items:center;
  gap:10px;
  font-size:.85rem;
  letter-spacing:.11em;
  white-space:nowrap
}

.brand b {
  color:#1680ff
}

.brand-mark {
  width:35px;
  height:35px;
  display:grid;
  place-items:center;
  border:1px solid #9dacbd;
  background:linear-gradient(135deg,#fff,#8593a6 45%,#273545);
  color:#07101d;
  font-family:Georgia,serif;
  font-size:1.65rem;
  font-weight:900;
  clip-path:polygon(50% 0,100% 100%,72% 100%,50% 50%,28% 100%,0 100%)
}

.site-header nav {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:24px;
  flex:1
}

.site-header nav a {
  font-size:.8rem;
  color:#c8d3e2
}

.site-header nav a:hover {
  color:white
}

.header-cta {
  font-size:.77rem;
  font-weight:800;
  padding:11px 16px;
  border:1px solid var(--gold);
  color:var(--gold);
  border-radius:999px
}

.hero {
  display:grid;
  grid-template-columns:1.05fr .95fr;
  min-height:720px;
  align-items:center;
  gap:58px;
  padding-block:52px;
  background:radial-gradient(circle at 85% 30%,#0a5afe1d,transparent 35%)
}

.hero h1,.section h2,.community-band h2,.tool-showcase h2,.newsletter h2,.page-hero h1 {
  font-family:Georgia,serif;
  font-weight:500;
  letter-spacing:-.045em
}

.hero h1 {
  font-size:clamp(3.6rem,6.3vw,6.5rem);
  line-height:.91;
  margin:0 0 28px
}

.hero h1 span,.community-band h2 span {
  color:var(--blue)
}

.hero-lead {
  font-size:1.18rem;
  line-height:1.65;
  color:#435064;
  max-width:680px
}

.hero-actions {
  display:flex;
  align-items:center;
  gap:22px;
  margin:34px 0
}

.primary-button,.text-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  font-weight:850
}

.primary-button {
  padding:17px 22px;
  background:var(--blue);
  color:white;
  border-radius:7px;
  box-shadow:0 12px 28px #075bff35
}

.primary-button:hover {
  transform:translateY(-2px);
  box-shadow:0 18px 34px #075bff45
}

.text-button {
  border-bottom:1px solid currentColor;
  padding:9px 0
}

.text-button.dark {
  color:var(--ink)
}

.trust-line {
  display:flex;
  gap:20px;
  flex-wrap:wrap
}

.trust-line span {
  font-size:.72rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.07em
}

.trust-line span:before {
  content:"✓";
  color:var(--blue);
  margin-right:7px
}

.hero-visual {
  position:relative;
  height:610px;
  overflow:hidden;
  border-radius:4px 4px 58px 4px;
  background:#04101e;
  box-shadow:0 36px 80px #03122548
}

.hero-visual>img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 35%;
  filter:contrast(1.08) saturate(1.04)
}

.visual-callout {
  position:absolute;
  left:20px;
  right:20px;
  bottom:20px;
  padding:19px 21px;
  background:#061322ed;
  border-left:3px solid var(--gold);
  color:white;
  display:grid;
  grid-template-columns:100px 1fr;
  gap:5px 12px
}

.visual-callout small {
  grid-row:1/3;
  color:var(--gold);
  font-weight:900;
  letter-spacing:.1em
}

.visual-callout strong {
  font-family:Georgia,serif;
  font-size:1.25rem
}

.visual-callout span {
  color:#bfcada;
  font-size:.84rem
}

.signal-strip {
  min-height:62px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:24px;
  padding:12px 24px;
  background:var(--navy);
  color:white
}

.signal-strip>span {
  padding:5px 8px;
  background:#dc1f3d;
  font-size:.66rem;
  font-weight:900;
  letter-spacing:.12em
}

.signal-strip p {
  margin:0;
  font-size:.87rem
}

.signal-strip a {
  color:var(--gold);
  font-size:.8rem;
  font-weight:850
}

.section {
  padding-block:108px
}

.section-heading {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:50px;
  margin-bottom:44px
}

.section-heading h2 {
  font-size:clamp(2.5rem,4vw,4.3rem);
  line-height:1;
  margin:0;
  max-width:780px
}

.section-heading>p {
  max-width:390px;
  color:var(--muted);
  line-height:1.6
}

.portal-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px
}

.portal-card {
  min-height:310px;
  padding:27px;
  display:flex;
  flex-direction:column;
  border:1px solid var(--line);
  background:white;
  position:relative;
  overflow:hidden;
  transition:.25s
}

.portal-card:after {
  content:"";
  position:absolute;
  width:170px;
  height:170px;
  border-radius:50%;
  right:-80px;
  top:-80px;
  background:#075bff0e
}

.portal-card:hover {
  transform:translateY(-5px);
  border-color:#075bff66;
  box-shadow:0 24px 55px #07152a14
}

.portal-card small {
  font-size:.68rem;
  font-weight:900;
  letter-spacing:.13em;
  color:var(--blue);
  text-transform:uppercase
}

.portal-card h3 {
  font-family:Georgia,serif;
  font-size:1.8rem;
  margin:24px 0 10px
}

.portal-card p {
  color:var(--muted);
  line-height:1.55;
  margin:0
}

.portal-card>b {
  margin-top:auto;
  font-size:.78rem
}

.portal-card>b span {
  color:var(--blue);
  margin-left:8px
}

.portal-icon {
  font-size:2.4rem;
  color:var(--gold);
  margin-bottom:30px
}

.portal-2,.portal-5 {
  background:var(--navy);
  color:white;
  border-color:var(--navy)
}

.portal-2 p,.portal-5 p {
  color:#bac6d6
}

.portal-2 small,.portal-5 small {
  color:var(--gold)
}

.community-band {
  padding:110px 0;
  background:var(--navy);
  color:white;
  position:relative;
  overflow:hidden
}

.community-band:before {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,#071a33 45%,#071a33cc),url('../images/community-entrepreneurs-network.jpg') center/cover;
  opacity:.42
}

.community-layout {
  position:relative;
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:100px;
  align-items:center
}

.community-intro h2 {
  font-size:clamp(3rem,5vw,5.2rem);
  line-height:.98;
  margin:0 0 28px
}

.community-intro>p:not(.eyebrow) {
  color:#c0cada;
  font-size:1.05rem;
  line-height:1.7
}

.gold {
  background:var(--gold);
  color:var(--navy);
  box-shadow:none;
  margin-top:20px
}

.question-stack {
  display:grid;
  gap:13px
}

.question-card {
  background:#f8fbff;
  color:var(--ink);
  padding:23px;
  border-left:4px solid var(--blue);
  transition:.2s
}

.question-card:hover {
  transform:translateX(-8px)
}

.question-card>div {
  display:flex;
  align-items:center;
  gap:12px
}

.question-card small {
  font-weight:850
}

.question-card em {
  font-style:normal;
  font-size:.65rem;
  text-transform:uppercase;
  color:var(--blue);
  margin-left:auto
}

.avatar {
  width:35px;
  height:35px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:var(--blue);
  color:white;
  font-size:.7rem;
  font-weight:900
}

.question-card h3 {
  font-family:Georgia,serif;
  font-size:1.25rem;
  margin:18px 0
}

.question-card footer {
  display:flex;
  gap:20px;
  font-size:.74rem;
  color:var(--muted)
}

.question-card footer b {
  margin-left:auto;
  color:var(--blue)
}

.wiki-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px
}

.wiki-card {
  background:white;
  border:1px solid var(--line);
  padding-bottom:25px;
  transition:.2s
}

.wiki-card:hover {
  box-shadow:0 24px 45px #07152a18;
  transform:translateY(-4px)
}

.wiki-art {
  height:170px;
  display:grid;
  place-items:center;
  background:linear-gradient(135deg,var(--navy),#0b55c5);
  overflow:hidden
}

.wiki-1 .wiki-art,.wiki-4 .wiki-art {
  background:url('../images/wiki-ai-act-library.jpg') center/cover
}

.wiki-2 .wiki-art {
  background:linear-gradient(140deg,#ffc928,#e69f05)
}

.wiki-3 .wiki-art {
  background:linear-gradient(140deg,#e8edf4,#8b98a9)
}

.wiki-5 .wiki-art {
  background:radial-gradient(circle,#0b83ff,#071a33 70%)
}

.wiki-6 .wiki-art {
  background:linear-gradient(145deg,#071a33,#5e0c37)
}

.wiki-art span {
  font-family:Georgia,serif;
  font-size:4rem;
  color:white;
  text-shadow:0 4px 15px #0006
}

.wiki-card>small,.wiki-card>h3,.wiki-card>p,.wiki-card>b {
  margin-left:24px;
  margin-right:24px
}

.wiki-card>small {
  display:block;
  margin-top:22px;
  color:var(--blue);
  font-size:.67rem;
  font-weight:900;
  text-transform:uppercase
}

.wiki-card h3 {
  font-family:Georgia,serif;
  font-size:1.45rem;
  margin-top:12px;
  margin-bottom:10px
}

.wiki-card p {
  font-size:.88rem;
  color:var(--muted);
  line-height:1.55
}

.wiki-card>b {
  font-size:.73rem;
  color:var(--blue)
}

.tool-showcase {
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  background:#e7ebf1;
  margin-bottom:110px
}

.tools-title {
  padding:64px
}

.tools-title h2 {
  font-size:3.5rem;
  line-height:1;
  margin:0 0 25px
}

.tools-title>p:not(.eyebrow) {
  color:var(--muted);
  line-height:1.6
}

.tools-list {
  background:white
}

.tools-list>a {
  min-height:114px;
  padding:23px 27px;
  display:grid;
  grid-template-columns:55px 1fr 35px;
  gap:15px;
  align-items:center;
  border-bottom:1px solid var(--line)
}

.tools-list>a:hover {
  background:#f6f9ff
}

.tools-list>a>span {
  color:var(--blue);
  font-family:Georgia,serif;
  font-size:1.25rem
}

.tools-list h3 {
  margin:0 0 7px;
  font-family:Georgia,serif;
  font-size:1.3rem
}

.tools-list p {
  margin:0;
  color:var(--muted);
  font-size:.83rem
}

.tools-list>a>b {
  color:var(--blue);
  font-size:1.3rem
}

.newsletter {
  margin-bottom:110px;
  padding:62px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
  background:linear-gradient(120deg,#071a33,#093c85);
  color:white;
  align-items:center
}

.newsletter h2 {
  font-size:3rem;
  margin:0 0 14px
}

.newsletter p:not(.eyebrow) {
  color:#c7d1e0;
  line-height:1.6
}

.email-form {
  display:grid;
  grid-template-columns:.7fr 1.3fr auto;
  gap:10px
}

.email-form input {
  min-width:0;
  padding:16px;
  border:1px solid #ffffff3b;
  background:#ffffff13;
  color:white;
  outline:none
}

.email-form input::placeholder {
  color:#aebbd0
}

.email-form button {
  border:0;
  background:var(--gold);
  color:var(--navy);
  font-weight:900;
  padding:0 18px;
  cursor:pointer
}

.consent {
  grid-column:1/-1;
  color:#acb8c9;
  font-size:.7rem;
  line-height:1.4
}

.consent input {
  margin-right:6px
}

.form-status {
  grid-column:1/-1!important;
  color:white!important;
  margin:0!important;
  font-size:.8rem
}

.site-footer {
  background:#030b15;
  color:#c5cfdb;
  padding:70px max(24px,calc((100% - 1240px)/2)) 28px;
  display:grid;
  grid-template-columns:1.5fr repeat(3,1fr);
  gap:55px
}

.site-footer h3 {
  color:white;
  font-size:.8rem;
  text-transform:uppercase;
  letter-spacing:.1em
}

.site-footer p,.site-footer a {
  display:block;
  font-size:.8rem;
  line-height:1.7;
  margin:5px 0
}

.site-footer a:hover {
  color:var(--gold)
}

.site-footer small {
  grid-column:1/-1;
  border-top:1px solid #ffffff1f;
  padding-top:22px;
  margin-top:20px;
  color:#79879a
}

.page-main {
  min-height:70vh
}

.page-hero {
  background:var(--navy);
  color:white;
  padding:90px max(24px,calc((100% - 1100px)/2));
  position:relative;
  overflow:hidden
}

.page-hero.has-image {
  min-height:500px;
  display:flex;
  align-items:end
}

.page-hero.has-image:before {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,#061325 15%,#061325c4 55%,#06132555),var(--page-image) center/cover
}

.page-hero>* {
  position:relative
}

.page-hero h1 {
  font-size:clamp(3.4rem,6vw,6rem);
  line-height:.95;
  margin:0;
  max-width:850px
}

.page-hero>p:not(.eyebrow) {
  font-size:1.12rem;
  line-height:1.65;
  max-width:720px;
  color:#c3cede
}

.content-shell {
  width:min(1100px,calc(100% - 48px));
  margin:auto;
  padding:70px 0 110px
}

.content-shell h2 {
  font-family:Georgia,serif;
  font-size:2.8rem
}

.feature-grid,.resource-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px
}

.feature-card,.resource-card {
  padding:28px;
  background:white;
  border:1px solid var(--line)
}

.feature-card h3,.resource-card h3 {
  font-family:Georgia,serif;
  font-size:1.35rem
}

.feature-card p,.resource-card p {
  color:var(--muted);
  line-height:1.55
}

.tag {
  display:inline-block;
  padding:5px 8px;
  background:#e7efff;
  color:var(--blue);
  font-size:.65rem;
  font-weight:900;
  text-transform:uppercase
}

.split-panel {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
  margin-top:50px
}

.panel {
  background:white;
  padding:30px;
  border:1px solid var(--line)
}

.panel.dark {
  background:var(--navy);
  color:white
}

.stack-form {
  display:grid;
  gap:12px
}

.stack-form input,.stack-form textarea,.stack-form select {
  width:100%;
  padding:14px;
  border:1px solid var(--line);
  background:white
}

.stack-form textarea {
  min-height:130px
}

.stack-form button {
  padding:14px;
  border:0;
  background:var(--blue);
  color:white;
  font-weight:900;
  cursor:pointer
}

.community-list {
  display:grid;
  gap:12px
}

.community-list .question-card {
  border:1px solid var(--line);
  border-left:4px solid var(--blue)
}

.searchbox {
  display:flex;
  gap:10px;
  margin:32px 0
}

.searchbox input {
  flex:1;
  padding:17px;
  border:1px solid var(--line);
  background:white
}

.searchbox button {
  padding:0 24px;
  background:var(--blue);
  color:white;
  border:0;
  font-weight:900
}

.timeline {
  display:grid;
  gap:2px
}

.timeline article {
  display:grid;
  grid-template-columns:170px 1fr;
  background:white;
  padding:24px;
  border-left:4px solid var(--blue)
}

.timeline time {
  font-weight:900;
  color:var(--blue)
}

.timeline h3 {
  margin:0 0 8px
}

.timeline p {
  margin:0;
  color:var(--muted)
}

.official-links {
  display:grid;
  gap:10px;
  margin-top:30px
}

.official-links a {
  padding:16px;
  background:white;
  border:1px solid var(--line);
  color:var(--blue);
  font-weight:800
}

.diagnostic-box {
  background:white;
  border:1px solid var(--line);
  padding:34px
}

.choice-grid {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:10px
}

.choice {
  padding:15px;
  border:1px solid var(--line);
  display:flex;
  gap:10px
}

.result-panel {
  margin-top:22px;
  padding:24px;
  background:#eef4ff;
  border-left:4px solid var(--blue)
}

@media(max-width:1000px) {
  .site-header nav {
    display:none
  }

  .site-header {
    justify-content:space-between
  }

  .hero {
    grid-template-columns:1fr;
    min-height:unset
  }

  .hero-visual {
    height:520px
  }

  .portal-grid,.wiki-grid {
    grid-template-columns:repeat(2,1fr)
  }

  .community-layout,.newsletter,.tool-showcase {
    grid-template-columns:1fr
  }

  .community-layout {
    gap:50px
  }

  .feature-grid,.resource-grid {
    grid-template-columns:repeat(2,1fr)
  }

  .site-footer {
    grid-template-columns:repeat(2,1fr)
  }

}

@media(max-width:650px) {
  .shell,.content-shell {
    width:min(100% - 28px,1240px)
  }

  .site-header {
    height:66px;
    padding:0 14px
  }

  .header-cta {
    display:none
  }

  .hero {
    padding-block:34px;
    gap:30px
  }

  .hero h1 {
    font-size:3.5rem
  }

  .hero-visual {
    height:460px
  }

  .visual-callout {
    grid-template-columns:1fr
  }

  .visual-callout small {
    grid-row:auto
  }

  .signal-strip {
    align-items:flex-start;
    flex-direction:column;
    gap:8px
  }

  .section {
    padding-block:75px
  }

  .section-heading {
    align-items:flex-start;
    flex-direction:column
  }

  .portal-grid,.wiki-grid,.feature-grid,.resource-grid,.split-panel {
    grid-template-columns:1fr
  }

  .community-band {
    padding:75px 0
  }

  .community-intro h2 {
    font-size:3.4rem
  }

  .question-card footer {
    flex-wrap:wrap
  }

  .question-card footer b {
    margin-left:0
  }

  .tools-title {
    padding:38px 28px
  }

  .newsletter {
    padding:38px 25px
  }

  .email-form {
    grid-template-columns:1fr
  }

  .consent,.form-status {
    grid-column:auto!important
  }

  .email-form button {
    padding:15px
  }

  .site-footer {
    grid-template-columns:1fr;
    padding-top:50px
  }

  .site-footer small {
    grid-column:1
  }

  .page-hero {
    padding-top:70px;
    padding-bottom:70px
  }

  .page-hero h1 {
    font-size:3.4rem
  }

  .timeline article {
    grid-template-columns:1fr;
    gap:10px
  }

  .choice-grid {
    grid-template-columns:1fr
  }

}

.photo-manifesto {
  height:560px;
  margin-bottom:110px;
  position:relative;
  overflow:hidden;
  background:var(--navy)
}

.photo-manifesto img {
  width:100%;
  height:100%;
  object-fit:cover;
  filter:contrast(1.05)
}

.photo-manifesto>a {
  position:absolute;
  inset:auto 30px 30px auto;
  width:min(520px,calc(100% - 60px));
  padding:32px;
  background:#061322ed;
  color:white;
  border-top:3px solid var(--gold)
}

.photo-manifesto small {
  color:var(--gold);
  font-weight:900;
  letter-spacing:.12em
}

.photo-manifesto h2 {
  font-family:Georgia,serif;
  font-size:2.2rem;
  line-height:1.08;
  margin:14px 0 20px
}

.photo-manifesto span {
  font-size:.78rem;
  font-weight:900
}

@media(max-width:650px) {
  .photo-manifesto {
    height:500px;
    margin-bottom:75px
  }

  .photo-manifesto>a {
    inset:auto 14px 14px 14px;
    width:auto;
    padding:22px
  }

  .photo-manifesto h2 {
    font-size:1.7rem
  }

}

.owner-shell {
  min-height:100vh;
  background:var(--paper);
  padding:60px 24px
}

.owner-wrap {
  width:min(1100px,100%);
  margin:auto
}

.owner-wrap header {
  background:var(--navy);
  color:white;
  padding:40px
}

.owner-wrap header h1 {
  font-family:Georgia,serif;
  font-size:3rem
}

.owner-stat {
  display:flex;
  gap:16px;
  align-items:baseline;
  background:white;
  padding:26px;
  margin:20px 0
}

.owner-stat strong {
  font-size:2.8rem;
  color:var(--blue)
}

.contacts-card {
  overflow:auto;
  background:white
}

.contacts-table {
  width:100%;
  border-collapse:collapse
}

.contacts-table th,.contacts-table td {
  text-align:left;
  padding:15px;
  border-bottom:1px solid var(--line)
}

/* Corrections visuelles : logo officiel, images dégagées et zéro débordement mobile. */
html,body {
  max-width:100%;
  overflow-x:hidden
}

main,section,div,a {
  min-width:0
}

img {
  max-width:100%
}

.brand-lockup {
  display:flex;
  align-items:center;
  gap:14px;
  width:292px;
  height:74px;
  overflow:visible;
  flex:none
}

.brand-emblem {
  display:block;
  position:relative;
  width:76px;
  height:72px;
  overflow:hidden;
  background:#000;
  flex:none
}

.brand-emblem img {
  position:absolute;
  display:block;
  width:110px;
  max-width:none;
  height:auto;
  left:-19px;
  top:-14px
}

.brand-words {
  display:flex;
  align-items:baseline;
  gap:8px;
  white-space:nowrap;
  font-size:1rem;
  font-weight:500;
  letter-spacing:.13em;
  color:#f1f4f8
}

.brand-words strong {
  color:#1680ff;
  font-weight:800
}

.site-header .brand,.site-footer .brand {
  gap:0
}

.site-header {
  height:92px
}

.hero-actions {
  flex-wrap:wrap
}

.hero-visual {
  height:auto;
  display:grid;
  grid-template-rows:auto auto;
  background:#020810;
  border-radius:4px 4px 36px 4px
}

.hero-visual>img {
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:2048/3070;
  object-fit:contain;
  object-position:center;
  background:#000
}

.visual-callout {
  position:static;
  display:grid;
  grid-template-columns:100px 1fr;
  min-height:92px;
  margin:0;
  padding:19px 21px;
  background:#061322;
  color:white;
  border-left:3px solid var(--gold)
}

.photo-manifesto {
  height:auto;
  display:grid;
  grid-template-columns:minmax(0,1.65fr) minmax(310px,.75fr);
  background:#061322
}

.photo-manifesto img {
  display:block;
  width:100%;
  height:100%;
  min-height:430px;
  object-fit:cover;
  object-position:center
}

.photo-manifesto>a {
  position:static;
  width:auto;
  padding:38px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  background:#061322;
  color:white;
  border:0;
  border-top:3px solid var(--gold)
}

.community-band:before {
  display:none
}

.community-band {
  padding-top:0
}

.community-photo {
  height:520px;
  margin-bottom:74px;
  overflow:hidden;
  background:#020810
}

.community-photo img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center
}

.media-hero {
  min-height:0!important;
  padding:0!important;
  display:grid!important;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  align-items:stretch!important;
  background:var(--navy)
}

.media-hero:before {
  display:none!important
}

.media-hero .page-hero-copy {
  position:static;
  padding:78px max(36px,calc((100vw - 1240px)/2));
  padding-right:55px;
  display:flex;
  flex-direction:column;
  justify-content:center
}

.media-hero .page-hero-copy>p:not(.eyebrow) {
  font-size:1.08rem;
  line-height:1.65;
  color:#c3cede
}

.media-hero .page-hero-photo {
  position:static;
  display:block;
  width:100%;
  height:100%;
  min-height:480px;
  object-fit:cover;
  object-position:center
}

@media(max-width:1000px) {
  .brand-lockup {
    width:265px;
    height:62px;
    gap:11px
  }

  .brand-emblem {
    width:64px;
    height:60px
  }

  .brand-emblem img {
    width:92px;
    left:-16px;
    top:-12px
  }

  .brand-words {
    font-size:.9rem;
    gap:7px
  }

  .photo-manifesto {
    grid-template-columns:1fr
  }

  .photo-manifesto img {
    height:auto;
    min-height:0;
    aspect-ratio:16/9
  }

  .photo-manifesto>a {
    border-top:3px solid var(--gold)
  }

  .media-hero {
    grid-template-columns:1fr
  }

  .media-hero .page-hero-copy {
    padding:60px 36px
  }

  .media-hero .page-hero-photo {
    min-height:0;
    height:auto;
    aspect-ratio:16/9;
    object-fit:cover
  }

}

@media(max-width:650px) {
  .brand-lockup {
    width:252px;
    height:56px;
    gap:9px
  }

  .brand-emblem {
    width:58px;
    height:56px
  }

  .brand-emblem img {
    width:86px;
    left:-15px;
    top:-11px
  }

  .brand-words {
    font-size:.82rem;
    gap:6px;
    letter-spacing:.1em
  }

  .site-header {
    width:100%;
    max-width:100%;
    height:76px
  }

  .hero h1 {
    font-size:clamp(2.8rem,13vw,3.35rem);
    overflow-wrap:anywhere
  }

  .hero-lead {
    font-size:1.02rem
  }

  .hero-actions {
    align-items:stretch;
    gap:16px
  }

  .hero-actions>a {
    width:100%;
    max-width:100%;
    justify-content:space-between
  }

  .hero-visual {
    height:auto
  }

  .visual-callout {
    grid-template-columns:1fr;
    min-height:0
  }

  .visual-callout small {
    grid-row:auto
  }

  .photo-manifesto {
    height:auto;
    margin-bottom:75px
  }

  .photo-manifesto img {
    aspect-ratio:16/10
  }

  .photo-manifesto>a {
    inset:auto;
    width:auto;
    padding:26px
  }

  .community-photo {
    height:auto;
    aspect-ratio:16/10;
    margin-bottom:50px
  }

  .community-photo img {
    object-position:center
  }

  .media-hero .page-hero-copy {
    padding:52px 20px
  }

  .media-hero .page-hero-photo {
    aspect-ratio:16/10
  }

  .searchbox {
    flex-direction:column
  }

  .searchbox button {
    padding:15px
  }

}


/* ------------------------------------------------------------------
   Corrections du 26 août 2026, demandées par l'éditeur du site.
   1. Le point final du titre d'accueil venait mordre le bord de l'image
      selon la largeur de la fenêtre et le zoom du navigateur.
   2. Le cadre du visuel d'accueil était trop carré.
   ------------------------------------------------------------------ */

.hero-copy {
  min-width: 0;
  padding-right: 24px;
}

.hero h1 {
  font-size: clamp(2.4rem, 4.8vw, 5.2rem);
  hyphens: auto;
  -webkit-hyphens: auto;
  overflow-wrap: break-word;
}

.hero-visual {
  border-radius: 26px 26px 58px 26px;
  height: 610px;
  background: #04060c;
}

.hero-visual > img,
.hero-visual > video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  filter: none;
  background: #04060c;
}

.hero-visual > video {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity .45s ease;
  pointer-events: none;
}

.hero-visual > video.visible {
  opacity: 1;
}

@media (max-width: 1000px) {
  .hero-visual {
    border-radius: 22px 22px 42px 22px;
  }
}

/* ------------------------------------------------------------------
   Correction du 27 août 2026 : sur smartphone, le menu était masqué —
   une fois entré dans une page, plus aucun moyen visible de revenir au
   sommaire. Le menu redevient visible, sur une ligne qui défile.
   ------------------------------------------------------------------ */
@media (max-width: 1000px) {
  .site-header {
    flex-wrap: wrap;
    height: auto;
    row-gap: 10px;
    padding-top: 12px;
    padding-bottom: 12px;
  }

  .site-header nav {
    display: flex !important;
    order: 3;
    flex: 0 0 100%;
    width: 100%;
    justify-content: flex-start;
    gap: 14px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-bottom: 2px;
  }

  .site-header nav::-webkit-scrollbar {
    display: none;
  }

  .site-header nav a {
    flex: 0 0 auto;
    white-space: nowrap;
    font-size: .78rem;
  }
}


/* ============================================================
   Diagnostic — le moteur d'obligations (ajout du 27/08/2026,
   corrigé après relecture)
   ============================================================ */

.dg-promesse{
  max-width:none;margin:0 0 28px;padding:16px 20px;
  background:#eef3fb;border-left:3px solid var(--blue);border-radius:6px;
  font-size:.95rem;line-height:1.7;color:#2b3a4f
}
.dg-promesse strong{color:var(--ink)}

.dg-ecran{
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius);
  padding:34px;max-width:none;box-shadow:0 1px 2px rgba(6,17,31,.04),0 14px 40px rgba(6,17,31,.05)
}

/* les boutons du diagnostic sont de vrais <button> : sans cette remise à zéro,
   le navigateur leur dessine sa propre bordure grise */
.dg-ecran .primary-button,.dg-ecran .dg-retour{
  border:0;-webkit-appearance:none;appearance:none;font-family:inherit
}
.dg-ecran .dg-retour{border:1px solid var(--line)}

.dg-progression{margin-bottom:26px}
.dg-etape{margin:0 0 8px;font-size:.72rem;font-weight:900;letter-spacing:.16em;color:var(--muted)}
.dg-piste{height:4px;background:var(--silver);border-radius:99px;overflow:hidden}
.dg-jauge{height:100%;background:var(--blue);border-radius:99px;transition:width .35s ease}

/* .content-shell h2 impose 2,8rem : on reprend la main sans y toucher */
.content-shell .dg-question{
  font-family:Georgia,'Times New Roman',serif;font-size:clamp(1.5rem,3.2vw,2rem);
  line-height:1.2;margin:0 0 10px;color:var(--ink);max-width:24ch
}
.content-shell .dg-titre-section{
  font-family:Georgia,'Times New Roman',serif;font-size:1.45rem;line-height:1.25;
  margin:0 0 6px;color:var(--ink)
}
.content-shell .dg-bandeau h2{
  font-family:Georgia,'Times New Roman',serif;font-size:clamp(1.5rem,3.4vw,2.2rem);
  line-height:1.2;margin:0 0 10px;color:var(--white);max-width:22ch
}
.dg-aide{margin:0 0 22px;color:var(--muted);font-size:.95rem;line-height:1.6;max-width:62ch}
.dg-groupe{
  margin:24px 0 10px;font-size:.72rem;font-weight:900;letter-spacing:.14em;
  text-transform:uppercase;color:var(--blue)
}
.dg-separateur{border:0;border-top:1px solid var(--line);margin:26px 0 18px}
.dg-grille{display:grid;gap:10px}
@media (min-width:760px){.dg-grille{grid-template-columns:1fr 1fr}}

.dg-choix{
  display:flex;gap:12px;align-items:flex-start;
  padding:14px 16px;border:1px solid var(--line);border-radius:12px;
  background:var(--white);cursor:pointer;transition:border-color .15s,background .15s;
  font-size:.95rem;line-height:1.5
}
.dg-choix:hover{border-color:var(--blue2);background:#f7faff}
.dg-choix input{margin:3px 0 0;flex:none;width:18px;height:18px;accent-color:var(--blue)}
.dg-coche{border-color:var(--blue);background:#f2f7ff;box-shadow:inset 0 0 0 1px var(--blue)}
.dg-libelle{flex:1;display:block}
.dg-texte{display:block}
.dg-note{display:block;margin-top:5px;font-size:.82rem;line-height:1.5;color:var(--muted)}
.dg-choix:focus-within{outline:2px solid var(--blue);outline-offset:2px}

.dg-pied{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:28px}
.dg-suivant{margin-left:auto}
.dg-suivant:disabled{background:var(--silver);color:#5b6879;cursor:not-allowed;opacity:1}
.dg-retour{
  background:var(--white);border:1px solid var(--line);border-radius:99px;
  padding:13px 20px;cursor:pointer;color:var(--muted);font-weight:700;font-size:.9rem
}
.dg-retour:hover{border-color:var(--blue);color:var(--blue)}

.dg-repris{
  margin:0 0 18px;padding:16px 20px;background:#fff8e3;
  border-left:3px solid var(--gold);border-radius:6px;
  display:flex;flex-wrap:wrap;gap:12px;align-items:center
}
.dg-repris p{margin:0;flex:1 1 100%;font-size:.95rem;line-height:1.6;color:#5a4708}
.dg-repris .primary-button,.dg-repris .dg-retour{border:0;-webkit-appearance:none;appearance:none;font-family:inherit}
.dg-repris .dg-retour{border:1px solid #e2d3a0}

/* --------------------------------------------------------------- résultat */

.dg-bandeau{
  margin:-34px -34px 26px;padding:30px 34px;border-radius:var(--radius) var(--radius) 0 0;
  background:var(--navy);color:var(--white)
}
.dg-eyebrow{margin:0 0 12px;font-size:.68rem;font-weight:900;letter-spacing:.18em;color:#8fb5ff}
.dg-bandeau-texte{margin:0 0 14px;color:#c9d8ee;line-height:1.7;font-size:.97rem;max-width:64ch}
.dg-echeance{margin:0;padding-top:14px;border-top:1px solid rgba(255,255,255,.16);font-size:.95rem;color:#fff;line-height:1.6}
.dg-niveau-urgent{background:#5c1410}
.dg-niveau-urgent .dg-eyebrow{color:#ffb0a6}
.dg-niveau-urgent .dg-bandeau-texte{color:#f2cfc9}
.dg-niveau-hors_champ{background:#0d3d28}
.dg-niveau-hors_champ .dg-eyebrow{color:#9fe0bd}
.dg-niveau-hors_champ .dg-bandeau-texte{color:#c6e7d6}

.dg-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:12px}
.dg-vieprivee{margin:0 0 30px;font-size:.85rem;color:var(--muted);line-height:1.6;max-width:70ch}

.dg-section{margin:0 0 36px}
.dg-sous-section{margin:0 0 18px;color:var(--muted);font-size:.9rem;line-height:1.6;max-width:70ch}

.dg-carte{
  border:1px solid var(--line);border-left:4px solid var(--blue);border-radius:10px;
  padding:20px 22px;margin-bottom:14px;background:var(--white)
}
.dg-carte h3{margin:0 0 8px;font-size:1.05rem;line-height:1.35;color:var(--ink);max-width:56ch}
.dg-carte-haut{display:flex;flex-wrap:wrap;gap:10px;align-items:baseline;margin-bottom:10px}
.dg-pastille{font-size:.66rem;font-weight:900;letter-spacing:.12em;color:var(--blue)}
.dg-date{font-size:.78rem;color:var(--muted);margin-left:auto}
.dg-quoi{margin:0 0 12px;font-size:.94rem;line-height:1.7;color:#38445a;max-width:74ch}
.dg-geste-titre{margin:0 0 3px;font-size:.66rem;font-weight:900;letter-spacing:.12em;color:var(--blue)}
.dg-geste{margin:0 0 12px;font-size:.94rem;line-height:1.7;color:var(--ink);font-weight:600;max-width:74ch}
.dg-carte-bas{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:baseline;
  padding-top:10px;border-top:1px solid var(--line)}
.dg-article{font-size:.76rem;color:var(--muted)}
.dg-lien{font-size:.82rem;font-weight:700;color:var(--blue);margin-left:auto}
.dg-lien:hover{text-decoration:underline}

.dg-carte.dg-interdit{border-left-color:#b02a1e;background:#fdf4f2}
.dg-carte.dg-interdit .dg-pastille,.dg-carte.dg-interdit .dg-geste-titre{color:#b02a1e}
.dg-carte.dg-a_venir{border-left-color:#c08a12}
.dg-carte.dg-a_venir .dg-pastille,.dg-carte.dg-a_venir .dg-geste-titre{color:#8c6a0c}
.dg-carte.dg-recommande{border-left-color:#8a97a8}
.dg-carte.dg-recommande .dg-pastille,.dg-carte.dg-recommande .dg-geste-titre{color:#5b6879}

.dg-rassure .dg-bonne{
  border-left:4px solid #16663e;background:#f1f8f3;border-radius:10px;
  padding:18px 22px;margin-bottom:12px
}
.dg-rassure .dg-bonne h3{margin:0 0 6px;font-size:1rem;color:#16663e}
.dg-rassure .dg-bonne p{margin:0;font-size:.93rem;line-height:1.7;color:#33513f;max-width:74ch}

.dg-sanctions{background:var(--paper);border-radius:12px;padding:24px 26px}
.dg-sanctions-tete{margin:0 0 14px;font-size:.96rem;line-height:1.7;color:var(--ink);max-width:74ch}
.dg-plafonds{border-top:1px solid var(--line);padding-top:12px}
.dg-plafonds summary{cursor:pointer;font-size:.86rem;font-weight:700;color:var(--blue);list-style:none}
.dg-plafonds summary::-webkit-details-marker{display:none}
.dg-plafonds summary::before{content:"▸ "}
.dg-plafonds[open] summary::before{content:"▾ "}
.dg-liste-sanctions{margin:14px 0;padding-left:20px;line-height:1.8;font-size:.92rem;color:#38445a;max-width:74ch}
.dg-note-sanctions{
  margin:0 0 10px;padding:14px 16px;background:var(--white);
  border-left:3px solid var(--blue);border-radius:6px;font-size:.9rem;line-height:1.7;max-width:74ch
}

.dg-garder{margin:26px 0 18px;padding-top:22px;border-top:1px solid var(--line)}
.dg-garder .dg-choix{max-width:640px}
.dg-garder-message{margin:8px 0 0;font-size:.84rem;color:var(--muted)}
.dg-recommencer{margin-top:16px}
.dg-mentions{margin:0;padding-top:18px;border-top:1px solid var(--line);
  font-size:.8rem;line-height:1.7;color:var(--muted);max-width:80ch}

.dg-veille{margin-top:34px;max-width:none}

@media (max-width:680px){
  .dg-ecran{padding:24px 20px;border-radius:16px}
  .dg-bandeau{margin:-24px -20px 22px;padding:24px 20px;border-radius:16px 16px 0 0}
  .dg-actions{flex-direction:column;align-items:stretch}
  .dg-actions .primary-button{width:100%;text-align:center;border-radius:99px}
  .dg-suivant{margin-left:0;width:100%;text-align:center}
  .dg-pied{flex-direction:column-reverse;align-items:stretch}
  .dg-retour{width:100%}
  .dg-recommencer{width:100%}
  .dg-date{margin-left:0}
  .dg-lien{margin-left:0}
  .content-shell .dg-question{max-width:none}
  .content-shell .dg-bandeau h2{max-width:none}
}


/* ==================================================================
   Corrections du 27 août 2026, après relecture — trois défauts anciens
   du site, réparés sans toucher aux règles d'origine.
   ================================================================== */

/* 1. LA POLICE DU CORPS.
   La règle d'origine est `font-family:Arial,var(--font-geist-sans),sans-serif`.
   La variable --font-geist-sans n'est définie nulle part dans les pages
   livrées : le navigateur invalide alors TOUTE la déclaration et retombe
   sur sa police par défaut, Times New Roman. La charte graphique demande
   Arial pour les textes, menus, boutons et formulaires — et Georgia
   pour les titres, qui, eux, sont déclarés explicitement partout. */
body {
  font-family: Arial, Helvetica, sans-serif;
}

/* 2. L'EN-TÊTE QUI NE COLLE PAS.
   `overflow-x:hidden` sur <html> transforme la page en conteneur de
   défilement et annule `position:sticky` : le menu disparaissait dès
   qu'on descendait. `clip` empêche le débordement horizontal sans
   créer ce conteneur, donc le menu reste accessible partout. */
html, body {
  overflow-x: clip;
}

/* 3. L'EN-TÊTE À 1024 px.
   Le rattrapage du menu s'arrêtait à 1000 px : entre 1001 et 1100 px,
   « Outils gratuits » et « Poser une question » passaient à la ligne
   avec un vide au milieu. Le même traitement s'applique désormais
   jusqu'à 1100 px. */
@media (max-width: 1140px) {
  .site-header {
    flex-wrap: wrap;
    height: auto;
    row-gap: 10px;
    padding-top: 12px;
    padding-bottom: 12px;
    justify-content: space-between;
  }

  .site-header nav {
    display: flex !important;
    order: 3;
    flex: 0 0 100%;
    width: 100%;
    justify-content: flex-start;
    gap: 14px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-bottom: 2px;
  }

  .site-header nav::-webkit-scrollbar {
    display: none;
  }

  .site-header nav a {
    flex: 0 0 auto;
    white-space: nowrap;
    font-size: .78rem;
  }
}

/* 4. LE FORMULAIRE D'INSCRIPTION.
   En Arial, « Votre prénom » demande 96 px pour 79 px disponibles : le libellé
   était coupé en plein mot. La première colonne est élargie, et sous 1200 px
   les trois champs passent l'un sous l'autre. */
.newsletter .email-form {
  grid-template-columns: .95fr 1.3fr auto;
}

@media (max-width: 1200px) {
  .newsletter .email-form {
    grid-template-columns: 1fr;
  }
}

/* 5. LES GRANDS TITRES DES PAGES.
   Sur « Les entrepreneurs se répondent. », le mot le plus long débordait de sa
   colonne et passait sous la photo. Les titres peuvent désormais se couper. */
.hero h1,
.page-hero h1,
.media-hero .page-hero-copy h1 {
  overflow-wrap: break-word;
  hyphens: auto;
  -webkit-hyphens: auto;
}

.media-hero .page-hero-copy h1 {
  font-size: clamp(2.6rem, 4.6vw, 4.6rem);
}


/* ==================================================================
   Sélecteur de langue — deux boutons FR | EN dans le bandeau du haut
   ================================================================== */

.lang-switch {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: .74rem;
  font-weight: 800;
  letter-spacing: .06em;
  flex: none;
}

.lang-switch a {
  color: #8c9cb2;
  padding: 5px 7px;
  border-radius: 5px;
  line-height: 1;
}

.lang-switch a:hover {
  color: #fff;
  background: #ffffff14;
}

.lang-switch a.lang-actif {
  color: var(--gold);
  background: #ffc9281f;
}

.lang-switch span {
  color: #5b6b80;
}

@media (max-width: 1140px) {
  .lang-switch { order: 2; margin-left: auto; margin-right: 14px; }
}

@media (max-width: 560px) {
  .lang-switch { margin-right: 8px; font-size: .72rem; }
  .lang-switch a { padding: 6px 6px; }
}

/* ------------------------------------------------------------------
   28 août 2026 — menu du haut sur téléphone.
   Constat du contrôle : sous 700 px le menu était un ruban qui
   débordait, « Communauté » et « Ressources » sortaient de l'écran,
   et les liens faisaient 14 px de haut (un doigt en demande 32).
   Le menu passe sur deux lignes, les liens gagnent de la hauteur.
   Rien ne change au-dessus de 700 px.
------------------------------------------------------------------ */
@media (max-width: 700px) {
  .site-header nav {
    flex-wrap: wrap;
    row-gap: 2px;
    column-gap: 16px;
    justify-content: flex-start;
  }
  .site-header nav a {
    display: block;
    padding: 10px 0;
  }
  .lang-switch a {
    padding: 11px 9px;
  }
}

/* ------------------------------------------------------------------
   1er septembre 2026 — la rubrique où l'on se trouve reste allumée.
   Demande de l'éditeur : sans repère, il faut promener la souris sur
   le menu pour savoir où l'on est ; sur téléphone, où il n'y a pas de
   survol, c'est impossible. Le lien de la page courante porte
   aria-current="page" — l'attribut standard, lu aussi à voix haute
   par les lecteurs d'écran.
------------------------------------------------------------------ */
.site-header nav a[aria-current="page"] {
  color: var(--gold);
  font-weight: 700;
}

/* Le trait sous la rubrique est posé HORS DU FLUX : sans cela il
   ajoute 6 px à la hauteur du seul lien allumé, qui remonte alors
   d'un cran par rapport à ses voisins. */
.site-header nav a[aria-current="page"] {
  position: relative;
}

.site-header nav a[aria-current="page"]::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -5px;
  height: 2px;
  border-radius: 2px;
  background: var(--gold);
}

/* Un intitulé de menu ne se coupe jamais en deux lignes : à 1440 px,
   « Outils gratuits » passait sur deux lignes alors que tous ses
   voisins tenaient sur une. Défaut d'origine, sans rapport avec la
   marque de rubrique. */
.site-header nav a {
  white-space: nowrap;
}

.site-header nav a[aria-current="page"]:hover {
  color: var(--gold);
}


/* Le bouton d'appel du haut ne se coupe pas non plus en deux lignes :
   les intitulés de menu devenus insécables, le menu s'est élargi et
   le bouton se retrouvait sur deux lignes à 1440 px. */
.header-cta {
  white-space: nowrap;
}
