
:root {
  --bg: #f5f2ee;
  --panel: #faf8f5;
  --panel-2: #f0ece7;
  --line: #ded8d1;
  --line-strong: #cfc6bc;
  --text: #111a33;
  --muted: #5a6478;
  --muted-2: #7a8292;
  --navy: #1f3f91;
  --navy-dark: #163171;
  --accent: #d6763a;
  --shadow: 0 10px 30px rgba(17, 26, 51, .06);
  --radius: 24px;
  --radius-sm: 18px;
  --max: 1180px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--text);
  background: linear-gradient(180deg, #f8f6f3 0%, var(--bg) 100%);
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
.container { width: min(calc(100% - 48px), var(--max)); margin: 0 auto; }
.site-header {
  position: sticky; top: 0; z-index: 20;
  backdrop-filter: blur(10px);
  background: rgba(248, 246, 243, .82);
  border-bottom: 1px solid rgba(222, 216, 209, .7);
}
.header-inner {
  display: flex; align-items: center; justify-content: space-between;
  gap: 24px; min-height: 76px;
}
.brand { display: inline-flex; align-items: center; gap: 14px; font-size: 23px; font-weight: 500; letter-spacing: -.02em; }
.brand img { width: 34px; height: 14px; }
.nav { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; }
.nav a {
  position: relative; color: var(--muted); font-size: 17px;
  padding: 8px 0;
}
.nav a.active, .nav a:hover { color: var(--text); }
.nav a.active::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0;
  height: 2px; background: var(--navy); border-radius: 99px;
}
.header-mark { width: 22px; height: 2px; background: #9da4b0; border-radius: 99px; }
main { padding-bottom: 52px; }
.page { padding-top: 42px; }
.eyebrow {
  color: var(--navy); letter-spacing: .22em; font-size: 13px; font-weight: 700;
  text-transform: uppercase; margin-bottom: 12px;
}
.hero {
  display: grid; grid-template-columns: 1.03fr .97fr; gap: 44px;
  align-items: center; padding: 24px 0 28px;
}
.hero h1, .display, .section-title, .cta-block h2, .feature-card h3, .split-panel h3, .metric-card h3 {
  font-family: Georgia, "Iowan Old Style", "Palatino Linotype", "Book Antiqua", serif;
  font-weight: 400; letter-spacing: -.03em; line-height: .96;
}
.hero h1 {
  font-size: clamp(52px, 6.4vw, 84px);
  margin: 0 0 18px;
}
.hero h1 .secondary { color: #646e81; display: block; }
.lead {
  font-size: 19px; line-height: 1.52; color: var(--muted);
  max-width: 700px; margin: 0 0 28px;
}
.actions { display: flex; gap: 14px; flex-wrap: wrap; }
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 52px; padding: 0 22px; border-radius: 14px;
  border: 1px solid var(--navy); font-size: 17px; font-weight: 500;
  transition: .18s ease;
}
.btn.primary { background: var(--navy); color: #fff; box-shadow: var(--shadow); }
.btn.secondary { background: transparent; color: var(--navy-dark); border-color: #b9c2d8; }
.btn:hover { transform: translateY(-1px); }
.hero-visual {
  position: relative; min-height: 520px; padding: 10px;
}
.hero-visual img { width: 100%; height: auto; filter: drop-shadow(0 10px 25px rgba(17, 26, 51, .08)); }
.visual-caption {
  position: absolute; right: 8px; top: 8px; width: 170px;
  font-size: 12px; line-height: 1.55; color: var(--muted-2); text-transform: uppercase; letter-spacing: .2em;
}
.visual-caption::before {
  content: ""; position: absolute; left: -14px; top: 0; bottom: 0; width: 2px; background: var(--accent);
}
.visual-side-notes {
  position: absolute; right: 0; bottom: 40px;
  display: grid; gap: 16px; font-size: 12px; letter-spacing: .16em;
  color: var(--muted-2); text-transform: uppercase;
}
.kicker-row, .mini-proof-row {
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 18px 0;
}
.three-features {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin-top: 8px;
}
.feature {
  padding: 18px 30px 10px 0; display: flex; gap: 18px; align-items: flex-start;
}
.feature + .feature { border-left: 1px solid var(--line); padding-left: 30px; }
.icon {
  width: 48px; height: 48px; border-radius: 14px; border: 1px solid #d7dde9;
  display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto;
  color: var(--navy);
  background: rgba(255,255,255,.55);
}
.icon svg { width: 24px; height: 24px; }
.feature h3 { font-size: 26px; margin: 0 0 8px; }
.feature p, .card-copy p, .split-panel p, .metric-card p, .footer-copy, .proof-strip .item p {
  margin: 0; color: var(--muted); line-height: 1.5; font-size: 17px;
}
.section-head {
  display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: 42px 0 18px;
}
.section-head .section-title { font-size: clamp(38px, 4vw, 60px); margin: 0; }
.section-head .section-note {
  color: var(--navy); text-transform: uppercase; letter-spacing: .18em; font-size: 12px; font-weight: 700;
  white-space: nowrap;
}
.section-head .section-note::before {
  content: ""; display: inline-block; width: 58px; height: 2px; border-radius: 99px;
  background: linear-gradient(90deg, rgba(214,118,58,.95), rgba(214,118,58,.15));
  margin-right: 16px; vertical-align: middle;
}
.card-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px;
}
.link-card, .metric-card, .split-panel, .contact-card, .doc-card, .deployment-observed {
  background: linear-gradient(180deg, rgba(255,255,255,.6), rgba(255,255,255,.38));
  border: 1px solid rgba(214, 208, 201, .92);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}
.link-card { overflow: hidden; }
.link-card .card-inner { display: grid; grid-template-columns: 1.2fr .95fr; min-height: 220px; }
.card-copy { padding: 28px 24px 22px; }
.card-copy h3 { font-size: 38px; margin: 0 0 10px; }
.card-copy a { color: var(--navy); font-weight: 600; display: inline-flex; gap: 6px; margin-top: 18px; }
.card-art {
  background: radial-gradient(circle at 20% 20%, rgba(255,255,255,.7), rgba(255,255,255,0) 42%),
              linear-gradient(135deg, rgba(255,255,255,.78), rgba(234, 230, 224, .9));
  position: relative;
}
.card-art img { width: 100%; height: 100%; object-fit: cover; opacity: .98; }
.proof-strip {
  margin: 24px 0 0; padding: 18px 0;
  border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
  display: grid; grid-template-columns: 1.15fr repeat(3, 1fr); gap: 18px; align-items: center;
}
.proof-strip .label {
  color: var(--navy); text-transform: uppercase; letter-spacing: .22em; font-size: 12px; font-weight: 700;
}
.proof-strip .item {
  display: flex; align-items: flex-start; gap: 14px; padding-left: 14px; border-left: 1px solid var(--line);
}
.proof-strip .item strong { display: block; margin-bottom: 4px; }
.closing {
  display: grid; grid-template-columns: 1.08fr .92fr; gap: 28px; align-items: center;
  padding: 36px 0 10px;
}
.cta-block {
  padding-left: 24px; position: relative;
}
.cta-block::before {
  content: ""; position: absolute; left: 0; top: 9px; bottom: 10px; width: 2px; background: var(--accent);
}
.cta-block h2 { font-size: clamp(42px, 4.8vw, 68px); margin: 0 0 12px; }
.cta-block p { color: var(--muted); font-size: 19px; line-height: 1.55; margin: 0; max-width: 700px; }
.contact-card {
  min-height: 190px; padding: 28px; position: relative; overflow: hidden;
}
.contact-card .label, .doc-card .label {
  color: var(--muted-2); text-transform: uppercase; letter-spacing: .18em; font-size: 12px; font-weight: 700;
  margin-bottom: 24px;
}
.contact-line, .doc-line {
  display: flex; align-items: center; gap: 12px; font-size: 23px;
  font-family: Georgia, "Iowan Old Style", serif;
}
.contact-sub { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line); color: var(--muted-2); font-size: 17px; }
.contact-card::after, .doc-card::after, .split-panel::after {
  content: ""; position: absolute; right: -20px; bottom: -20px; width: 220px; height: 220px;
  border-radius: 50%;
  background: radial-gradient(circle at center, rgba(255,255,255,.18) 0, rgba(255,255,255,.18) 38%, transparent 40%),
              radial-gradient(circle at center, transparent 0, transparent 54%, rgba(206, 215, 228, .55) 55%, transparent 56%),
              radial-gradient(circle at center, transparent 0, transparent 67%, rgba(206, 215, 228, .42) 68%, transparent 69%),
              radial-gradient(circle at center, transparent 0, transparent 80%, rgba(206, 215, 228, .34) 81%, transparent 82%);
  opacity: .9;
}
.contact-card .accent-dot, .doc-card .accent-dot {
  position: absolute; right: 72px; top: 88px; width: 10px; height: 10px; border-radius: 50%; background: var(--accent);
}
.contact-card .arrow, .doc-card .arrow {
  position: absolute; right: 22px; bottom: 20px; color: var(--navy); font-size: 32px;
}
.site-footer {
  margin-top: 26px; padding: 18px 0 32px; border-top: 1px solid var(--line);
}
.footer-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.footer-copy { font-size: 15px; }
.footer-tag { color: var(--muted-2); text-transform: uppercase; letter-spacing: .2em; font-size: 11px; font-weight: 700; display: flex; align-items: center; gap: 18px; }
.footer-tag::before { content: ""; width: 48px; height: 2px; background: #9fa7b8; border-radius: 99px; }
.panel-grid {
  display: grid; grid-template-columns: 1fr 1fr 1.15fr; gap: 16px; align-items: stretch;
}
.metric-card, .split-panel { padding: 22px 24px; position: relative; overflow: hidden; }
.metric-card h3, .split-panel h3 { font-size: 32px; margin: 0 0 14px; }
.metric-card .rule, .split-panel .rule { display: inline-block; width: 48px; height: 2px; background: linear-gradient(90deg,var(--accent),rgba(214,118,58,.2)); vertical-align: middle; margin-left: 14px; }
.info-list, .feature-list { margin: 14px 0 0; padding: 0; list-style: none; display: grid; gap: 14px; }
.info-list li, .feature-list li {
  display: grid; grid-template-columns: 38px 1fr; gap: 10px; align-items: start; color: var(--muted);
  padding-bottom: 12px; border-bottom: 1px solid rgba(222,216,209,.9);
}
.info-list li:last-child, .feature-list li:last-child { border-bottom: 0; padding-bottom: 0; }
.info-list .mini-icon, .feature-list .mini-icon {
  width: 30px; height: 30px; border-radius: 9px; border: 1px solid #d7dde9; display: flex; align-items: center; justify-content: center; color: var(--navy);
}
.muted-block { color: var(--muted); font-size: 17px; line-height: 1.56; }
.data-table { width: 100%; border-collapse: collapse; font-size: 17px; margin-top: 12px; }
.data-table th { text-align: left; color: var(--navy); font-weight: 700; padding: 12px 12px 12px 0; border-bottom: 1px solid var(--line-strong); }
.data-table td { padding: 14px 12px 14px 0; border-bottom: 1px solid var(--line); color: var(--muted); }
.data-table td:last-child, .data-table th:last-child { padding-right: 0; font-weight: 700; color: var(--text); }
.note-box {
  margin-top: 16px; background: rgba(255,255,255,.5); border: 1px solid rgba(214,208,201,.92); border-radius: 16px; padding: 16px 18px; display: flex; gap: 12px; align-items: start; color: var(--muted);
}
.split-layout {
  display: grid; grid-template-columns: 1.08fr .92fr; gap: 16px; margin-top: 18px;
}
.bullets { display: grid; gap: 0; }
.bullet {
  display: grid; grid-template-columns: 42px 1fr; gap: 10px; padding: 15px 0; border-bottom: 1px solid var(--line);
}
.bullet:last-child { border-bottom: 0; }
.check {
  width: 32px; height: 32px; border-radius: 50%; border: 1px solid #b9c6e7; color: var(--navy);
  display: flex; align-items: center; justify-content: center; font-weight: 700;
}
.exposure-card { margin-top: 18px; }
.exposure-card .metric-card { padding-bottom: 8px; }
.doc-section {
  display: grid; grid-template-columns: 1.05fr .95fr; gap: 16px; align-items: center; margin-top: 18px;
}
.doc-card {
  min-height: 190px; padding: 28px; position: relative; overflow: hidden;
}
.metrics-row {
  display: grid; grid-template-columns: 1.12fr repeat(3, 1fr); gap: 18px; align-items: center;
  border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 18px 0; margin-top: 22px;
}
.metrics-row .item { display: flex; gap: 14px; border-left: 1px solid var(--line); padding-left: 16px; }
.metrics-row .label { color: var(--navy); text-transform: uppercase; letter-spacing: .22em; font-size: 12px; font-weight: 700; }
.deployment-observed {
  margin-top: 14px; background: linear-gradient(145deg, #183476, #122a5f); color: white;
  padding: 22px; position: relative; overflow: hidden; min-height: 170px;
}
.deployment-observed .label { color: rgba(255,255,255,.75); text-transform: uppercase; letter-spacing: .2em; font-size: 12px; font-weight: 700; margin-bottom: 16px; }
.deployment-observed p { margin: 0; font-size: 17px; line-height: 1.58; color: rgba(255,255,255,.95); max-width: 62%; }
.deployment-observed img { position: absolute; right: 18px; bottom: 12px; width: 220px; opacity: .96; }
.diagram-panel {
  display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-items: start;
}
.small-specs {
  background: rgba(255,255,255,.55); border: 1px solid var(--line); border-radius: 16px; padding: 16px;
  display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; margin-top: 12px;
}
.small-specs strong { display: block; font-size: 14px; color: var(--muted-2); text-transform: uppercase; letter-spacing: .12em; margin-bottom: 6px; }
.small-specs span { font-size: 28px; font-weight: 700; font-family: Georgia, serif; }
.inline-illustration { margin-top: 12px; border-radius: 18px; overflow: hidden; border: 1px solid var(--line); }
.inline-illustration img { width: 100%; }
@media (max-width: 1080px) {
  .hero, .closing, .split-layout, .doc-section, .panel-grid, .diagram-panel { grid-template-columns: 1fr; }
  .section-head { align-items: flex-start; flex-direction: column; }
  .proof-strip, .metrics-row { grid-template-columns: 1fr; }
  .proof-strip .item, .metrics-row .item { border-left: 0; padding-left: 0; border-top: 1px solid var(--line); padding-top: 16px; }
  .three-features, .card-grid { grid-template-columns: 1fr; }
  .feature + .feature { border-left: 0; border-top: 1px solid var(--line); padding-left: 0; padding-top: 24px; }
  .link-card .card-inner { grid-template-columns: 1fr; }
  .split-panel, .metric-card { min-height: 0; }
}
@media (max-width: 780px) {
  .container { width: min(calc(100% - 28px), var(--max)); }
  .header-inner { min-height: 66px; }
  .nav { gap: 16px; }
  .nav a { font-size: 15px; }
  .hero { gap: 18px; }
  .hero-visual { min-height: 0; }
  .lead, .cta-block p, .feature p, .card-copy p, .muted-block, .note-box, .contact-sub { font-size: 16px; }
}

.contact-line svg, .doc-line svg, .contact-sub svg, .note-box svg { width: 22px; height: 22px; flex: 0 0 auto; }
.contact-sub { display:flex; align-items:center; gap:10px; }
.note-box svg { margin-top: 2px; }

/* ---- ajouts Lenodia : blocs sous autorisation, citation, robustesse ---- */
.figures{margin-top:16px}
.quote{margin:22px 0 26px; padding-left:20px; border-left:2px solid var(--accent);
  font-family:Georgia,"Iowan Old Style",serif; font-size:clamp(19px,1.5vw,25px); line-height:1.42;
  color:var(--text); max-width:46ch}
.hero-visual{min-height:clamp(260px,36vw,520px)}
@media (max-width:1080px){ .visual-side-notes,.visual-caption{display:none} .hero-visual{padding:0} }

/* ---- en-tête sur écran étroit ---- */
@media (max-width: 860px){
  .header-inner{flex-wrap:wrap; row-gap:10px; padding-block:12px}
  .brand{order:1}
  .header-mark{display:none}
  .nav{order:3; width:100%; gap:18px; padding-bottom:4px; overflow-x:auto;
       -webkit-overflow-scrolling:touch; scrollbar-width:none}
  .nav::-webkit-scrollbar{display:none}
  .nav a{white-space:nowrap; font-size:15px}
}
/* ---- respiration verticale ---- */
.hero{padding-block:40px 34px}
@media (max-width:780px){ .hero{padding-block:26px 18px} .page{padding-top:26px} }

/* ---- cartes sans vignette : une seule colonne, hauteur homogène ---- */
.link-card .card-inner{grid-template-columns:1fr; min-height:0}
.card-copy{padding:30px 28px 26px; display:flex; flex-direction:column; height:100%}
.card-copy p{flex:1 1 auto}
.card-copy h3{font-size:32px}
/* ---- titre principal : présence sans écrasement ---- */
.hero h1{font-size:clamp(40px,4.6vw,64px); line-height:1.02}
.cta-block h2{font-size:clamp(32px,3.4vw,46px)}
.section-head .section-title{font-size:clamp(30px,3vw,44px)}
.lead{font-size:19px; max-width:56ch}

/* ---- phrase de situation : ce que Lenodia est ---- */
.positioning{border-top:1px solid var(--line); padding:26px 0 4px}
.positioning p{margin:0; max-width:78ch; font-family:Georgia,"Iowan Old Style",serif;
  font-size:clamp(19px,1.55vw,25px); line-height:1.45; color:var(--text)}
.positioning strong{font-weight:400; box-shadow:inset 0 -.42em 0 rgba(214,118,58,.16)}
@media (max-width:1080px){ .split-layout{grid-template-columns:1fr !important} }

/* ---- le sous-titre du héros est un qualificatif, pas un second titre ---- */
.hero h1 .secondary{font-size:.56em; line-height:1.18; display:block; margin-top:.42em;
  letter-spacing:-.012em}

/* ---- signature ---- */
.footer-tag{font-family:Georgia,"Iowan Old Style",serif; font-size:19px; line-height:1.3;
  color:var(--navy); letter-spacing:-.01em; text-align:right}
@media (max-width:780px){ .footer-tag{text-align:left} }

/* ---- pied de page : signature en évidence, mentions en second ---- */
.footer-inner{display:grid; grid-template-columns:auto 1fr; gap:14px 28px; align-items:center}
.footer-inner .brand{grid-column:1; grid-row:1}
.footer-tag{grid-column:2; grid-row:1; justify-self:end; text-align:right;
  text-transform:none !important; letter-spacing:-.012em !important;
  font-family:Georgia,"Iowan Old Style",serif !important; font-weight:400 !important;
  font-size:clamp(17px,1.35vw,22px) !important; line-height:1.28; color:var(--navy) !important}
.footer-tag::before{display:none !important}
.footer-copy{grid-column:1 / -1; grid-row:2; font-size:13px !important; line-height:1.6;
  color:var(--muted-2); max-width:none; padding-top:14px; border-top:1px solid var(--line)}
@media (max-width:780px){
  .footer-inner{grid-template-columns:1fr}
  .footer-inner .brand{grid-row:1} .footer-tag{grid-column:1; grid-row:2; justify-self:start; text-align:left}
  .footer-copy{grid-row:3}
}

/* ============================================================
   THÈME SOMBRE — jetons redéfinis, rien d'autre à changer
   ============================================================ */
:root[data-theme="dark"]{
  --bg:#0c1019; --panel:#121826; --panel-2:#161d2d; --line:#242c40; --line-strong:#333d56;
  --text:#e9ecf5; --muted:#9aa5bd; --muted-2:#78849e;
  --navy:#8fa8ee; --navy-dark:#a9bcf3; --accent:#f08a4b;
  --shadow:0 18px 50px rgba(0,0,0,.45);
}
:root[data-theme="dark"] body{background:linear-gradient(180deg,#0a0e16 0%,var(--bg) 55%,#0e1421 100%)}
:root[data-theme="dark"] .site-header{background:rgba(12,16,25,.82); border-bottom-color:var(--line)}
:root[data-theme="dark"] .link-card,:root[data-theme="dark"] .metric-card,
:root[data-theme="dark"] .split-panel,:root[data-theme="dark"] .contact-card,
:root[data-theme="dark"] .doc-card,:root[data-theme="dark"] .deployment-observed{
  background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.02));
  border-color:rgba(255,255,255,.09)}
:root[data-theme="dark"] .icon{background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.11)}
:root[data-theme="dark"] .btn.primary{background:var(--navy); color:#0c1019}
:root[data-theme="dark"] .btn.secondary{border-color:rgba(255,255,255,.22); color:var(--navy-dark)}
:root[data-theme="dark"] .note-box{background:rgba(255,255,255,.035)}
:root[data-theme="dark"] .hero-visual img{filter:none}
:root[data-theme="dark"] .positioning strong{box-shadow:inset 0 -.42em 0 rgba(240,138,75,.22)}

/* ---- rythme : bandes alternées, la respiration qui manquait ---- */
.band{background:var(--panel-2); border-block:1px solid var(--line)}
:root[data-theme="dark"] .band{background:rgba(255,255,255,.028)}
.band > .container{padding-block:clamp(2.5rem,5vw,4rem)}

/* ---- profondeur discrète du héros ---- */
.hero-visual{position:relative}
.hero-visual::after{content:""; position:absolute; inset:8% 6% 12% 8%; z-index:-1; border-radius:50%;
  background:radial-gradient(closest-side, rgba(31,63,145,.10), transparent 72%)}
:root[data-theme="dark"] .hero-visual::after{background:radial-gradient(closest-side, rgba(143,168,238,.16), transparent 72%)}

/* ---- bascule de thème ---- */
.theme-toggle{background:none; border:1px solid var(--line-strong); color:var(--muted);
  width:38px; height:38px; border-radius:10px; cursor:pointer; display:inline-flex;
  align-items:center; justify-content:center; transition:.18s}
.theme-toggle:hover{color:var(--text); border-color:var(--navy)}
.theme-toggle svg{width:18px; height:18px}
:root[data-theme="dark"] .theme-toggle .i-sun{display:block} :root[data-theme="dark"] .theme-toggle .i-moon{display:none}
.theme-toggle .i-sun{display:none} .theme-toggle .i-moon{display:block}

/* ---- illustrations selon le thème ---- */
.only-dark{display:none}
:root[data-theme="dark"] .only-light{display:none}
:root[data-theme="dark"] .only-dark{display:block}
/* les schémas sont dessinés pour le clair : en thème sombre ils gardent leur propre fond */
:root[data-theme="dark"] .hero-visual.figure{background:#f4f1ec; border:1px solid rgba(255,255,255,.10);
  border-radius:var(--radius); padding:clamp(18px,2.4vw,34px)}
:root[data-theme="dark"] .hero-visual.figure::after{display:none}
:root[data-theme="dark"] .inline-illustration{background:#f4f1ec; border-color:rgba(255,255,255,.10)}

/* ==========================================================
   PAGE D'ACCUEIL — structure des maquettes
   ========================================================== */
.brand-text{display:flex; flex-direction:column; line-height:1.05}
.brand-name{font-size:23px; font-weight:500; letter-spacing:-.02em}
.brand-sub{font-size:10.5px; letter-spacing:.22em; text-transform:uppercase; color:var(--muted-2); font-weight:600}
.header-right{display:flex; align-items:center; gap:14px}
.btn-sm{min-height:40px; padding:0 16px; font-size:15px}
@media (max-width:940px){ .btn-sm{display:none} }

.lead-2{margin:14px 0 26px; max-width:56ch; color:var(--muted-2); font-size:17px; line-height:1.55}
.hand{font-family:Georgia,"Iowan Old Style",serif; font-style:italic; color:var(--muted-2);
  font-size:19px; margin:14px 0 0; text-align:right}
.hand::after{content:""; display:block; width:46px; height:2px; background:var(--accent);
  opacity:.7; margin:8px 0 0 auto; border-radius:2px}
.hand-inline{text-align:left; margin:18px 0 22px}
.hand-inline::after{margin:8px auto 0 0}

.section{padding-block:clamp(3rem,6vw,5rem)}
.section h2,.band h2{margin:0 0 16px}
.wide{max-width:78ch; color:var(--muted); font-size:18px; line-height:1.6}

.four{display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(1.2rem,2.4vw,2.4rem)}
.four h3{font-family:var(--sans,inherit); font-size:19px; margin:12px 0 6px; font-weight:600}
.four p{margin:0; color:var(--muted); font-size:15.5px; line-height:1.5}
.verbes .container{padding-block:clamp(1.8rem,3.4vw,2.6rem)}

.four-tight{display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.4rem,2.6vw,2.2rem)}
.four-tight h3{font-size:16.5px; margin:10px 0 5px; font-weight:600}
.four-tight p{margin:0; color:var(--muted); font-size:14.5px; line-height:1.5}

.six{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.2rem,2.4vw,2rem); margin-top:34px}
.prop{background:var(--panel); border:1px solid var(--line); border-radius:var(--radius-sm); padding:24px}
:root[data-theme="dark"] .prop{background:rgba(255,255,255,.035); border-color:rgba(255,255,255,.08)}
.prop h3{font-size:18px; margin:12px 0 6px; font-weight:600}
.prop p{margin:0; color:var(--muted); font-size:15px; line-height:1.5}

.icon.sm{width:38px; height:38px; border-radius:11px}
.icon.sm svg{width:19px; height:19px}

.five{display:grid; grid-template-columns:repeat(5,1fr); gap:clamp(1rem,2vw,1.8rem); align-items:start}
.five p{margin:10px 0 0; color:var(--muted); font-size:14.5px; line-height:1.45}
.final .container{padding-block:clamp(1.8rem,3.2vw,2.6rem)}

.figure-inline{background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:22px}
:root[data-theme="dark"] .figure-inline{background:rgba(255,255,255,.035); border-color:rgba(255,255,255,.08)}
.figure-inline svg{width:100%; height:auto; display:block}
.continuum{width:100%; height:auto; display:block; margin-top:34px}

.pull{margin:0; font-family:Georgia,"Iowan Old Style",serif; font-size:clamp(24px,2.3vw,34px);
  line-height:1.28; color:var(--navy); border-left:2px solid var(--accent); padding-left:24px; align-self:center}

@media (max-width:1080px){
  .four{grid-template-columns:1fr 1fr} .six{grid-template-columns:1fr 1fr}
  .five{grid-template-columns:1fr 1fr 1fr}
}
@media (max-width:720px){
  .four,.six,.four-tight{grid-template-columns:1fr} .five{grid-template-columns:1fr 1fr}
  .hand{text-align:left} .hand::after{margin-left:0}
}

/* ---- deux colonnes (manquait dans la feuille) ---- */
.split{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(1.8rem,4vw,3.4rem); align-items:start}
#mutualisation .split{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr)}
#souverainete .split{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}
@media (max-width:940px){ .split{grid-template-columns:1fr} }
.figure-inline{max-width:640px}
.hero{grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr)}

/* ---- pied : liens discrets, plus de nom en signature ---- */
.footer-copy{display:flex; flex-wrap:wrap; gap:6px 22px; align-items:baseline}
.footer-links a{color:var(--muted-2); border-bottom:1px solid transparent; transition:.18s}
.footer-links a:hover{color:var(--text); border-color:var(--line-strong)}

/* ---- page de mentions légales ---- */
.legal{max-width:74ch}
.legal-title{font-family:Georgia,"Iowan Old Style",serif; font-weight:400; font-size:clamp(34px,3.4vw,50px);
  letter-spacing:-.02em; line-height:1.1; margin:0 0 8px}
.legal h2{font-size:clamp(19px,1.5vw,23px); margin:38px 0 10px}
.legal p{color:var(--muted); font-size:16.5px; line-height:1.62; margin:0 0 12px}
.legal a{color:var(--navy); border-bottom:1px solid var(--line-strong)}
.legal .nolink{color:var(--muted)}

/* ---- bascule de langue ---- */
.lang{display:inline-flex; align-items:center; gap:7px; font-size:13px; letter-spacing:.08em;
  font-weight:600; color:var(--muted-2); margin-right:4px}
.lang a{color:var(--muted-2); transition:.18s} .lang a:hover{color:var(--text)}
.lang b{color:var(--text); font-weight:700}
.lang span{opacity:.45}
@media (max-width:940px){ .lang{display:none} }

/* ---- bandeau : une seule ligne, jamais de repli ---- */
.header-inner{flex-wrap:nowrap; gap:18px}
.nav{flex-wrap:nowrap; gap:clamp(12px,1.5vw,26px); min-width:0; overflow:hidden}
.nav a{white-space:nowrap; font-size:clamp(14px,1.05vw,16.5px)}
.header-right{flex:0 0 auto; gap:10px}
.btn-sm{white-space:nowrap}
@media (max-width:1280px){ .btn-sm{display:none} }
@media (max-width:1080px){ .lang{display:inline-flex} .brand-sub{display:none} }
@media (max-width:860px){
  .header-inner{flex-wrap:wrap; row-gap:10px; padding-block:12px}
  .brand{order:1} .header-right{order:2; margin-left:auto}
  .nav{order:3; width:100%; overflow-x:auto; gap:18px; padding-bottom:2px;
       scrollbar-width:none; -webkit-overflow-scrolling:touch}
  .nav::-webkit-scrollbar{display:none}
  .lang{display:inline-flex}
}
