/* ==========================================================================
   LogiDrink - couche finale du site public (BE et FR)
   Remplace ld-site-viva.css et ld-portal-skin.css (fusionnes ici).
   Charge en dernier sur toutes les pages publiques. Le portail n'est pas concerne.

   Echelle typographique (desktop -> mobile)
     H1 40 -> 30 px · H2 30 -> 24 px · H3 19 px · H4 17 px
     Texte 17 px (cartes 16 px) · Chapo 18 px · Mentions 14 px
   Rythme vertical : sections 80 / 64 / 48 px, hero dimensionne par son contenu.
   ========================================================================== */

html:not([data-ld-portal]) {
  --ink: #0a1628;
  --ink-2: #0a1628;
  --ink-3: #425466;
  --ink-4: #6b7a8c;
  --ink-5: #8898aa;
  --line: #e3e8ee;
  --line-2: #eef2f6;
  --bg: #ffffff;
  --bg-soft: #ffffff;
  --bg-cream: #ffffff;
  --bg-warm: #ffffff;
  --accent: #fd7020;
  --accent-2: #fd7020;
  --accent-soft: #f4f6f8;
  --accent-deep: #c44a0c;
  --font-heading: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --font-body: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --nav-height: 68px;
  --radius: 6px;
  --radius-sm: 6px;
  --radius-lg: 8px;

  --ld-fs-h1: clamp(1.875rem, 1.3rem + 1.5vw, 2.5rem);
  --ld-fs-h2: clamp(1.5rem, 1.2rem + 0.8vw, 1.875rem);
  --ld-fs-h3: 1.1875rem;
  --ld-fs-h4: 1.0625rem;
  --ld-fs-body: 1.0625rem;
  --ld-fs-card: 1rem;
  --ld-fs-lead: 1.125rem;
  --ld-fs-small: 0.875rem;
  --ld-section-y: 80px;
  --ld-measure: 42rem;
}

/* ---- Polices et texte courant ------------------------------------------ */
html:not([data-ld-portal]) body,
html:not([data-ld-portal]) button,
html:not([data-ld-portal]) input,
html:not([data-ld-portal]) select,
html:not([data-ld-portal]) textarea {
  font-family: var(--font-body) !important;
}

html:not([data-ld-portal]) body {
  background: #fff !important;
  color: var(--ink) !important;
  font-size: var(--ld-fs-body) !important;
  line-height: 1.65 !important;
  overflow-wrap: break-word;
  -webkit-hyphens: manual;
  hyphens: manual;
}

html:not([data-ld-portal]) p,
html:not([data-ld-portal]) li {
  font-size: var(--ld-fs-body) !important;
  line-height: 1.65;
  -webkit-hyphens: manual !important;
  hyphens: manual !important;
  word-break: normal !important;
  text-wrap: pretty;
}

html:not([data-ld-portal]) small,
html:not([data-ld-portal]) .small,
html:not([data-ld-portal]) .muted,
html:not([data-ld-portal]) .note,
html:not([data-ld-portal]) p.small,
html:not([data-ld-portal]) p.muted,
html:not([data-ld-portal]) p.note,
html:not([data-ld-portal]) p.hero-demo-hint,
html:not([data-ld-portal]) p.form-hint,
html:not([data-ld-portal]) .price-card p.sub,
html:not([data-ld-portal]) .price-card p.muted,
html:not([data-ld-portal]) .cc-card p {
  font-size: var(--ld-fs-small) !important;
  line-height: 1.55 !important;
}

/* ---- Titres --------------------------------------------------------------- */
html:not([data-ld-portal]) h1,
html:not([data-ld-portal]) h2,
html:not([data-ld-portal]) h3,
html:not([data-ld-portal]) h4,
html:not([data-ld-portal]) h5,
html:not([data-ld-portal]) .font-heading,
html:not([data-ld-portal]) [class*="Space"] {
  font-family: var(--font-heading) !important;
  text-wrap: balance;
  -webkit-hyphens: manual;
  hyphens: manual;
}

html:not([data-ld-portal]) h1 {
  font-size: var(--ld-fs-h1) !important;
  line-height: 1.18 !important;
  letter-spacing: -0.02em !important;
  font-weight: 700 !important;
}
html:not([data-ld-portal]) h2 {
  font-size: var(--ld-fs-h2) !important;
  line-height: 1.25 !important;
  letter-spacing: -0.015em !important;
  font-weight: 700 !important;
}
html:not([data-ld-portal]) h3 {
  font-size: var(--ld-fs-h3) !important;
  line-height: 1.35 !important;
  letter-spacing: -0.005em !important;
  font-weight: 600 !important;
}
html:not([data-ld-portal]) h4,
html:not([data-ld-portal]) h5 {
  font-size: var(--ld-fs-h4) !important;
  line-height: 1.4 !important;
  letter-spacing: 0 !important;
  font-weight: 600 !important;
}

/* Titres de bloc dans les cartes, FAQ, pied de page : un cran plus bas */
html:not([data-ld-portal]) .feat-card h3,
html:not([data-ld-portal]) .card h3,
html:not([data-ld-portal]) .int-card h3,
html:not([data-ld-portal]) .offer-card h3,
html:not([data-ld-portal]) .ld-offer-card h3 {
  font-size: 1.0625rem !important;
}

/* Chapo */
html:not([data-ld-portal]) p.lead,
html:not([data-ld-portal]) .section-head p,
html:not([data-ld-portal]) .sec-head p {
  font-size: var(--ld-fs-lead) !important;
  line-height: 1.6 !important;
  color: var(--ink-3) !important;
  max-width: var(--ld-measure) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Texte des cartes */
html:not([data-ld-portal]) .feat-card p,
html:not([data-ld-portal]) .feat-card li,
html:not([data-ld-portal]) .card p,
html:not([data-ld-portal]) .card li,
html:not([data-ld-portal]) .price-card p,
html:not([data-ld-portal]) .price-card li,
html:not([data-ld-portal]) .int-card p,
html:not([data-ld-portal]) .ld-int-card span,
html:not([data-ld-portal]) .faq details p,
html:not([data-ld-portal]) .faq-item p,
html:not([data-ld-portal]) table {
  font-size: var(--ld-fs-card) !important;
}

/* Sur-titres (eyebrow) et etiquettes du menu */
html:not([data-ld-portal]) .eyebrow,
html:not([data-ld-portal]) .cat-label {
  font-size: 0.8125rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em !important;
  line-height: 1.4 !important;
}
html:not([data-ld-portal]) .eyebrow:not(.on-dark),
html:not([data-ld-portal]) .cat-label,
html:not([data-ld-portal]) .quick-bar span {
  background: #fff !important;
  color: var(--accent) !important;
  border: 1px solid var(--line);
}
html:not([data-ld-portal]) .eyebrow.on-dark {
  background: rgba(255, 255, 255, .14) !important;
  color: #fff !important;
  border: 1px solid rgba(255, 255, 255, .28) !important;
}
html:not([data-ld-portal]) .ld-mega-kicker {
  font-size: 0.75rem !important;
  line-height: 1.4 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase;
  color: var(--ink-4) !important;
}

/* Aucun texte tronque : pas de coupure par ellipse ni par clamp */
html:not([data-ld-portal]) .ld-int-card span,
html:not([data-ld-portal]) .feat-card p,
html:not([data-ld-portal]) .card p,
html:not([data-ld-portal]) .price-card p,
html:not([data-ld-portal]) .price-card li {
  -webkit-line-clamp: unset !important;
  line-clamp: none !important;
  overflow: visible !important;
  text-overflow: clip !important;
  white-space: normal !important;
}

/* Pages legales : alignement a gauche, aucune cesure automatique */
html:not([data-ld-portal]) .legal-body p {
  text-align: left !important;
  -webkit-hyphens: manual !important;
  hyphens: manual !important;
}

/* ---- Mise en page ------------------------------------------------------ */
html:not([data-ld-portal]) .container,
html:not([data-ld-portal]) footer .container,
html:not([data-ld-portal]) section > .container {
  max-width: min(1160px, calc(100% - 2.5rem)) !important;
}

html:not([data-ld-portal]) section {
  padding-top: var(--ld-section-y) !important;
  padding-bottom: var(--ld-section-y) !important;
}
html:not([data-ld-portal]) section.tight,
html:not([data-ld-portal]) section.clients-trust {
  padding-top: 56px !important;
  padding-bottom: 56px !important;
}

/* Hero : hauteur definie par le contenu, plus de boite plein ecran */
html:not([data-ld-portal]) .hero,
html:not([data-ld-portal]) section.hero,
html:not([data-ld-portal]) .fpage-hero {
  min-height: 0 !important;
  height: auto !important;
  display: block !important;
  padding-top: 64px !important;
  padding-bottom: 48px !important;
  text-align: center !important;
}
html:not([data-ld-portal]) .hero:has(.hero-grid) {
  text-align: left !important;
  padding-top: 56px !important;
  padding-bottom: 56px !important;
}
html:not([data-ld-portal]) .hero h1 { margin-bottom: 16px !important; }
html:not([data-ld-portal]) .hero p.lead { margin-top: 0 !important; margin-bottom: 24px !important; }
html:not([data-ld-portal]) .fpage-hero h1,
html:not([data-ld-portal]) .fpage-hero .lead,
html:not([data-ld-portal]) .hero h1,
html:not([data-ld-portal]) .hero .lead {
  margin-left: auto !important;
  margin-right: auto !important;
}
html:not([data-ld-portal]) .hero:not(:has(.hero-grid)) h1 { max-width: 46rem; }
html:not([data-ld-portal]) .hero .container,
html:not([data-ld-portal]) .fpage-hero { align-items: center; }
html:not([data-ld-portal]) .hero-grid { text-align: left !important; }
html:not([data-ld-portal]) .hero:not(:has(.hero-grid)) .container > div:not(.crumb):not(.hero-cta):not(.actions) {
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
}
html:not([data-ld-portal]) .crumb,
html:not([data-ld-portal]) .hero .crumb,
html:not([data-ld-portal]) .fpage-hero .crumb {
  display: block !important;
  width: 100% !important;
  text-align: center !important;
  margin: 0 auto 12px !important;
  font-size: var(--ld-fs-small) !important;
}
html:not([data-ld-portal]) .hero-cta { align-items: center !important; }
html:not([data-ld-portal]) .quick-bar,
html:not([data-ld-portal]) .hero .hero-tags { justify-content: center !important; }

/* En-tetes de section */
html:not([data-ld-portal]) .section-head,
html:not([data-ld-portal]) .sec-head {
  max-width: var(--ld-measure) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  margin-bottom: 40px !important;
  text-align: center !important;
}
html:not([data-ld-portal]) .section-head h2,
html:not([data-ld-portal]) .sec-head h2 { margin-bottom: 12px !important; }
html:not([data-ld-portal]) .clients-trust .section-head {
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
}
html:not([data-ld-portal]) .seo-textblock { text-align: center !important; }
html:not([data-ld-portal]) .seo-textblock h2,
html:not([data-ld-portal]) .seo-textblock p {
  margin-left: auto !important;
  margin-right: auto !important;
  max-width: var(--ld-measure) !important;
  text-align: center !important;
}

/* Fonds : blanc partout, navy pour les blocs sombres et le pied de page */
html:not([data-ld-portal]) body,
html:not([data-ld-portal]) main,
html:not([data-ld-portal]) section,
html:not([data-ld-portal]) section.soft,
html:not([data-ld-portal]) section.cream,
html:not([data-ld-portal]) section.tight,
html:not([data-ld-portal]) .hero,
html:not([data-ld-portal]) .fpage-hero,
html:not([data-ld-portal]) .bg-soft,
html:not([data-ld-portal]) .section-cream,
html:not([data-ld-portal]) .section-dark,
html:not([data-ld-portal]) .cta-section,
html:not([data-ld-portal]) .tns-cta,
html:not([data-ld-portal]) #tarifsForfaits,
html:not([data-ld-portal]) .faq,
html:not([data-ld-portal]) .faq-list {
  background: #fff !important;
  background-color: #fff !important;
}
html:not([data-ld-portal]) section.dark,
html:not([data-ld-portal]) .contact-info-card,
html:not([data-ld-portal]) footer,
html:not([data-ld-portal]) .cta-banner.dark,
html:not([data-ld-portal]) .versus {
  background: #0a1628 !important;
  background-image: none !important;
}
html:not([data-ld-portal]) .versus { color: #fff !important; }
/* Bandeau orange des pages SEO : le fond blanc global des sections l'effaçait
   (titre et texte blancs sur blanc, un bouton isolé au milieu du vide). */
html:not([data-ld-portal]) section.ld-alive-cta {
  background: #fd7020 !important;
  background-image: none !important;
  color: #fff !important;
}
html:not([data-ld-portal]) section.ld-alive-cta h2,
html:not([data-ld-portal]) section.ld-alive-cta p { color: #fff !important; }

/* Grilles */
html:not([data-ld-portal]) .grid.grid-2,
html:not([data-ld-portal]) .split,
html:not([data-ld-portal]) .hero-grid { gap: 40px 56px !important; }
html:not([data-ld-portal]) .split,
html:not([data-ld-portal]) .hero-grid { align-items: center !important; }
html:not([data-ld-portal]) .split > *:first-child,
html:not([data-ld-portal]) .hero-grid > *:first-child { text-align: left !important; }
html:not([data-ld-portal]) .grid.grid-3 { gap: 22px !important; }
html:not([data-ld-portal]) .grid.grid-2:has(> .feat-card),
html:not([data-ld-portal]) .grid.grid-3:has(> .feat-card) {
  align-items: stretch !important;
  gap: 22px !important;
  grid-auto-rows: 1fr !important;
}
html:not([data-ld-portal]) .grid.grid-2 .feat-card,
html:not([data-ld-portal]) .grid.grid-3 .feat-card {
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
}
html:not([data-ld-portal]) .grid.grid-3:has(> :nth-child(4)):not(:has(> :nth-child(5))),
html:not([data-ld-portal]) .grid-3:has(> :nth-child(4)):not(:has(> :nth-child(5))) {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  max-width: 860px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  justify-content: center !important;
}

/* Cartes */
html:not([data-ld-portal]) .feat-card,
html:not([data-ld-portal]) .card,
html:not([data-ld-portal]) .plan-card,
html:not([data-ld-portal]) .int-card,
html:not([data-ld-portal]) .offer-card,
html:not([data-ld-portal]) .ld-offer-card {
  background: #fff !important;
  border: 1px solid #e8edf3 !important;
  border-radius: 12px !important;
  box-shadow: 0 6px 20px rgba(10, 22, 40, .05) !important;
  padding: 1.5rem !important;
  text-align: left !important;
}
html:not([data-ld-portal]) .feat-card h3,
html:not([data-ld-portal]) .card h3 { margin-bottom: 8px !important; }
html:not([data-ld-portal]) .feat-card .icon { background: #f4f6f8 !important; color: var(--accent) !important; }
html:not([data-ld-portal]) .feat-card .icon svg { stroke: var(--accent) !important; }
html body .feat-card:hover,
html body .card:hover,
html body .plan-card:hover,
html body .int-card:hover,
html body .ld-mega-grid a:hover {
  background-image: none !important;
  filter: none !important;
}

/* ---- Boutons ------------------------------------------------------------- */
html body .btn,
html body a.btn,
html body button.btn,
html body .btn-primary,
html body .btn-ghost,
html body .btn-secondary,
html body .btn-outline,
html body .btn-white,
html body .btn-lg,
html body .btn-sm,
html body .btn-audit,
html body .btn-devis,
html body .btn-arrow,
html body .mm-footer-cta,
html body .mn-cta-devis,
html body .mn-cta-call,
html body .nav-cta,
html body .tns-cta-btn,
html body input[type="submit"],
html body input[type="button"] {
  border-radius: 6px !important;
  font-family: var(--font-body) !important;
}
html:not([data-ld-portal]) .btn,
html:not([data-ld-portal]) a.btn,
html:not([data-ld-portal]) button.btn {
  font-size: 0.9375rem !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
}
html:not([data-ld-portal]) .hero .hero-cta a.btn,
html:not([data-ld-portal]) .cta-banner .actions .btn,
html:not([data-ld-portal]) .sales-strip-actions .btn {
  min-height: 44px !important;
  height: 44px !important;
  padding: 0 18px !important;
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
}
html:not([data-ld-portal]) .btn-primary,
html:not([data-ld-portal]) a.btn-primary {
  background: var(--accent) !important;
  border-color: var(--accent) !important;
  color: #fff !important;
}
html:not([data-ld-portal]) .cta-banner .btn-light,
html:not([data-ld-portal]) .cta-banner .btn-ghost,
html:not([data-ld-portal]) .sales-strip .btn-light,
html:not([data-ld-portal]) .sales-strip .btn-ghost,
html:not([data-ld-portal]) section.dark .btn-light,
html:not([data-ld-portal]) section.dark .btn-ghost,
html:not([data-ld-portal]) .versus .btn-light,
html:not([data-ld-portal]) .versus .btn-ghost,
html:not([data-ld-portal]) .ld-alive-dark-cta .btn-light,
html:not([data-ld-portal]) .ld-alive-dark-cta .btn-ghost,
html:not([data-ld-portal]) .price-card.featured .btn-light,
html:not([data-ld-portal]) .price-card.featured .btn-ghost {
  background: #fff !important;
  color: var(--ink) !important;
  border-color: #fff !important;
}
html:not([data-ld-portal]) .cta-banner .btn-primary,
html:not([data-ld-portal]) .sales-strip .btn-primary,
html:not([data-ld-portal]) section.dark .btn-primary,
html:not([data-ld-portal]) .versus .btn-primary,
html:not([data-ld-portal]) .ld-alive-dark-cta .btn-primary,
html:not([data-ld-portal]) .price-card.featured .btn-primary {
  background: var(--accent) !important;
  color: #fff !important;
  border-color: var(--accent) !important;
}
html:not([data-ld-portal]) .ld-alive-cta .btn-primary {
  background: #fff !important;
  color: var(--accent) !important;
  border-color: #fff !important;
}

/* ---- En-tete et navigation -------------------------------------------- */
html:not([data-ld-portal]) header.nav {
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border-bottom: none !important;
  min-height: 0 !important;
}
html:not([data-ld-portal]) header.nav .nav-inner {
  min-height: 64px !important;
  background: #fff !important;
  border-radius: 16px !important;
  box-shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 8px 24px rgba(15, 23, 42, .07) !important;
}
@media (max-width: 1180px) {
  html:not([data-ld-portal]) header.nav { background: #fff !important; padding: 0 !important; }
  html:not([data-ld-portal]) header.nav .nav-inner { border-radius: 0 !important; box-shadow: none !important; }
}
html:not([data-ld-portal]) header.nav .logo .brand-logo,
html:not([data-ld-portal]) header.nav .logo img {
  height: 52px !important;
  width: auto !important;
  max-width: min(232px, 55vw) !important;
  object-fit: contain !important;
  object-position: left center !important;
}
@media (max-width: 900px) {
  html:not([data-ld-portal]) header.nav .logo .brand-logo,
  html:not([data-ld-portal]) header.nav .logo img { height: 44px !important; max-width: min(196px, 58vw) !important; }
}
@media (max-width: 600px) {
  html:not([data-ld-portal]) header.nav .logo .brand-logo,
  html:not([data-ld-portal]) header.nav .logo img { height: 40px !important; max-width: min(176px, 62vw) !important; }
}
html:not([data-ld-portal]) header.nav .nav-actions .btn-signup,
html:not([data-ld-portal]) header.nav .ld-mobile-cta .btn-signup {
  display: inline-flex !important;
  align-items: center !important;
  background: #fff !important;
  color: var(--accent) !important;
  border: 1px solid var(--accent) !important;
}
html:not([data-ld-portal]) .lang-btn,
html:not([data-ld-portal]) header.nav .lang-selector > button {
  height: 36px !important;
  min-height: 36px !important;
  padding: 0 10px !important;
  border-radius: 6px !important;
  border: 1px solid var(--line) !important;
  background: #fff !important;
}
html:not([data-ld-portal]) .lang-btn .lang-current { display: inline !important; }
html:not([data-ld-portal]) .lang-btn > .lang-name,
html:not([data-ld-portal]) .lang-btn > .lang-code,
html:not([data-ld-portal]) .lang-btn > .ld-pill { display: none !important; }
html:not([data-ld-portal]) .lang-list .lang-code,
html:not([data-ld-portal]) .lang-list .lang-name { display: inline !important; }
html:not([data-ld-portal]) .ld-mega,
html:not([data-ld-portal]) .ld-mega-side,
html:not([data-ld-portal]) .ld-mega-foot,
html:not([data-ld-portal]) .ld-mega-main { background: #fff !important; }
html:not([data-ld-portal]) .ld-mega-side { display: none !important; }
html:not([data-ld-portal]) #ld-portal-fab { display: none !important; }
.drj-group-link.active { color: var(--ink) !important; background: #fff !important; }
html:not([data-ld-portal]) .drj-group-link.active,
html:not([data-ld-portal]) .drj-group-link:hover { color: var(--accent) !important; }

/* ---- Pied de page ------------------------------------------------------ */
footer,
html body footer { background: #0a1628 !important; background-image: none !important; }
footer .brand-logo,
footer .logo img { height: 40px !important; max-width: 180px !important; object-fit: contain !important; }
html:not([data-ld-portal]) footer p,
html:not([data-ld-portal]) footer li,
html:not([data-ld-portal]) footer a { font-size: 0.9375rem !important; }
html:not([data-ld-portal]) footer h4,
html:not([data-ld-portal]) footer h5 {
  font-size: 0.8125rem !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase;
}

/* ---- FAQ ------------------------------------------------------------------ */
html:not([data-ld-portal]) .faq details,
html:not([data-ld-portal]) .ld-compex-seo details {
  text-align: left !important;
  max-width: 52rem !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
html:not([data-ld-portal]) details.faq-item,
html:not([data-ld-portal]) .faq-item,
html:not([data-ld-portal]) .faq > details,
html:not([data-ld-portal]) .faq-list > .faq-item {
  background: #fff !important;
  border: none !important;
  border-bottom: 1px solid var(--line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 16px 0 !important;
  margin: 0 auto !important;
  overflow: visible !important;
}
html:not([data-ld-portal]) details.faq-item summary,
html:not([data-ld-portal]) .faq-item .faq-q,
html:not([data-ld-portal]) .faq > details > summary {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  font-size: 1.0625rem !important;
  font-weight: 600 !important;
  line-height: 1.45 !important;
}
html:not([data-ld-portal]) details.faq-item > *:not(summary),
html:not([data-ld-portal]) details.faq-item p,
html:not([data-ld-portal]) .faq-item p,
html:not([data-ld-portal]) .faq-item .faq-body,
html:not([data-ld-portal]) .faq-item .faq-answer,
html:not([data-ld-portal]) .faq-item div:not(.faq-q):not(.faq-icon) {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  outline: none !important;
}

/* ---- Tarifs ------------------------------------------------------------- */
html:not([data-ld-portal]) .price-grid,
html:not([data-ld-portal]) #planCards {
  align-items: stretch !important;
  grid-auto-rows: 1fr !important;
}
html:not([data-ld-portal]) .price-card {
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
}
html:not([data-ld-portal]) .price-card .btn,
html:not([data-ld-portal]) .price-card .js-signup { margin-top: auto !important; }
html:not([data-ld-portal]) .price-card.featured {
  background: #0a1628 !important;
  color: #fff !important;
}
html:not([data-ld-portal]) .price-card.featured h3,
html:not([data-ld-portal]) .price-card.featured .price,
html:not([data-ld-portal]) .price-card.featured p,
html:not([data-ld-portal]) .price-card.featured li { color: #fff !important; }
html:not([data-ld-portal]) .price-card.featured .price small,
html:not([data-ld-portal]) .price-card.featured .js-price-unit,
html:not([data-ld-portal]) .price-card.featured .sub,
html:not([data-ld-portal]) .price-card.featured .muted { color: rgba(255, 255, 255, .78) !important; }
html:not([data-ld-portal]) .lm-bill-switch button {
  background: transparent !important;
  color: var(--ink-3) !important;
  box-shadow: none !important;
}
html:not([data-ld-portal]) .lm-bill-switch button.is-on {
  background: #fff !important;
  color: var(--ink) !important;
  box-shadow: 0 1px 3px rgba(15, 23, 42, .08) !important;
}

/* ---- Bandeaux et comparatif -------------------------------------------- */
html:not([data-ld-portal]) .sales-strip {
  border-radius: 16px !important;
  padding: 36px 40px !important;
  background: #0a1628 !important;
  border: none !important;
}
html:not([data-ld-portal]) .sales-strip h2,
html:not([data-ld-portal]) .sales-strip p { color: #fff !important; }
html:not([data-ld-portal]) table { font-size: 0.9375rem !important; }
html:not([data-ld-portal]) .ld-compex-seo,
html:not([data-ld-portal]) .ld-offer-frame,
html:not([data-ld-portal]) .ld-compare-note { max-width: min(1160px, calc(100% - 2.5rem)) !important; }
html:not([data-ld-portal]) .ld-offer-grid { gap: 1.25rem !important; }

/* ---- Fenetres modales du site ------------------------------------------- */
.ld-pub-overlay {
  position: fixed;
  inset: 0;
  z-index: 40000;
  background: rgba(10, 22, 40, .48);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.ld-pub-modal {
  background: #fff;
  border-radius: 12px;
  max-width: 420px;
  width: 100%;
  padding: 26px 26px 22px;
  box-shadow: 0 24px 60px rgba(10, 22, 40, .22);
  color: #0a1628;
}
.ld-pub-modal h3 { margin: 0 0 10px !important; font-size: 1.125rem !important; }
.ld-pub-modal p { margin: 0 0 8px !important; font-size: 0.9375rem !important; color: #425466 !important; line-height: 1.5 !important; }
.ld-pub-modal-sub { font-size: 0.875rem !important; }
.ld-pub-modal-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 18px; }

/* ---- Tablette et mobile ------------------------------------------------- */
@media (max-width: 1000px) {
  html:not([data-ld-portal]) { --ld-section-y: 64px; }
}
@media (max-width: 900px) {
  html:not([data-ld-portal]) .grid.grid-2,
  html:not([data-ld-portal]) .split,
  html:not([data-ld-portal]) .hero-grid { gap: 24px !important; }
  html:not([data-ld-portal]) .hero,
  html:not([data-ld-portal]) section.hero,
  html:not([data-ld-portal]) .fpage-hero,
  html:not([data-ld-portal]) .hero:has(.hero-grid) {
    padding-top: 40px !important;
    padding-bottom: 32px !important;
  }
  html:not([data-ld-portal]) .sales-strip { padding: 28px 22px !important; }
}
@media (max-width: 640px) {
  html:not([data-ld-portal]) {
    --ld-section-y: 48px;
    --ld-fs-body: 1rem;
    --ld-fs-lead: 1.0625rem;
    --ld-fs-h3: 1.125rem;
  }
  html:not([data-ld-portal]) .section-head,
  html:not([data-ld-portal]) .sec-head { margin-bottom: 28px !important; }
  /* Sur telephone, un texte long centre se lit mal : hero aligne a gauche */
  html:not([data-ld-portal]) .hero,
  html:not([data-ld-portal]) section.hero,
  html:not([data-ld-portal]) .fpage-hero,
  html:not([data-ld-portal]) .hero .crumb,
  html:not([data-ld-portal]) .fpage-hero .crumb,
  html:not([data-ld-portal]) .hero:not(:has(.hero-grid)) .container > div:not(.crumb):not(.hero-cta):not(.actions) {
    text-align: left !important;
  }
  html:not([data-ld-portal]) .hero .lead,
  html:not([data-ld-portal]) .hero p.lead,
  html:not([data-ld-portal]) .hero h1 { margin-left: 0 !important; margin-right: 0 !important; }
  html:not([data-ld-portal]) .quick-bar,
  html:not([data-ld-portal]) .hero .hero-tags,
  html:not([data-ld-portal]) .hero .crumb,
  html:not([data-ld-portal]) .hero .crumb > *,
  html:not([data-ld-portal]) .fpage-hero .crumb > * { justify-content: flex-start !important; text-align: left !important; }
}

/* ---- Accueil : hero en deux colonnes, blocs legerement espaces ---- */
html:not([data-ld-portal]) .hero:has(.hero-grid) {
  padding-top: 56px !important;
  padding-bottom: 64px !important;
}
html:not([data-ld-portal]) .hero:has(.hero-grid) .eyebrow { margin-bottom: 22px !important; }
html:not([data-ld-portal]) .hero:has(.hero-grid) h1 { margin-bottom: 22px !important; }
html:not([data-ld-portal]) .hero:has(.hero-grid) p.lead {
  margin-top: 0 !important;
  margin-bottom: 32px !important;
  line-height: 1.7 !important;
}
html:not([data-ld-portal]) .hero:has(.hero-grid) .hero-cta { margin-bottom: 40px !important; }
html:not([data-ld-portal]) .hero:has(.hero-grid) .ld-hero-int-label {
  margin: 0 0 12px !important;
  font-size: 0.8125rem !important;
  letter-spacing: 0.06em !important;
}
html:not([data-ld-portal]) .hero:has(.hero-grid) .hero-demo-cta { margin-top: 28px !important; }
html:not([data-ld-portal]) .hero:has(.hero-grid) .hero-demo-hint { margin-top: 12px !important; }
