/* ==========================================================================
   RandrIA v2 — couche responsive « application native » (chargée en dernier)
   Breakpoints : 30em (480) · 48em (768) · 59.4375em (951, menu horizontal) · 64em (1024)
   Mobile-first : les règles sans media query valent pour tous ; les surcharges
   « téléphone » sont bornées à max-width 47.99em pour ne pas toucher le desktop.
   ========================================================================== */
:root{
  --orange:#ff7a00;--or:#ff7a00;--or-logo:#ff7a00;--or-deep:#ff7a00;--or-text:#a34c00; /* orange de marque unique ; #a34c00 = même teinte, pour les petits textes sur fond clair (5,85:1) */
  --tap-min:44px;
  --safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);
  --safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);
  --tabbar-h:62px;--drawer-w:min(88vw,380px);
  --dur-base:.22s;--dur-slow:.34s;--ease-out:cubic-bezier(.22,1,.36,1);
  --z-appbar:50;--z-tabbar:70;--z-overlay:105;--z-drawer:110; /* tiroir ouvert au-dessus du bandeau Complianz (z-index 100) : ouverture volontaire du visiteur */
  --fs-body-mobile:clamp(1rem,.95rem + .3vw,1.125rem);
  --fs-label-min:.75rem;          /* 12 px : plancher des étiquettes (règle text-tiny) */
  --c-ink:#0b2b46;--c-muted:#4d6273;--c-line:#dce5eb;
  --c-on-dark:#e3eef4;--c-on-dark-muted:#b8ccd8;--c-logo-light:#7fd3ee; /* 7,4:1 sur #00527A, 9:1 sur bleu nuit */
}

/* ---------- Focus visible (WCAG 2.4.7) ---------- */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid #ff7a00;outline-offset:3px;border-radius:4px}
.page-hero :focus-visible,.hero :focus-visible,.cta-band :focus-visible,.footer :focus-visible,.rs-pricing-band :focus-visible{outline-color:var(--c-logo-light)}
.rs-dd-menu a:focus-visible{outline:3px solid #ff7a00;outline-offset:-3px}

/* ---------- Contrastes (R-001…017) ---------- */
.footer .footer-grid>div>a,.footer .footer-grid a,.footer .footer-bottom nav a{color:var(--c-on-dark)}
.footer .footer-grid>div>a:hover,.footer .footer-bottom nav a:hover{color:var(--c-logo-light)}
.footer p,.footer .small{color:var(--c-on-dark-muted)}
.page-hero .eyebrow,.rs-pricing-head .eyebrow,.cta-band .eyebrow.light,.hero .eyebrow,.rs-plan-aud{color:var(--c-logo-light)}
.rs-tl-n,.rs-ov b,.rs-step-n{color:#a34c00}                 /* 6,1:1 sur la pastille crème */
dt{color:var(--c-muted)}
.diagnostic-aside .eyebrow{color:var(--c-logo-light)}
.detail-aside dl dt{color:var(--c-muted)}
/* Champs à 16 px sur tous les écrans tactiles, iPad compris : évite le zoom automatique d'iOS */
.rs-v2 :is(input,select,textarea,.picker,.rs-select){font-size:1rem!important} /* nécessité documentée : plus fort que les tailles en ligne du design d'origine */

/* ---------- Cibles tactiles (R-018…051, R-108/109) ---------- */
.text-link,.hero-secondary,.reset-button,.back-button{min-height:var(--tap-min);display:inline-flex;align-items:center}
.home-sector-links a{min-height:48px}
.footer .footer-bottom nav{display:flex;flex-wrap:wrap;gap:4px 18px}
.footer .footer-bottom nav a{display:inline-flex;align-items:center;min-height:var(--tap-min)}
.breadcrumbs a{display:inline-flex;align-items:center;min-height:32px}
.field>label,.field label{display:block;min-height:24px;padding-block:2px}
.rs-founder figcaption a,.legal-body a[href^="mailto"],.legal-list a{display:inline-flex;align-items:center;min-height:var(--tap-min)}
.rs-method-nav ol{gap:8px}
.rs-method-nav a{min-height:var(--tap-min)}
.header .brand{display:inline-flex;align-items:center;min-height:48px}
.rs-foot-contact{display:flex;flex-wrap:wrap;gap:4px 16px}
.rs-foot-contact a{display:inline-flex;align-items:center;min-height:var(--tap-min)}
.footer .footer-grid>div>a{min-height:36px;display:flex;align-items:center}
.honeypot{position:absolute!important;left:0;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%)} /* nécessité documentée : masquage accessible du champ piège, plus fort que le style d'origine */

/* ---------- Lisibilité ---------- */
.section-footnote,.content-section>p,.rs-tl-card p,.rs-value p{max-inline-size:70ch}
.eyebrow,.rs-plan-aud,.rs-tier-badge,.rs-tl-n,.rs-ov b,.rs-step-n,.agent-category,.tag-row>span,.demo-tag,.workflow-label,.workflow-note,.flow-processing .small,.comparison-label,.step-count,.calc-formula,.demo-notice,.calculator-result>span{font-size:var(--fs-label-min)}

/* ---------- Bouton menu (burger) ---------- */
.rs-menu-btn{display:inline-flex;align-items:center;gap:8px;min-height:var(--tap-min);min-width:var(--tap-min);padding:0 12px;border-radius:10px;touch-action:manipulation}
.rs-menu-btn[aria-expanded=true]{background:#fff0e0}

/* ---------- Tiroir ---------- */
.drawer-overlay{position:fixed;inset:0;z-index:var(--z-overlay);background:rgba(11,43,70,.55);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);opacity:0;visibility:hidden;transition:opacity var(--dur-base) var(--ease-out),visibility 0s linear var(--dur-base)}
.drawer{position:fixed;inset-block:0;inset-inline-end:0;z-index:var(--z-drawer);display:flex;flex-direction:column;inline-size:var(--drawer-w);max-inline-size:100%;
  padding:calc(var(--safe-top) + 12px) calc(var(--safe-right) + 18px) calc(var(--safe-bottom) + 18px) 18px;background:#fff;
  box-shadow:-24px 0 60px -20px rgba(11,43,70,.45);overflow-y:auto;overscroll-behavior:contain;transform:translateX(100%);visibility:hidden;
  transition:transform var(--dur-slow) var(--ease-out),visibility 0s linear var(--dur-slow);touch-action:pan-y}
.drawer[data-open=true]{transform:translateX(0);visibility:visible;transition:transform var(--dur-slow) var(--ease-out),visibility 0s}
.drawer[data-open=true]+.drawer-overlay,.drawer-overlay[data-open=true]{opacity:1;visibility:visible;transition:opacity var(--dur-base) var(--ease-out),visibility 0s}
.drawer[data-dragging=true]{transition:none}
.drawer__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid var(--c-line)}
.drawer__header .brand img{width:120px;height:auto}
.appbar__btn{display:inline-grid;place-items:center;inline-size:var(--tap-min);block-size:var(--tap-min);border:0;border-radius:999px;background:#f1f5f8;color:var(--c-ink);cursor:pointer;touch-action:manipulation}
.drawer__nav ul{list-style:none;margin:0;padding:0}
.drawer__nav>ul>li+li{margin-top:2px}
.drawer__nav a,.drawer__nav button{display:flex;align-items:center;gap:12px;inline-size:100%;min-block-size:var(--tap-min);padding:10px 10px;border:0;border-radius:12px;background:none;color:var(--c-ink);font:600 1rem/1.3 Manrope,sans-serif;text-align:start;text-decoration:none;cursor:pointer;touch-action:manipulation}
.drawer__nav button{justify-content:space-between}
.rs-drawer-lbl{display:flex;align-items:center;gap:12px}
.drawer__nav a[aria-current=page]{background:#fff0e0}
.drawer__nav [aria-expanded] svg:last-child{transition:transform var(--dur-base) var(--ease-out)}
.drawer__nav [aria-expanded=true] svg:last-child{transform:rotate(180deg)}
.drawer__nav .submenu{margin:2px 0 8px;padding:6px;border-radius:14px;background:#f6f9fb}
.drawer__nav .submenu[hidden]{display:none}
.drawer__nav .submenu a{align-items:flex-start;font-weight:500}
.drawer__nav .submenu a>span:last-child{display:flex;flex-direction:column;gap:2px}
.drawer__nav .submenu b{font-weight:650;font-size:.9375rem}
.drawer__nav .submenu small{font-size:.8125rem;color:var(--c-muted);font-weight:400}
.rs-drawer-foot{margin-top:auto;padding-top:18px;display:flex;flex-direction:column;gap:10px}
.rs-drawer-foot .button{width:100%;margin:0}
.rs-drawer-foot .small a{display:inline-flex;min-height:var(--tap-min);align-items:center;color:#00587f;text-decoration:underline}
html[data-scroll-locked],html[data-scroll-locked] body{overflow:hidden}
@media (hover:none){.drawer__nav a:active,.drawer__nav button:active,.tabbar :is(a,button):active{background:#fff0e0}}
@media (min-width:59.4375em){.drawer,.drawer-overlay{display:none}}

/* ---------- Barre d'onglets (téléphones) ---------- */
.tabbar{position:fixed;inset-inline:0;inset-block-end:0;z-index:var(--z-tabbar);display:grid;grid-auto-flow:column;grid-auto-columns:1fr;
  padding:4px calc(var(--safe-right) + 4px) max(4px,var(--safe-bottom)) calc(var(--safe-left) + 4px);
  background:rgba(255,255,255,.94);-webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px);
  border-top:1px solid var(--c-line);box-shadow:0 -8px 24px -18px rgba(11,43,70,.35)}
.tabbar :is(a,button){display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-block-size:54px;min-inline-size:var(--tap-min);
  border:0;border-radius:12px;background:none;color:#4d6273;font:600 .75rem/1.2 Manrope,sans-serif; /* libellé d'onglet 12 px : exception documentée (HIG/Material) */
  text-decoration:none;cursor:pointer;touch-action:manipulation;transition:color .2s,transform .2s var(--ease-out)}
.tabbar :is(a,button) svg{width:23px;height:23px;transition:transform .25s var(--ease-out)}
.tabbar a[aria-current=page],.tabbar .is-current{color:#a34c00}
.tabbar a[aria-current=page] svg{transform:translateY(-1px) scale(1.08)}
.tabbar a[aria-current=page]::before{content:"";position:absolute;margin-top:-50px;width:26px;height:3px;border-radius:3px;background:#ff7a00}
.tabbar a{position:relative}
body.has-tabbar{padding-block-end:calc(var(--tabbar-h) + var(--safe-bottom))}
@media (min-width:48em){.tabbar{display:none}body.has-tabbar{padding-block-end:0}}
@media (max-height:30em) and (orientation:landscape){.tabbar :is(a,button){flex-direction:row;min-block-size:44px;gap:8px}:root{--tabbar-h:50px}}
/* Complianz : la bannière reste au-dessus de la barre d'onglets */
@media (max-width:47.99em){#cmplz-cookiebanner-container .cmplz-cookiebanner{bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 8px)!important} /* nécessité documentée : position posée en ligne par Complianz */}

/* ---------- En-tête : zones sûres ---------- */
.header .header-inner{padding-inline:max(0px,var(--safe-left)) max(0px,var(--safe-right))}

/* ---------- Téléphones : corps ≥ 16 px (R-052…090) ----------
   Ancrage sur #contenu (id de <main>) : les règles du design d'origine combinent 2-3 classes. */
@media (max-width:47.99em){
  #contenu :is(p,li,dd,td,caption,.rs-chips>span,.workflow span,.rs-fact>span:last-child,.checklist li>span){font-size:var(--fs-body-mobile)}
  #contenu :is(.eyebrow,span.small,.rs-plan-aud,.rs-tier-badge,.tag-row>span,.agent-category,.hero-bottom>span,.demo-tag,.workflow-label){font-size:max(var(--fs-label-min),.75rem);letter-spacing:.08em}
  #contenu .tag-row>span{font-size:.8125rem}
  #contenu .rs-ov span{font-size:.9375rem}
}
.rs-coords p a,.sources-box a{display:inline-flex;align-items:center;min-height:var(--tap-min)}
.sources-box p a{margin-block:2px}

/* ---------- Téléphone paysage : hero compact (M-002, R-142) ---------- */
@media (max-height:30em) and (orientation:landscape){
  .hero-grid{padding-block:28px 24px;gap:24px}
  .hero h1{font-size:clamp(1.9rem,5.2vw,2.6rem)}
  .page-hero{padding-bottom:24px}
  .page-hero h1{font-size:clamp(1.7rem,4.6vw,2.3rem)}
}

/* ---------- À propos : chiffres sur une ligne (M-004) ---------- */
.rs-fact strong{white-space:nowrap;font-size:clamp(1.35rem,1rem + 1vw,1.75rem)}

/* ---------- Transitions de page natives (navigateurs compatibles) ---------- */
@view-transition{navigation:auto}
@media (prefers-reduced-motion:reduce){
  .drawer,.drawer-overlay,.tabbar :is(a,button),.tabbar svg{transition-duration:.01ms!important} /* nécessité documentée : neutralise les animations du tiroir */
  @view-transition{navigation:none}
}

/* ---------- Plancher 12 px pour toutes les étiquettes, tous écrans (règle text-tiny) ---------- */
#contenu :is(.eyebrow,span.small,.rs-plan-aud,.rs-tier-badge,.agent-category,.hero-bottom>span,.demo-tag,.workflow-label,.workflow-note,.comparison-label,.step-count,.calculator-result>span,.flow-processing .small){font-size:var(--fs-label-min)}
#contenu .diagnostic-aside .eyebrow,#contenu .hero-grid .eyebrow{font-size:.75rem}
@media (max-width:47.99em){
  /* Libellés longs (≥ 40 caractères) lus comme du texte : taille de lecture, casse normale */
  #contenu :is(.hero-copy>.eyebrow,.detail-aside>.eyebrow,.pack-card .small){font-size:1rem;letter-spacing:.02em}
  #contenu :is(.detail-aside>.eyebrow,.pack-card .small){text-transform:none}
  #contenu .local-note{font-size:1rem!important} /* nécessité documentée : le design d'origine impose .8125rem!important */
}
.sources-box p{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.drawer__header .brand{display:inline-flex;align-items:center;min-height:48px}
/* Écrans étroits (≤ 400 px) : espacement ≥ 8 px entre petites cibles (règle touch-targets-crowded) */
.footer .footer-bottom nav{gap:8px 20px}
.rs-seg{gap:8px}
@media (max-width:25em){.rs-seg{flex-direction:column;align-items:stretch}.rs-seg-btn{justify-content:flex-start}.footer .footer-bottom nav{row-gap:10px}}
/* Phrases longues rangées parmi les étiquettes : taille de lecture sur téléphone (après le plancher 12 px) */
@media (max-width:47.99em){#contenu :is(.workflow>.workflow-note,.before-after>.demo-notice,.calculator-result>.calc-formula){font-size:1rem;letter-spacing:0}} /* spécificité (1,2,0) : égale au plancher 12 px, déclarée après */
/* Bandeau Complianz : bouton Accepter à l'orange de marque */
.cmplz-cookiebanner .cmplz-btn.cmplz-accept{background-color:#ff7a00!important;border-color:#ff7a00!important;color:#0b2b46!important} /* nécessité documentée : couleurs posées en ligne par Complianz */

/* ---------- Formulaire de contact dynamique : couleur de marque et intégration ---------- */
#rsContactForm{--df-primary:#ff7a00}
#rsContactForm.df-enhanced .form-grid{display:block}
#rsContactForm.df-enhanced .form-grid>*+*{margin-top:18px}
#rsContactForm .df-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,190px),1fr));gap:12px}
#rsContactForm .df-nav{margin-top:22px}
