

@font-face { font-family: "Archivo Display"; font-weight: 100 900; font-stretch: 62% 125%; font-style: normal; font-display: swap;
  src: url("../fonts/archivo-latin-wdth-normal.woff2") format("woff2"); }
@font-face { font-family: "Atkinson Hyperlegible Next"; font-weight: 400; font-style: normal; font-display: swap;
  src: url("../fonts/atkinson-hyperlegible-next-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Atkinson Hyperlegible Next"; font-weight: 600; font-style: normal; font-display: swap;
  src: url("../fonts/atkinson-hyperlegible-next-latin-600-normal.woff2") format("woff2"); }
@font-face { font-family: "Atkinson Hyperlegible Next"; font-weight: 700; font-style: normal; font-display: swap;
  src: url("../fonts/atkinson-hyperlegible-next-latin-700-normal.woff2") format("woff2"); }


:root {
  --signal: #318ba2;      
  --signal-hi: #7fcfe3;   
  --marker: #ffd60a;      
  --cd-display: "Archivo Display", "Arial Narrow", "Segoe UI", system-ui, sans-serif;
  --text: "Atkinson Hyperlegible Next", "Segoe UI", Verdana, system-ui, sans-serif;
  --content: 1240px;
  --gut: clamp(1.1rem, 4vw, 3rem);

  --bg: #000;
  --fg: #f5f5f7;
  --txt: #c9c9ce;
  --mute: #8e8e93;
  --line: rgba(255, 255, 255, .16);
  --line-2: rgba(255, 255, 255, .34);
  --card: #0e0e10;
  --focus: var(--signal-hi);
}
main section.section:nth-of-type(even) {
  --bg: #f5f5f7;
  --fg: #0a0a0a;
  --txt: #333336;
  --mute: #5e5e63;
  --line: rgba(0, 0, 0, .16);
  --line-2: rgba(0, 0, 0, .4);
  --card: #fff;
  --focus: #0a0a0a;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; background: #000; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
  margin: 0;
  font-family: var(--text);
  font-size: 1.125rem;
  line-height: 1.6;
  color: var(--txt);
  background: #000;
  overflow-x: clip;
}

main { overflow: clip; }
img, svg { max-width: 100%; display: block; }
a { color: var(--fg); text-decoration-color: var(--line-2); text-underline-offset: .22em; text-decoration-thickness: 1px; }
a:hover { text-decoration-color: var(--fg); text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; border-radius: 4px; }

.skip { position: absolute; left: -999px; top: 0; background: #fff; color: #000; padding: .6rem 1rem; z-index: 50; }
.skip:focus { left: var(--gut); }

.wrap {
  position: relative; z-index: 1;
  width: min(var(--content), 100% - 2 * var(--gut));
  margin-inline: auto;
  max-width: none;
}


.site-header {
  position: sticky; top: 0; z-index: 30;
  padding-block: .4rem;
  background: rgba(0, 0, 0, .72);
  -webkit-backdrop-filter: saturate(180%) blur(18px); backdrop-filter: saturate(180%) blur(18px);
  border-bottom: 1px solid rgba(255, 255, 255, .12);
  color: #f5f5f7;
}
.site-header .wrap { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.brand { display: block; line-height: 0; }
.brand img { height: 74px; width: auto; }
.nav-toggle { display: none; font: inherit; font-weight: 600; color: #f5f5f7; background: transparent; border: 1px solid rgba(255, 255, 255, .45); border-radius: 999px; padding: .45rem 1rem; cursor: pointer; }
.nav ul { display: flex; gap: .4rem 1.7rem; list-style: none; margin: 0; padding: 0; align-items: center; }
.nav a { text-decoration: none; font-size: .95rem; font-weight: 600; color: rgba(245, 245, 247, .78); padding: .3rem 0; border-bottom: 2px solid transparent; white-space: nowrap; }
.nav a:hover { color: #fff; }
.nav a[aria-current="page"] { color: #fff; border-bottom-color: var(--signal-hi); }
.nav a.nav-cta { border: 1px solid rgba(255, 255, 255, .6); border-radius: 999px; padding: .4rem 1.1rem; color: #fff; }
.nav a.nav-cta:hover { background: #fff; color: #000; }

@media (max-width: 1100px) {
  .nav-toggle { display: inline-block; }
  .nav { display: none; position: absolute; left: 0; right: 0; top: 100%; background: #000; border-bottom: 1px solid rgba(255, 255, 255, .2); padding: 1rem var(--gut) 1.4rem; }
  .nav.open { display: block; }
  .nav ul { flex-direction: column; align-items: flex-start; gap: .7rem; }
  .nav a { font-size: 1.15rem; }
}


h1, h2, h3 { font-family: var(--cd-display); font-weight: 800; font-stretch: 112%; letter-spacing: -.035em; line-height: 1.02; margin: 0 0 1.2rem; color: var(--fg); text-wrap: balance; }
h1 { font-size: clamp(2.5rem, 7vw, 6rem); font-stretch: 122%; letter-spacing: -.05em; line-height: .96; max-width: 15ch; }
h2 { font-size: clamp(2rem, 4.6vw, 3.9rem); max-width: 20ch; }
h3 { font-size: 1.25rem; font-weight: 700; font-stretch: 100%; letter-spacing: -.015em; line-height: 1.15; }
p { margin: 0 0 1rem; max-width: 62ch; }
.lead { font-size: clamp(1.2rem, 2vw, 1.45rem); line-height: 1.5; max-width: 52ch; color: var(--txt); }
.small { font-size: .95rem; color: var(--mute); }
strong, b { color: var(--fg); }


.section, .hero {
  position: relative; z-index: 1;
  color: var(--txt);
  background: var(--bg);
  box-shadow: 0 0 0 100vmax var(--bg);
  clip-path: inset(0 -100vmax);
}
.section { padding-block: clamp(4rem, 10vw, 8rem); }



.hero {
  --bg: #000;
  padding-top: clamp(2.2rem, 5vw, 4rem);
  padding-bottom: clamp(5rem, 9vw, 7.5rem);
  clip-path: inset(0 -100vmax);
}
.hero h1 { font-size: clamp(2.2rem, 5.4vw, 4.6rem); letter-spacing: -.045em; max-width: 18ch; }
.hero::before {
  content: ""; position: absolute; z-index: -1; pointer-events: none;
  left: 50%; top: calc(100% - 2.4rem);
  width: max(260vw, 2300px); aspect-ratio: 1; border-radius: 50%;
  transform: translateX(-50%);
  background: radial-gradient(closest-side, #04070d 0, #000 100%);
  box-shadow:
    inset 0 2px 1px -1px rgba(225, 247, 253, .9),
    0 -2px 0 0 rgba(150, 220, 238, .7),
    0 -14px 46px -10px rgba(80, 180, 215, .38);
}
.hero .actions { display: flex; flex-wrap: wrap; gap: 1rem 1.8rem; align-items: center; margin-top: 2rem; }


.hero:has(h1 .l1) {
  min-height: calc(100svh - 5.4rem);
  display: flex; flex-direction: column; justify-content: center;
  padding-top: clamp(3rem, 8vw, 6rem);
  padding-bottom: clamp(9rem, 24vh, 16rem);
}
.hero:has(h1 .l1) h1 { font-size: clamp(2.5rem, 7vw, 6rem); font-stretch: 122%; letter-spacing: -.05em; line-height: .96; max-width: 15ch; }
.hero:has(h1 .l1)::before {
  top: calc(100% - clamp(6.5rem, 19vh, 12rem));
  width: max(210vw, 1900px);
  box-shadow:
    inset 0 2px 1px -1px rgba(225, 247, 253, .95),
    inset 0 34px 80px -30px rgba(90, 190, 220, .5),
    0 -2px 0 0 rgba(150, 220, 238, .8),
    0 -18px 60px -10px rgba(80, 180, 215, .45),
    0 -50px 130px -30px rgba(30, 120, 175, .5);
  animation: dawn 2.6s cubic-bezier(.16, .8, .2, 1) both;
}
.hero:has(h1 .l1)::after {
  content: ""; position: absolute; z-index: -2; pointer-events: none;
  left: 50%; bottom: 0; transform: translateX(-50%);
  width: min(100vw, 1800px); height: 60%;
  background: radial-gradient(ellipse 60% 70% at 50% 100%, rgba(50, 100, 235, .30), transparent 72%);
  animation: dawnglow 2.6s ease-out both;
}
.hero h1 .l1, .hero h1 .l2 { display: block; }
.hero h1 .l2 { color: var(--mute); }
.hero h1 .l1 { animation: rise .9s cubic-bezier(.2, .7, .2, 1) .15s both; }
.hero h1 .l2 { animation: rise .9s cubic-bezier(.2, .7, .2, 1) .45s both; }
.hero:has(h1 .l1) .lead { animation: rise .9s cubic-bezier(.2, .7, .2, 1) .8s both; }
.hero:has(h1 .l1) .actions { animation: rise .9s cubic-bezier(.2, .7, .2, 1) 1.05s both; }
@keyframes rise { from { opacity: 0; transform: translateY(26px); } }
@keyframes dawn { from { opacity: 0; transform: translate(-50%, 9%); } }
@keyframes dawnglow { from { opacity: 0; } }
@media (max-width: 760px) { .hero:has(h1 .l1)::before { width: max(300vw, 1150px); } }
@media (prefers-reduced-motion: reduce) { .hero::before, .hero::after, .hero h1 .l1, .hero h1 .l2, .hero .lead, .hero .actions { animation: none !important; } }

.btn { display: inline-block; font: inherit; font-weight: 700; text-decoration: none; background: var(--fg); color: var(--bg); padding: .85rem 1.7rem; border: 0; border-radius: 999px; cursor: pointer; transition: background .2s, color .2s; }
.btn:hover { background: var(--signal-hi); color: #000; }
.btn-quiet { font-weight: 700; color: var(--fg); text-decoration-color: var(--line-2); }


.tl-head { max-width: 62ch; }
.tl { margin-top: 2.6rem; }
.tl-track { display: flex; height: 144px; gap: 4px; }
.seg {
  flex: var(--d) 1 0; min-width: 0;
  display: flex; flex-direction: column; justify-content: space-between; text-align: left;
  font: 600 .85rem/1.15 var(--text); color: var(--fg, #fff);
  background: var(--bg, #2c2c2e); border: 0; border-radius: 14px;
  padding: .7rem .75rem; cursor: pointer;
  transition: transform .18s ease, filter .18s;
  animation: draw .6s cubic-bezier(.2, .7, .2, 1) backwards; animation-delay: calc(var(--i) * 80ms); transform-origin: left center;
}
.seg .d { font-weight: 700; }
.seg .n { display: none; }
.seg.wide .n { display: block; }
.seg.narrow .n { display: block; writing-mode: vertical-rl; transform: rotate(180deg); align-self: flex-start; white-space: nowrap; }
.seg[aria-pressed="true"] { transform: translateY(-8px); outline: 3px solid var(--focus); outline-offset: 3px; z-index: 2; }
.seg:hover { transform: translateY(-4px); }
.seg[aria-pressed="true"]:hover { transform: translateY(-8px); }
.seg.k-cadrage { --bg: #2c2c2e; --fg: #f5f5f7; }
.seg.k-maquette { --bg: #48484a; --fg: #f5f5f7; }
.seg.k-contenus { --bg: #636366; --fg: #fff; }
.seg.k-creation { --bg: #f5f5f7; --fg: #000; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .25); }
.seg.k-relecture { --bg: #8e8e93; --fg: #000; }
.seg.k-ligne { --bg: var(--signal-hi); --fg: #000; }
.seg.k-formation { --bg: #bfe6f1; --fg: #000; }
.seg.k-suivi { --bg: transparent; box-shadow: inset 0 0 0 1px var(--line-2); color: var(--txt); }

.tl-axis { position: relative; height: 34px; margin-top: 14px; border-top: 1px solid var(--line-2); }
.tick { position: absolute; top: 0; transform: translateX(-50%); font-size: .82rem; color: var(--mute); padding-top: 8px; font-weight: 600; }
.tick::before { content: ""; position: absolute; top: -7px; left: 50%; height: 6px; border-left: 1px solid var(--line-2); }
.tick:first-child { transform: none; } .tick:first-child::before { left: 0; }
.tick:last-child { transform: translateX(-100%); } .tick:last-child::before { left: 100%; }
.tl-unit { font-size: .85rem; color: var(--mute); margin: .2rem 0 0; }

.tl-detail {
  margin-top: 1.6rem; background: var(--card); border: 1px solid var(--line); border-radius: 22px;
  padding: 1.5rem 1.8rem;
  display: grid; grid-template-columns: minmax(0, 15rem) 1fr; gap: .5rem 2rem; align-items: start;
}
.tl-detail h3 { margin: 0; }
.tl-detail .when { margin: .25rem 0 0; font-size: .95rem; color: var(--mute); }
.tl-detail p { margin: 0; }
.tl-foot { font-size: .92rem; color: var(--mute); margin-top: 1.4rem; }

@keyframes draw { from { transform: scaleX(0); opacity: 0; } }
@keyframes drawY { from { transform: scaleY(0); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .seg { animation: none; transition: none; } }

@media (max-width: 760px) {
  .tl-track { flex-direction: column; height: auto; padding-right: 8px; }
  .seg { flex: none; min-height: max(52px, calc(var(--d) * 15px)); flex-direction: row; align-items: center; gap: .8rem; transform-origin: top center; animation-name: drawY; }
  .seg .n, .seg.narrow .n { display: block; writing-mode: horizontal-tb; transform: none; align-self: auto; white-space: normal; }
  .seg .d { min-width: 4.2rem; }
  .seg[aria-pressed="true"], .seg[aria-pressed="true"]:hover { transform: translateX(6px); }
  .seg:hover { transform: translateX(3px); }
  .tl-axis { display: none; }
  .tl-detail { grid-template-columns: 1fr; }
}


.duo { display: grid; grid-template-columns: 1fr 1fr; gap: 3.5rem clamp(2rem, 6vw, 5rem); margin-top: 2.4rem; }
@media (max-width: 900px) { .duo { grid-template-columns: 1fr; } }
.duo > div > h3 { font-family: var(--cd-display); font-stretch: 118%; font-size: clamp(1.5rem, 2.6vw, 2.1rem); letter-spacing: -.03em; margin-bottom: 1.4rem; }
.rows { margin: 0; padding: 0; list-style: none; }
.rows > li { padding: 1.3rem 0; border-top: 1px solid var(--line); display: grid; grid-template-columns: minmax(0, 13rem) 1fr; gap: .4rem 1.6rem; }
.rows > li:last-child { border-bottom: 1px solid var(--line); }
.rows h3 { margin: 0; font-size: 1.15rem; }
.rows p { margin: 0; font-size: 1.02rem; color: var(--txt); }
.duo .rows > li { grid-template-columns: 1fr; }
@media (max-width: 640px) { .rows > li { grid-template-columns: 1fr; } }

.more { margin-top: 1.4rem; font-weight: 700; }


.facts { display: grid; gap: 0; margin: 2rem 0 0; }
.facts > div { display: grid; grid-template-columns: minmax(0, 14rem) 1fr; gap: .3rem 2rem; padding: 1.3rem 0; border-top: 1px solid var(--line); }
.facts dt { font-family: var(--cd-display); font-weight: 700; font-size: 1.15rem; color: var(--fg); letter-spacing: -.01em; }
.facts dd { margin: 0; max-width: 60ch; }
@media (max-width: 640px) { .facts > div { grid-template-columns: 1fr; } }


.band { background: var(--signal); color: #000; position: relative; z-index: 1; --fg: #fff; --txt: #04161c; --bg: var(--signal); --focus: #000; --line-2: rgba(0, 0, 0, .5); }
.band .wrap { padding-block: clamp(4rem, 9vw, 7rem); }
.band h2 { color: #fff; max-width: 14ch; font-size: clamp(2.4rem, 7vw, 6rem); font-stretch: 122%; letter-spacing: -.05em; line-height: .98; }
.band p { color: #04161c; font-weight: 600; }
.band a { color: #000; text-decoration-color: rgba(0, 0, 0, .5); }
.band .btn { background: #000; color: #fff; }
.band .btn:hover { background: #fff; color: #000; }


.checks { list-style: none; padding: 0; margin: 0 0 1rem; max-width: 62ch; }
.checks li { padding: .7rem 0 .7rem 2.2rem; position: relative; border-bottom: 1px solid var(--line); }
.checks li::before { content: ""; position: absolute; left: .2rem; top: 1.1rem; width: .9rem; height: .5rem; border-left: 2px solid var(--fg); border-bottom: 2px solid var(--fg); transform: rotate(-45deg); }
.principles { counter-reset: p; list-style: none; padding: 0; margin: 0; max-width: 64ch; }
.principles li { padding: .9rem 0; border-top: 1px solid var(--line); }
.principles strong { font-family: var(--cd-display); font-weight: 700; }

details.faq { border-top: 1px solid var(--line); padding: .2rem 0; max-width: 70ch; }
details.faq:last-of-type { border-bottom: 1px solid var(--line); }
details.faq summary { cursor: pointer; font-family: var(--cd-display); font-weight: 700; font-size: 1.15rem; color: var(--fg); padding: 1rem 0; list-style: none; display: flex; justify-content: space-between; gap: 1rem; }
details.faq summary::-webkit-details-marker { display: none; }
details.faq summary::after { content: "+"; font-weight: 600; }
details.faq[open] summary::after { content: "\2212"; }
details.faq p { margin-bottom: 1rem; }


.form { display: grid; gap: 1.2rem; max-width: 40rem; }
.form label { display: grid; gap: .35rem; font-weight: 600; color: var(--fg); }
.form .hint { font-weight: 400; font-size: .92rem; color: var(--mute); }
.form input, .form select, .form textarea { font: inherit; font-weight: 400; color: var(--fg); background: var(--card); border: 1px solid var(--line-2); border-radius: 12px; padding: .8rem .95rem; width: 100%; }
.form input:focus, .form select:focus, .form textarea:focus { outline: 2px solid var(--focus); outline-offset: 2px; border-color: transparent; }
.form textarea { min-height: 9rem; resize: vertical; }
.form .check { display: flex; gap: .7rem; align-items: flex-start; font-weight: 400; }
.form .check input { width: 1.3rem; height: 1.3rem; margin-top: .25rem; flex: none; accent-color: var(--signal); }
.form .hp { position: absolute; left: -9999px; height: 0; overflow: hidden; }
.status { display: none; padding: 1rem 1.2rem; border-radius: 14px; max-width: 40rem; margin-bottom: 1.5rem; font-weight: 600; }
.status.show { display: block; }
.status.ok { background: #12351e; color: #d7f5df; }
.status.err { background: #3a1512; color: #ffd9d5; }
.contact-grid { display: grid; grid-template-columns: minmax(0, 40rem) 1fr; gap: 3rem 4rem; align-items: start; }
@media (max-width: 980px) { .contact-grid { grid-template-columns: 1fr; } }


.site-footer { position: relative; z-index: 1; padding-block: 3rem 3.6rem; font-size: .98rem; background: #000; color: #a1a1a6; border-top: 1px solid rgba(255, 255, 255, .14); --fg: #f5f5f7; --txt: #a1a1a6; --mute: #8e8e93; --line-2: rgba(255, 255, 255, .34); }
.site-footer .wrap { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 1.5rem 3rem; }
@media (max-width: 760px) { .site-footer .wrap { grid-template-columns: 1fr; } }
.site-footer ul { list-style: none; margin: 0; padding: 0; }
.site-footer li { margin-bottom: .4rem; }
.site-footer h2 { font-size: 1rem; letter-spacing: 0; margin-bottom: .7rem; font-stretch: 100%; color: #f5f5f7; }
.site-footer p { margin: 0 0 .5rem; color: #a1a1a6; }
.site-footer a { color: #d1d1d6; }
.site-footer a:hover { color: #fff; }


.todo { background: var(--marker); color: #000; padding: 0 .25em; font-weight: 600; }
.legal h2 { font-size: 1.6rem; margin-top: 2.4rem; letter-spacing: -.02em; }
.legal p, .legal li { max-width: 70ch; }

@media print {
  body, .section, .hero, .site-footer { background: #fff !important; color: #000 !important; box-shadow: none !important; }
  .hero::before { display: none; }
  h1, h2, h3, strong, a { color: #000 !important; }
  .nav, .nav-toggle, .band .btn, .skip { display: none; }
}

.grp { font-size: 1.35rem; margin: 0 0 1rem; padding-bottom: .5rem; border-bottom: 1px solid var(--line-2); display: block; }

.theme { margin-bottom: 3rem; }
.theme:last-child { margin-bottom: 0; }

.logos { list-style: none; margin: 0 0 2rem; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 1rem; }
.logos li { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .6rem; min-height: 110px; padding: 1rem; text-align: center; background: #fff; color: #0a0a0a; border-radius: 18px; font-weight: 600; }
.logos img { max-width: 140px; max-height: 64px; width: auto; height: auto; object-fit: contain; }
.logos small { font-weight: 400; opacity: .75; }
.logos li.has-logo { min-height: 130px; }
.logos li.has-logo img { max-width: 100%; max-height: 90px; }

.form fieldset { border: 0; margin: 0; padding: 0; display: grid; gap: 1.2rem; min-width: 0; }
.form legend { font-family: var(--cd-display); font-weight: 800; font-size: 1.4rem; color: var(--fg); letter-spacing: -.02em; margin-bottom: .9rem; padding: 0; }
.js .form .step { display: none; }
.js .form .step.on { display: grid; }
.form label[hidden] { display: none; }
.form .radio { display: flex; gap: .8rem; align-items: flex-start; font-weight: 400; border: 1px solid var(--line-2); border-radius: 16px; padding: 1rem 1.1rem; background: var(--card); cursor: pointer; }
.form .radio input { width: 1.2rem; height: 1.2rem; margin-top: .3rem; flex: none; accent-color: var(--signal); }
.form .radio:has(input:checked) { border-color: var(--fg); box-shadow: inset 0 0 0 1px var(--fg); }
.form .radio small { color: var(--mute); }


.crumbs { padding-top: 1.6rem; font-size: .95rem; color: var(--mute); position: relative; z-index: 1; background: #000; box-shadow: 0 0 0 100vmax #000; clip-path: inset(0 -100vmax); }
.crumbs a { color: inherit; }
.rows h3 a { color: inherit; text-decoration: none; }
.rows h3 a:hover { text-decoration: underline; }
.more-link { white-space: nowrap; font-weight: 700; margin-left: .3rem; }
.plain { list-style: none; padding: 0; margin: 0 0 1rem; max-width: 62ch; }
.plain li { padding: .6rem 0; border-bottom: 1px solid var(--line); }
.nav-pick a { font-weight: 700; background: var(--signal-hi); color: #000 !important; padding: .3rem .8rem; border: 0 !important; border-radius: 999px; text-decoration: none; }
.pick-group { border-top: 1px solid var(--line); padding: .6rem 0; }
.pick-group:last-of-type { border-bottom: 1px solid var(--line); }
.pick-group summary { font-weight: 700; color: var(--fg); cursor: pointer; padding: .4rem 0; }
.pick-group .check { display: flex; gap: .6rem; padding: .4rem 0; }
.quotes { display: grid; grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr)); gap: 1.4rem; margin: 1.4rem 0; }
.quote { margin: 0; padding: 1.4rem 1.5rem; border: 1px solid var(--line); border-radius: 22px; background: var(--card); }
.quote blockquote { margin: 0 0 .9rem; }
.quote blockquote p { margin: 0; font-size: 1.05rem; color: var(--fg); }
.quote figcaption { font-size: .9rem; font-weight: 700; color: var(--mute); }
.case { padding: 1.6rem 0; border-top: 1px solid var(--line); max-width: 72ch; }
.case:last-child { border-bottom: 1px solid var(--line); }
.case h3 { margin: 0 0 .3rem; font-size: 1.35rem; }
.cities { list-style: none; display: flex; flex-wrap: wrap; gap: .5rem; padding: 0; margin: .6rem 0 1.2rem; }
.cities li { border: 1px solid var(--line-2); border-radius: 999px; padding: .15rem .9rem; font-size: .95rem; color: var(--fg); }
.more { margin-top: 1rem; }


.tablewrap { overflow-x: auto; margin: 1.2rem 0 1.6rem; }
table.data { border-collapse: collapse; width: 100%; min-width: 34rem; font-size: .98rem; }
table.data caption { text-align: left; font-weight: 700; color: var(--fg); padding-bottom: .6rem; }
table.data th, table.data td { border-top: 1px solid var(--line); padding: .7rem .6rem; text-align: left; vertical-align: middle; }
table.data tbody tr:last-child th, table.data tbody tr:last-child td { border-bottom: 1px solid var(--line); }
table.data thead th { font-size: .9rem; color: var(--mute); }
table.data td.bar { position: relative; min-width: 9rem; }
table.data .barfill { position: absolute; left: .6rem; top: 50%; height: 1.1rem; transform: translateY(-50%); background: var(--signal); border-radius: 4px; max-width: calc(100% - 1.2rem); }
table.data td.bar b { position: relative; padding-left: .4rem; color: #000; mix-blend-mode: normal; }

.portrait { display: block; width: min(340px, 70vw); height: auto; aspect-ratio: 1; object-fit: cover; margin-top: 1.6rem; border-radius: 28px; }
.site-footer ul + h2 { margin-top: 1.4rem; }
.logo-brand { display: block; width: min(380px, 80vw); height: auto; margin-top: 1.6rem; background: #fff; padding: 1rem; border-radius: 20px; }
.idcard { display: flex; flex-wrap: wrap; align-items: center; gap: 1.5rem 3rem; margin-top: 1.6rem; }
.idcard .portrait, .idcard .logo-brand { margin-top: 0; }

.footer-logo { display: block; width: 230px; height: auto; margin: 0 0 1.2rem -.4rem; }
p.wrap.more { margin-block: 0; padding: 0 0 clamp(3rem, 7vw, 5rem); background: #000; box-shadow: 0 0 0 100vmax #000; clip-path: inset(0 -100vmax); }



.elementor-widget:not(:last-child) { margin-block-end: 0 !important; }
.elementor-widget-container { margin: 0; padding: 0; }
.e-con { --gap: 0px; --row-gap: 0px; --column-gap: 0px; gap: 0; max-width: none; }


.e-con.section { padding-block: clamp(4rem, 10vw, 8rem) !important; padding-inline: 0 !important; }
.e-con.hero { padding-top: clamp(2.2rem, 5vw, 4rem) !important; padding-bottom: clamp(5rem, 9vw, 7.5rem) !important; padding-inline: 0 !important; }
.e-con.hero:has(h1 .l1) { padding-top: clamp(3rem, 8vw, 6rem) !important; padding-bottom: clamp(9rem, 24vh, 16rem) !important; min-height: calc(100svh - 5.4rem); justify-content: center; }
.e-con.crumbs { padding-top: 1.6rem !important; padding-bottom: 0 !important; padding-inline: 0 !important; }
.e-con.band { padding: 0 !important; }
.e-con.site-footer { padding-block: 3rem 3.6rem !important; padding-inline: 0 !important; }


.e-con.wrap { padding-inline: 0; width: min(var(--content), 100% - 2 * var(--gut)) !important; max-width: none !important; margin-inline: auto !important; }
.e-con.band, .e-con.site-footer { width: 100% !important; max-width: none !important; }
.band .e-con.wrap { padding-block: clamp(4rem, 9vw, 7rem) !important; }
.site-footer .e-con.wrap { display: grid !important; grid-template-columns: 1.4fr 1fr 1fr; gap: 1.5rem 3rem; }
@media (max-width: 760px) { .site-footer .e-con.wrap { grid-template-columns: 1fr; } }

.elementor-widget-text-editor, .elementor-widget-html { width: 100%; }
.elementor-widget-text-editor > .elementor-widget-container > *:last-child { margin-bottom: 0; }


.cd-header-wrap { position: sticky; top: 0; z-index: 30; }
.cd-header-wrap .site-header { position: relative; top: auto; }
body.admin-bar .cd-header-wrap { top: 32px; }
@media (max-width: 782px) { body.admin-bar .cd-header-wrap { top: 46px; } }


.woocommerce .price, .woocommerce .add_to_cart_button, .woocommerce .cart, .woocommerce-product-gallery { display: none !important; }


.nav a { white-space: nowrap; }



.proof-head { display: grid; grid-template-columns: 1fr auto; gap: 2rem; align-items: end; margin-bottom: 2.4rem; }
.proof-head .portrait { margin: 0; width: min(190px, 34vw); }
.proof { list-style: none; margin: 0 auto; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; border-top: 1px solid var(--line); }
.proof li { padding: 1.6rem 1.6rem 1.8rem 0; display: flex; flex-direction: column; gap: .5rem; }
.proof li + li { padding-left: 1.6rem; border-left: 1px solid var(--line); }
.proof .big { font-family: var(--cd-display); font-weight: 800; font-stretch: 112%; font-size: clamp(2.3rem, 4.4vw, 3.6rem); line-height: 1; letter-spacing: -.02em; color: var(--fg); }
.proof p { margin: 0; font-size: 1rem; color: var(--txt); }
.proof a { margin-top: auto; font-size: .98rem; font-weight: 600; }
@media (max-width: 960px) { .proof { grid-template-columns: 1fr 1fr; } .proof li:nth-child(3) { padding-left: 0; border-left: 0; } .proof li:nth-child(n+3) { border-top: 1px solid var(--line); } }
@media (max-width: 560px) { .proof { grid-template-columns: 1fr; } .proof li, .proof li + li { padding: 1.3rem 0; border-left: 0; } .proof li + li { border-top: 1px solid var(--line); } .proof-head { grid-template-columns: 1fr; } }

.flow-head { margin-bottom: 2.2rem; }
.flow { list-style: none; margin: 0 auto; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.4rem; counter-reset: st; }
.flow li { position: relative; display: flex; flex-direction: column; gap: .55rem; padding: 1.5rem 1.4rem 1.6rem; border: 1px solid var(--line); border-radius: 22px; background: var(--card); }
.flow li.mine { border-color: var(--signal); }
.flow li:not(:last-child)::after { content: ""; position: absolute; right: -1.25rem; top: 2.6rem; width: 1.1rem; height: 1.1rem; border-top: 2px solid var(--signal); border-right: 2px solid var(--signal); transform: rotate(45deg); }
.flow .ic { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 16px; background: var(--bg); border: 1px solid var(--line-2); }
.flow .ic svg { width: 30px; height: 30px; fill: none; stroke: var(--fg); stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.flow h3 { margin: .3rem 0 0; font-size: 1.2rem; }
.flow p { margin: 0; font-size: 1rem; }
.flow .tag { margin-top: auto; align-self: flex-start; padding: .25rem .8rem; border-radius: 999px; background: var(--signal); color: #fff; font-size: .85rem; font-weight: 700; }
@media (max-width: 1000px) { .flow { grid-template-columns: 1fr 1fr; } .flow li::after { display: none; } }
@media (max-width: 560px) { .flow { grid-template-columns: 1fr; } }

.logos-head { margin-bottom: 1.8rem; }


.viz-case { display: grid; gap: 1.4rem; margin: 2rem 0 0; }
.viz-card { padding: clamp(1.1rem, 2.4vw, 2rem); border: 1px solid var(--line); border-radius: 22px; background: var(--card); }
.viz-card h4 { margin: 0; font-family: var(--cd-display); font-size: 1.3rem; color: var(--fg); }
.viz-sub { margin: .3rem 0 1rem; font-size: .98rem; color: var(--mute); max-width: 62ch; }
svg.viz { width: 100%; height: auto; overflow: visible; }
.viz .grid { stroke: var(--line); stroke-width: 1; }
.viz .ax { fill: var(--mute); font: 13px var(--text); }
.viz .ax.em { font-style: italic; }
.viz .val { fill: var(--fg); font: 700 17px var(--text); }
.viz .bar { fill: var(--signal); opacity: .55; }
.viz .bar.last { fill: var(--signal); opacity: 1; }
.viz .trend { stroke: var(--fg); stroke-width: 2; stroke-dasharray: 2 7; stroke-linecap: round; }
.viz .arrowhead { fill: var(--fg); }
.viz .trendlab { fill: var(--fg); font: 800 19px var(--cd-display); }
.viz .band { fill: var(--fg); opacity: .05; }
.viz .band.b1 { fill: var(--signal); opacity: .16; }
.viz .line { fill: none; stroke: var(--signal); stroke-width: 3; }
.viz .dot { fill: var(--card); stroke: var(--signal); stroke-width: 3; }
.viz .dot.last { fill: var(--signal); }
.viz-map { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1.5rem 2.4rem; align-items: center; }
.viz .france { fill: var(--bg); stroke: var(--line-2); stroke-width: 1.5; stroke-linejoin: round; }
.viz .pt { fill: var(--mute); opacity: .7; }
.viz .bub { fill: var(--signal); opacity: .78; stroke: var(--card); stroke-width: 2; }
.viz .city { fill: var(--fg); font: 700 15px var(--text); paint-order: stroke; stroke: var(--card); stroke-width: 4px; }
.viz .city .n { fill: var(--signal); font-weight: 700; }
.rank { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; gap: .55rem; }
.rank li { display: grid; grid-template-columns: 8.5rem 1fr 3.2rem; align-items: center; gap: .8rem; font-size: 1rem; }
.rank .nm { color: var(--fg); font-weight: 600; }
.rank .bar { display: block; height: 14px; border-radius: 7px; background: var(--signal); }
.rank b { text-align: right; color: var(--fg); }
@media (max-width: 820px) { .viz-map { grid-template-columns: 1fr; } .rank li { grid-template-columns: 7rem 1fr 3rem; } }

.read { margin: 1.6rem 0 0; padding: clamp(1.1rem, 2.4vw, 2rem); border-radius: 22px; border: 1px solid var(--signal); background: color-mix(in srgb, var(--signal) 9%, var(--card)); }
.read h4 { margin: 0 0 1rem; font-family: var(--cd-display); font-size: 1.3rem; color: var(--fg); }
.read-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.2rem; }
.read-grid b { color: var(--fg); font-family: var(--cd-display); font-size: 1.05rem; }
.read-grid p { margin: .3rem 0 0; font-size: .98rem; }
.read-ex { margin: 1.4rem 0 0; padding-top: 1.2rem; border-top: 1px solid var(--line-2); max-width: 78ch; }
@media (max-width: 960px) { .read-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .read-grid { grid-template-columns: 1fr; } }

.logos.wrap, .proof.wrap, .flow.wrap { margin-inline: auto; }
@media (max-width: 560px) { .logos { grid-template-columns: 1fr 1fr; gap: .7rem; } .logos li.has-logo { min-height: 90px; padding: .6rem; } .logos li.has-logo img { max-height: 64px; } }

.viz-narrow, .only-narrow { display: none; }
@media (max-width: 640px) { .viz-wide { display: none; } svg.viz-narrow { display: block; } p.only-narrow { display: block; } }
.viz-narrow .val { font-size: 14px; }


.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

.cat-tools { display: grid; gap: 1rem; margin: 0 0 1.6rem; }
.chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.chip { font: inherit; font-weight: 700; font-size: .95rem; text-decoration: none; color: var(--fg); background: transparent; border: 1px solid var(--line-2); border-radius: 999px; padding: .4rem .95rem; cursor: pointer; }
.chip:hover { border-color: var(--fg); }
.chip.on { background: var(--fg); color: var(--bg); border-color: var(--fg); }
.cat-row { display: flex; flex-wrap: wrap; gap: .8rem 1.2rem; align-items: center; }
.cat-row input[type=search], .cat-row select { font: inherit; color: var(--fg); background: var(--card); border: 1px solid var(--line-2); border-radius: 12px; padding: .65rem .9rem; min-width: 0; }
.cat-row input[type=search] { flex: 1 1 16rem; max-width: 26rem; }
.cat-row input:focus, .cat-row select:focus { outline: 2px solid var(--focus); outline-offset: 2px; }
.cat-count { margin: 0; color: var(--mute); font-size: .95rem; }

.cards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 19.5rem), 1fr)); gap: 1.3rem; }
.cards .card { margin: 0; display: flex; flex-direction: column; background: var(--card); border: 1px solid var(--line); border-radius: 22px; overflow: hidden; transition: border-color .2s, transform .2s; }
.cards .card[hidden] { display: none; }
.cards .card:hover, .cards .card:focus-within { border-color: var(--line-2); }
.card-img { display: block; background: #000; aspect-ratio: 1200 / 630; }
.card-img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.card-body { display: flex; flex-direction: column; gap: .55rem; padding: 1.1rem 1.25rem 1.3rem; flex: 1; }
.card-theme { margin: 0; font-size: .85rem; font-weight: 700; color: var(--mute); }
.card h3 { margin: 0; font-size: 1.12rem; line-height: 1.25; }
.card h3 a { color: inherit; text-decoration: none; }
.card h3 a:hover { text-decoration: underline; }
.card-meta { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0; padding: 0; list-style: none; }
.card-meta li { font-size: .85rem; border: 1px solid var(--line-2); border-radius: 999px; padding: .12rem .6rem; color: var(--txt); }
.card-meta li:first-child { background: var(--signal); border-color: var(--signal); color: #000; font-weight: 700; }
.card-text { margin: 0; font-size: .98rem; color: var(--txt); flex: 1; }
.card-actions { display: flex; flex-wrap: wrap; gap: .6rem 1rem; align-items: center; margin: .4rem 0 0; }
.btn-add { font: inherit; font-weight: 700; font-size: .92rem; color: var(--fg); background: transparent; border: 1px solid var(--fg); border-radius: 999px; padding: .45rem 1rem; cursor: pointer; }
.btn-add:hover { background: var(--fg); color: var(--bg); }
.btn-add[aria-pressed="true"] { background: var(--signal-hi); border-color: var(--signal-hi); color: #000; }
.cat-none { margin: 1.4rem 0 0; }


.js .form .step.on[data-reveal]:not(.rev) { display: none; }
.pick-groups { display: grid; gap: 0; }
.pick-groups .pick-group { border-top: 1px solid var(--line); padding: .9rem 0; }
.pick-groups .pick-group[hidden] { display: none; }
.pick-groups .pick-group h3 { margin: 0 0 .4rem; font-size: 1.05rem; }
.pick-row { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; }
.pick-row .check { padding: .35rem 0; }
.pick-row > a { white-space: nowrap; font-size: .9rem; padding-top: .45rem; }
.linklike { font: inherit; color: var(--fg); background: none; border: 0; padding: 0; text-decoration: underline; cursor: pointer; justify-self: start; }
.recap { border: 1px solid var(--line-2); border-radius: 16px; padding: 1rem 1.1rem; background: var(--card); }
.recap[hidden] { display: none; }
.recap strong { color: var(--fg); }
.recap ol { margin: .6rem 0 0; padding: 0; list-style: none; display: grid; gap: .4rem; }
.recap li { display: flex; justify-content: space-between; gap: 1rem; align-items: baseline; }
.recap li button { font: inherit; font-size: .9rem; color: var(--mute); background: none; border: 0; text-decoration: underline; cursor: pointer; white-space: nowrap; }
.theme-note { margin: 0; font-size: .95rem; color: var(--mute); }


:root {
  --bg: #fff; --fg: #10252d; --txt: #35505b; --mute: #587079;
  --line: rgba(16, 37, 45, .12); --line-2: rgba(16, 37, 45, .3);
  --card: #fff; --focus: #1d6176;
  --signal: #318ba2; --signal-deep: #1d6176; --signal-hi: #7fcfe3;
  --tint: #eef5f7; --hero: #e3f1f5; --navy: #0f2b36;
  --shadow: 0 1px 2px rgba(16, 37, 45, .06), 0 10px 28px -14px rgba(16, 37, 45, .22);
}
main section.section:nth-of-type(even) { --bg: #fff; --fg: #10252d; --txt: #35505b; --mute: #587079; --line: rgba(16, 37, 45, .12); --line-2: rgba(16, 37, 45, .3); --card: #fff; --focus: #1d6176; }
main section.section:nth-of-type(odd) { --bg: var(--tint); --card: #fff; }
html, body { background: #fff; }
::selection { background: var(--signal-hi); color: #000; }


body { font-size: 1.0625rem; }
h1, h2, h3 { font-stretch: 100%; font-weight: 700; letter-spacing: -.02em; line-height: 1.14; }
h1, .hero h1, .hero:has(h1 .l1) h1 { font-size: clamp(2.1rem, 4.4vw, 3.4rem); max-width: 22ch; letter-spacing: -.025em; line-height: 1.1; }
h2 { font-size: clamp(1.65rem, 3.1vw, 2.3rem); max-width: 28ch; }
h3 { font-size: 1.15rem; }
.lead { font-size: clamp(1.1rem, 1.6vw, 1.25rem); color: var(--txt); }
.section, .e-con.section { padding-block: clamp(3rem, 6.5vw, 5.2rem) !important; }


.hero, .e-con.hero { --bg: var(--hero); }
.hero::before, .hero::after, .hero:has(h1 .l1)::before, .hero:has(h1 .l1)::after { display: none !important; }
.e-con.hero, .e-con.hero:has(h1 .l1) { padding-top: clamp(2.4rem, 5vw, 4.4rem) !important; padding-bottom: clamp(2.6rem, 5vw, 4.4rem) !important; min-height: 0 !important; justify-content: flex-start; }
.hero:has(h1 .l1) { min-height: 0; padding-bottom: clamp(2.6rem, 5vw, 4.4rem); }
.hero h1 .l1, .hero h1 .l2 { display: inline; animation: none !important; }
.hero h1 .l2 { color: var(--signal-deep); }
.hero .lead, .hero .actions { animation: none !important; }
.hero .actions { margin-top: 1.6rem; }


.e-con.hero:has(.hero-art) { display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(260px, 430px); column-gap: clamp(2rem, 6vw, 5rem); align-items: center; }
.e-con.hero:has(.hero-art) > .elementor-widget { grid-column: 1; }
.e-con.hero:has(.hero-art) > .elementor-widget:has(.hero-art) { grid-column: 2; grid-row: 1 / span 3; }
.hero-art { margin: 0; }
.hero-art img { display: block; width: 100%; height: auto; aspect-ratio: 1; border-radius: 40px; box-shadow: var(--shadow); }
.hero-art figcaption { margin-top: .9rem; font-size: .92rem; color: var(--mute); text-align: center; }
@media (max-width: 860px) {
  .e-con.hero:has(.hero-art) { grid-template-columns: 1fr; row-gap: 1.6rem; }
  .e-con.hero:has(.hero-art) > .elementor-widget:has(.hero-art) { grid-column: 1; grid-row: auto; max-width: 340px; }
}


.btn { background: var(--signal-deep); color: #fff; padding: .8rem 1.6rem; }
.btn:hover { background: var(--navy); color: #fff; }
.btn-quiet { display: inline-block; border: 1px solid var(--line-2); border-radius: 999px; padding: .75rem 1.4rem; text-decoration: none; font-weight: 700; color: var(--fg); background: #fff; }
.btn-quiet:hover { border-color: var(--fg); }


.site-header { background: rgba(255, 255, 255, .94); color: var(--fg); border-bottom: 1px solid var(--line); -webkit-backdrop-filter: saturate(160%) blur(14px); backdrop-filter: saturate(160%) blur(14px); }
.brand img { height: 62px; }
.nav a { color: var(--txt); }
.nav a:hover { color: var(--fg); }
.nav a[aria-current="page"] { color: var(--fg); border-bottom-color: var(--signal); }
.nav a.nav-cta { background: var(--signal-deep); border-color: var(--signal-deep); color: #fff; }
.nav a.nav-cta:hover { background: var(--navy); border-color: var(--navy); color: #fff; }
.nav-pick a { background: var(--hero); color: var(--signal-deep) !important; }
.nav-toggle { color: var(--fg); border-color: var(--line-2); }
@media (max-width: 1100px) { .nav { background: #fff; border-bottom: 1px solid var(--line); } }


.duo > div, .quote, .flow li, .viz-card, .tl-detail, .recap { background: var(--card); border: 1px solid var(--line); box-shadow: var(--shadow); }
.duo > div { border-radius: 24px; padding: clamp(1.4rem, 3vw, 2.2rem); }
.duo > div > h3 { font-stretch: 100%; font-size: 1.5rem; letter-spacing: -.02em; margin-bottom: 1rem; }
.duo .rows > li:first-child { border-top: 0; }
.duo .rows > li:last-child { border-bottom: 0; }
.logos li { border: 1px solid var(--line); box-shadow: none; }
.proof .big { font-stretch: 100%; font-weight: 800; color: var(--signal-deep); }
.flow li.mine { border-color: var(--signal); box-shadow: 0 0 0 1px var(--signal), var(--shadow); }
.read { background: #fff; }
.facts dt { font-stretch: 100%; }
.band .btn-quiet { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .6); }


.seg.k-cadrage { --bg: #cfe6ed; --fg: #10252d; }
.seg.k-maquette { --bg: #a9d3df; --fg: #10252d; }
.seg.k-contenus { --bg: #7fbccd; --fg: #08202a; }
.seg.k-creation { --bg: #287389; --fg: #fff; box-shadow: none; }
.seg.k-relecture { --bg: #1d6176; --fg: #fff; }
.seg.k-ligne { --bg: #0f2b36; --fg: #fff; }
.seg.k-formation { --bg: #dff0f5; --fg: #10252d; }
.seg.k-suivi { --bg: transparent; color: var(--txt); box-shadow: inset 0 0 0 1px var(--line-2); }


.band { background: var(--signal-deep); --bg: var(--signal-deep); --fg: #fff; --txt: #e1f1f6; --focus: #fff; --line-2: rgba(255, 255, 255, .5); }
.band h2 { color: #fff; font-stretch: 100%; font-size: clamp(1.8rem, 3.6vw, 2.6rem); letter-spacing: -.02em; line-height: 1.12; max-width: 24ch; }
.band p { color: #e1f1f6; font-weight: 400; }
.band a { color: #fff; text-decoration-color: rgba(255, 255, 255, .6); }
.band .btn { background: #fff; color: var(--navy); }
.band .btn:hover { background: var(--signal-hi); color: #000; }
.site-footer { background: var(--navy); border-top: 0; --txt: #bcd3db; --mute: #9bb7c1; }
.site-footer p, .site-footer a { color: #cfe1e8; }
.site-footer a:hover { color: #fff; }
.site-footer h2 { color: #fff; }


.crumbs { background: var(--hero); box-shadow: 0 0 0 100vmax var(--hero); color: var(--mute); }
p.wrap.more { background: #fff; box-shadow: 0 0 0 100vmax #fff; }
.form input, .form select, .form textarea { background: #fff; border-color: var(--line-2); }
.form .radio { background: #fff; }
.form .radio:has(input:checked) { border-color: var(--signal-deep); box-shadow: inset 0 0 0 1px var(--signal-deep); background: var(--hero); }
.status.ok { background: #e2f4e9; color: #14532d; }
.status.err { background: #fde8e6; color: #7a1c14; }
.portrait { border-radius: 28px; }


.chip.on { background: var(--signal-deep); border-color: var(--signal-deep); color: #fff; }
.cards .card { background: #fff; box-shadow: var(--shadow); }
.cards .card:hover, .cards .card:focus-within { border-color: var(--signal); transform: translateY(-2px); }
.card-img { background: #dcedf3; }
.card-theme { color: var(--signal-deep); }
.card-meta li:first-child { background: var(--signal-deep); border-color: var(--signal-deep); color: #fff; }
.btn-add { color: var(--signal-deep); border-color: var(--signal-deep); }
.btn-add:hover { background: var(--signal-deep); color: #fff; }
.btn-add[aria-pressed="true"] { background: var(--signal-deep); border-color: var(--signal-deep); color: #fff; }
.pick-groups .pick-group h3 { color: var(--signal-deep); }
@media (prefers-reduced-motion: reduce) { .cards .card { transition: none; } }


.tools { display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: 1.2rem; margin-top: 1.4rem; }
.tool-group { background: var(--card); border: 1px solid var(--line); border-radius: 20px; padding: 1.2rem 1.3rem 1.4rem; box-shadow: var(--shadow); }
.tool-group h3 { margin: 0; font-size: 1.05rem; color: var(--signal-deep); }
.tags { list-style: none; display: flex; flex-wrap: wrap; gap: .4rem; padding: 0; margin: .8rem 0 0; }
.tags li { border: 1px solid var(--line-2); border-radius: 999px; padding: .15rem .75rem; font-size: .92rem; color: var(--fg); background: #fff; }


main .rows { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr)); gap: 1rem; }
main .rows > li { display: block; padding: 1.2rem 1.3rem 1.3rem; border: 1px solid var(--line); border-radius: 18px; background: var(--card); box-shadow: var(--shadow); }
main .rows > li:last-child { border-bottom: 1px solid var(--line); }
main .rows h3 { margin: 0 0 .45rem; }
main .duo .rows { display: block; }
main .duo .rows > li { display: grid; padding: 1.1rem 0; border: 0; border-top: 1px solid var(--line); border-radius: 0; background: transparent; box-shadow: none; }
main .duo .rows > li:first-child { border-top: 0; }


.facts { grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr)); gap: 1rem; }
.facts > div { display: block; padding: 1.1rem 1.3rem 1.2rem; border: 1px solid var(--line); border-radius: 18px; background: var(--card); box-shadow: var(--shadow); }
.facts dt { font-size: .95rem; color: var(--signal-deep); margin-bottom: .35rem; }
.facts dd { font-size: 1rem; }


html { scroll-padding-top: calc(var(--hdr, 76px) + 64px); }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }


.case.has-logo { display: grid; grid-template-columns: minmax(0, 1fr) 150px; column-gap: 2rem; align-items: start; max-width: 80ch; }
.case.has-logo > * { grid-column: 1; }
.case.has-logo > .case-logo { grid-column: 2; grid-row: 1 / span 4; width: 150px; height: auto; justify-self: end; background: #fff; border: 1px solid #d6e5ea; border-radius: 14px; padding: 12px; box-shadow: 0 6px 18px rgba(15, 43, 54, .06); }
@media (max-width: 640px) {
  .case.has-logo { grid-template-columns: 1fr; }
  .case.has-logo > .case-logo { grid-column: 1; grid-row: auto; justify-self: start; width: 104px; margin-bottom: .8rem; }
}
.case:target h3 { color: #1d6176; }


.sommaire { position: sticky; top: var(--hdr, 76px); z-index: 20; background: rgba(255, 255, 255, .96); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); border-bottom: 1px solid #d6e5ea; padding: .6rem 0; margin: 0 0 1rem; align-self: stretch; }
body.admin-bar .sommaire { top: calc(var(--hdr, 76px) + 32px); }
.sommaire p { margin: 0 0 .4rem; font-size: .9rem; color: #587079; }
.sommaire ul { display: flex; gap: .5rem; overflow-x: auto; list-style: none; margin: 0; padding: 2px; scrollbar-width: none; }
.sommaire ul::-webkit-scrollbar { display: none; }
.sommaire a { display: block; white-space: nowrap; padding: .45rem .9rem; border-radius: 999px; border: 1px solid #c8dce2; background: #fff; color: #1d6176; font-weight: 700; font-size: .92rem; text-decoration: none; }
.sommaire a:hover { border-color: #1d6176; }
.sommaire a[aria-current="true"] { background: #1d6176; border-color: #1d6176; color: #fff; }


.mbar { display: none; }
@media (max-width: 760px) {
  .mbar { display: flex; gap: .6rem; position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; padding: .6rem var(--gut, 1rem) calc(.6rem + env(safe-area-inset-bottom)); background: rgba(255, 255, 255, .97); border-top: 1px solid #d6e5ea; box-shadow: 0 -8px 24px rgba(15, 43, 54, .1); }
  .mbar a, .mbar button { flex: 1; min-height: 48px; display: flex; align-items: center; justify-content: center; border-radius: 999px; font: inherit; font-weight: 700; font-size: 1rem; line-height: 1.1; text-align: center; text-decoration: none; cursor: pointer; padding: 0 .8rem; }
  .mbar [hidden] { display: none; }
  .mbar-call { flex: 0 0 34%; background: #fff; color: #1d6176; border: 2px solid #1d6176; }
  .mbar-main { background: #1d6176; color: #fff; border: 2px solid #1d6176; }
  body.has-mbar { padding-bottom: calc(72px + env(safe-area-inset-bottom)); }
}
@media print { .mbar, .sommaire { display: none !important; } }


.case a { color: #1d6176; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.case a:hover { color: #10252d; }
@media (max-width: 760px) {
  html { scroll-padding-top: calc(var(--hdr, 76px) + 84px); }
  .mbar a, .mbar button { font-size: .95rem; }
}


.case ul.plain li:has(.inline-logo) { display: flex; align-items: center; gap: .9rem; }
.inline-logo { flex: none; width: 48px; height: 48px; object-fit: contain; background: #fff; border: 1px solid #d6e5ea; border-radius: 10px; padding: 4px; }


.shot { grid-column: 1 / -1; margin: 1.2rem 0 1rem; max-width: 100%; border: 1px solid #cddde3; border-radius: 12px; overflow: hidden; background: #fff; box-shadow: 0 14px 34px rgba(15, 43, 54, .12); }
.shot-bar { display: flex; align-items: center; gap: 6px; padding: .55rem .8rem; background: #e8f0f3; border-bottom: 1px solid #cddde3; }
.shot-bar i { width: 10px; height: 10px; border-radius: 50%; background: #b7cbd3; }
.shot-bar span { margin-left: .6rem; flex: 1; padding: .15rem .7rem; border-radius: 999px; background: #fff; color: #587079; font-size: .82rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.shot img { display: block; width: 100%; height: auto; }
.shot figcaption { padding: .55rem .9rem; font-size: .85rem; color: #587079; background: #fff; border-top: 1px solid #e1ecf0; }


.hero-art.deco img { aspect-ratio: auto; border-radius: 32px; }
@media (max-width: 860px) { .e-con.hero:has(.hero-art.deco) { display: flex !important; } .elementor-widget:has(.hero-art.deco) { display: none; } }


.duo-ico { display: block; width: 64px; height: 64px; margin: 0 0 .9rem; }


.shots-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.2rem; margin: 1.2rem 0 .4rem; max-width: none; }
.shots-row .shot { grid-column: auto; margin: 0; }
@media (max-width: 760px) { .shots-row { grid-template-columns: 1fr; } }


.e-con.hero:has(.hero-art.r2) { grid-template-rows: 1fr repeat(2, min-content) 1fr; row-gap: 1rem; }
.e-con.hero:has(.hero-art.r2) > .elementor-widget:has(.hero-art) { grid-row: 1 / span 4; }
.e-con.hero:has(.hero-art.r2) > .elementor-widget:nth-child(1):not(:has(.hero-art)) { grid-row: 2; }
.e-con.hero:has(.hero-art.r2) > .elementor-widget:nth-child(2):not(:has(.hero-art)) { grid-row: 3; }
.e-con.hero:has(.hero-art.r3) { grid-template-rows: 1fr repeat(3, min-content) 1fr; row-gap: 1rem; }
.e-con.hero:has(.hero-art.r3) > .elementor-widget:has(.hero-art) { grid-row: 1 / span 5; }
.e-con.hero:has(.hero-art.r3) > .elementor-widget:nth-child(1):not(:has(.hero-art)) { grid-row: 2; }
.e-con.hero:has(.hero-art.r3) > .elementor-widget:nth-child(2):not(:has(.hero-art)) { grid-row: 3; }
.e-con.hero:has(.hero-art.r3) > .elementor-widget:nth-child(3):not(:has(.hero-art)) { grid-row: 4; }
.e-con.hero:has(.hero-art.r4) { grid-template-rows: 1fr repeat(4, min-content) 1fr; row-gap: 1rem; }
.e-con.hero:has(.hero-art.r4) > .elementor-widget:has(.hero-art) { grid-row: 1 / span 6; }
.e-con.hero:has(.hero-art.r4) > .elementor-widget:nth-child(1):not(:has(.hero-art)) { grid-row: 2; }
.e-con.hero:has(.hero-art.r4) > .elementor-widget:nth-child(2):not(:has(.hero-art)) { grid-row: 3; }
.e-con.hero:has(.hero-art.r4) > .elementor-widget:nth-child(3):not(:has(.hero-art)) { grid-row: 4; }
.e-con.hero:has(.hero-art.r4) > .elementor-widget:nth-child(4):not(:has(.hero-art)) { grid-row: 5; }
.e-con.hero:has(.hero-art.r5) { grid-template-rows: 1fr repeat(5, min-content) 1fr; row-gap: 1rem; }
.e-con.hero:has(.hero-art.r5) > .elementor-widget:has(.hero-art) { grid-row: 1 / span 7; }
.e-con.hero:has(.hero-art.r5) > .elementor-widget:nth-child(1):not(:has(.hero-art)) { grid-row: 2; }
.e-con.hero:has(.hero-art.r5) > .elementor-widget:nth-child(2):not(:has(.hero-art)) { grid-row: 3; }
.e-con.hero:has(.hero-art.r5) > .elementor-widget:nth-child(3):not(:has(.hero-art)) { grid-row: 4; }
.e-con.hero:has(.hero-art.r5) > .elementor-widget:nth-child(4):not(:has(.hero-art)) { grid-row: 5; }
.e-con.hero:has(.hero-art.r5) > .elementor-widget:nth-child(5):not(:has(.hero-art)) { grid-row: 6; }
.e-con.hero:has(.hero-art.r6) { grid-template-rows: 1fr repeat(6, min-content) 1fr; row-gap: 1rem; }
.e-con.hero:has(.hero-art.r6) > .elementor-widget:has(.hero-art) { grid-row: 1 / span 8; }
.e-con.hero:has(.hero-art.r6) > .elementor-widget:nth-child(1):not(:has(.hero-art)) { grid-row: 2; }
.e-con.hero:has(.hero-art.r6) > .elementor-widget:nth-child(2):not(:has(.hero-art)) { grid-row: 3; }
.e-con.hero:has(.hero-art.r6) > .elementor-widget:nth-child(3):not(:has(.hero-art)) { grid-row: 4; }
.e-con.hero:has(.hero-art.r6) > .elementor-widget:nth-child(4):not(:has(.hero-art)) { grid-row: 5; }
.e-con.hero:has(.hero-art.r6) > .elementor-widget:nth-child(5):not(:has(.hero-art)) { grid-row: 6; }
.e-con.hero:has(.hero-art.r6) > .elementor-widget:nth-child(6):not(:has(.hero-art)) { grid-row: 7; }


.fiche-block { max-width: 1100px; margin-inline: auto; }
.fiche-block + .fiche-block { margin-top: clamp(2.4rem, 5vw, 3.6rem); }
.fiche-block > h2 { margin-bottom: .6rem; }
.fiche-block > .small { margin-bottom: 1.2rem; max-width: 70ch; }
.fiche-block p { max-width: 74ch; }


.bref { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1.2rem 2.4rem; align-items: center; margin-block: 0; padding: clamp(1.2rem, 2.6vw, 2rem); border: 1px solid var(--line); border-left: 6px solid var(--signal); border-radius: 22px; background: #fff; box-shadow: var(--shadow); }
.bref-h { font-size: 1.05rem; font-stretch: 100%; color: var(--signal-deep); margin: 0 0 .5rem; letter-spacing: 0; }
.bref p { margin: 0 0 .6rem; max-width: 70ch; font-size: 1.08rem; color: var(--fg); }
.bref .small { font-size: .88rem; color: var(--mute); margin: 0; }
.bref-art { width: 168px; height: 168px; border-radius: 28px; display: block; }
@media (max-width: 860px) { .bref { grid-template-columns: 1fr; } .bref-art { display: none; } }


.prog { display: grid; gap: .9rem; max-width: 900px; }
details.jour { border: 1px solid var(--line); border-radius: 18px; background: #fff; box-shadow: var(--shadow); overflow: hidden; }
details.jour > summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.3rem; cursor: pointer; list-style: none; }
details.jour > summary::-webkit-details-marker { display: none; }
details.jour > summary h3 { margin: 0; font-size: 1.2rem; font-stretch: 100%; letter-spacing: -.01em; }
.jour-n { margin-left: auto; font-size: .85rem; color: var(--signal-deep); background: var(--hero); border-radius: 999px; padding: .2rem .7rem; font-weight: 700; white-space: nowrap; }
details.jour > summary::after { content: "+"; font-size: 1.5rem; line-height: 1; color: var(--signal-deep); font-weight: 600; transition: transform .25s ease; }
details.jour[open] > summary::after { content: "\2212"; }
details.jour[open] > summary { border-bottom: 1px solid var(--line); background: var(--tint); }
ol.seqs { list-style: none; counter-reset: seq; margin: 0; padding: 1.1rem 1.3rem 1.3rem; display: grid; gap: .9rem; }
li.seq { counter-increment: seq; position: relative; padding-left: 2.6rem; }
li.seq::before { content: counter(seq); position: absolute; left: 0; top: .05rem; width: 1.8rem; height: 1.8rem; border-radius: 50%; background: var(--signal-deep); color: #fff; font-weight: 800; font-size: .9rem; display: grid; place-items: center; }
li.seq > strong { display: block; color: var(--fg); margin-bottom: .2rem; }
li.seq ul { margin: .1rem 0 0; padding-left: 1.1rem; color: var(--txt); font-size: .98rem; }
li.seq ul li { margin: .12rem 0; }
li.seq.atelier { background: #fff6ea; border: 1px solid #f3d9b4; border-radius: 14px; padding: .8rem 1rem .8rem 3.4rem; }
li.seq.atelier::before { left: .8rem; top: .8rem; background: #f0a24b; color: #10252d; }


.cols3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); gap: 1rem; margin-top: 1rem; }
.cols3 .col { border: 1px solid var(--line); border-radius: 18px; padding: 1.1rem 1.3rem 1.2rem; background: #fff; box-shadow: var(--shadow); }
.cols3 h3 { font-size: 1.05rem; font-stretch: 100%; color: var(--signal-deep); margin: 0 0 .6rem; }
.cols3 ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; }
.cols3 li { position: relative; padding-left: 1.4rem; font-size: .98rem; }
.cols3 li::before { content: ""; position: absolute; left: 0; top: .5em; width: .7rem; height: .4rem; border-left: 2.5px solid var(--signal); border-bottom: 2.5px solid var(--signal); transform: rotate(-45deg) translateY(-30%); }
.facts-sm { margin-top: 1.2rem; }


.kpis { list-style: none; margin: 1rem 0 .8rem; padding: 0; display: flex; flex-wrap: wrap; gap: 1rem; }
.kpis li { flex: 1 1 14rem; max-width: 18rem; border: 1px solid var(--line); border-radius: 18px; background: #fff; padding: 1.1rem 1.3rem; box-shadow: var(--shadow); }
.kpis .big { display: block; font-size: clamp(2.2rem, 5vw, 3.2rem); line-height: 1; color: var(--signal-deep); font-weight: 800; font-stretch: 100%; font-variant-numeric: tabular-nums; }
.kpis span { display: block; margin-top: .4rem; color: var(--txt); }


.faq { display: grid; max-width: 860px; }
details.faq-item { border-top: 1px solid var(--line); }
details.faq-item:last-child { border-bottom: 1px solid var(--line); }
details.faq-item > summary { display: flex; justify-content: space-between; gap: 1rem; align-items: center; padding: .95rem 0; cursor: pointer; list-style: none; }
details.faq-item > summary::-webkit-details-marker { display: none; }
details.faq-item > summary h3 { margin: 0; font-size: 1.08rem; font-stretch: 100%; letter-spacing: 0; line-height: 1.3; }
details.faq-item > summary::after { content: "+"; font-size: 1.4rem; color: var(--signal-deep); font-weight: 600; flex: none; }
details.faq-item[open] > summary::after { content: "\2212"; }
.faq-a { padding: 0 0 1rem; }
.faq-a p { margin: 0; max-width: 70ch; }


.chips-loc { list-style: none; display: flex; flex-wrap: wrap; gap: .5rem; padding: 0; margin: 1rem 0; }
.chips-loc li { background: var(--hero); color: var(--signal-deep); border-radius: 999px; padding: .3rem .9rem; font-weight: 700; font-size: .95rem; }
.chips-loc li::before { content: ""; display: inline-block; width: .5rem; height: .5rem; border-radius: 50%; background: var(--signal); margin-right: .5rem; }


.rel-list { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: 1rem; }
.rel-list a { display: block; height: 100%; padding: 1.1rem 1.2rem; border: 1px solid var(--line); border-radius: 18px; background: #fff; text-decoration: none; color: var(--txt); box-shadow: var(--shadow); transition: transform .25s ease, border-color .25s ease; }
.rel-list a:hover { transform: translateY(-4px); border-color: var(--signal); }
.rel-list strong { display: block; color: var(--fg); margin-bottom: .3rem; }
.rel-list span { font-size: .95rem; }


.hero.wrap.theme-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(230px, 380px); gap: 1.6rem clamp(2rem, 6vw, 4.5rem); align-items: center; }
.theme-hero-txt h1 { max-width: 20ch; }
.theme-hero-art { width: 100%; height: auto; aspect-ratio: 1; display: block; border-radius: 40px; box-shadow: var(--shadow); }
@media (max-width: 860px) { .hero.wrap.theme-hero { grid-template-columns: 1fr; } .theme-hero-art { display: none; } }
.theme-intro p { max-width: 74ch; }


.site-footer .ft-h { font-size: 1rem; letter-spacing: 0; margin: 0 0 .7rem; color: #f5f5f7; font-weight: 700; font-family: var(--cd-display); }
.site-footer ul + .ft-h { margin-top: 1.4rem; }


.cd-progress { position: fixed; z-index: 140; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, var(--signal-deep), var(--signal-hi)); transform-origin: 0 50%; transform: scaleX(0); pointer-events: none; }
.admin-bar .cd-progress { top: 32px; }
.site-header { transition: box-shadow .3s ease, background-color .3s ease; }
.site-header.is-scrolled { box-shadow: 0 10px 30px rgba(16, 37, 45, .09); }
.to-top { position: fixed; z-index: 90; right: 1.1rem; bottom: 1.1rem; width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--line-2); background: #fff; color: var(--signal-deep); box-shadow: 0 8px 24px rgba(16, 37, 45, .16); display: grid; place-items: center; cursor: pointer; opacity: 0; transform: translateY(12px); pointer-events: none; transition: opacity .3s ease, transform .3s ease, background-color .2s ease; }
.to-top.on { opacity: 1; transform: none; pointer-events: auto; }
.to-top:hover { background: var(--signal-deep); color: #fff; }
.to-top svg { width: 20px; height: 20px; }
@media (max-width: 760px) { .to-top { bottom: 4.9rem; right: .8rem; } }
@media print { .to-top, .cd-progress { display: none !important; } }

.rv { opacity: 0; transform: translateY(26px); }
.rv.rv-in { opacity: 1; transform: none; transition: opacity .7s ease var(--rv-d, 0ms), transform .85s cubic-bezier(.2, .7, .2, 1) var(--rv-d, 0ms); }

.hero-art, .theme-hero-art, .bref-art { will-change: transform; }
.hero-art { transform: translate3d(0, var(--py, 0px), 0); }
.theme-hero-art, .bref-art { transform: translate3d(0, var(--py, 0px), 0); }
@keyframes cd-float { 0%, 100% { translate: 0 0; } 50% { translate: 0 -7px; } }
@media (prefers-reduced-motion: no-preference) {
  .hero-art img, .theme-hero-art, .bref-art { animation: cd-float 7s ease-in-out infinite; }
  .bref-art { animation-delay: -2.5s; }
  .tl.tl-pre .seg { transform: scaleX(0); transform-origin: 0 50%; }
  .tl.tl-in .seg { transform: none; transition: transform .9s cubic-bezier(.2, .7, .2, 1) calc(var(--i, 0) * 90ms); }
  .flow li { transition: border-color .4s ease, transform .4s ease, box-shadow .4s ease; }
  .flow li.is-on { border-color: var(--signal); transform: translateY(-4px); box-shadow: 0 0 0 1px var(--signal), var(--shadow); }
}
@media (prefers-reduced-motion: reduce) {
  .rv, .rv.rv-in { opacity: 1 !important; transform: none !important; transition: none !important; }
  .hero-art, .theme-hero-art, .bref-art { transform: none !important; }
  .cd-progress { transition: none; }
}
.theme-hero-txt h1 { max-width: none; font-size: clamp(2rem, 4vw, 3.1rem); }
.fiche-block a:not(.btn), .bref a, .theme-intro a { color: var(--signal-deep); text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 3px; text-decoration-color: rgba(29, 97, 118, .45); }
.fiche-block a:not(.btn):hover, .bref a:hover { text-decoration-color: currentColor; }
.rel-list a, .rel-list a:hover { text-decoration: none; }
.fiche-nav { list-style: none; display: flex; flex-wrap: wrap; gap: .5rem; margin: 1rem 0 0; padding: 0; }
.fiche-nav a { display: inline-block; padding: .3rem .85rem; border-radius: 999px; background: var(--hero); color: var(--signal-deep) !important; font-weight: 700; font-size: .92rem; text-decoration: none !important; transition: background-color .2s ease, color .2s ease; }
.fiche-nav a:hover { background: var(--signal-deep); color: #fff !important; }


.cd-head { margin-bottom: clamp(1.6rem, 3vw, 2.4rem); }
.cd-head h2 { margin-bottom: .6rem; }
.cd-head .lead { margin: 0; }
.e-con.hero { overflow-x: clip; }


.cd-marquee { background: #fff; border-block: 1px solid var(--line); padding: 1.15rem 0 1.3rem; overflow: hidden; }
.cd-marquee-t { margin: 0 0 .9rem; text-align: center; font-size: .95rem; color: var(--mute); font-weight: 600; }
.cd-marquee-row { display: flex; width: 100%; overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.cd-marquee-track { flex: 0 0 auto; display: flex; align-items: center; gap: clamp(2rem, 4vw, 3.4rem); min-width: 100%; margin: 0; padding: 0 clamp(1rem, 2vw, 1.7rem); list-style: none; justify-content: space-around; }
.cd-marquee-track li { flex: none; }
.cd-marquee-track img { display: block; height: 48px; width: auto; max-width: 150px; object-fit: contain; filter: grayscale(1); opacity: .72; transition: filter .25s, opacity .25s; }
.cd-marquee-track img:hover { filter: none; opacity: 1; }
@media (prefers-reduced-motion: no-preference) {
  .cd-marquee-track { animation: cd-marq 80s linear infinite; }
  .cd-marquee-row:hover .cd-marquee-track { animation-play-state: paused; }
}
@keyframes cd-marq { to { transform: translateX(-100%); } }
@media (prefers-reduced-motion: reduce) {
  .cd-marquee-row { overflow-x: auto; }
  .cd-marquee-track[aria-hidden="true"] { display: none; }
}


.cd-exp-grid { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.cd-exp-c a { display: flex; flex-direction: column; height: 100%; min-height: 285px; padding: 1.5rem 1.4rem 1.3rem; border-radius: 22px; text-decoration: none; color: #fff; background: var(--navy); position: relative; overflow: hidden; transition: transform .35s cubic-bezier(.2, .7, .2, 1), box-shadow .35s; }
.cd-exp-c.is-f a { background: var(--signal-deep); }
.cd-exp-c a::after { content: ""; position: absolute; right: -40px; top: -40px; width: 140px; height: 140px; border-radius: 50%; background: radial-gradient(circle, rgba(127, 207, 227, .28), transparent 70%); transition: transform .5s; }
.cd-exp-c a:hover { transform: translateY(-6px); box-shadow: 0 22px 40px -22px rgba(15, 43, 54, .7); }
.cd-exp-c a:hover::after { transform: scale(1.5); }
.cd-exp-ico { color: var(--signal-hi); display: block; margin-bottom: 1rem; transition: transform .4s cubic-bezier(.2, .7, .2, 1); }
.cd-exp-c a:hover .cd-exp-ico { transform: rotate(-6deg) scale(1.08); }
.cd-exp-k { font-size: .82rem; font-weight: 700; color: var(--signal-hi); margin-bottom: .35rem; }
.cd-exp-c h3 { color: #fff; font-size: 1.25rem; line-height: 1.2; margin: 0 0 .55rem; }
.cd-exp-c p { color: rgba(255, 255, 255, .8); font-size: .98rem; margin: 0 0 1rem; line-height: 1.45; }
.cd-exp-go { margin-top: auto; font-weight: 700; font-size: .95rem; text-decoration: underline; text-decoration-color: rgba(255, 255, 255, .4); text-underline-offset: 4px; }
.cd-exp-c a:focus-visible { outline: 3px solid var(--signal-hi); outline-offset: 3px; }
@media (max-width: 1100px) { .cd-exp-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .cd-exp-grid { grid-template-columns: 1fr; } .cd-exp-c a { min-height: 0; } }


.mock { background: #fff; border-radius: 12px 12px 0 0; overflow: hidden; box-shadow: 0 22px 44px -18px rgba(0, 0, 0, .55); }
.mock-bar { display: flex; align-items: center; gap: 5px; height: 28px; padding: 0 10px; background: #edf2f4; border-bottom: 1px solid #dbe4e8; }
.mock-bar i { width: 8px; height: 8px; border-radius: 50%; background: #c3d0d6; flex: none; }
.mock-bar span { margin-left: 8px; padding: 2px 12px; border-radius: 999px; background: #fff; font-size: 11px; color: var(--mute); line-height: 1.4; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mock img { display: block; width: 100%; height: auto; aspect-ratio: 2 / 1; object-fit: cover; object-position: 50% 0; }
.cd-show-grid { display: grid; gap: 1.25rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cd-case { background: #fff; border-radius: 26px; overflow: hidden; box-shadow: var(--shadow); display: flex; flex-direction: column; }
.cd-case.is-big { grid-column: 1 / -1; flex-direction: row; }
.cd-case-art { position: relative; overflow: hidden; height: 270px; padding: 38px 8% 0; background: var(--panel, var(--signal-deep)); flex: none; }
.cd-case.is-big .cd-case-art { height: auto; min-height: 360px; width: 58%; padding: 56px 9% 0; }
.cd-case-art .mock { transform: translate3d(0, var(--py, 0px), 0); transition: transform .5s cubic-bezier(.2, .7, .2, 1); }
.cd-case:hover .cd-case-art .mock { transform: translate3d(0, calc(var(--py, 0px) - 8px), 0); }
.tone-teal { --panel: #1d6176; } .tone-navy { --panel: #0f2b36; } .tone-pale { --panel: #bfe0ea; } .tone-warm { --panel: #f4d6a8; } .tone-teal2 { --panel: #318ba2; } .tone-brown { --panel: #5a3d22; }
.cd-case-proof { position: absolute; right: 1rem; bottom: 1rem; z-index: 2; margin: 0; max-width: 15ch; padding: .65rem .9rem; border-radius: 14px; background: #fff; color: var(--fg); box-shadow: 0 10px 24px -12px rgba(0, 0, 0, .5); font-size: .95rem; line-height: 1.25; }
.cd-case-txt { padding: 1.4rem 1.6rem 1.6rem; display: flex; flex-direction: column; gap: .5rem; flex: 1; }
.cd-case.is-big .cd-case-txt { justify-content: center; padding: clamp(1.6rem, 3vw, 2.6rem); }
.cd-case-txt h3 { margin: 0; font-size: 1.4rem; }
.cd-case.is-big h3 { font-size: clamp(1.7rem, 3vw, 2.3rem); }
.cd-case-sub { margin: 0; color: var(--mute); }
.cd-tags { list-style: none; margin: .4rem 0; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem; }
.cd-tags li { background: var(--hero); color: var(--signal-deep); border-radius: 999px; padding: .22rem .75rem; font-size: .86rem; font-weight: 700; }
.cd-case-links { margin: .4rem 0 0; display: flex; flex-wrap: wrap; gap: .4rem 1.4rem; }
.cd-case-links a { font-weight: 700; color: var(--signal-deep); text-underline-offset: 4px; }
.cd-more { margin: 2rem 0 0; text-align: center; max-width: none; }
@media (min-width: 901px) {
  .cd-show-grid .cd-case:last-child:nth-child(even) { grid-column: 1 / -1; flex-direction: row-reverse; }
  .cd-show-grid .cd-case:last-child:nth-child(even) .cd-case-art { height: auto; min-height: 340px; width: 58%; padding: 52px 9% 0; }
  .cd-show-grid .cd-case:last-child:nth-child(even) .cd-case-txt { justify-content: center; padding: clamp(1.6rem, 3vw, 2.6rem); }
}
@media (max-width: 900px) {
  .cd-show-grid { grid-template-columns: 1fr; }
  .cd-case.is-big { flex-direction: column; }
  .cd-case.is-big .cd-case-art, .cd-case-art { width: auto; height: 240px; min-height: 0; padding: 32px 7% 0; }
}


.cd-tools-w { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.cd-tools-t h2 { margin-bottom: .8rem; }
.cd-tools-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.cd-tools-grid li { display: flex; flex-direction: column; align-items: center; text-align: center; gap: .25rem; padding: 1.1rem .6rem; background: #fff; border-radius: 20px; box-shadow: var(--shadow); }
.cd-tile { display: grid; place-items: center; width: 62px; height: 62px; border-radius: 18px; background: #f3f7f9; background: color-mix(in srgb, var(--c) 9%, #fff); margin-bottom: .4rem; }
.cd-tile img { display: block; max-width: 50px; height: 34px; }
.cd-tools-grid b { font-size: .98rem; line-height: 1.2; }
.cd-tools-grid small { color: var(--mute); font-size: .82rem; line-height: 1.3; }
@media (prefers-reduced-motion: no-preference) {
  .cd-tools-grid li { animation: cd-float 6.5s ease-in-out infinite; animation-delay: calc(var(--i) * -.8s); }
}
@media (max-width: 900px) { .cd-tools-w { grid-template-columns: 1fr; } }
@media (max-width: 520px) { .cd-tools-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }


.cd-about-w { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2rem, 6vw, 5rem); align-items: center; }
.cd-about-ph { position: relative; max-width: 400px; }
.cd-about-ph figure { position: relative; margin: 0; }
.cd-about-ph figure::before { content: ""; position: absolute; inset: 7% -6% -6% 8%; border-radius: 34px; background: var(--signal-deep); z-index: 0; }
.cd-about-ph img { position: relative; z-index: 1; display: block; width: 100%; height: auto; border-radius: 30px; box-shadow: var(--shadow); }
.cd-badge { position: absolute; z-index: 2; display: block; max-width: 17ch; padding: .55rem .85rem; border-radius: 14px; background: #fff; color: var(--fg); font-size: .88rem; font-weight: 700; line-height: 1.25; box-shadow: 0 12px 26px -14px rgba(16, 37, 45, .6); }
.cd-badge.b1 { top: 6%; right: -12%; }
.cd-badge.b2 { top: 50%; left: -13%; }
.cd-badge.b3 { bottom: -3%; right: -6%; }
@media (prefers-reduced-motion: no-preference) {
  .cd-badge { animation: cd-float 7s ease-in-out infinite; }
  .cd-badge.b2 { animation-delay: -2.3s; } .cd-badge.b3 { animation-delay: -4.6s; }
}
.cd-about-t h2 { margin-bottom: .8rem; }
.cd-about-t .actions { margin-top: 1.4rem; display: flex; flex-wrap: wrap; gap: .8rem; }
@media (max-width: 900px) {
  .cd-about-w { grid-template-columns: 1fr; }
  .cd-about-ph { max-width: 320px; }
  .cd-badge { position: static; display: inline-block; max-width: none; margin: .5rem .4rem 0 0; animation: none; }
  .cd-about-ph figure::before { inset: 6% -4% -4% 6%; }
}


.cd-ghost { overflow: hidden; background: var(--tint); padding: clamp(1.6rem, 4vw, 3rem) 0; user-select: none; }
.cd-ghost span { display: block; white-space: nowrap; font-family: var(--cd-display); font-weight: 800; font-stretch: 120%; font-size: clamp(2.8rem, 10.5vw, 9rem); line-height: 1.02; letter-spacing: -.04em; }
.cd-ghost .g1 { color: transparent; -webkit-text-stroke: 1.5px rgba(29, 97, 118, .45); transform: translate3d(var(--gx, 0), 0, 0); margin-left: -3vw; }
.cd-ghost .g2 { color: #d3e7ee; transform: translate3d(calc(var(--gx, 0px) * -1), 0, 0); margin-left: 6vw; }


.hero-art { position: relative; }
.hero-float { position: absolute; inset: 0; pointer-events: none; z-index: 3; }
.hf-mock { position: absolute; left: -20%; bottom: -8%; width: 62%; border-radius: 10px; box-shadow: 0 24px 40px -16px rgba(15, 43, 54, .6); }
.hf-mock .mock-bar { height: 20px; padding: 0 7px; }
.hf-mock .mock-bar i { width: 6px; height: 6px; }
.hf-mock .mock-bar span { font-size: 9px; padding: 0 8px; }
.hf-mock { border-radius: 10px; overflow: hidden; }
.hf-chip { position: absolute; display: inline-flex; align-items: center; gap: .45rem; padding: .42rem .85rem; border-radius: 999px; background: #fff; color: var(--fg); font-weight: 700; font-size: .9rem; box-shadow: 0 12px 24px -12px rgba(16, 37, 45, .55); white-space: nowrap; }
.hf-chip::before { content: ""; width: .55rem; height: .55rem; border-radius: 50%; background: var(--signal); }
.hf-chip.c1 { top: 7%; left: -9%; }
.hf-chip.c2 { top: 33%; right: -8%; }
.hf-chip.c3 { bottom: 18%; right: -5%; }
.hf-chip.c2::before { background: #f0a24b; } .hf-chip.c3::before { background: var(--signal-deep); }
@media (prefers-reduced-motion: no-preference) {
  .hf-mock, .hf-chip { animation: cd-float 8s ease-in-out infinite; }
  .hf-chip.c1 { animation-delay: -1.5s; } .hf-chip.c2 { animation-delay: -3.5s; } .hf-chip.c3 { animation-delay: -5.5s; }
}
@media (max-width: 860px) {
  .hero-art figcaption { margin-top: 3.2rem; }
  .hf-mock { left: -6%; width: 58%; }
  .hf-chip { font-size: .8rem; padding: .32rem .65rem; }
  .hf-chip.c1 { left: -4%; } .hf-chip.c2 { right: -4%; } .hf-chip.c3 { right: -2%; }
}
@media print { .cd-marquee-track { animation: none; } .hero-float { display: none; } }
.tone-ink { --panel: #1d1a1a; } .tone-wine { --panel: #5a1f33; } .tone-sage { --panel: #4d6a58; }
.tone-indigo { --panel: #231a7a; } .tone-forest { --panel: #3b5a50; } .tone-steel { --panel: #5a6a73; } .tone-slate { --panel: #1f3447; } .tone-amber { --panel: #b57d1d; }
.tone-marine { --panel: #102a4c; }


.cd-hero { position: relative; overflow: hidden; isolation: isolate; background: var(--navy, #0f2b36); color: #fff; min-height: min(86vh, 780px); display: flex; align-items: center; }
.cd-hero::before { content: ""; position: absolute; inset: 0; z-index: -2; background: radial-gradient(60% 80% at 78% 40%, rgba(49, 139, 162, .55), transparent 70%), radial-gradient(40% 50% at 10% 100%, rgba(49, 139, 162, .25), transparent 70%); }
.cd-hero-w { position: relative; z-index: 2; width: min(var(--content, 1240px), 100% - 2 * var(--gut, 20px)); margin-inline: auto; padding-block: clamp(3rem, 7vw, 6rem); }
.cd-hero-t { max-width: min(620px, 48%); }
.cd-hero h1 { color: #fff; max-width: none; font-size: clamp(2.5rem, 5vw, 4.6rem); line-height: 1.04; letter-spacing: -.035em; margin: 0 0 1.4rem; }
.cd-hero h1 .l1, .cd-hero h1 .l2 { display: block; }
.cd-hero h1 .l2 { color: var(--signal-hi, #7fcfe3); }
.cd-hero .lead { color: rgba(255, 255, 255, .84); font-size: clamp(1.02rem, 1.25vw, 1.18rem); max-width: 56ch; margin: 0 0 1.8rem; }
.cd-hero .actions { display: flex; flex-wrap: wrap; gap: .7rem; margin: 0 0 2.2rem; }
.cd-hero .btn { background: #fff; color: var(--navy, #0f2b36); }
.cd-hero .btn:hover { background: var(--signal-hi, #7fcfe3); color: #000; }
.cd-hero .btn-quiet { background: rgba(255, 255, 255, .06); color: #fff; border-color: rgba(255, 255, 255, .45); }
.cd-hero .btn-quiet:hover { background: #fff; color: var(--navy, #0f2b36); border-color: #fff; }
.cd-hero-proof { display: flex; flex-wrap: wrap; gap: 1rem 0; margin: 0; padding: 0; }
.cd-hero-proof > div { padding: 0 1.4rem; border-left: 1px solid rgba(255, 255, 255, .28); }
.cd-hero-proof > div:first-child { padding-left: 0; border-left: 0; }
.cd-hero-proof dt { font-family: var(--cd-display); font-weight: 800; font-size: clamp(1.4rem, 2.2vw, 1.9rem); line-height: 1.1; color: #fff; margin: 0; }
.cd-hero-proof dd { margin: .15rem 0 0; font-size: .86rem; color: rgba(255, 255, 255, .72); }

.cd-wall { position: absolute; z-index: 1; top: -8%; bottom: -8%; right: -5%; width: 56%; perspective: 1500px; perspective-origin: 30% 50%; pointer-events: none; }
.w-plane { position: absolute; inset: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.1rem; transform: rotateY(-20deg) rotateX(9deg) rotateZ(6deg) scale(1); transform-origin: 70% 50%; transform-style: preserve-3d; -webkit-mask-image: linear-gradient(90deg, transparent 4%, #000 34%); mask-image: linear-gradient(90deg, transparent 4%, #000 34%); }
.w-col { overflow: hidden; min-width: 0; }
.w-track { display: flex; flex-direction: column; gap: 1.1rem; will-change: transform; }
.w-card { flex: none; border-radius: 12px; overflow: hidden; background: #fff; box-shadow: 0 30px 50px -22px rgba(0, 0, 0, .75), 0 0 0 1px rgba(255, 255, 255, .1); }
.w-bar { display: flex; align-items: center; gap: 4px; height: 22px; padding: 0 9px; background: #eef2f4; }
.w-bar i { width: 6px; height: 6px; border-radius: 50%; background: #c3ccd1; }
.w-bar span { margin-left: 8px; font-size: 10px; color: #5b6b73; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.w-card img { display: block; width: 100%; height: auto; aspect-ratio: 2 / 1; object-fit: cover; }
.w2 { margin-top: 3.2rem; }

@media (prefers-reduced-motion: no-preference) {
  .w-track { animation: cd-wall-up 70s linear infinite; }
  .w2 .w-track { animation-name: cd-wall-down; animation-duration: 82s; }
  .w3 .w-track { animation-duration: 64s; }
  .cd-wall { animation: cd-wall-in 1.4s cubic-bezier(.2, .7, .2, 1) both; }
  .cd-hero h1 .l1, .cd-hero h1 .l2, .cd-hero .lead, .cd-hero .actions, .cd-hero-proof { animation: cd-rise .9s cubic-bezier(.2, .7, .2, 1) both; }
  .cd-hero h1 .l2 { animation-delay: .12s; } .cd-hero .lead { animation-delay: .26s; } .cd-hero .actions { animation-delay: .38s; } .cd-hero-proof { animation-delay: .5s; }
}
@keyframes cd-wall-up { to { transform: translateY(calc(-50% - .55rem)); } }
@keyframes cd-wall-down { from { transform: translateY(calc(-50% - .55rem)); } to { transform: translateY(0); } }
@keyframes cd-wall-in { from { opacity: 0; translate: 8% 0; } to { opacity: 1; translate: 0 0; } }
@keyframes cd-rise { from { opacity: 0; translate: 0 22px; } to { opacity: 1; translate: 0 0; } }

@media (max-width: 960px) {
  .cd-hero { display: flex; flex-direction: column; min-height: 0; align-items: stretch; }
  .cd-hero-t { max-width: none; }
  .cd-hero-w { padding-bottom: 1.5rem; }
  .cd-wall { position: relative; order: -1; top: auto; right: auto; bottom: auto; width: 100%; height: 300px; margin: 0; overflow: hidden; }
  .cd-hero-w { padding-top: 1rem; }
  .w-plane { transform: rotateY(-14deg) rotateX(12deg) rotateZ(4deg) scale(1.15); -webkit-mask-image: linear-gradient(180deg, #000 55%, transparent 98%); mask-image: linear-gradient(180deg, #000 55%, transparent 98%); }
  .w3 { display: none; }
  .w-plane { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .cd-wall { height: 250px; }
  .cd-hero-proof { display: grid; grid-template-columns: repeat(3, auto); justify-content: start; }
  .cd-hero-proof > div { padding: 0 .8rem; }
  .cd-hero-proof dt { font-size: 1.25rem; } .cd-hero-proof dd { font-size: .76rem; }
}
@media print { .cd-wall { display: none; } .cd-hero { background: #fff; color: #000; } .cd-hero h1, .cd-hero .lead, .cd-hero-proof dt { color: #000; } }


main section.section.cd-show, main section.section.elementor-element-e9aba37 {
  --bg: #0f2b36; --fg: #fff; --txt: rgba(255, 255, 255, .84); --mute: rgba(255, 255, 255, .68); --line: rgba(255, 255, 255, .16); --line-2: rgba(255, 255, 255, .4); --card: rgba(255, 255, 255, .06); --focus: #7fcfe3;
  color: #fff; background-image: radial-gradient(38% 75% at 58% 10%, rgba(49, 139, 162, .45), transparent 100%);
}
main section.section.cd-show h2, main section.section.cd-show h3, main section.section.elementor-element-e9aba37 h2 { color: #fff; }
main section.section.cd-show p, main section.section.elementor-element-e9aba37 p { color: var(--txt); }
.cd-head h2, .proof-head h2, .cd-exp h2, .cd-tools h2, .cd-about h2 { font-size: clamp(2rem, 4.2vw, 3.3rem); letter-spacing: -.03em; line-height: 1.06; }


main section.elementor-element-e9aba37 .proof .big { font-size: clamp(2.8rem, 6vw, 5rem); line-height: 1; letter-spacing: -.04em; color: #7fcfe3; font-stretch: 120%; }
main section.elementor-element-e9aba37 .proof a { color: #fff; text-decoration-color: rgba(127, 207, 227, .7); text-underline-offset: 4px; font-weight: 700; }
main section.elementor-element-e9aba37 .proof > li { border-color: rgba(255, 255, 255, .18); }


.cd-show .cd-case { background: rgba(255, 255, 255, .05); box-shadow: 0 0 0 1px rgba(255, 255, 255, .13); backdrop-filter: blur(2px); transition: transform .45s cubic-bezier(.2, .7, .2, 1), box-shadow .45s; }
.cd-show .cd-case:hover { transform: translateY(-6px); box-shadow: 0 0 0 1px rgba(127, 207, 227, .6), 0 30px 60px -30px rgba(0, 0, 0, .8); }
.cd-show .cd-case-sub { color: rgba(255, 255, 255, .72); }
.cd-show .cd-tags li { background: rgba(127, 207, 227, .14); color: #7fcfe3; }
.cd-show .cd-case-links a { color: #7fcfe3; }
.cd-show .cd-case-links a:first-child { color: #fff; }
.cd-show .cd-case-art { perspective: 1100px; }
.cd-show .cd-case-art .mock { rotate: .35 1 0 -9deg; transform-origin: 30% 50%; transition: transform .5s cubic-bezier(.2, .7, .2, 1), rotate .6s cubic-bezier(.2, .7, .2, 1); }
.cd-show .cd-case:hover .cd-case-art .mock { rotate: 0 0 0 0deg; }
.cd-show .cd-more .btn { background: #fff; color: #0f2b36; }
.cd-show .cd-more .btn:hover { background: #7fcfe3; color: #000; }


.cd-ghost { background: #0f2b36; }
.cd-ghost .g1 { -webkit-text-stroke-color: rgba(127, 207, 227, .7); }
.cd-ghost .g2 { color: rgba(127, 207, 227, .2); }
@media (prefers-reduced-motion: reduce) { .cd-show .cd-case-art .mock { rotate: 0 0 0 0deg; } }
.tone-rose { --panel: #8a2a52; }


main .band, .band { --bg: #0f2b36; background-color: #0f2b36; background-image: radial-gradient(36% 110% at 58% 0%, rgba(49, 139, 162, .5), transparent 100%); }
.band h2 { font-size: clamp(2.1rem, 4.8vw, 3.8rem); line-height: 1.05; letter-spacing: -.03em; max-width: 20ch; }
.band .btn { padding: .95rem 1.9rem; }


main .e-con.hero, main .hero, main .cd-rhero, main .cd-hubhero, main .section.cd-rhero, main .section.cd-hubhero {
  --bg: #0f2b36; --fg: #fff; --txt: rgba(255, 255, 255, .85); --mute: rgba(255, 255, 255, .7); --line: rgba(255, 255, 255, .16); --line-2: rgba(255, 255, 255, .4); --focus: #7fcfe3;
  color: #fff; background-color: #0f2b36;
  background-image: radial-gradient(38% 80% at 58% 20%, rgba(49, 139, 162, .5), transparent 100%);
}
.crumbs { background: #0f2b36; box-shadow: 0 0 0 100vmax #0f2b36; color: rgba(255, 255, 255, .7); }
.crumbs a { color: #fff; }
main .hero h1, main .hero h1 .l1, main .cd-rhero h1, main .cd-hubhero h1 { color: #fff; font-size: clamp(2.3rem, 4.8vw, 4.1rem); line-height: 1.05; letter-spacing: -.035em; max-width: 20ch; }
main .hero h1 .l2 { color: #7fcfe3; }
main .hero .lead, main .hero p, main .cd-rhero .lead, main .cd-hubhero .lead { color: rgba(255, 255, 255, .86); }
main .hero .btn, main .cd-rhero .btn, main .cd-hubhero .btn { background: #fff; color: #0f2b36; }
main .hero .btn:hover, main .cd-rhero .btn:hover, main .cd-hubhero .btn:hover { background: #7fcfe3; color: #000; }
main .hero .btn-quiet, main .cd-rhero .btn-quiet, main .cd-hubhero .btn-quiet { background: rgba(255, 255, 255, .06); color: #fff; border-color: rgba(255, 255, 255, .45); }
main .hero .btn-quiet:hover, main .cd-rhero .btn-quiet:hover, main .cd-hubhero .btn-quiet:hover { background: #fff; color: #0f2b36; border-color: #fff; }
.cd-rcat { color: #7fcfe3; }
.cd-rhero .cd-bc a, .cd-hubhero .cd-bc a { color: #fff; }
.cd-rhero .cd-tags li, .cd-hubhero .cd-tags li { background: rgba(127, 207, 227, .14); color: #7fcfe3; }
main .hero a:not(.btn):not(.btn-quiet) { color: #fff; }
main .hero .hero-art figcaption, main .hero figcaption { color: rgba(255, 255, 255, .7); }
.cd-hero-sub { min-height: min(62vh, 560px); }
.cd-hero-sub h1 { font-size: clamp(2.2rem, 4.6vw, 4rem); max-width: 18ch; }
.cd-hero .cd-bc { margin-bottom: 1.2rem; } .cd-hero .cd-bc a { color: #fff; } .cd-hero .cd-bc li + li::before, .cd-hero .cd-bc [aria-current] { color: rgba(255, 255, 255, .7); }


.site-header { background: rgba(15, 43, 54, .92); color: #fff; border-bottom: 1px solid rgba(255, 255, 255, .12); }
.site-header .brand img { content: url("../img/logo-blanc-gras.webp"); height: 60px; width: auto; }
.site-header .nav a { color: rgba(255, 255, 255, .84); }
.site-header .nav a:hover { color: #fff; }
.site-header .nav a[aria-current="page"] { color: #fff; border-bottom-color: #7fcfe3; }
.site-header .nav a.nav-cta { background: #fff; border-color: #fff; color: #0f2b36; }
.site-header .nav a.nav-cta:hover { background: #7fcfe3; border-color: #7fcfe3; color: #000; }
.site-header .nav-toggle { color: #fff; border-color: rgba(255, 255, 255, .5); }
@media (max-width: 1100px) { .site-header .nav { background: #0f2b36; } .site-header .nav a { color: #fff; } }


.flow li::before { counter-increment: st; content: "0" counter(st); position: absolute; top: .9rem; right: 1.1rem; font-family: var(--cd-display); font-weight: 800; font-size: 2.6rem; line-height: 1; letter-spacing: -.04em; color: transparent; -webkit-text-stroke: 1.2px rgba(49, 139, 162, .5); }


main section.section.elementor-element-0845463 {
  --bg: #0f2b36; --fg: #fff; --txt: rgba(255, 255, 255, .85); --mute: rgba(255, 255, 255, .7); --line: rgba(255, 255, 255, .16); --card: rgba(255, 255, 255, .06);
  color: #fff; background-image: radial-gradient(38% 75% at 40% 0%, rgba(49, 139, 162, .4), transparent 100%);
}
main section.section.elementor-element-0845463 h2 { color: #fff; font-size: clamp(2rem, 4.2vw, 3.3rem); letter-spacing: -.03em; }
main section.section.elementor-element-0845463 .facts > div { background: rgba(255, 255, 255, .06); box-shadow: 0 0 0 1px rgba(255, 255, 255, .14); }
main section.section.elementor-element-0845463 .facts dt { color: #7fcfe3; }
main section.section.elementor-element-0845463 .facts dd, main section.section.elementor-element-0845463 .facts dd a { color: rgba(255, 255, 255, .86); }
main section.section.elementor-element-0845463 .facts dd a { color: #fff; text-decoration-color: rgba(127, 207, 227, .7); }

.tone-rust { --panel: #8a3a22; }


main section.section.cd-fm-dark {
  --bg: #0f2b36; --fg: #fff; --txt: rgba(255, 255, 255, .84); --mute: rgba(255, 255, 255, .68); --line: rgba(255, 255, 255, .16); --line-2: rgba(255, 255, 255, .4); --card: rgba(255, 255, 255, .06); --focus: #7fcfe3;
  color: #fff; background-image: radial-gradient(38% 75% at 58% 6%, rgba(49, 139, 162, .45), transparent 100%);
}
main section.section.cd-fm-dark h2, main section.section.cd-fm-dark h3, main section.section.cd-fm-dark h4 { color: #fff; }
main section.section.cd-fm-dark p { color: var(--txt); }
main section.section.cd-fm-tint { --bg: #e4eff3; }
main section.section.cd-fm-dark a { color: #7fcfe3; }
.cd-fm .cd-head h2 { font-size: clamp(1.9rem, 3.8vw, 3rem); letter-spacing: -.03em; line-height: 1.08; max-width: 24ch; }
.cd-fm .fm-h { margin: clamp(2rem, 4vw, 3rem) 0 1rem; font-size: clamp(1.2rem, 2vw, 1.55rem); letter-spacing: -.015em; max-width: none; }
.cd-fm .fm-note, .cd-fm .fm-src, .cd-fm .fm-calipso { font-size: .95rem; max-width: 80ch; }
.cd-fm .fm-note { margin: 0 0 1.2rem; }
.cd-fm .fm-src { margin: 1.4rem 0 0; opacity: .8; }
.cd-fm ul, .cd-fm ol { list-style: none; margin: 0; padding: 0; }
.fm-ico { display: block; color: var(--signal-hi, #7fcfe3); }
.cd-fm-light .fm-ico, .cd-fm-tint .fm-ico { color: var(--signal-deep, #1d6176); }


.fm-schools { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.1rem; }
.fm-schools li { display: flex; gap: 1.1rem; align-items: center; padding: 1.2rem; border-radius: 20px; background: rgba(255, 255, 255, .06); box-shadow: 0 0 0 1px rgba(255, 255, 255, .13); }
.fm-logo { flex: none; display: grid; place-items: center; width: 84px; height: 84px; border-radius: 16px; background: #fff; padding: 8px; }
.fm-logo img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
.fm-schools h3 { margin: 0 0 .3rem; font-size: 1.05rem; line-height: 1.25; }
.fm-schools p { margin: 0; font-size: .95rem; }


.fm-mat { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: .8rem; }
.fm-mat li { display: flex; align-items: center; gap: .85rem; padding: .9rem 1rem; border-radius: 16px; background: rgba(255, 255, 255, .05); box-shadow: 0 0 0 1px rgba(255, 255, 255, .11); line-height: 1.3; font-weight: 600; font-size: .98rem; color: #fff; }
.fm-mat .fm-ico { flex: none; }


.fm-mod { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.1rem; }
.fm-mod li { padding: 1.3rem 1.4rem 1.4rem; border-radius: 20px; background: rgba(255, 255, 255, .06); box-shadow: 0 0 0 1px rgba(255, 255, 255, .13); display: flex; flex-direction: column; }
.fm-chip { align-self: flex-start; padding: .2rem .7rem; border-radius: 999px; font-size: .82rem; font-weight: 700; background: rgba(127, 207, 227, .16); color: #7fcfe3; }
.fm-mod .is-m2 .fm-chip { background: rgba(255, 255, 255, .12); color: #fff; }
.fm-mod h4 { margin: .8rem 0 .2rem; font-size: 1.15rem; line-height: 1.25; letter-spacing: -.01em; }
.fm-mod .fm-h-big { margin: 0 0 .5rem; }
.fm-mod .fm-h-big strong { font-family: var(--cd-display); font-stretch: 120%; font-weight: 800; font-size: 2.1rem; line-height: 1; color: #7fcfe3; letter-spacing: -.03em; }
.fm-bar { display: block; height: 8px; border-radius: 99px; background: rgba(255, 255, 255, .12); overflow: hidden; margin-bottom: .9rem; }
.fm-bar i { display: block; height: 100%; border-radius: 99px; background: #7fcfe3; }
.fm-mod .is-m2 .fm-bar i { background: #318ba2; }
.fm-mod li > p:last-child { margin: 0; font-size: .95rem; }


.fm-flow { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; counter-reset: fl; position: relative; }
.fm-flow li { position: relative; padding: 1.3rem 1.2rem 1.4rem; background: #fff; border: 1px solid var(--line); border-radius: 0; counter-increment: fl; }
.fm-flow li:first-child { border-radius: 20px 0 0 20px; } .fm-flow li:last-child { border-radius: 0 20px 20px 0; }
.fm-flow li + li { border-left: 0; }
.fm-flow li::before { content: "0" counter(fl); position: absolute; top: 1rem; right: 1.1rem; font-family: var(--cd-display); font-stretch: 120%; font-weight: 800; font-size: 1.3rem; color: var(--signal-deep, #1d6176); opacity: .35; }
.fm-flow h3 { margin: .9rem 0 .4rem; font-size: 1.05rem; line-height: 1.25; }
.fm-flow p { margin: 0; font-size: .93rem; color: var(--txt); }


.fm-tbar { display: flex; gap: 4px; height: 76px; }
.fm-tbar span { display: flex; flex-direction: column; justify-content: center; padding: .5rem .9rem; border-radius: 12px; font-size: .88rem; line-height: 1.25; color: #fff; min-width: 0; }
.fm-tbar b { font-family: var(--cd-display); font-size: 1.25rem; font-weight: 800; color: inherit; letter-spacing: -.02em; }
.fm-tbar .t-c { background: #1d6176; } .fm-tbar .t-q { background: #b46b0e; align-items: center; text-align: center; padding-inline: .3rem; } .fm-tbar .t-f { background: #5e5e63; align-items: center; text-align: center; padding-inline: .3rem; }


.fm-lead { max-width: 82ch; margin: 0 0 1.3rem; }
.fm-chap { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.fm-chap li { padding: 1.2rem 1.2rem 1.3rem; background: #fff; border: 1px solid var(--line); border-radius: 20px; display: flex; flex-direction: column; gap: .5rem; }
.fm-n { font-weight: 700; font-size: .85rem; color: var(--signal-deep, #1d6176); }
.fm-chap h4 { margin: 0; font-size: 1.04rem; line-height: 1.3; }
.fm-chap p { margin: auto 0 0; display: flex; flex-direction: column; gap: .4rem; padding-top: .6rem; }
.fm-pos, .fm-neg { display: block; padding: .35rem .7rem; border-radius: 10px; font-size: .88rem; font-weight: 600; line-height: 1.3; }
.fm-pos { background: #dff3e6; color: #14532d; } .fm-neg { background: #fbe0de; color: #8a1c14; }
.fm-cadres { margin: 1.3rem 0 0; max-width: 90ch; font-size: .95rem; }


.fm-kpi { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin: 0; }
.fm-kpi > div { padding: 1.2rem 1.3rem; border-radius: 18px; background: #fff; box-shadow: var(--shadow); }
.fm-kpi dt { font-family: var(--cd-display); font-stretch: 120%; font-weight: 800; font-size: clamp(2rem, 3.6vw, 2.9rem); line-height: 1; letter-spacing: -.035em; color: var(--signal-deep, #1d6176); margin: 0 0 .4rem; }
.fm-kpi dd { margin: 0; font-size: .95rem; color: var(--txt); }
.fm-themes { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem; }
.fm-themes a { display: flex; flex-direction: column; gap: .35rem; height: 100%; padding: .8rem .8rem 1rem; border-radius: 20px; background: #fff; box-shadow: var(--shadow); text-decoration: none; color: var(--fg); transition: transform .35s cubic-bezier(.2, .7, .2, 1), box-shadow .35s; }
.fm-themes a:hover { transform: translateY(-4px); box-shadow: 0 0 0 2px var(--signal), 0 18px 36px -20px rgba(15, 43, 54, .5); }
.fm-themes img { display: block; width: 100%; height: auto; aspect-ratio: 1; border-radius: 14px; }
.fm-th-n { font-size: .82rem; font-weight: 700; color: var(--signal-deep, #1d6176); }
.fm-th-t { font-weight: 700; line-height: 1.25; font-size: .98rem; }


.fm-tl { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; padding-top: 1.8rem; }
.fm-tl::before { content: ""; position: absolute; top: .55rem; left: 0; right: 0; height: 3px; border-radius: 3px; background: linear-gradient(90deg, #1d6176, #7fcfe3); }
.fm-tl li { position: relative; padding: 1.1rem 1.2rem 1.3rem; background: #fff; border-radius: 18px; box-shadow: var(--shadow); }
.fm-tl li::before { content: ""; position: absolute; top: -1.75rem; left: 1.2rem; width: 15px; height: 15px; border-radius: 50%; background: #fff; border: 4px solid #1d6176; box-sizing: border-box; }
.fm-tl li.is-now::before { border-color: #7fcfe3; background: #0f2b36; }
.fm-tl time { display: block; font-weight: 700; font-size: .88rem; color: var(--signal-deep, #1d6176); margin-bottom: .3rem; }
.fm-tl h4 { margin: 0 0 .35rem; font-size: 1.08rem; line-height: 1.3; }
.fm-tl p { margin: 0; font-size: .95rem; }
.fm-calipso { margin: 1.2rem 0 0; }


.fm-logos { display: grid; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); gap: .7rem; margin-bottom: 1rem; }
.fm-logos li { display: grid; place-items: center; height: 84px; padding: .6rem; border-radius: 14px; background: #fff; box-shadow: var(--shadow); }
.fm-logos img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }


.fm-miss { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.1rem; }
.fm-miss > li { display: flex; flex-direction: column; padding: 1.4rem 1.5rem 1.5rem; border-radius: 22px; background: rgba(255, 255, 255, .06); box-shadow: 0 0 0 1px rgba(255, 255, 255, .13); }
.fm-miss .fm-k { margin: 1rem 0 .3rem; font-size: .88rem; font-weight: 700; color: #7fcfe3; }
.fm-miss h3 { margin: 0 0 .5rem; font-size: 1.2rem; line-height: 1.25; letter-spacing: -.01em; }
.fm-miss > li > p { margin: 0 0 1rem; font-size: .97rem; }
.fm-tags { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: auto !important; }
.fm-tags li { padding: .25rem .7rem; border-radius: 999px; background: rgba(127, 207, 227, .14); color: #7fcfe3; font-size: .83rem; font-weight: 600; }
.fm-mlogo { align-self: flex-start; display: inline-grid; place-items: center; margin-top: 1rem; padding: 6px 12px; border-radius: 12px; background: #fff; }
.fm-mlogo img { display: block; height: 40px; width: auto; max-width: 140px; object-fit: contain; }
.fm-more { margin-top: 1rem; font-weight: 700; text-underline-offset: 4px; }

@media (max-width: 1000px) {
  .fm-schools, .fm-mod, .fm-miss { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fm-flow { grid-template-columns: 1fr; }
  .fm-flow li, .fm-flow li:first-child, .fm-flow li:last-child { border-radius: 0; border: 1px solid var(--line); border-top-width: 0; }
  .fm-flow li:first-child { border-top-width: 1px; border-radius: 20px 20px 0 0; } .fm-flow li:last-child { border-radius: 0 0 20px 20px; }
  .fm-chap { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fm-kpi { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
  .fm-schools, .fm-mod, .fm-miss, .fm-chap, .fm-tl { grid-template-columns: 1fr; }
  .fm-tl { padding-top: 0; } .fm-tl::before { top: 0; bottom: 0; left: .55rem; right: auto; width: 3px; height: auto; background: linear-gradient(#1d6176, #7fcfe3); } .fm-tl li { margin-left: 1.8rem; } .fm-tl li::before { top: 1.2rem; left: -1.8rem; }
  .fm-tbar { height: auto; min-height: 76px; } .fm-tbar span { font-size: .8rem; padding: .45rem .5rem; } .fm-tbar .t-c { padding-inline: .7rem; }
  .fm-kpi { grid-template-columns: 1fr 1fr; }
}

.cd-fm .cd-head h2 { max-width: 28ch; }
.fm-mat { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.fm-mod { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.fm-mod li { grid-column: span 2; } .fm-mod li:nth-child(n+4) { grid-column: span 3; }
.fm-mod h4 { min-height: 2.6em; }
.fm-miss { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.fm-miss > li { grid-column: span 2; } .fm-miss > li:nth-child(n+4) { grid-column: span 3; }
.fm-miss .fm-tags:empty { display: none; }
.fm-stat { display: flex; align-items: baseline; gap: .8rem; margin: 0 0 1rem; }
.fm-stat strong { font-family: var(--cd-display); font-stretch: 120%; font-weight: 800; font-size: 2.4rem; line-height: 1; letter-spacing: -.03em; color: #7fcfe3; }
.fm-stat span { font-size: .9rem; line-height: 1.35; color: var(--txt); }
.fm-tl { padding-top: 0; margin-top: 2.2rem; }
.fm-tl::before { top: -1.25rem; }
.fm-logos li { overflow: hidden; }
.fm-logos img { max-height: 62px; }
@media (max-width: 1000px) { .fm-mat { grid-template-columns: repeat(2, minmax(0, 1fr)); } .fm-mod, .fm-miss { grid-template-columns: repeat(2, minmax(0, 1fr)); } .fm-mod li, .fm-mod li:nth-child(n+4), .fm-miss > li, .fm-miss > li:nth-child(n+4) { grid-column: auto; } .fm-miss > li:last-child, .fm-mod li:last-child { grid-column: 1 / -1; } }
@media (max-width: 680px) { .fm-mat, .fm-mod, .fm-miss { grid-template-columns: 1fr; } .fm-mod h4 { min-height: 0; } .fm-tl { margin-top: 0; } .fm-tl::before { top: 0; } }
.cd-fm .fm-tl { margin-top: 3.4rem; padding-top: 0; }
.fm-stat strong { white-space: nowrap; }
@media (max-width: 680px) { .cd-fm .fm-tl { margin-top: 0; } }
@media (max-width: 1000px) and (min-width: 681px) { .fm-schools li:last-child, .fm-mat li:last-child { grid-column: 1 / -1; } }



.cd-case-links a, .cd-rcard .cd-case-links a, .proof a, .cd-more a:not(.btn):not(.btn-quiet) { display: inline-flex; align-items: center; min-height: 44px; }
.cd-case-links { display: flex; flex-wrap: wrap; column-gap: 1.2rem; row-gap: 0; }
.chip, button.chip, a.chip { min-height: 44px; display: inline-flex; align-items: center; }
input[type="checkbox"], input[type="radio"] { width: 24px; height: 24px; flex: none; accent-color: #1d6176; }

.cd-exp-k { color: #d6f2f9; }
.flow .tag { background: #1d6176; }
.fm-tbar .t-q { background: #94560a; }
.fm-tbar span { font-size: .85rem; }
.mock-bar span, .w-bar span { color: #4a5a62; }
.cd-hero-proof dd { font-size: .82rem; }

@media (max-width: 760px) {
  body:has(.mbar) { padding-bottom: calc(76px + env(safe-area-inset-bottom)); }
  html { scroll-padding-top: calc(var(--hdr, 76px) + 16px); }
}

@media (max-width: 560px) {
  .cd-wall { height: 170px; }
  .cd-hero-w { padding-top: .6rem; padding-bottom: 1.2rem; }
  .cd-hero h1 { font-size: clamp(2rem, 9vw, 2.5rem); margin-bottom: .9rem; }
  .cd-hero .lead { font-size: 1rem; margin-bottom: 1.1rem; }
  .cd-hero .actions { margin-bottom: 1.4rem; }
}
.form .check input, .pick-group .check input, .pick-row .check input { width:24px; height:24px; margin-top:.15rem; }
.cd-rcard h3 a { display:inline-block; padding:10px 0; margin:-10px 0; }
.crumbs a, .breadcrumb a, nav[aria-label="Fil d'Ariane"] a, .fm-more a { display:inline-block; padding:10px 0; margin:-10px 0; }
.form input[type="radio"], .form input[type="checkbox"], .form .check input[type="radio"], .form .check input[type="checkbox"] { width:24px; height:24px; min-width:24px; }
@media (max-width:760px) { .site-footer a, footer.site-footer a, footer a { display:inline-block; padding:12px 0; margin:-6px 0; } footer p a { display:inline; padding:0; margin:0; } }
.cd-more-real{text-align:center;padding-top:0;padding-bottom:2.2rem}


.tone-ink { --panel: #1d1a1a; } .tone-wine { --panel: #5a1f33; } .tone-sage { --panel: #4d6a58; }


.cd-bc { margin: 0 0 1.4rem; font-size: .92rem; }
.cd-bc ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .25rem .5rem; }
.cd-bc li + li::before { content: "/"; margin-right: .5rem; color: var(--mute); }
.cd-bc a { color: var(--signal-deep); text-underline-offset: 3px; }
.cd-bc [aria-current] { color: var(--mute); }


.cd-rhero-w { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
.cd-rhero h1 { font-size: clamp(2rem, 4.2vw, 3.5rem); max-width: 20ch; letter-spacing: -.04em; }
.cd-rcat { margin: 0 0 .6rem; font-weight: 700; color: var(--signal-deep); }
.cd-rhero .lead { max-width: 52ch; }
.cd-rhero .cd-tags { margin: 1.1rem 0 0; }
.cd-rhero-art { position: relative; padding: clamp(1.6rem, 3.5vw, 2.8rem) clamp(1.4rem, 3vw, 2.4rem) 0; border-radius: 28px; overflow: hidden; background: var(--panel, var(--signal-deep)); align-self: center; display: flex; align-items: flex-end; }
.cd-rhero-art .mock { width: 100%; }
@media (max-width: 900px) { .cd-rhero-w { grid-template-columns: 1fr; } }


.cd-rfacts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin: 1.4rem 0 0; }
.cd-rfacts > div { background: #fff; border-radius: 18px; padding: 1rem 1.2rem; box-shadow: var(--shadow); }
.cd-rfacts dt { font-size: .88rem; font-weight: 700; color: var(--mute); margin: 0 0 .25rem; }
.cd-rfacts dd { margin: 0; color: var(--fg); font-weight: 600; line-height: 1.35; overflow-wrap: anywhere; }
.cd-rfacts a { color: var(--signal-deep); }
@media (max-width: 900px) { .cd-rfacts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .cd-rfacts { grid-template-columns: 1fr; } }


.cd-rctx { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: clamp(2rem, 5vw, 4rem); align-items: start; }
.cd-rctx:not(:has(.cd-rctx-t)) { grid-template-columns: minmax(0, 1fr); }
.cd-rctx-t p { max-width: 62ch; }
.cd-rpages { background: #fff; border-radius: 22px; padding: 1.3rem 1.5rem; box-shadow: var(--shadow); }
.cd-rpages h3 { margin: 0 0 .6rem; font-size: 1.1rem; }
.cd-rpages ul { list-style: none; margin: 0 0 .8rem; padding: 0; }
.cd-rpages li { border-top: 1px solid var(--line); }
.cd-rpages li a { display: block; padding: .5rem 0; font-weight: 600; color: var(--signal-deep); text-underline-offset: 3px; }
.cd-rpages .small { margin: 0; }
@media (max-width: 900px) { .cd-rctx { grid-template-columns: 1fr; } }


.cd-rdid { list-style: none; margin: 1.4rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.cd-rdid li { background: #fff; border-radius: 20px; padding: 1.3rem 1.4rem; box-shadow: var(--shadow); }
.cd-rdid h3 { margin: 0 0 .45rem; font-size: 1.12rem; line-height: 1.25; }
.cd-rdid p { margin: 0; color: var(--txt); }


.cd-prose { max-width: 62rem; }
.cd-prose .tablewrap, .cd-prose .facts { max-width: none; }


.cd-rrel { list-style: none; margin: 1.4rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.2rem; }
.cd-rrel a { display: flex; flex-direction: column; gap: .2rem; height: 100%; text-decoration: none; color: var(--fg); background: #fff; border-radius: 22px; overflow: hidden; box-shadow: var(--shadow); transition: transform .3s cubic-bezier(.2, .7, .2, 1); }
.cd-rrel a:hover { transform: translateY(-4px); }
.cd-rrel a:focus-visible { outline: 3px solid var(--signal); outline-offset: 3px; }
.cd-rrel-img { display: block; background: var(--panel, var(--signal-deep)); padding: 22px 8% 0; margin-bottom: .6rem; }
.cd-rrel b { padding: 0 1.2rem; font-size: 1.1rem; }
.cd-rrel small { padding: 0 1.2rem 1.2rem; color: var(--mute); font-size: .92rem; line-height: 1.35; }
@media (max-width: 900px) { .cd-rrel { grid-template-columns: 1fr; } }


.cd-hubhero h1 { max-width: 22ch; }
.cd-rfilter { margin: 1.2rem 0 1.6rem; }
.cd-rgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.3rem; }
.cd-rcard { background: #fff; border-radius: 24px; overflow: hidden; box-shadow: var(--shadow); display: flex; flex-direction: column; }
.cd-rcard[hidden] { display: none; }
.cd-rcard-art { display: block; background: var(--panel, var(--signal-deep)); padding: 28px 8% 0; overflow: hidden; }
.cd-rcard-art .mock { transition: transform .5s cubic-bezier(.2, .7, .2, 1); }
.cd-rcard:hover .cd-rcard-art .mock { transform: translateY(-6px); }
.cd-rcard-txt { padding: 1.2rem 1.4rem 1.5rem; display: flex; flex-direction: column; gap: .4rem; flex: 1; }
.cd-rcard-cat { margin: 0; font-size: .88rem; font-weight: 700; color: var(--signal-deep); }
.cd-rcard h3 { margin: 0; font-size: 1.35rem; }
.cd-rcard h3 a { color: var(--fg); text-decoration: none; }
.cd-rcard h3 a:hover { text-decoration: underline; text-underline-offset: 4px; }
.cd-rcard .cd-case-sub { color: var(--txt); }
.cd-rcard-proof { margin: .2rem 0 0; padding: .5rem .8rem; background: var(--hero); border-radius: 12px; color: var(--signal-deep); }
.cd-rcard .cd-case-links { margin-top: auto; padding-top: .6rem; }
@media (max-width: 1100px) { .cd-rgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 680px) { .cd-rgrid { grid-template-columns: 1fr; } }
@media (max-width: 900px) { .cd-rdid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .cd-rdid { grid-template-columns: 1fr; } }
.cd-rrel-img .mock, .cd-rcard-art .mock { box-shadow: none; }
.cd-rctx:not(:has(.cd-rctx-t)) .cd-rpages { max-width: 36rem; }
.tone-indigo { --panel: #231a7a; } .tone-forest { --panel: #3b5a50; } .tone-steel { --panel: #5a6a73; } .tone-slate { --panel: #1f3447; } .tone-amber { --panel: #b57d1d; }
.tone-marine { --panel: #102a4c; }


.cd-zgrid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); margin: 1.2rem 0; }
.cd-zt { list-style: none; margin: 1rem 0 1.4rem; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr)); gap: 1rem; }
.cd-zt li { background: #fff; border-radius: 18px; box-shadow: var(--shadow); padding: 1.1rem 1.2rem 1rem; display: flex; flex-direction: column; gap: .3rem; border-top: 4px solid var(--signal); }
.cd-zt b { font-family: var(--cd-display); font-size: clamp(1.9rem, 4vw, 2.6rem); line-height: 1.05; color: var(--signal-deep); }
.cd-zt span { color: var(--fg); font-weight: 600; }
.cd-zt small { color: var(--mute); font-size: .85rem; margin-top: auto; padding-top: .4rem; }
.cd-zmap { margin: 1.4rem 0 0; background: #fff; border-radius: 22px; box-shadow: var(--shadow); padding: 1.1rem 1.2rem 1rem; max-width: 640px; }
.cd-zmap-svg { width: 100%; height: auto; display: block; }
.cd-zmap figcaption { font-size: .85rem; color: var(--mute); margin-top: .6rem; }
.cd-zsplit { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 2rem; align-items: center; }
.cd-zsplit img { width: 100%; max-width: 320px; height: auto; justify-self: center; border-radius: 28px; }
@media (max-width: 760px) { .cd-zsplit { grid-template-columns: 1fr; } .cd-zsplit img { max-width: 220px; } }
.cd-zsteps { padding-left: 1.3rem; display: grid; gap: .6rem; max-width: 70ch; }


.cd-yb-grid { display: grid; grid-template-columns: 1fr; gap: 1rem; margin-top: 1.25rem; }
.cd-yb-grid figure { margin: 0; border-radius: 10px; overflow: hidden; background: var(--tint, #eef5f7); }
.cd-yb-grid img { display: block; width: 100%; height: auto; object-fit: cover; }
.cd-yb-grid figcaption { padding: .6rem .9rem; font-size: .92rem; color: var(--txt, #35505b); }
@media (min-width: 760px) {
  .cd-yb-grid { grid-template-columns: 1fr 1.4fr; grid-template-rows: auto auto; }
  .cd-yb-grid .cd-yb-tall { grid-row: 1 / span 2; }
  .cd-yb-grid .cd-yb-tall { display: flex; flex-direction: column; }
  .cd-yb-grid .cd-yb-tall img { flex: 1 1 0; min-height: 0; height: 0; }
  .cd-yb-grid figure:not(.cd-yb-tall) img { aspect-ratio: 3 / 2; height: auto; }
}


pre.cd-code { background: var(--navy, #0f2b36); color: #e3f1f5; border-radius: 14px; padding: 1rem 1.2rem; overflow-x: auto; font-size: .92rem; line-height: 1.55; margin: 1rem 0 1.2rem; max-width: 100%; }
pre.cd-code code { background: none; color: inherit; padding: 0; white-space: pre; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.cd-zsteps code, .section p code, .section td code, .section th code { background: var(--tint, #eef5f7); color: var(--signal-deep, #1d6176); padding: .08em .35em; border-radius: 5px; font-size: .92em; }


.cd-zv-hero { min-height: min(70vh, 620px); }
.cd-zv-hero h1 { max-width: 22ch; font-size: clamp(1.9rem, 3.8vw, 3.3rem); line-height: 1.06; }
.cd-zv-hero .cd-hero-t { max-width: min(680px, 54%); }
@media (max-width: 900px) { .cd-zv-hero .cd-hero-t { max-width: none; } .cd-zv-hero h1 { max-width: none; } }
.cd-zv-facts { background: var(--tint, #eef5f7); }
.cd-zv-facts .cd-head h2, .cd-zv-exp .cd-head h2 { font-size: clamp(1.7rem, 3.4vw, 2.6rem); max-width: 26ch; }
.cd-zv-kpi { list-style: none; margin: 0 0 1.6rem; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr)); }
.cd-zv-kpi li { background: var(--navy, #0f2b36); color: #fff; border-radius: 22px; padding: 1.3rem 1.3rem 1.1rem; display: flex; flex-direction: column; gap: .35rem; position: relative; overflow: hidden; }
.cd-zv-kpi li::after { content: ""; position: absolute; right: -36px; top: -36px; width: 120px; height: 120px; border-radius: 50%; background: radial-gradient(circle, rgba(127, 207, 227, .28), transparent 70%); }
.cd-zv-kpi b { font-family: var(--cd-display); font-weight: 800; font-size: clamp(2rem, 4.2vw, 2.9rem); line-height: 1.04; color: var(--signal-hi, #7fcfe3); letter-spacing: -.03em; }
.cd-zv-kpi span { color: #fff; font-weight: 600; line-height: 1.3; }
.cd-zv-kpi small { color: rgba(255, 255, 255, .72); font-size: .84rem; margin-top: auto; padding-top: .5rem; }
.cd-zv-cols { display: grid; gap: 1.6rem 2.4rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cd-zv-cols p { max-width: 62ch; }
@media (max-width: 800px) { .cd-zv-cols { grid-template-columns: 1fr; } }
.cd-zv-table th[scope="row"] { font-weight: 700; color: var(--signal-deep, #1d6176); white-space: nowrap; }
.cd-zv-table td { min-width: 14rem; }
.cd-zv-near h3 { font-size: 1.05rem; margin: 1.3rem 0 .6rem; letter-spacing: -.01em; }
.cd-zv-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.cd-zv-chips a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 1.05rem; border-radius: 999px; background: var(--tint, #eef5f7); color: var(--signal-deep, #1d6176); font-weight: 700; text-decoration: none; border: 1px solid rgba(29, 97, 118, .18); transition: background .2s, color .2s; }
.cd-zv-chips a:hover, .cd-zv-chips a:focus-visible { background: var(--navy, #0f2b36); color: #fff; }
.cd-zv-more { margin: 1.2rem 0 .4rem; }
.cd-zv-more summary { cursor: pointer; font-weight: 700; color: var(--signal-deep, #1d6176); min-height: 44px; display: flex; align-items: center; }
.cd-zv-local { background: #fff; }
.cd-zv-local .cd-head h2 { font-size: clamp(1.7rem, 3.4vw, 2.6rem); max-width: 26ch; }
.cd-zv-anchors { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
.cd-zv-anchors li { background: var(--tint, #eef5f7); border-radius: 22px; padding: 1.4rem 1.4rem 1.2rem; border-top: 5px solid var(--signal, #318ba2); display: flex; flex-direction: column; gap: .6rem; }
.cd-zv-anchors h3 { margin: 0; font-size: 1.3rem; letter-spacing: -.02em; }
.cd-zv-anchors p { margin: 0; max-width: none; }
.cd-zv-tag { font-weight: 700; color: var(--signal-deep, #1d6176); font-size: .95rem; }
.cd-zv-do { padding-top: .6rem; border-top: 1px solid rgba(29, 97, 118, .2); }
.cd-zv-src { margin-top: auto !important; }
.cd-zv-src a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 700; }
.cd-zh-three { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); }
.cd-zh-three li { background: #fff; border-radius: 22px; padding: 1.3rem; border-top: 5px solid var(--signal, #318ba2); }
.cd-zh-three h3 { margin: 0 0 .5rem; font-size: 1.3rem; }
.cd-zh-three p { margin: 0; max-width: none; }
.cd-zh-zones h3 { margin-top: 2.2rem; }
.cd-zh-zones .cd-zv-table th[scope="row"] a { font-weight: 700; }
.cd-zh-widelist { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; gap: .8rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); }
.cd-zh-widelist li { background: var(--tint, #eef5f7); border-radius: 18px; padding: 1rem 1.2rem; display: flex; flex-direction: column; gap: .3rem; }
.cd-zh-widelist a { font-weight: 700; min-height: 44px; display: inline-flex; align-items: center; }
.cd-zh-widelist span { font-size: .95rem; }
.cd-zh-band { background: var(--tint, #eef5f7); padding: clamp(2rem, 4vw, 3.2rem) 0; border-top: 1px solid rgba(29, 97, 118, .15); }
.cd-zh-head h2 { margin: 0 0 .4rem; font-size: clamp(1.4rem, 2.6vw, 1.9rem); }
.cd-zh-head p { margin: 0 0 1.2rem; max-width: 62ch; }
.cd-zh-cols { display: grid; gap: 1.2rem 2rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); }
.cd-zh-cols h3 { font-size: 1rem; margin: 0 0 .5rem; }
.cd-zh-all { margin: 1.4rem 0 0; display: flex; flex-wrap: wrap; gap: .4rem 1.4rem; }
.cd-zh-all a { font-weight: 700; display: inline-flex; align-items: center; min-height: 44px; }
.cd-zv-logo { display: block; width: auto; height: 64px; max-width: 140px; object-fit: contain; background: #fff; border-radius: 12px; padding: 4px; }

