/* ─── Pardits shared design system ─── */
:root{
  --bg: oklch(0.971 0.007 330);
  --bg-warm: oklch(0.945 0.014 332);
  --bg-deep: oklch(0.215 0.045 330);
  --ink: oklch(0.185 0.030 330);
  --ink-2: oklch(0.385 0.024 332);
  --ink-3: oklch(0.560 0.020 332);
  --line: oklch(0.885 0.013 330);
  --line-2: oklch(0.805 0.018 330);
  --accent: oklch(0.520 0.190 352);
  --accent-bright: oklch(0.62 0.205 350);
  --accent-soft: oklch(0.930 0.050 350);
  --accent-ink: oklch(0.420 0.175 352);
  --gold: oklch(0.745 0.110 85);
  --ok: oklch(0.585 0.110 162);
  --radius: 14px;
  --focus: oklch(0.55 0.18 285);
}
html[data-theme="dark"]{
  --bg: oklch(0.165 0.028 330);
  --bg-warm: oklch(0.225 0.034 330);
  --bg-deep: oklch(0.115 0.022 330);
  --ink: oklch(0.955 0.010 330);
  --ink-2: oklch(0.780 0.013 330);
  --ink-3: oklch(0.580 0.016 330);
  --line: oklch(0.305 0.024 330);
  --line-2: oklch(0.385 0.028 330);
  --accent: oklch(0.640 0.205 350);
  --accent-soft: oklch(0.320 0.105 350);
  --accent-ink: oklch(0.800 0.160 352);
  --focus: oklch(0.72 0.18 285);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
html{scroll-behavior: smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior: auto;}
  *, *::before, *::after{animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important;}
}
body{
  font-family: 'Manrope', system-ui, sans-serif;
  background: var(--bg);
  color: var(--ink);
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-weight: 400;
}

/* ─── Regular weight everywhere ───
   No visual bold across the site: <strong>/<b> stay semantic but render at
   regular weight, and headings, the wordmark and nav resolve to 400. */
b, strong{font-weight: 400;}
h1, h2, h3, h4, h5, h6,
.logo, .logo span, .nav-links a, .page-title, .section-title, .sub-title{font-weight: 400;}

/* Focus styles for keyboard navigation */
*:focus{outline: none;}
*:focus-visible{
  outline: 2px solid var(--focus);
  outline-offset: 2px;
  border-radius: 4px;
}
.btn:focus-visible{outline-offset: 3px;}

/* Skip-to-content link */
.skip-link{
  position: absolute; left: -9999px; top: 0;
  background: var(--ink); color: var(--bg);
  padding: 10px 16px; border-radius: 0 0 8px 0;
  font-family:'JetBrains Mono', monospace; font-size: 13px;
  z-index: 100;
}
.skip-link:focus{left: 0; outline: 2px solid var(--focus); outline-offset: 0;}
.serif{font-family:'Instrument Serif', Georgia, serif; font-weight:400; letter-spacing: -0.01em;}
.mono{font-family:'JetBrains Mono', ui-monospace, monospace;}
.container{max-width: 1240px; margin:0 auto; padding: 0 28px;}
.container-narrow{max-width: 960px; margin: 0 auto; padding: 0 28px;}
.container-text{max-width: 760px; margin: 0 auto; padding: 0 28px;}
a{color:inherit;}
button{font-family:inherit;}

/* bandeau tricolore français — fin liseré bleu/blanc/rouge épinglé en haut */
.flag-bar{
  position: sticky; top:0; z-index: 60; /* au-dessus du header collant (.nav, z-index 50) */
  height:3px; width:100%;
  background:linear-gradient(
    to right,
    #000091 0%,      #000091 33.333%,
    #ffffff 33.333%, #ffffff 66.666%,
    #e1000f 66.666%, #e1000f 100%
  );
}

/* nav */
.nav{
  position: sticky; top:3px; z-index: 50; /* juste sous le bandeau tricolore (.flag-bar, 3px) */
  background: color-mix(in oklab, var(--bg) 88%, transparent);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid color-mix(in oklab, var(--line) 70%, transparent);
}
.nav-inner{display:flex; align-items:center; justify-content:space-between; height: 68px; gap: 12px;}
.logo{display:flex; align-items:center; gap:10px; font-family:'Instrument Serif',serif; font-size: 26px; letter-spacing:-0.01em; text-decoration:none; color: var(--ink); flex-shrink: 0;}
/* Brand monogram — the bordeaux speech-bubble mark from the brand kit
   (assets/brand/). Swaps to the dark-theme variant automatically. */
.logo-mark{
  width:32px; height:32px;
  background: url("brand/logo-mark-light.svg?v=1.0-20260623") center / contain no-repeat;
}
html[data-theme="dark"] .logo-mark{
  background-image: url("brand/logo-mark-dark.svg?v=1.0-20260623");
}
.nav-links{display:flex; gap:28px; font-size: 14px; color: var(--ink-2);}
.nav-links a{text-decoration:none; padding: 6px 0; position:relative;}
.nav-links a:hover, .nav-links a.is-active{color: var(--ink);}
.nav-cta{display:flex; gap:10px; align-items:center;}

/* Mobile nav toggle */
.nav-toggle{
  display: none;
  width: 40px; height: 40px;
  background: transparent; border: 1px solid var(--line-2);
  border-radius: 10px; cursor: pointer;
  align-items: center; justify-content: center; gap: 4px;
  flex-direction: column; padding: 10px;
}
.nav-toggle span{
  display: block; width: 18px; height: 1.5px; background: var(--ink);
  transition: transform .25s ease, opacity .2s ease;
}
.nav-toggle[aria-expanded="true"] span:nth-child(1){ transform: translateY(5.5px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity: 0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3){ transform: translateY(-5.5px) rotate(-45deg); }

.btn{
  display:inline-flex; align-items:center; gap:8px;
  padding: 12px 18px; border-radius: 999px; border:1px solid transparent;
  font-weight: 400; font-size: 14px; cursor: pointer; text-decoration:none;
  transition: transform .15s ease, background .2s ease, border-color .2s ease, color .2s ease;
  letter-spacing: -0.005em;
}
.btn-primary{background: var(--ink); color: var(--bg);}
.btn-primary:hover{background: var(--accent); transform: translateY(-1px);}
.btn-ghost{color: var(--ink); border-color: var(--line-2); background: transparent;}
.btn-ghost:hover{border-color: var(--ink);}
.btn-accent{background: var(--accent); color: #fff;}
.btn-accent:hover{background: var(--accent-ink);}
.btn-lg{padding: 16px 26px; font-size: 15px;}
.btn-sm{padding: 8px 14px; font-size: 13px;}

/* shared section primitives */
section{padding: 88px 0;}
.section-eyebrow{font-family:'JetBrains Mono',monospace; font-size: 11px; letter-spacing:0.16em; text-transform:uppercase; color: var(--accent); margin-bottom: 18px; display:block;}
h1.page-title{font-family:'Instrument Serif',serif; font-weight:400; font-size: clamp(48px, 6vw, 88px); line-height: 1; letter-spacing:-0.025em; margin: 18px 0 24px;}
h1.page-title em{font-style: italic; color: var(--accent);}
h2.section-title{font-family:'Instrument Serif',serif; font-weight:400; font-size: clamp(34px, 4vw, 54px); line-height:1.02; letter-spacing:-0.022em; margin: 0 0 22px;}
h2.section-title em{font-style: italic; color: var(--accent);}
h3.sub-title{font-family:'Instrument Serif', serif; font-weight: 400; font-size: 30px; line-height: 1.08; letter-spacing: -0.015em; margin: 0 0 14px;}
.section-lede{font-size: 18px; color: var(--ink-2); max-width: 640px; line-height: 1.55;}
.lede{font-size: 17px; color: var(--ink-2); line-height: 1.6;}

.eyebrow-pill{
  display:inline-flex; align-items:center; gap:8px;
  font-family:'JetBrains Mono',monospace; font-size: 11px; letter-spacing:0.12em;
  text-transform: uppercase; color: var(--accent-ink);
  padding: 6px 12px; border-radius: 999px;
  background: var(--accent-soft);
  border: 1px solid color-mix(in oklab, var(--accent) 18%, transparent);
}

/* Hero header pattern reused on inner pages */
.page-hero{padding: 80px 0 56px; border-bottom: 1px solid var(--line);}
.page-hero p.lede{max-width: 620px; margin-top: 12px;}

/* Cards */
.card-base{background:#fff; border:1px solid var(--line); border-radius: 16px; padding: 28px;}

/* Long-form text styling for legal pages */
.longform h2{font-family:'Instrument Serif',serif; font-weight:400; font-size: 30px; line-height: 1.1; letter-spacing:-0.015em; margin: 56px 0 14px;}
.longform h3{font-family:'Manrope', sans-serif; font-weight: 400; font-size: 17px; margin: 32px 0 10px; letter-spacing:-0.005em;}
.longform p{color: var(--ink-2); font-size: 15.5px; line-height: 1.7; margin: 0 0 14px;}
.longform ul{color: var(--ink-2); font-size: 15.5px; line-height: 1.7; padding-left: 22px;}
.longform li{margin: 6px 0;}
.longform .meta{font-family:'JetBrains Mono',monospace; font-size: 11px; letter-spacing: 0.1em; text-transform:uppercase; color: var(--ink-3); margin-bottom: 6px;}
.longform .updated{font-family:'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 0.1em; color: var(--ink-3); padding: 8px 14px; border:1px solid var(--line); border-radius:999px; display:inline-block;}
.longform table{width:100%; border-collapse: collapse; margin: 14px 0; font-size: 14px;}
.longform th, .longform td{padding: 10px 14px; text-align:left; border-bottom: 1px solid var(--line);}
.longform th{background: var(--bg-warm); font-weight: 400; font-family:'JetBrains Mono',monospace; font-size: 11px; letter-spacing: 0.1em; text-transform:uppercase; color: var(--ink-2);}

/* Footer */
footer{padding: 60px 0 40px; border-top: 1px solid var(--line); background: var(--bg-warm);}
.foot-grid{display:grid; grid-template-columns: 2fr 1fr 1fr 1fr 1fr; gap: 36px;}
.foot-grid h6{font-family:'JetBrains Mono',monospace; font-size: 11px; letter-spacing: 0.12em; text-transform:uppercase; color: var(--ink-3); margin: 0 0 14px; font-weight: 400;}
.foot-grid a{display:block; color: var(--ink-2); text-decoration:none; font-size: 14px; padding: 4px 0;}
.foot-grid a:hover{color: var(--accent);}
.foot-bottom{margin-top: 56px; padding-top: 24px; border-top: 1px solid var(--line); display:flex; justify-content:space-between; font-size: 12px; color: var(--ink-3); font-family:'JetBrains Mono',monospace; flex-wrap: wrap; gap: 12px;}

.divider{height:1px; background: var(--line); width:100%;}

/* Forms */
.form-row{display:flex; flex-direction:column; margin-bottom: 16px;}
.form-row label{font-family:'JetBrains Mono', monospace; font-size: 10.5px; letter-spacing: 0.12em; text-transform:uppercase; color: var(--ink-2); margin-bottom: 8px;}
.form-row input, .form-row textarea, .form-row select{
  border:1px solid var(--line); background:#fff; padding: 14px 16px; border-radius: 12px;
  font-family: inherit; font-size: 15px; color: var(--ink); outline:none;
  transition: border-color .2s ease;
}
.form-row input:focus, .form-row textarea:focus, .form-row select:focus{border-color: var(--ink);}
.form-row textarea{min-height: 120px; resize: vertical;}

.responsive-2col{display:grid; grid-template-columns: 1fr 1fr; gap: 24px;}
.responsive-3col{display:grid; grid-template-columns: repeat(3, 1fr); gap: 24px;}

@media (max-width: 960px){
  .foot-grid, .responsive-2col, .responsive-3col{grid-template-columns: 1fr;}
  .nav-toggle{display: inline-flex;}
  .nav-links{
    display: none;
    position: absolute; top: 68px; left: 0; right: 0;
    background: var(--bg);
    border-bottom: 1px solid var(--line);
    flex-direction: column; padding: 24px 28px; gap: 18px;
    box-shadow: 0 30px 60px -40px oklch(0.17 0.04 330 / 0.3);
  }
  .nav.open .nav-links{display: flex;}
  .nav-cta .btn-sm{padding: 8px 12px; font-size: 12px;}
  .nav-cta a[href*="connecter"]{display: none;}
  section{padding: 64px 0;}
  .container, .container-narrow, .container-text{padding: 0 20px;}
  h1.page-title{font-size: clamp(40px, 9vw, 64px);}
  h2.section-title{font-size: clamp(30px, 6.5vw, 44px);}
}
@media (max-width: 560px){
  body{font-size: 15px;}
  .btn-lg{padding: 14px 22px; font-size: 14px;}
  .foot-bottom{flex-direction: column; align-items: flex-start; gap: 8px;}
  .longform h2{font-size: 24px;}
}

/* ─── Sticky mobile CTA ─── */
.mobile-cta{
  display: none;
  position: fixed; bottom: 0; left: 0; right: 0;
  background: var(--bg);
  border-top: 1px solid var(--line);
  padding: 12px 16px env(safe-area-inset-bottom, 12px);
  z-index: 70;
  box-shadow: 0 -20px 40px -20px oklch(0.17 0.04 330 / 0.15);
}
.mobile-cta .btn{width: 100%; justify-content: center;}
@media(max-width:760px){
  .mobile-cta{display: block;}
  body{padding-bottom: 64px;}
}

/* ─── Dark mode toggle ─── */
.theme-toggle{
  position: fixed; bottom: 16px; right: 16px;
  width: 40px; height: 40px; border-radius: 50%;
  background: var(--bg); border: 1px solid var(--line-2);
  color: var(--ink); cursor: pointer; z-index: 60;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 10px 30px -10px oklch(0.17 0.04 330 / 0.3);
  font-size: 16px; transition: transform .2s ease;
}
.theme-toggle:hover{transform: scale(1.08);}
@media(max-width:760px){.theme-toggle{bottom: 76px;}}

/* ─── TOC (legal pages) ─── */
.toc{
  position: sticky; top: 96px;
  background: #fff; border: 1px solid var(--line); border-radius: 14px;
  padding: 22px;
  max-height: calc(100vh - 120px); overflow-y: auto;
}
html[data-theme="dark"] .toc{background: var(--bg-warm);}
.toc h6{margin: 0 0 14px; font-family:'JetBrains Mono',monospace; font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-3);}
.toc ol{list-style: none; padding: 0; margin: 0; counter-reset: tocn;}
.toc li{counter-increment: tocn; padding: 6px 0; font-size: 13.5px; line-height: 1.4;}
.toc li::before{content: counter(tocn, decimal-leading-zero); font-family:'JetBrains Mono', monospace; font-size: 10px; color: var(--ink-3); margin-right: 10px;}
.toc a{color: var(--ink-2); text-decoration: none; transition: color .15s ease;}
.toc a:hover, .toc a.active{color: var(--accent);}

.longform-wrap{display: grid; grid-template-columns: 220px 1fr; gap: 56px; align-items: start;}
@media(max-width: 960px){
  .longform-wrap{grid-template-columns: 1fr;}
  .toc{position: relative; top: 0; max-height: none;}
}

/* ─── Print stylesheet ─── */
@media print{
  .nav, footer, .mobile-cta, .theme-toggle, .toc, .ticker-bar, .pact-strip{display: none !important;}
  body{background: #fff !important; color: #000 !important;}
  .page-hero{padding: 20px 0 0;}
  h1, h2, h3, h4, h5, h6{page-break-after: avoid; color: #000 !important;}
  .longform h2{margin: 32px 0 10px;}
  .longform p, .longform li{font-size: 11.5pt; color: #222 !important;}
  a{color: #000 !important; text-decoration: underline;}
  .longform table{page-break-inside: avoid;}
  section{padding: 16px 0 !important;}
  .container, .container-text{max-width: 100% !important; padding: 0 20mm !important;}
}

/* ─── DOMSELARDI lockup (édité par DOMSELARDI) ─────────────────────────── */
.domselardi-lockup{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:inherit;line-height:1}
.domselardi-lockup__link{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:inherit}
.domselardi-lockup__monogram,.domselardi-lockup__wordmark{display:block;flex-shrink:0;height:auto}
.domselardi-lockup__monogram{border-radius:4px}
.domselardi-lockup--inline{align-items:center}
.domselardi-lockup--mini .domselardi-lockup__name{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:var(--ink-2)}
.domselardi-lockup--footer{display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.domselardi-lockup--footer .domselardi-lockup__slogan{font-size:11px;color:var(--ink-3);line-height:1.5;max-width:340px}
.domselardi-lockup--footer .domselardi-lockup__slogan em{font-style:italic;color:var(--ink-2);font-weight: 400}
.domselardi-lockup--card{display:block;padding:20px;background:var(--bg-warm,#faf7f7);border:1px solid var(--line,#e5e7eb);border-radius:14px;max-width:520px}
.domselardi-lockup--card .domselardi-lockup__link{align-items:flex-start;gap:18px}
.domselardi-lockup--card .domselardi-lockup__body{display:flex;flex-direction:column;gap:6px}
.domselardi-lockup--card .domselardi-lockup__kicker{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--ink-3)}
.domselardi-lockup--card .domselardi-lockup__tagline{font-family:'Instrument Serif',serif;font-style:italic;font-size:15px;color:var(--accent,#7a1f43)}
.domselardi-lockup--card .domselardi-lockup__slogan{font-size:13px;color:var(--ink-2);line-height:1.5}
.domselardi-lockup--card .domselardi-lockup__eyebrow{font-size:11px;color:var(--ink-3);margin-top:4px}
.domselardi-lockup__link:focus-visible{outline:2px solid var(--accent,#7a1f43);outline-offset:3px;border-radius:6px}

/* ─── Responsive safety net (mobile + tablet hardening) ────────────────── */

/* Never let an image or media element overflow its parent. */
img, video, svg:not([width]), iframe, picture, source{max-width:100%; height:auto;}
img[width][height]{height:auto;}

/* Prevent any stray child (decorative ::before/::after, absolutely-positioned
   art, oversized tables) from causing horizontal scroll on the whole page. */
html, body{overflow-x:clip; min-width:0;}

/* Make sure word-breaks never blow out narrow containers. */
h1, h2, h3, h4, h5, h6, p, li, td, th, .lede, .section-lede{overflow-wrap:break-word; word-wrap:break-word;}
a, code{word-break:break-word;}

/* Touch targets: minimum 44×44 px on small viewports per WCAG. */
@media (max-width: 760px){
  .btn-sm{min-height:44px; padding:10px 16px;}
  .nav-toggle{width:44px; height:44px;}
  .nav-links a{padding:10px 0;}
  .form-row input, .form-row textarea, .form-row select{font-size:16px;} /* prevents iOS zoom-on-focus */
}

/* Wide tables — let them scroll horizontally on narrow viewports
   instead of compressing or clipping content. */
.table-scroll{overflow-x:auto; -webkit-overflow-scrolling:touch;}
.table-scroll > table{min-width:560px;}
@media (max-width: 760px){
  .compare-wrap{overflow-x:auto !important; -webkit-overflow-scrolling:touch;}
  .compare-table{min-width:640px;}
  .comp-table{display:block; overflow-x:auto; -webkit-overflow-scrolling:touch; max-width:100%;}
}

/* Pact grid (home) — was missing from the 960px collapse list. */
@media (max-width: 960px){
  .pact-grid{grid-template-columns:1fr !important; gap:40px !important;}
  .pact h2{font-size:clamp(34px, 6vw, 48px) !important;}
}

/* Hero product visual — keep it tall on desktop, compact on small phones. */
@media (max-width: 560px){
  .hero-vis{height:auto !important;}
  .hero-frame{height:auto !important; max-width:100% !important;}
  .hero-frame .stage{min-height:380px;}
  .hero-tabs{flex-wrap:wrap; gap:4px;}
  .hero-tabs button{flex:1 1 calc(33% - 4px); font-size:11px; padding:8px 4px;}
}

/* Footer: 2-column intermediate on tablets, 1-column on phones. */
@media (max-width: 960px) and (min-width: 641px){
  .foot-grid{grid-template-columns:2fr 1fr 1fr !important; gap:28px !important;}
}
@media (max-width: 640px){
  .foot-grid{grid-template-columns:1fr !important; gap:32px !important;}
  .foot-bottom{flex-direction:column; align-items:flex-start; gap:6px; font-size:11px;}
}

/* DOMSELARDI lockup — ensure the wordmark scales within narrow footer columns. */
@media (max-width: 560px){
  .domselardi-lockup__wordmark{max-width:60vw;}
  .domselardi-lockup--card{padding:18px;}
  .domselardi-lockup--card .domselardi-lockup__link{flex-direction:column; gap:14px; align-items:flex-start;}
}

/* CTA hero strips with multiple buttons: never split a label awkwardly. */
.hero-cta, .ctas{flex-wrap:wrap;}
@media (max-width: 480px){
  .hero-cta .btn, .ctas .btn{width:100%; justify-content:center;}
}

/* Sticky-CTA spacing safety: keep last section visible above sticky bar. */
@media (max-width: 760px){
  main{padding-bottom:24px;}
  .final-cta{padding-bottom:48px;}
}

/* Audience segment (contact form) on phone — keep three pills readable. */
@media (max-width: 380px){
  .seg{grid-template-columns:1fr !important;}
}

/* ─── Waitlist modal ───────────────────────────────────────────────────── */
.waitlist-modal{position:fixed; inset:0; z-index:200; display:flex; align-items:center; justify-content:center; padding:24px;}
.waitlist-modal[hidden]{display:none;}
.waitlist-modal__overlay{position:absolute; inset:0; background:color-mix(in oklab, var(--ink) 75%, transparent); backdrop-filter:blur(8px); cursor:pointer;}
.waitlist-modal__dialog{position:relative; background:var(--bg); border:1px solid var(--line); border-radius:18px; width:min(560px, 100%); max-height:calc(100vh - 48px); overflow:auto; padding:36px 32px; box-shadow:0 40px 80px -20px oklch(0.17 0.04 330 / 0.4); animation:waitlist-pop .25s ease-out;}
@keyframes waitlist-pop{from{transform:translateY(12px) scale(.98); opacity:0;} to{transform:none; opacity:1;}}
.waitlist-modal__close{position:absolute; top:14px; right:14px; width:36px; height:36px; border-radius:50%; border:1px solid var(--line); background:var(--bg); color:var(--ink-2); cursor:pointer; font-size:20px; line-height:1; display:flex; align-items:center; justify-content:center; transition:border-color .15s ease;}
.waitlist-modal__close:hover{border-color:var(--ink);}
.waitlist-modal__kicker{font-family:'JetBrains Mono',ui-monospace,monospace; font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--accent); display:block; margin-bottom:8px;}
.waitlist-modal__dialog h2{font-family:'Instrument Serif',serif; font-weight:400; font-size:32px; line-height:1.1; letter-spacing:-0.02em; margin:0 0 10px;}
.waitlist-modal__dialog p{color:var(--ink-2); font-size:15px; line-height:1.55; margin:0 0 22px;}
.waitlist-form .form-row{margin-bottom:14px;}
.waitlist-form .form-row__label-text{font-family:'JetBrains Mono',monospace; font-size:10.5px; letter-spacing:0.12em; text-transform:uppercase; color:var(--ink-2); margin-bottom:8px; display:block;}
.waitlist-form .seg{display:grid; grid-template-columns:repeat(3,1fr); gap:6px; padding:4px; background:var(--bg-warm); border-radius:12px;}
.waitlist-form .seg button{padding:10px 6px; border:none; background:transparent; cursor:pointer; border-radius:8px; font-family:inherit; font-size:13px; color:var(--ink-2); font-weight: 400;}
.waitlist-form .seg button.on{background:var(--ink); color:var(--bg);}
.waitlist-form .consent-row{display:flex; gap:10px; align-items:flex-start; font-size:13px; color:var(--ink-2); line-height:1.5;}
.waitlist-form .consent-row input[type="checkbox"]{margin-top:3px; width:16px; height:16px; flex-shrink:0;}
.waitlist-form .consent-row a{color:var(--accent); text-decoration:underline; text-underline-offset:2px;}
.waitlist-form__note{font-size:11px; color:var(--ink-3); text-align:center; margin:14px 0 0;}
.waitlist-form__note code{font-family:'JetBrains Mono',monospace; font-size:11px;}
.waitlist-form .form-feedback{font-size:13px; line-height:1.5; margin:14px 0 0; text-align:center; min-height:1em;}
.waitlist-form .form-feedback.is-success{color:var(--ok);}
.waitlist-form .form-feedback.is-error{color:var(--accent);}
.contact .form-feedback{font-size:13px; line-height:1.5; margin:14px 0 0; min-height:1em;}
.contact .form-feedback.is-success{color:var(--ok);}
.contact .form-feedback.is-error{color:var(--accent);}
.consent-row{display:flex; gap:10px; align-items:flex-start; font-size:13px; color:var(--ink-2); line-height:1.5;}
.consent-row input[type="checkbox"]{margin-top:3px; width:16px; height:16px; flex-shrink:0;}
.consent-row a{color:var(--accent); text-decoration:underline; text-underline-offset:2px;}
body.has-modal-open{overflow:hidden;}
@media (max-width:560px){
  .waitlist-modal{padding:12px;}
  .waitlist-modal__dialog{padding:28px 22px; border-radius:14px;}
  .waitlist-modal__dialog h2{font-size:26px;}
  .waitlist-form .seg{grid-template-columns:1fr;}
}

/* ─── DOMSELARDI provenance / lockup hardening ─────────────────────────────
   These attribution blocks sit in flex rows and narrow footer/legal columns.
   Without this they get crushed below their content width: the "Édité par"
   label wraps to one letter per line and the gold wordmark clips. Keep each
   block whole — it wraps to its own line instead of collapsing. */
.ds-provenance{align-items:center;}
.ds-provenance > a{flex:0 0 auto; min-width:max-content;}
.ds-provenance > a > span{white-space:nowrap;}
.ds-provenance > a > img{flex:0 0 auto; max-width:none;}
.domselardi-lockup__wordmark{max-width:100%;}
.domselardi-lockup--footer .domselardi-lockup__link,
.domselardi-lockup--card .domselardi-lockup__link{flex-wrap:wrap; min-width:0;}
.domselardi-lockup--card .domselardi-lockup__body{flex:1 1 200px; min-width:0;}
.domselardi-lockup__kicker{white-space:nowrap;}
@media (max-width:520px){
  .ds-provenance > a{margin-left:0 !important;}
}
