/* Rappli — pages « Solutions personnalisées » et « Rappli Partenaires ».
   Reprise 2026-09-19 : composants et proportions de la page d'accueil (options à filet supérieur,
   numéros bleus, colonnes sans cartes), correction du modèle de boîte et du sprite d'icônes. */

/* ------------------------------------------------------------------ Base */
*,*::before,*::after{box-sizing:border-box}
body[data-rappli-public]{margin:0;background:var(--rappli-white);color:var(--rappli-ink);font-family:var(--rappli-font);font-size:17px;line-height:1.6;padding-inline:env(safe-area-inset-left) env(safe-area-inset-right);-webkit-font-smoothing:antialiased}
.icon-definitions{position:absolute;width:0;height:0;overflow:hidden}
.sol-page{caret-color:var(--rappli-blue)}
.sol-page [hidden]{display:none!important}
.sol-page ::selection{background:var(--rappli-surface);color:var(--rappli-navy)}
.sol-page p a,.sol-page dd a,.sol-page summary a,.sol-page figcaption a{color:var(--rappli-blue);text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.sol-page p a:hover,.sol-page dd a:hover,.sol-page summary a:hover,.sol-page figcaption a:hover{color:var(--rappli-navy)}
.sol-page :is(a,summary,input,select,textarea,button):focus-visible{outline:3px solid var(--rappli-blue);outline-offset:3px;border-radius:6px}
.sol-page img{max-width:100%;height:auto}
[data-rappli-public] :is(h1,h2,h3,h4){text-wrap:balance}

/* ------------------------------------------------------------- Structure */
.sol-wrap{width:min(1200px,calc(100% - 80px));margin-inline:auto}
.sol-section{padding:96px 0;border-top:1px solid var(--rappli-line)}
.sol-section--soft{background:var(--rappli-surface)}
.sol-section--tight{padding:64px 0}
.sol-heading{max-width:760px;margin-bottom:44px}
.sol-heading--center{margin-inline:auto;text-align:center}
.sol-heading--center>p{margin-inline:auto}
.sol-heading h2{margin:0;color:var(--rappli-navy);font-size:clamp(30px,3.2vw,40px);font-weight:800;line-height:1.14;letter-spacing:-.022em;text-wrap:balance}
.sol-heading p:not(.sol-eyebrow){max-width:640px;margin:18px 0 0;color:var(--rappli-muted);font-size:18px;line-height:1.6}
.sol-lead{color:var(--rappli-muted);font-size:18px;line-height:1.7}

/* --------------------------------------------------------------- Boutons */
.sol-actions{display:flex;align-items:center;flex-wrap:wrap;gap:14px 26px;margin-top:30px}
.sol-page .text-link{display:inline-flex;align-items:center;gap:9px;min-height:44px;max-width:100%;color:var(--rappli-navy);font-size:16px;font-weight:700;line-height:1.4;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.sol-page .text-link:hover{color:var(--rappli-navy);text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1.5px}
.sol-page .text-link .sol-icon{transition:transform 160ms var(--rappli-ease)}
@media(hover:hover) and (pointer:fine){.sol-page .text-link:hover .sol-icon{transform:translateX(3px)}}
.sol-icon{display:inline-block;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle;flex-shrink:0}

/* ------------------------------------------------------------------ Hero */
.sol-hero{position:relative;padding:56px 0 60px;overflow:clip}
.sol-hero::before{content:"";position:absolute;inset:-40% -20% auto;height:520px;background:radial-gradient(48% 60% at 50% 0%,color-mix(in oklch,var(--rappli-blue) 7%,transparent),transparent 70%);pointer-events:none}
.sol-hero-inner{position:relative;max-width:960px;margin-inline:auto;text-align:center}
.sol-hero h1{margin:0;color:var(--rappli-navy);font-size:clamp(34px,4.3vw,54px);font-weight:800;line-height:1.07;letter-spacing:-.026em;text-wrap:wrap}
.sol-hero h1 .sol-ink{color:var(--rappli-blue)}
.sol-hero-lead{max-width:660px;margin:20px auto 0;color:var(--rappli-muted);font-size:19px;line-height:1.6}
.sol-hero .sol-actions{justify-content:center}
.sol-hero .sol-actions,.sol-closing-inner .sol-actions{align-items:center;text-align:center}
.sol-hero-note{margin-top:18px;color:var(--rappli-muted);font-size:14px;line-height:1.6}
.sol-breadcrumb{margin:0 0 14px;color:var(--rappli-muted);font-size:14px;line-height:1.5}
.sol-breadcrumb ol{display:flex;justify-content:center;gap:8px;margin:0;padding:0;list-style:none}
.sol-breadcrumb li+li::before{content:"›";margin-right:8px;color:var(--rappli-line-strong)}
.sol-breadcrumb a{color:var(--rappli-muted);text-decoration:none}
.sol-breadcrumb a:hover{color:var(--rappli-navy);text-decoration:underline;text-underline-offset:4px}

/* ---------------------------------------------------------- Bande repères */
.sol-proof{border-block:1px solid var(--rappli-line)}
.sol-proof ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;padding:0;list-style:none}
.sol-proof li{display:flex;align-items:center;justify-content:center;gap:12px;min-height:78px;padding:16px 24px;color:var(--rappli-ink);font-size:15px;font-weight:650;line-height:1.45;text-align:left}
.sol-proof li+li{border-left:1px solid var(--rappli-line)}
.sol-proof .sol-icon{width:20px;height:20px;color:var(--rappli-blue)}

/* ------------------------------------------------------------- Deux voies */
.sol-fork{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:64px;max-width:1040px;margin-inline:auto}
.sol-fork-card{display:flex;flex-direction:column;gap:16px;padding:28px 0 0;border-top:1px solid var(--rappli-line-strong)}
.sol-fork-card h3{margin:0;color:var(--rappli-navy);font-size:28px;font-weight:800;line-height:1.22;letter-spacing:-.02em;text-wrap:balance}
.sol-fork-card>p{margin:0;color:var(--rappli-muted);font-size:17px;line-height:1.65}
.sol-fork-card .text-link{margin-top:auto}
.sol-fork-facts{display:grid;gap:12px;margin:4px 0 0;padding:0}
.sol-fork-facts>div{display:grid;grid-template-columns:118px minmax(0,1fr);gap:16px;align-items:start}
.sol-fork-facts dt{margin:0;color:var(--rappli-navy);font-size:14px;font-weight:800;line-height:1.5}
.sol-fork-facts dd{margin:0;color:var(--rappli-muted);font-size:15px;line-height:1.6}
.sol-check-list{display:grid;gap:9px;margin:2px 0 0;padding:0;list-style:none}
.sol-check-list li{display:flex;gap:11px;align-items:flex-start;color:var(--rappli-ink);font-size:15px;line-height:1.5}
.sol-check-list .sol-icon{width:17px;height:17px;margin-top:2px;color:var(--rappli-green)}

/* ------------------------------------------------------ Section partagée */
.sol-split{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:64px;align-items:start}
.sol-split h2{margin:0 0 18px;color:var(--rappli-navy);font-size:clamp(28px,3vw,38px);font-weight:800;line-height:1.16;letter-spacing:-.02em}
.sol-split p{margin:0 0 18px;color:var(--rappli-muted);font-size:17px;line-height:1.7}
.sol-split p:last-child{margin-bottom:0}
.sol-details{padding:30px;background:#fff;border:1px solid var(--rappli-line);border-radius:16px}
.sol-details>h3{margin:0 0 6px;color:var(--rappli-navy);font-size:18px;font-weight:800;line-height:1.3}
.sol-details dl{margin:20px 0 0}
.sol-details dl>div+div{margin-top:18px;padding-top:18px;border-top:1px solid var(--rappli-line)}
.sol-details dt{margin-bottom:5px;color:var(--rappli-navy);font-size:16px;font-weight:750;line-height:1.4}
.sol-details dd{margin:0;color:var(--rappli-muted);font-size:15px;line-height:1.6}
.sol-card{background:#fff}

/* --------------------------------------------------------------- Étapes */
.sol-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:40px;margin:0;padding:0;list-style:none;counter-reset:sol-step}
.sol-steps--three{grid-template-columns:repeat(3,minmax(0,1fr))}
.sol-step{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto 1fr;gap:12px;align-content:start;align-items:start;min-width:0;padding-top:24px;border-top:1px solid var(--rappli-line-strong)}
.sol-step::before{counter-increment:sol-step;content:counter(sol-step,decimal-leading-zero);color:var(--rappli-blue);font-size:34px;font-weight:600;line-height:1.1;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.sol-step h3{margin:0;color:var(--rappli-navy);font-size:21px;font-weight:800;line-height:1.3;letter-spacing:-.015em;text-wrap:pretty}
.sol-step p{margin:0;color:var(--rappli-ink);font-size:16px;line-height:1.6;max-width:38ch}
@supports(grid-template-rows:subgrid){
  .sol-steps{row-gap:12px}
  .sol-step{grid-template-rows:subgrid;grid-row:span 3}
}
.sol-steps-note{max-width:760px;margin:34px 0 0;color:var(--rappli-muted);font-size:15px;line-height:1.65}
.sol-steps-note a{font-weight:700}

/* ---------------------------------------------------------- Colonnes simples */
.sol-values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:44px;margin:0;padding:0;list-style:none}
.sol-value{min-width:0}
.sol-values--duo{grid-template-columns:repeat(2,minmax(0,1fr));max-width:900px}
.sol-value .sol-icon{width:26px;height:26px;color:var(--rappli-blue)}
.sol-value h3{margin:16px 0 10px;color:var(--rappli-navy);font-size:21px;font-weight:800;line-height:1.28;letter-spacing:-.015em}
.sol-value p{margin:0 0 12px;color:var(--rappli-muted);font-size:16px;line-height:1.65;max-width:46ch}
.sol-value p:last-child{margin-bottom:0}
.sol-value ul{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.sol-value li{display:flex;gap:10px;align-items:flex-start;color:var(--rappli-ink);font-size:15px;line-height:1.55}
.sol-value li .sol-icon{width:16px;height:16px;margin-top:3px;color:var(--rappli-blue)}

/* ------------------------------------------------------- Démonstration produit */
.sol-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;margin:0}
.sol-shot{margin:0}
.sol-shot-frame{border:1px solid var(--rappli-line-strong);border-radius:12px;background:#fff;overflow:hidden}
.sol-shot-frame img{display:block;width:100%;height:auto}
.sol-shot figcaption{margin:12px 2px 0;color:var(--rappli-muted);font-size:14px;line-height:1.55}
.sol-shot figcaption strong{color:var(--rappli-navy);font-weight:750}
.sol-demo-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 36px;margin:30px 0 0;padding:0;list-style:none}
.sol-demo-list li{display:flex;gap:11px;align-items:flex-start;color:var(--rappli-ink);font-size:16px;line-height:1.55}
.sol-demo-list .sol-icon{width:17px;height:17px;margin-top:3px;color:var(--rappli-green)}

/* ------------------------------------------------------------------ FAQ */
.sol-faq .sol-heading{max-width:none;margin-bottom:32px}
.sol-faq-list details{border-top:1px solid var(--rappli-line-strong)}
.sol-faq-list details:last-child{border-bottom:1px solid var(--rappli-line-strong)}
.sol-faq-list summary{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:72px;padding:22px 4px;list-style:none;cursor:pointer;color:var(--rappli-navy);font-size:18px;font-weight:750;line-height:1.35}
.sol-faq-list summary::-webkit-details-marker{display:none}
@media(hover:hover) and (pointer:fine){.sol-faq-list summary:hover{color:var(--rappli-blue)}}

/* Ouverture des FAQ : même révélation que l'Aide, sans JS ni changement de structure. */
@media(prefers-reduced-motion:no-preference){
  .sol-faq-list details[open]>p{transition:opacity 180ms var(--rappli-ease),transform 180ms var(--rappli-ease)}
  @starting-style{.sol-faq-list details[open]>p{opacity:0;transform:translateY(-2px)}}
}
.sol-faq-list summary .sol-icon{width:20px;height:20px;transition:transform .2s var(--rappli-ease)}
.sol-faq-list details[open] summary .sol-icon{transform:rotate(45deg)}
.sol-faq-list details>p{max-width:720px;margin:0 0 24px;padding-inline:4px 44px;color:var(--rappli-muted);font-size:16px;line-height:1.7}
.sol-faq-list details>p+p{margin-top:-12px}

/* --------------------------------------------------------------- Formulaire */
.sol-form-layout{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1.2fr);gap:64px;align-items:start}
.sol-form-intro h2{margin:0 0 18px;color:var(--rappli-navy);font-size:clamp(28px,3vw,36px);font-weight:800;line-height:1.16;letter-spacing:-.02em}
.sol-form-intro p{margin:0 0 16px;color:var(--rappli-muted);font-size:16px;line-height:1.7}
.sol-form-aside{margin-top:24px;padding-top:20px;border-top:1px solid var(--rappli-line);color:var(--rappli-muted);font-size:14px;line-height:1.7}
.sol-form-aside a{font-weight:700}
.sol-page .sol-form-aside a.rp-button{text-decoration:none;max-width:100%;text-align:center}
.sol-form-aside p:last-child{margin-bottom:0;font-size:14px}
.sol-page :is(.sol-hero-note,.sol-hint,.sol-form-aside) strong{color:var(--rappli-navy);font-weight:800}
.sol-form-surface{padding:30px}
.sol-form-surface fieldset{margin:0;padding:0;border:0;min-width:0}
.sol-form-surface .rp-alert{margin-bottom:20px}
.sol-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.sol-field{min-width:0;margin-bottom:20px}
@supports(grid-template-rows:subgrid){
  .sol-form-grid{row-gap:0}
  .sol-form-grid>.sol-field{display:grid;grid-template-rows:subgrid;grid-row:span 3}
}
.sol-field--full{grid-column:1/-1}
.sol-field .rp-label span{color:var(--rappli-muted);font-size:12px;font-weight:600;white-space:nowrap}
.sol-field .rp-field,.sol-field .rp-select{width:100%;min-height:50px}
.sol-field textarea.rp-field{min-height:130px;resize:vertical;padding:14px 15px;line-height:1.6}
.sol-hint{margin:0 0 12px;color:var(--rappli-muted);font-size:14px;line-height:1.6}
.sol-required{margin:0 0 20px;color:var(--rappli-muted);font-size:14px;line-height:1.6}
.sol-field-error{display:block;min-height:0;margin-top:7px;color:#94283a;font-size:14px;line-height:1.5}
.sol-field-error:empty{display:none}
.sol-consent{display:flex;gap:12px;align-items:flex-start;color:var(--rappli-ink);font-size:14px;line-height:1.65}
.sol-consent input{width:20px;height:20px;min-width:20px;margin:2px 0 0;accent-color:var(--rappli-blue)}
.sol-consent a{font-weight:600}
.sol-trap{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.sol-form-surface button[type=submit]{margin-top:4px}
.sol-form-surface button[type=submit]+.sol-hint{margin:12px 0 0}
.sol-form-status{display:flex;gap:12px;align-items:flex-start}
.sol-form-status .sol-icon{width:20px;height:20px;margin-top:2px}
.sol-page .rp-button[aria-busy=true],.sol-page .rp-button:disabled{cursor:progress}
.sol-page .rp-button:disabled{opacity:.72}

/* ------------------------------------------------------- Encadré économique */
.sol-econ-note{margin:20px 0 0;color:var(--rappli-muted);font-size:15px;line-height:1.65}

/* ------------------------------------------------------------- Conclusion */
.sol-closing{padding:32px 0 96px}
.sol-closing-inner{padding:56px;background:var(--rappli-navy);border-radius:24px;color:color-mix(in oklch,#fff 86%,var(--rappli-navy));text-align:center}
.sol-closing-inner h2{max-width:720px;margin:0 auto;color:#fff;font-size:clamp(28px,3vw,38px);font-weight:800;line-height:1.18;letter-spacing:-.02em}
.sol-closing-inner p{max-width:600px;margin:16px auto 0;font-size:17px;line-height:1.6}
.sol-page .sol-closing-inner a{color:#fff;text-decoration-color:color-mix(in oklch,#fff 60%,transparent)}
.sol-page .sol-closing-inner a:hover{color:#fff}
.sol-closing-inner .sol-actions{justify-content:center}
.sol-page .sol-closing-inner a.rp-button{background:#fff;color:var(--rappli-navy);border-color:#fff;box-shadow:none}
.sol-page .sol-closing-inner a.rp-button:hover{background:color-mix(in oklch,#fff 88%,var(--rappli-blue));border-color:#fff;color:var(--rappli-navy)}
.sol-page .sol-closing-inner :is(a,button):focus-visible{outline-color:#fff}
.sol-closing-inner .text-link{color:#fff}
.sol-closing-inner .text-link:hover{color:#fff}
.sol-closing-contact{margin-top:24px;color:color-mix(in oklch,#fff 78%,var(--rappli-navy));font-size:14px;line-height:1.7}
.sol-closing-contact a{color:#fff}

/* ----------------------------------------------------------- Responsive */
@media(max-width:1024px){
  .sol-section{padding:76px 0}
  .sol-split{gap:44px}
  .sol-steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}
  .sol-form-layout{grid-template-columns:1fr;gap:28px}
}
@media(max-width:820px){
  .sol-fork{grid-template-columns:1fr;gap:32px;max-width:none}
  .sol-split{grid-template-columns:1fr;gap:28px}
  .sol-values{grid-template-columns:1fr;gap:30px}
  .sol-gallery{grid-template-columns:1fr}
  .sol-demo-list{grid-template-columns:1fr}
  .sol-form-layout{grid-template-columns:1fr;gap:26px}
}
@media(max-width:760px){
  .sol-wrap{width:calc(100% - 40px)}
  .sol-section{padding:56px 0}
  .sol-section--tight{padding:44px 0}
  .sol-hero{padding:40px 0 40px}
  .sol-hero h1{text-wrap:balance}
  .sol-hero-lead{font-size:17px}
  .sol-heading{margin-bottom:32px}
  .sol-heading p:not(.sol-eyebrow){font-size:17px}
  .sol-actions{align-items:flex-start;flex-direction:column;gap:14px}
  .sol-hero .sol-actions{justify-content:center}
  .sol-proof ul{grid-template-columns:1fr}
  .sol-proof li{justify-content:flex-start;min-height:0;padding:14px 2px}
  .sol-proof li+li{border-left:0;border-top:1px solid var(--rappli-line)}
  .sol-steps{grid-template-columns:1fr;gap:24px}
  .sol-fork-card h3{font-size:25px}
  .sol-fork-facts>div{grid-template-columns:1fr;gap:3px}
  .sol-details{padding:24px}
  .sol-form-surface{padding:24px}
  .sol-form-grid{grid-template-columns:1fr;gap:0}
  .sol-form-surface .rp-button{width:100%}
  .sol-closing{padding:8px 0 64px}
  .sol-closing-inner{padding:40px 24px;border-radius:20px}
  .sol-faq-list summary{font-size:17px;gap:16px}
  .sol-faq-list details>p{padding-right:24px}
}
@media(max-width:430px){
  .sol-hero h1{font-size:clamp(28px,8.6vw,36px)}
  .sol-closing-inner{padding:34px 18px}
  .sol-breadcrumb ol{flex-wrap:wrap}
  .sol-step::before{font-size:30px}
}
@media(prefers-reduced-motion:reduce){
  .sol-page *,.sol-page *::before,.sol-page *::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}
  .sol-page .text-link:hover .sol-icon{transform:none}
}
@media(forced-colors:active){
  .sol-fork-card,.sol-step,.sol-details,.sol-shot-frame,.sol-form-surface,.rp-card{border-color:CanvasText;box-shadow:none}
  .sol-closing-inner{background:Canvas;color:CanvasText;border:1px solid CanvasText}
  .sol-closing-inner h2,.sol-closing-inner .text-link,.sol-closing-contact a,.sol-closing-contact{color:CanvasText}
}

/* — v11 : parcours partenaire, répartition des rôles, cohérence homepage — */
.sol-eyebrow{margin:0 0 14px;font-family:var(--font-mono);font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--rappli-blue)}
.sol-fork-badge{margin:0 0 10px;font-family:var(--font-mono);font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--rappli-blue)}
[data-rappli-public] .sol-hero h1{font-size:clamp(34px,4.3vw,58px)}
[data-rappli-public] .sol-heading h2{font-size:clamp(30px,3.2vw,44px)}
[data-rappli-public] p{text-wrap:pretty}
[data-rappli-public] :is(section,[id]){scroll-margin-top:104px}
@media(max-width:760px){[data-rappli-public] :is(section,[id]){scroll-margin-top:92px}}
[data-rappli-public] .sol-section{padding:clamp(64px,8vw,96px) 0}
[data-rappli-public] .rp-button{min-height:52px;padding:14px 24px;border-radius:12px;font-size:15px;font-weight:700;letter-spacing:.02em}
@media(max-width:760px){[data-rappli-public] .rp-button{width:100%}}
.sol-flow{border-block:1px solid var(--rappli-line);background:var(--rappli-surface)}
.sol-flow-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin:0;padding:0;list-style:none}
.sol-flow-list li{display:flex;flex-direction:column;gap:9px;padding:24px 22px 26px;border-left:1px solid var(--rappli-line)}
.sol-flow-list li:first-child{border-left:0}
.sol-flow-index{font-family:var(--font-mono);font-size:12px;font-weight:600;letter-spacing:.06em;color:var(--rappli-blue)}
.sol-flow-label{color:var(--rappli-navy);font-size:15px;font-weight:650;line-height:1.45;text-wrap:pretty}
.sol-roles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:56px;max-width:1040px;margin-inline:auto}
.sol-role{padding-top:26px;border-top:1px solid var(--rappli-line-strong)}
.sol-role h3{margin:0 0 14px;color:var(--rappli-navy);font-size:24px;font-weight:800;line-height:1.24;letter-spacing:-.018em}
.sol-role>p{margin:0 0 18px;color:var(--rappli-muted);font-size:16px;line-height:1.65}
.sol-role .sol-check-list{gap:11px}
.sol-role .sol-check-list li{font-size:16px}
.sol-role .sol-check-list .sol-icon{width:18px;height:18px;margin-top:2px}
.sol-role--client .sol-check-list .sol-icon{color:var(--rappli-blue)}
@media(max-width:900px){
  .sol-flow-list{grid-template-columns:1fr}
  .sol-flow-list li{flex-direction:row;align-items:baseline;gap:14px;padding:16px 2px;border-left:0;border-top:1px solid var(--rappli-line)}
  .sol-flow-list li:first-child{border-top:0}
  .sol-roles{grid-template-columns:1fr;gap:32px}
}
