:root{
      --ca-primary:#1f4e5f;
      --ca-primary-dark:#163946;
      --ca-soft:#f8fafc;
      --ca-soft-2:#eef5f7;
      --ca-line:#e8ecef;
      --ca-muted:#6c757d;
      --ca-ink:#212529;
      --ca-warning:#ffc107;
      --ca-shadow:0 0.65rem 1.25rem rgba(0,0,0,.07);
      --ca-radius:8px;
    }

    body{ background:#f6f8fb; color:var(--ca-ink); }
    .main-wrap{ max-width:1440px; }

    .ca-hero-card,.hero-card,.content-card,.side-card,.info-card,.share-card{
      background:#fff;
      border:1px solid var(--ca-line);
      border-radius:var(--ca-radius);
      box-shadow:var(--ca-shadow);
    }

    .ca-hero-card{ overflow:hidden; }
    .ca-hero-top{ background:linear-gradient(135deg,#f8fbfd 0%,#eef5f7 100%); border-bottom:1px solid var(--ca-line); padding:20px 18px; }
    .ca-hero-kicker,.hero-kicker{ display:inline-flex; align-items:center; gap:8px; padding:7px 11px; border-radius:999px; background:#fff; border:1px solid #d7e5ea; color:var(--ca-primary); font-size:.82rem; font-weight:800; margin-bottom:10px; }
    .ca-hero-title{ font-size:1.45rem; line-height:1.25; font-weight:800; color:#10212b; margin-bottom:8px; }
    .ca-hero-text{ color:#5f6b76; font-size:.96rem; line-height:1.7; margin-bottom:0; max-width:900px; }
    .ca-chip-row{ display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
    .ca-chip{ display:inline-flex; align-items:center; gap:8px; padding:7px 11px; border-radius:999px; background:#f1f5f9; border:1px solid rgba(0,0,0,.06); font-size:.84rem; color:#0f172a; font-weight:600; }
    .ca-chip i{ color:var(--ca-primary); }
    .ca-hero-search{ padding:16px 16px 18px; background:#fff; }

    .trust-box{ background:#fff; border:1px solid var(--ca-line); border-left:5px solid #0d6efd; border-radius:8px; padding:14px 16px; box-shadow:0 .35rem .85rem rgba(0,0,0,.04); }
    .mobile-safety-note{ display:none; background:#eef6ff; border:1px solid #cfe2ff; border-radius:8px; padding:12px 14px; color:#24557a; font-size:.9rem; line-height:1.55; }
    .hero-title{ font-size:1.75rem; font-weight:800; color:#10212b; line-height:1.35; margin-bottom:0; }
    .ref-chip{ font-size:.88rem; color:var(--ca-muted); font-weight:500; }
    .hero-muted{ font-size:.95rem; color:var(--ca-muted); line-height:1.65; }

    .opportunity-status{ display:inline-flex; align-items:center; gap:7px; padding:7px 11px; border-radius:999px; background:#eef7f4; border:1px solid #d7eee6; color:#1f4e5f; font-size:.82rem; font-weight:800; }

    .summary-box{ background:var(--ca-soft); border:1px solid #ececec; border-radius:8px; padding:12px 14px; height:100%; }
    .summary-label{ font-size:.8rem; text-transform:uppercase; letter-spacing:.03em; color:var(--ca-muted); margin-bottom:4px; }
    .summary-value{ font-size:1rem; font-weight:800; color:var(--ca-ink); line-height:1.4; }

    .gallery-main{ width:100%; border:1px solid #ddd; border-radius:8px; padding:6px; background:#fff; object-fit:cover; max-height:520px; }

    /* Correction galerie : ��vite que les images secondaires s'affichent en grand */
    .gallery-thumb{
      width:100%;
      aspect-ratio:1 / 1;
      height:auto;
      max-height:86px;
      object-fit:cover;
      object-position:center;
      border:1px solid #e5e7eb;
      border-radius:12px;
      padding:3px;
      background:#fff;
      cursor:pointer;
      display:block;
      transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
    }

    .gallery-thumb:hover{
      transform:translateY(-1px);
      box-shadow:0 .35rem .75rem rgba(0,0,0,.08);
      border-color:var(--ca-primary);
    }

    .carousel-image-uniform{
      width:100%;
      height:min(72vh, 620px);
      max-height:620px;
      object-fit:contain;
      object-position:center;
      background:#fff;
      display:block;
    }

    #imageModal .modal-dialog{
      max-width:min(940px, calc(100vw - 24px));
    }

    #imageModal .modal-body{
      max-height:calc(100vh - 150px);
      overflow:hidden;
      display:flex;
      align-items:center;
      justify-content:center;
      background:#fff;
    }

    #imageModal .carousel,
    #imageModal .carousel-inner,
    #imageModal .carousel-item{
      width:100%;
    }

    @media (max-width:991.98px){
      .gallery-thumb{
        max-height:76px;
      }

      .carousel-image-uniform{
        height:min(68vh, 520px);
        max-height:520px;
      }
    }

    @media (max-width:767.98px){
      .trust-box{ display:none; }
      .mobile-safety-note{ display:block; }
      .ca-announcement-summary{ order:1; }
      .ca-announcement-gallery{ order:2; }

      .gallery-thumb{
        max-height:68px;
        border-radius:10px;
      }

      .carousel-image-uniform{
        height:min(62vh, 430px);
        max-height:430px;
      }
    }

    .gallery-placeholder{ border:1px dashed rgba(0,0,0,.10); border-radius:14px; background:linear-gradient(135deg,#f8fafc 0%,#eef5f7 100%); min-height:320px; display:flex; align-items:center; justify-content:center; text-align:center; padding:24px 18px; }
    .gallery-lock-compact{ border:1px dashed rgba(0,0,0,.12); border-radius:14px; background:linear-gradient(135deg,#f8fafc 0%,#eef5f7 100%); padding:16px; margin-top:10px; text-align:center; }
    .gallery-locked-icon{ width:54px; height:54px; border-radius:16px; display:inline-flex; align-items:center; justify-content:center; background:#fff; color:var(--ca-primary); border:1px solid rgba(0,0,0,.06); box-shadow:0 .45rem 1rem rgba(0,0,0,.05); margin-bottom:10px; font-size:1.35rem; }
    .gallery-locked-title{ font-size:.98rem; font-weight:800; color:#10212b; margin-bottom:6px; line-height:1.35; }
    .gallery-locked-text,.gallery-locked-note{ font-size:.88rem; line-height:1.55; color:#5b6470; margin-bottom:10px; }
    .gallery-locked-note{ color:#6c757d; margin-top:10px; margin-bottom:0; }

    .description-short{ font-size:1rem; line-height:1.75; color:#343a40; white-space:pre-line; }
    .section-title{ font-size:1.05rem; font-weight:800; color:var(--ca-primary); margin-bottom:14px; }
    .detail-shell-empty{ background:#f8fafc; border:1px dashed #dbe5ea; border-radius:14px; padding:18px 16px; color:#667085; font-size:.95rem; line-height:1.7; }
    .detail-content,.rich-html-content{ color:#343a40; line-height:1.8; font-size:.98rem; overflow-wrap:anywhere; word-break:break-word; }
    .rich-html-content{ isolation:isolate; }
    .rich-html-content > *:first-child{ margin-top:0 !important; }
    .rich-html-content > *:last-child{ margin-bottom:0 !important; }
    .rich-html-content p{ margin:0 0 1rem; line-height:1.85; }
    .rich-html-content h1,.rich-html-content h2,.rich-html-content h3,.rich-html-content h4,.rich-html-content h5,.rich-html-content h6{ color:#10212b; font-weight:800; line-height:1.35; margin:1.4rem 0 .8rem; }
    .rich-html-content h1{ font-size:1.55rem; }
    .rich-html-content h2{ font-size:1.35rem; }
    .rich-html-content h3{ font-size:1.18rem; }
    .rich-html-content h4{ font-size:1.05rem; }
    .rich-html-content ul,.rich-html-content ol{ margin:0 0 1rem 1.2rem; padding-left:1rem; }
    .rich-html-content li{ margin-bottom:.45rem; line-height:1.8; }
    .rich-html-content a{ color:var(--ca-primary); text-decoration:underline; font-weight:500; }
    .rich-html-content blockquote{ margin:1.2rem 0; padding:.9rem 1rem; border-left:4px solid var(--ca-primary); background:#f8fafc; border-radius:0 12px 12px 0; color:#475569; }
    .rich-html-content img{ display:block; max-width:100%; height:auto; margin:1rem auto; border-radius:12px; }
    .rich-html-content table{ width:100%; border-collapse:collapse; margin:1rem 0; display:block; overflow-x:auto; white-space:nowrap; background:#fff; border-radius:12px; }
    .rich-html-content table th,.rich-html-content table td{ border:1px solid #e5e7eb; padding:.75rem .85rem; text-align:left; vertical-align:top; background:#fff; }
    .rich-html-content table th{ background:#f8fafc; font-weight:700; color:#0f172a; }
    .rich-html-content iframe,.rich-html-content video{ width:100%; max-width:100%; border:0; border-radius:12px; margin:1rem 0; }

    .side-card-title{ font-size:1rem; font-weight:800; color:#111827; margin-bottom:8px; }
    .side-text,.cta-note{ font-size:.9rem; color:#5b6470; line-height:1.6; }
    .cta-note{ color:var(--ca-muted); }

    .company-header{ display:flex; align-items:center; gap:14px; }
    .company-logo{ width:68px; height:68px; border-radius:16px; overflow:hidden; border:1px solid rgba(0,0,0,.10); background:#eef2f7; flex-shrink:0; }
    .company-logo img{ width:100%; height:100%; object-fit:cover; }
    .company-name{ font-size:1.05rem; font-weight:800; color:#0f172a; line-height:1.35; }
    .company-sub{ color:var(--ca-muted); font-size:.92rem; }
    .company-grid{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
    .company-kpi{ border:1px solid rgba(0,0,0,.08); background:var(--ca-soft); border-radius:14px; padding:10px 12px; }
    .company-kpi-label{ color:var(--ca-muted); font-size:.8rem; margin-bottom:2px; }
    .company-kpi-value{ color:#111827; font-weight:800; font-size:.94rem; line-height:1.4; }

    .contact-lock-box{ position:relative; border:1px dashed rgba(0,0,0,.10); border-radius:14px; background:#fff; overflow:hidden; min-height:210px; }
    .contact-lock-content{ padding:16px; filter:blur(4px); opacity:.58; user-select:none; pointer-events:none; }
    .contact-lock-overlay{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; text-align:center; padding:18px; background:linear-gradient(180deg,rgba(255,255,255,.68),rgba(255,255,255,.95)); }
    .unlock-title{ font-size:1rem; font-weight:800; color:#0f172a; margin-bottom:6px; }
    .unlock-text{ font-size:.9rem; color:#5b6470; line-height:1.6; margin-bottom:12px; }
    .unlock-note{ font-size:.82rem; color:#6c757d; line-height:1.55; margin-top:10px; }

    .seo-chips{ display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
    .seo-chip{ display:inline-flex; align-items:center; gap:8px; padding:6px 10px; border-radius:999px; background:#f1f5f9; border:1px solid rgba(0,0,0,.06); font-size:.82rem; color:#0f172a; text-decoration:none; }
    .seo-chip:hover{ background:#e2e8f0; color:#0f172a; }

    .social-share{ display:flex; gap:10px; flex-wrap:wrap; justify-content:center; margin-top:14px; }
    .social-share a,.social-share button{ display:flex; align-items:center; justify-content:center; background-color:#f5f5f5; border:none; border-radius:50%; width:48px; height:48px; font-size:20px; transition:background-color .3s, transform .3s; color:#333; box-shadow:0 4px 6px rgba(0,0,0,.10); }
    .social-share a:hover,.social-share button:hover{ background-color:#ddd; transform:translateY(-3px); color:#000; }

    .video-container{ position:relative; width:100%; padding-bottom:56.25%; height:0; overflow:hidden; border-radius:12px; }
    .video-container iframe{ position:absolute; top:0; left:0; width:100%; height:100%; border:0; }
    .mini-toast{ position:fixed; top:18px; right:18px; z-index:99999; background:rgba(17,24,39,.95); color:#fff; padding:10px 12px; border-radius:12px; font-size:.9rem; display:none; }
    .mini-toast.show{ display:block; }
    .sticky-cta{ position:fixed; left:0; right:0; bottom:0; z-index:9999; background:#fff; border-top:1px solid rgba(0,0,0,.10); padding:10px 12px; display:none; box-shadow:0 -6px 16px rgba(0,0,0,.06); }
    .sticky-cta .btn{ border-radius:12px; font-weight:700; }

    @media (max-width:991.98px){
      .ca-hero-title{ font-size:1.2rem; }
      .sticky-cta{ display:block; }
      body{ padding-bottom:84px; }
      .hero-title{ font-size:1.4rem; }
      .gallery-main{ max-height:420px; }
    }

    @media (max-width:767.98px){
      .ca-hero-card,.hero-card,.content-card,.side-card,.info-card,.share-card{ border-radius:14px; }
      .ca-hero-top{ padding:16px 14px; }
      .ca-hero-search{ padding:14px 14px 16px; }
      .company-grid{ grid-template-columns:1fr; }
      .modal-dialog{ max-width:92%; }
      .rich-html-content{ font-size:.95rem; line-height:1.75; }
      .rich-html-content h1{ font-size:1.35rem; }
      .rich-html-content h2{ font-size:1.2rem; }
      .rich-html-content h3{ font-size:1.08rem; }
    }
/* One layout for public and member product pages. */
.ca-detail { background:#fff; }
.ca-detail .main-wrap { max-width:1280px; }
.ca-detail .hero-card,.ca-detail .content-card,.ca-detail .info-card,.ca-detail .share-card { border:0; border-bottom:1px solid #e1e7e9; border-radius:0; box-shadow:none; padding:20px 0!important; background:#fff; }
.ca-detail .side-card { border-radius:6px; box-shadow:none; }
.ca-detail .detail-shell { border:0; background:transparent; padding:0; }
.ca-detail-heading { margin-bottom:20px; }
.ca-detail-heading .hero-title { font-size:26px; line-height:1.35; overflow-wrap:anywhere; }
.ca-detail-heading .ref-chip { background:transparent; border:0; padding:0; color:#65747b; }
.ca-detail .hero-kicker { color:#1f4e5f; background:#eef4f5; border:0; }
.ca-detail .opportunity-status { color:#286241; background:#edf6f0; }
.ca-detail .ca-announcement-gallery { order:0; }
.ca-detail .ca-announcement-summary { order:1; }
.ca-detail .gallery-main { height:300px; width:100%; max-height:none; object-fit:contain; cursor:zoom-in; padding:8px; border-radius:6px; }
.ca-detail .gallery-thumb { width:100%; height:64px; max-height:64px; object-fit:contain; padding:4px; border-radius:6px; background:#fff; cursor:zoom-in; }
.ca-gallery-open { display:block; border-radius:6px; }
.ca-detail .summary-box { border-radius:6px; background:#f6f8f9; box-shadow:none; }
.ca-detail .summary-label { font-size:12px; text-transform:none; letter-spacing:0; }
.ca-detail .summary-value { font-size:15px; overflow-wrap:anywhere; }
.ca-detail .description-short { line-height:1.65; font-size:15px; }
.ca-detail .section-title { font-size:21px; }
.ca-detail .trust-box { box-shadow:none; border:0; background:#f5f7f8; padding:12px; font-size:13px; border-radius:6px; }
.ca-detail .carousel-image-uniform { height:65vh; max-height:620px; width:100%; object-fit:contain; background:#171c1f; }
.ca-detail .carousel-control-prev,.ca-detail .carousel-control-next { width:14%; border:0; background:transparent; }
.ca-detail .carousel-control-prev-icon,.ca-detail .carousel-control-next-icon { background-color:#24363f; border-radius:50%; padding:18px; background-size:18px; }
.ca-detail .modal-content { border-radius:8px!important; }
.ca-detail-breadcrumb { display:flex; flex-wrap:wrap; gap:8px; font-size:13px; margin:0 0 8px; color:#607079; }
@media(max-width:767.98px) {
 .ca-detail .hero-card { padding-top:8px!important; }
 .ca-detail-heading .hero-title { font-size:22px; }
 .ca-detail .gallery-main { height:270px; }
 .ca-detail .ca-announcement-gallery,.ca-detail .ca-announcement-summary { width:100%; }
 .ca-detail .summary-box { padding:10px; }
 .ca-detail .summary-value { font-size:14px; }
 .ca-detail .hero-card>.row { row-gap:18px!important; }
 .ca-detail .carousel-image-uniform { height:58vh; }
}

.ca-detail .btn-outline-secondary { color:#3f5863; border-color:#8a9da6; background:#fff; }
.ca-detail .sticky-cta .btn { border-radius:6px; min-height:48px; font-size:13px; padding:8px 10px; min-width:0; }
.ca-detail .sticky-cta .btn-primary i { display:none; }
.ca-detail .sticky-cta form { min-width:0; }
.ca-detail .sticky-cta>div>.btn-outline-dark { flex-shrink:0; }

/* Product conversion layout: one supplier panel, before the description on mobile. */
.ca-product-detail .main-wrap { padding:12px 24px 24px; margin-top:0!important; }
.ca-product-detail .ca-product-layout { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:0 28px; align-items:start; }
.ca-product-content { display:contents; }
.ca-product-content>* { grid-column:1; min-width:0; }
.ca-product-aside { grid-column:2; grid-row:1 / span 20; min-width:0; align-self:stretch; }
.ca-product-detail .ca-detail-heading { margin:14px 0 24px; }
.ca-product-detail .ca-detail-heading .hero-title { max-width:1080px; }
.ca-product-detail .hero-card { margin:0!important; padding-top:0!important; }
.ca-product-detail .hero-card>.row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); margin:0; gap:22px; }
.ca-product-detail .ca-announcement-gallery,.ca-product-detail .ca-announcement-summary { width:100%; padding:0; }
.ca-product-detail .gallery-main { height:340px; }
.ca-product-detail .ca-announcement-summary>.row { display:block; margin:0 0 16px; }
.ca-product-detail .ca-announcement-summary>.row>div { width:100%; margin:0; padding:0; }
.ca-product-detail .summary-box { background:transparent; border:0; border-bottom:1px solid #e2e8ea; border-radius:0; padding:10px 0; }
.ca-product-detail .summary-label { font-size:14px; color:#56656b; }
.ca-product-detail .summary-value { font-size:18px; color:#1b292f; }
.ca-product-detail .description-short { font-size:16px; line-height:1.65; }
.ca-product-jump { font-weight:700; font-size:15px; color:#1f4e5f; display:inline-flex; gap:10px; align-items:center; min-height:44px; }
.ca-product-supplier { position:sticky; top:92px; border:1px solid #becdd2; border-top:3px solid #1f4e5f; border-radius:8px; padding:22px; background:#fff; margin-bottom:24px; }
.ca-product-eyebrow { margin:0 0 14px; color:#52666d; font-size:14px; font-weight:700; }
.ca-product-company { display:flex; align-items:center; gap:14px; }
.ca-product-company>div { min-width:0; }
.ca-product-company img { object-fit:contain; border:1px solid #e2e8ea; border-radius:6px; flex-shrink:0; }
.ca-product-company h2 { font-size:20px; line-height:1.35; margin:0 0 5px; overflow-wrap:anywhere; }
.ca-product-company p { color:#51656d; font-size:15px; margin:0; }
.ca-product-profile { display:inline-flex; gap:8px; align-items:center; color:#1f4e5f; font-weight:600; font-size:14px; min-height:44px; }
.ca-product-premium { display:table; background:#fff6db; color:#78550b; font-size:13px; font-weight:700; padding:4px 8px; margin-top:10px; border-radius:4px; }
.ca-product-actions { display:grid; gap:10px; margin-top:10px; }
.ca-product-detail .btn { letter-spacing:0; text-transform:none; }
.ca-product-detail .ca-product-actions .btn,.ca-product-contact .btn,.ca-product-growth .btn,.ca-product-detail #modalCredits .btn { display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:48px; padding:10px 14px; font-size:15px; font-weight:600; line-height:1.4; border-radius:6px; white-space:normal; box-shadow:none; }
.ca-product-contact .btn { width:100%; }
.ca-product-help { margin:10px 0 0; font-size:13px; line-height:1.6; color:#52656d; }
.ca-product-contact { border-top:1px solid #d9e2e5; margin-top:20px; padding-top:20px; }
.ca-product-contact h3 { font-size:16px; line-height:1.4; margin:0 0 12px; }
.ca-product-contact>p { font-size:14px; line-height:1.6; color:#4b6068; margin-bottom:12px; }
.ca-product-contact-price { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:10px; }
.ca-product-contact-price strong { font-size:22px; color:#243d46; }
.ca-product-contact-price span { font-size:13px; color:#5a676d; }
.ca-product-contact .ca-product-balance { background:#fff7e7; color:#705115; padding:9px 10px; border-radius:4px; }
.ca-product-safety { font-size:12px; line-height:1.6; color:#53646b; margin:18px 0 0; }
.ca-product-debit { margin:18px 0; background:#f5f8f8; padding:14px; border-radius:6px; }
.ca-product-debit>div { display:flex; flex-wrap:wrap; justify-content:space-between; gap:6px 12px; padding:5px 0; }
.ca-product-debit dt { font-weight:500; }.ca-product-debit dd { font-weight:700; margin:0; }
.ca-product-growth { display:flex; align-items:center; justify-content:space-between; gap:28px; border-top:1px solid #ccd9de; margin-top:28px; padding:28px 0 10px; }
.ca-product-growth>div:first-child { max-width:720px; }
.ca-product-growth h2 { font-size:22px; margin:0 0 8px; }
.ca-product-growth p { color:#50616a; font-size:15px; line-height:1.65; margin:0; }
.ca-product-growth-actions { display:grid; gap:14px; flex-shrink:0; }
.ca-product-detail #contactCard { scroll-margin-top:95px; }
.ca-product-detail .sticky-cta { z-index:1040; padding-bottom:max(10px,env(safe-area-inset-bottom)); }
.ca-product-detail .sticky-cta .ca-product-actions { grid-template-columns:1fr 1fr; max-width:1280px; margin:0 auto; }
.ca-product-detail .sticky-cta .ca-product-actions>.btn:only-child { grid-column:1 / -1; }
.ca-product-detail .sticky-cta .btn { font-size:13px; padding:8px; }
.ca-product-detail .sticky-cta .btn i { display:none; }
@media(max-width:1199.98px) {
 .ca-product-detail .ca-product-layout { grid-template-columns:minmax(0,1fr) 320px; gap:0 22px; }
 .ca-product-detail .hero-card>.row { grid-template-columns:1fr; }
 .ca-product-detail .gallery-main { height:290px; }
 .ca-product-detail .ca-announcement-summary>.row { display:flex; }
 .ca-product-detail .ca-announcement-summary>.row>div { width:33.333%; padding-right:10px; }
 .ca-product-detail .summary-box { height:100%; }
 .ca-product-detail .summary-value { font-size:16px; }
}
@media(max-width:991.98px) {
 .ca-product-detail .ca-product-layout { display:flex; flex-direction:column; }
 .ca-product-content>* { order:3; width:100%; }
 .ca-product-detail .hero-card { order:1; }
 .ca-product-aside { order:2; width:100%; }
 .ca-product-supplier { position:static; margin:20px 0; }
 .ca-product-detail .main-wrap { padding:18px; }
 .ca-product-detail .ca-detail-heading .hero-title { font-size:24px; }
 .ca-product-growth { flex-wrap:wrap; }
 .ca-product-growth-actions { width:100%; }
}
@media(max-width:575.98px) {
 .ca-product-detail .main-wrap { padding:14px; }
 .ca-product-detail .ca-detail-heading .hero-title { font-size:22px; }
 .ca-product-detail .gallery-main { height:280px; }
 .ca-product-detail .summary-value { font-size:15px; }
 .ca-product-detail .summary-label { font-size:13px; }
 .ca-product-supplier { padding:18px; }
 .ca-product-detail .sticky-cta .btn { font-size:13px; }
}
@media(min-width:992px) and (max-height:850px) {
 .ca-product-supplier { position:static; }
}
