.cb2-page { background:#f6f8fb; }
.cb2-page section { overflow:hidden; }
.cb2-page h2 { max-width:820px; }
.site-header .header-inner{position:relative;width:min(calc(100% - 40px),1840px);gap:clamp(10px,1vw,18px)}
.main-nav{min-width:0;gap:clamp(10px,.85vw,17px)}.main-nav a{font-size:13px;line-height:1.2;white-space:nowrap}
.cb2-header-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}.cb2-header-actions .button{padding-inline:12px;font-size:12px;white-space:nowrap}.cb2-login-action{background:#fff;color:#17395f;border-color:#aebfd3}
.cb2-language-switcher{display:flex;align-items:center;gap:3px;flex:0 0 auto;padding:3px;border:1px solid #cad7e6;border-radius:10px;background:#f5f8fc}.cb2-language-switcher a{display:grid;place-items:center;min-width:28px;min-height:30px;padding:4px;border-radius:7px;color:#43536a;font-size:11px;font-weight:900;letter-spacing:.04em;text-decoration:none}.cb2-language-switcher a:hover,.cb2-language-switcher a:focus-visible{background:#dbeafe;color:#1559b7}.cb2-language-switcher a[aria-current="page"]{background:#176fe7;color:#fff}
.cb2-hero { padding:72px 0 82px; background:radial-gradient(circle at 88% 12%,rgba(34,165,229,.18),transparent 31%),linear-gradient(135deg,#f9fcff,#eaf3ff); }
.cb2-hero-grid { display:grid; grid-template-columns:minmax(0,.9fr) minmax(550px,1.1fr); gap:62px; align-items:center; }
.cb2-hero h1 { max-width:740px; margin:0; font-size:clamp(43px,5.1vw,70px); line-height:.98; letter-spacing:-.05em; }
.cb2-hero h1 em { color:#176fe7; font-style:normal; }
.cb2-product-view { position:relative; min-height:560px; margin:0; padding:0 30px 62px 0; }
.cb2-real-shot{overflow:hidden;border:1px solid #cbd8e8;background:#fff;box-shadow:0 26px 62px rgba(29,65,112,.17)}.cb2-real-shot > span{display:block;padding:11px 15px;border-bottom:1px solid #dce4ee;background:#f6f8fb;color:#55657a;font-size:11px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.cb2-real-shot img{display:block;width:100%;object-fit:cover;object-position:left top}
.cb2-central-shot{border-radius:22px}.cb2-central-shot img{height:450px}
.cb2-mobile-shot{position:absolute;right:0;bottom:30px;width:218px;border:8px solid #13243a;border-radius:28px;box-shadow:0 24px 40px rgba(20,42,70,.34)}.cb2-mobile-shot > span{background:#13243a;color:#dce9f9;text-align:center}.cb2-mobile-shot img{height:405px}
.cb2-product-view figcaption,.cb2-field-preview figcaption,.cb2-map figcaption { padding:11px 15px; border-top:1px solid #e1e7ef; background:#fff; color:#5c697b; font-size:11px; }
.cb2-product-view > figcaption { position:absolute; left:0; right:28px; bottom:0; border:1px solid #cbd8e8; border-radius:0 0 18px 18px; }

.cb2-separation { background:#fff; }
.cb2-heading { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,.55fr); gap:55px; align-items:end; margin-bottom:38px; }
.cb2-heading h2 { margin-bottom:0; }.cb2-heading > p { margin:0; color:#5c697b; font-size:17px; }
.cb2-surface-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.cb2-surface-card { position:relative; min-height:490px; padding:34px; border:1px solid #cad9eb; border-radius:24px; background:#f7fbff; box-shadow:0 18px 44px rgba(31,70,120,.09); }
.cb2-surface-card.mobile { background:#f1fbf8; border-color:#bfe3d8; }
.cb2-surface-icon { display:grid; place-items:center; width:56px; height:56px; margin:48px 0 25px; border-radius:16px; background:#2678eb; color:#fff; font-size:30px; }.cb2-surface-card.mobile .cb2-surface-icon { background:#188c70; }
.cb2-surface-card h3 { margin:0 0 8px; font-size:29px; }.cb2-surface-card > p { color:#5c697b; }.cb2-surface-card ul { display:grid; gap:10px; padding:0; list-style:none; color:#4c596b; }.cb2-surface-card li::before,.cb2-checks li::before { content:"✓"; margin-right:8px; color:#168d70; font-weight:900; }
.cb2-status { display:inline-flex; width:max-content; padding:6px 9px; border-radius:999px; font-size:11px; font-weight:900; letter-spacing:.04em; text-transform:uppercase; }
.cb2-status.available { background:#dcfce7; color:#126f42; }

.cb2-complement { background:linear-gradient(135deg,#102a49,#183f68); color:#fff; }
.cb2-complement .section-kicker,.cb2-complement .cb2-heading > p { color:#b9d4f7; }
.cb2-complement .cb2-heading h2 { color:#fff; }
.cb2-complement-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.cb2-complement-grid article { min-height:230px; padding:26px; border:1px solid rgba(189,215,247,.28); border-radius:18px; background:rgba(255,255,255,.06); }
.cb2-complement-grid article.cb2-bridge { border-color:#62a7ff; background:linear-gradient(145deg,rgba(38,120,235,.44),rgba(25,95,181,.28)); box-shadow:0 18px 38px rgba(0,0,0,.16); }
.cb2-complement-grid span { color:#8fc0ff; font-size:11px; font-weight:900; letter-spacing:.12em; }
.cb2-complement-grid h3 { margin:26px 0 8px; color:#fff; font-size:21px; }
.cb2-complement-grid p { margin:0; color:#d4e3f5; font-size:13px; line-height:1.55; }
.cb2-complement-note { margin:18px 0 0; padding:16px 19px; border-left:4px solid #65d6ad; border-radius:10px; background:rgba(255,255,255,.09); color:#dbeafd; }

.cb2-clients { padding:92px 0; background:#f7faff; }
.cb2-client-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.cb2-client-grid article { min-height:210px; padding:24px; border:1px solid #dce7f8; border-radius:18px; background:#fff; box-shadow:0 10px 26px rgba(16,49,91,.07); }
.cb2-client-grid h3 { margin:0 0 12px; color:#102d59; font-size:1.13rem; }
.cb2-client-grid p,.cb2-client-note { margin:0; color:#4c6182; line-height:1.62; }
.cb2-client-note { max-width:920px; margin:28px auto 0; text-align:center; font-weight:600; }

.cb2-flow { background:#edf5ff; }
.cb2-flow-track { position:relative; display:grid; grid-template-columns:repeat(6,1fr); gap:10px; margin:0; padding:0; list-style:none; }
.cb2-flow-track::before { content:""; position:absolute; left:6%; right:6%; top:28px; height:2px; background:#bed7f8; }
.cb2-flow-track li { position:relative; z-index:1; display:grid; justify-items:center; gap:7px; text-align:center; }
.cb2-flow-track span { display:grid; place-items:center; width:56px; height:56px; border:5px solid #edf5ff; border-radius:50%; background:#176fe7; color:#fff; font-size:11px; font-weight:900; box-shadow:0 0 0 1px #aacbf7; }
.cb2-flow-track b{margin-top:5px}.cb2-flow-track small{color:#5c697b;font-size:11px;line-height:1.45}
.cb2-flow-note { display:flex; gap:18px; align-items:center; margin-top:35px; padding:16px 20px; border-left:4px solid #2678eb; border-radius:10px; background:#fff; color:#526173; font-size:12px; }.cb2-flow-note b{color:#1e2d40;white-space:nowrap}

.cb2-field { background:#fff; }
.cb2-feature-grid,.cb2-supervision-grid { display:grid; grid-template-columns:minmax(310px,.82fr) minmax(560px,1.18fr); gap:65px; align-items:center; }
.cb2-intro { color:#5c697b; font-size:18px; }
.cb2-mini-cards { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:28px; }.cb2-mini-cards article{display:grid;gap:4px;padding:15px;border:1px solid #d5dfeb;border-radius:12px;background:#f8fafc}.cb2-mini-cards b{font-size:13px}.cb2-mini-cards span{color:#5c697b;font-size:11px}
.cb2-field-preview { margin:0; overflow:hidden; border:1px solid #cbd8e8; border-radius:22px; background:#f7f9fc; box-shadow:0 20px 52px rgba(31,70,120,.14); }
.cb2-real-mobile-preview{max-width:430px;margin-inline:auto}.cb2-real-mobile-preview > header{display:flex;justify-content:space-between;gap:12px;padding:14px 17px;background:#102a49;color:#fff;font-size:11px}.cb2-real-mobile-preview > header span{color:#87e9c4}.cb2-real-mobile-preview > div{max-height:675px;overflow:hidden;background:#eef3f9}.cb2-real-mobile-preview img{display:block;width:100%;height:auto}

.cb2-central { background:#f2f7fd; }
.cb2-capability-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.cb2-capability-grid article{min-height:210px;padding:24px;border:1px solid #cfddec;border-top:3px solid #2678eb;border-radius:17px;background:#fff}.cb2-capability-grid span{color:#176fe7;font-size:11px;font-weight:900}.cb2-capability-grid h3{margin:30px 0 8px;font-size:20px}.cb2-capability-grid p{margin:0;color:#5c697b;font-size:13px}
.cb2-caution{display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:center;margin-top:18px;padding:18px 20px;border-left:4px solid #f0a310;border-radius:10px;background:#fff8e8;color:#755317}.cb2-caution p{margin:0;font-size:12px}.cb2-caution b{color:#593d08;white-space:nowrap}

.cb2-supervision { background:#fff; }
.cb2-checks { display:grid;gap:9px;padding:0;list-style:none;color:#4f5d70}.cb2-sensitive{margin-top:22px;padding:14px;border-left:4px solid #f0a310;background:#fff8e8;color:#765313;font-size:12px}
.cb2-metrics { display:grid; gap:7px; margin-top:22px; padding:18px; border:1px solid #bcd6f6; border-radius:14px; background:#eef6ff; color:#29476e; }
.cb2-metrics strong { color:#123d75; font-size:15px; }
.cb2-metrics p { margin:0; line-height:1.55; }
.cb2-metrics small { color:#5c6f88; line-height:1.45; }
.cb2-map { margin:0;overflow:hidden;border:1px solid #cbd8e8;border-radius:22px;background:#fff;box-shadow:0 20px 52px rgba(31,70,120,.14)}.cb2-map > header{display:flex;justify-content:space-between;padding:15px 17px;border-bottom:1px solid #dbe3ed;background:#f6f8fb;font-size:12px}.cb2-map > header span{color:#0f7a60;font-size:11px}
.cb2-map-body{display:grid;grid-template-columns:155px 1fr;min-height:420px}.cb2-map-body aside{display:grid;align-content:start;gap:8px;padding:15px;border-right:1px solid #dbe3ed}.cb2-map-body label{display:flex;justify-content:space-between;padding:11px;border-radius:9px;background:#edf5ff;color:#596779;font-size:11px}.cb2-map-body label b{color:#176fe7;font-size:17px}.cb2-map-body label.alert{background:#fff0ef}.cb2-map-body label.alert b{color:#d43131}
.cb2-map-canvas{position:relative;min-height:420px;overflow:hidden;background:#e8f1f1}.cb2-map-fallback{position:absolute;inset:0;display:grid;place-items:center;margin:0;padding:25px;color:#5f7084;text-align:center}.cb2-map-canvas .leaflet-control-attribution{font-size:11px}.cb2-map-canvas .leaflet-popup-content{font-size:12px;line-height:1.45}.cb2-map-canvas .leaflet-popup-content strong{display:block;color:#143e72}.cb2-map-canvas .leaflet-popup-content small{display:block;margin-top:3px;color:#5c697b}.cb2-map-canvas.is-ready .cb2-map-fallback{display:none}

.cb2-install { background:#edf5ff; }
.cb2-install-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:0;padding:0;list-style:none}.cb2-install-steps li{display:grid;align-content:start;gap:8px;min-height:225px;padding:20px;border:1px solid #c8daf0;border-radius:17px;background:#fff}.cb2-install-steps span{display:grid;place-items:center;width:38px;height:38px;margin-bottom:16px;border-radius:12px;background:#176fe7;color:#fff;font-size:12px;font-weight:900}.cb2-install-steps b{font-size:15px}.cb2-install-steps small{color:#5c697b;font-size:11px}
.cb2-install-notes{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:20px}.cb2-install-notes article{padding:18px;border:1px solid #d2deeb;border-radius:14px;background:#f9fbfd}.cb2-install-notes b{font-size:13px}.cb2-install-notes p{margin:6px 0 0;color:#5c697b;font-size:11px}
.cb2-cta{text-align:center;background:linear-gradient(135deg,#102a49,#174878);color:#fff}.cb2-cta h2{margin-inline:auto}.cb2-cta > .shell > p:not(.section-kicker){max-width:720px;margin:20px auto 0;color:#ccdaeb}.cb2-cta .hero-actions{justify-content:center}.cb2-cta .button-ghost{border-color:#7697bc;background:transparent;color:#fff}
.cb2-subscription{background:#f5f7f9}.cb2-pricing{display:grid;grid-template-columns:1fr 1fr;gap:18px}.cb2-pricing article{display:flex;flex-direction:column;padding:30px;border:1px solid #d1dcea;border-radius:20px;background:#fff}.cb2-pricing article.featured{border:2px solid #2678eb;box-shadow:0 20px 45px rgba(38,120,235,.13)}.cb2-pricing article > p{margin:0 0 7px;color:#176fe7;font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.cb2-pricing h3{margin:0;font-size:24px}.cb2-pricing article > strong{margin-top:22px;font-size:30px}.cb2-pricing strong small{color:#5c697b;font-size:12px}.cb2-pricing article > span{color:#5c697b;font-size:12px}.cb2-pricing ul{display:grid;gap:9px;flex:1;padding:0;margin:22px 0;list-style:none;color:#526071}.cb2-pricing li::before{content:"✓";margin-right:8px;color:#168d70;font-weight:900}.cb2-pricing .button{width:100%}.cb2-price-note{margin-top:18px;padding-top:16px;border-top:1px solid #d8e1ec;color:#5c697b;font-size:12px}
.cb2-page .footer-grid span{color:#5c697b;font-size:13px}

@media (max-width:1024px){
  .site-header .header-inner{width:min(calc(100% - 40px),1180px)}
  .main-nav{position:absolute;left:0;right:0;top:calc(100% + 8px);display:none;margin-left:0;flex-direction:column;align-items:stretch;gap:0;padding:12px;border:1px solid #d9dee5;border-radius:14px;background:#fff;box-shadow:0 18px 48px rgba(33,50,75,.12)}
  .main-nav.is-open{display:flex}.main-nav a{min-height:48px;padding:15px 13px;white-space:normal}
  .menu-button{display:block}
}
@media (max-width:1080px){
  .cb2-hero-grid,.cb2-feature-grid,.cb2-supervision-grid{grid-template-columns:1fr}
  .cb2-product-view{max-width:780px}
  .cb2-heading{grid-template-columns:1fr;gap:14px}
  .cb2-flow-track{grid-template-columns:repeat(3,1fr);row-gap:28px}.cb2-flow-track::before{display:none}
  .cb2-capability-grid{grid-template-columns:repeat(2,1fr)}
  .cb2-complement-grid{grid-template-columns:1fr}
  .cb2-client-grid{grid-template-columns:1fr 1fr}
  .cb2-install-steps{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:720px){
  .site-header .header-inner{width:min(calc(100% - 28px),1180px);gap:10px}
  .cb2-hero{padding:48px 0 58px}.cb2-hero h1{font-size:clamp(39px,12.5vw,56px)}
  .cb2-product-view{min-height:735px;padding:0 0 56px}.cb2-product-view > figcaption{right:0}.cb2-central-shot img{height:315px}.cb2-mobile-shot{right:50%;bottom:30px;width:210px;transform:translateX(50%)}
  .cb2-surface-grid,.cb2-capability-grid,.cb2-pricing,.cb2-client-grid{grid-template-columns:1fr}.cb2-surface-card{min-height:auto}.cb2-surface-icon{margin-top:36px}.cb2-complement-grid article{min-height:auto}
  .cb2-flow-track{grid-template-columns:repeat(2,1fr)}.cb2-flow-note{align-items:flex-start;flex-direction:column;gap:5px}
  .cb2-mini-cards{grid-template-columns:1fr}
  .cb2-caution{grid-template-columns:1fr;gap:7px}.cb2-caution b{white-space:normal}
  .cb2-map-body{grid-template-columns:1fr}.cb2-map-body aside{grid-template-columns:repeat(3,1fr);border-right:0;border-bottom:1px solid #dbe3ed}.cb2-map-canvas{min-height:390px}
  .cb2-install-steps,.cb2-install-notes{grid-template-columns:1fr}.cb2-install-steps li{min-height:auto}
  .cb2-header-actions{margin-left:0}.cb2-login-action{min-height:44px;padding:9px 12px;font-size:12px}.cb2-language-switcher a{min-width:28px;min-height:44px}
}
@media (max-width:440px){
  .cb2-flow-track{grid-template-columns:1fr}.cb2-surface-card{padding:24px}.cb2-map-body aside{grid-template-columns:1fr}.cb2-heading > p,.cb2-intro{font-size:16px}.cb2-header-actions .cb2-login-action,.cb2-header-actions .cb2-tel{display:none}
}
@media (prefers-reduced-motion:reduce){.cb2-page *{scroll-behavior:auto!important;transition:none!important}}

/* CB-CHG-20260902-127 — accès direct à l'application depuis le menu compact. */
.main-nav .cb2-nav-app-action{display:none}
@media (max-width:1024px){
  .main-nav .cb2-nav-app-action{display:flex;align-items:center;justify-content:center;margin-top:8px;min-height:48px;border-radius:10px;background:#176fe7;color:#fff;font-weight:900;text-align:center}
  .main-nav .cb2-nav-app-action:hover,.main-nav .cb2-nav-app-action:focus-visible{background:#0f5fc9;color:#fff}
}

/* ------------------------------------------------------------------ *
 * CB-CHG-20260907-149 — mise en vente : telephone visible, grille
 * tarifaire reelle, barre d'action sur telephone.
 * ------------------------------------------------------------------ */

/* Telephone dans l'entete */
.cb2-tel{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border:1px solid #cad7e6;border-radius:10px;background:#f5f8fc;color:#10365f;font-size:13px;font-weight:800;text-decoration:none;white-space:nowrap}
.cb2-tel:hover,.cb2-tel:focus-visible{background:#dbeafe;color:#1559b7}
.cb2-tel span{color:#176fe7}
.cb2-hero-tel{white-space:nowrap}
.cb2-cta-tel{border-color:rgba(255,255,255,.55);background:transparent;color:#fff}
.cb2-cta-tel:hover{background:rgba(255,255,255,.12);color:#fff}
.footer-tel{font-weight:800}

/* Etiquette d'etat sur un titre */
.cb2-tag{display:inline-block;margin-left:8px;padding:3px 8px;border:1px solid rgba(189,215,247,.5);border-radius:999px;background:rgba(255,255,255,.1);color:#cfe2fb;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;vertical-align:middle}

/* Grille tarifaire */
.cb2-tarifs{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.cb2-tarifs article{display:flex;flex-direction:column;gap:4px;padding:22px 20px;border:1px solid #d1dcea;border-radius:18px;background:#fff}
.cb2-tarifs article.featured{border:2px solid #2678eb;box-shadow:0 18px 40px rgba(38,120,235,.14)}
.cb2-tarifs article.devis{border-style:dashed;background:#f6f9fe}
.cb2-tarifs b{color:#1568dc;font-size:12px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.cb2-tarifs strong{font-size:30px;letter-spacing:-.6px;line-height:1.1}
.cb2-tarifs span{color:#5c697b;font-size:13px}

/* Prestations complementaires */
.cb2-services{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:16px}
.cb2-services article{padding:20px;border:1px solid #dbe3ee;border-radius:16px;background:#f7fafd}
.cb2-services b{display:block;color:#10365f;font-size:14px;font-weight:800}
.cb2-services strong{display:block;margin:6px 0 8px;color:#176fe7;font-size:20px;letter-spacing:-.3px}
.cb2-services strong small{color:#5a6b80;font-size:12px;font-weight:700;letter-spacing:0}
.cb2-services p{margin:0;color:#5a6b80;font-size:13px;line-height:1.5}

.cb2-price-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
.cb2-price-actions .button{min-width:210px}

/* Barre d'action permanente sur telephone */
.cb2-mobile-bar{display:none}
@media (max-width:1024px){
  .cb2-tarifs,.cb2-services{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:560px){
  .cb2-tarifs{grid-template-columns:1fr}
}
@media (max-width:720px){
  .cb2-services{grid-template-columns:1fr}
  .cb2-price-actions .button{flex:1 1 100%;min-width:0}
  .cb2-mobile-bar{position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;gap:10px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));border-top:1px solid #d7e0ec;background:rgba(255,255,255,.97);box-shadow:0 -8px 24px rgba(23,45,78,.12)}
  .cb2-mobile-bar .button{flex:1;min-height:48px;padding-inline:10px;font-size:14px}
  .cb2-page{padding-bottom:78px}
  /* CB-CHG-20260918-164 : cibles tactiles d'au moins 44 px (pied de page, marque). */
  .footer-grid > div:not(:first-child){gap:0}
  .footer-grid > div > strong{margin-bottom:4px}
  .footer-grid a{display:inline-flex;align-items:center;min-height:44px}
  .brand{min-height:44px}
}
/* CB-CHG-20260918-164 : sous 960 px l'entête n'a pas la place du téléphone — elle débordait
   (défilement de côté sur tablette, bouton de menu écrasé). Le numéro reste dans l'accroche,
   l'appel final, le pied de page et la barre fixe du téléphone. */
@media (max-width:960px){.cb2-header-actions .cb2-tel{display:none}}
/* Pictogramme telephone dessine, jamais un caractere : rendu identique partout. */
.cb2-tel span,.cb2-hero-tel span,.cb2-cta-tel span,.cb2-price-actions .button span,.cb2-mobile-bar .button span,.cb-access-tel span,.footer-tel span,.cb-access-footer a span,.cb2-404 .button span{display:inline-block;width:15px;height:15px;margin-right:7px;font-size:0;line-height:0;background:currentColor;flex:none;-webkit-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8c1.4 2.8 3.8 5.2 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.2 1.2.4 2.4.6 3.6.6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1C10.5 21 3 13.5 3 4c0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.3.2 2.5.6 3.6.1.4 0 .8-.2 1l-2.3 2.2z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8c1.4 2.8 3.8 5.2 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.2 1.2.4 2.4.6 3.6.6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1C10.5 21 3 13.5 3 4c0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.3.2 2.5.6 3.6.1.4 0 .8-.2 1l-2.3 2.2z'/%3E%3C/svg%3E") center/contain no-repeat}

/* ------------------------------------------------------------------ *
 * CB-CHG-20260911-152 — le démonstrateur public (demo.caly-bornes.fr).
 * ------------------------------------------------------------------ */
.cb2-demo{background:#fff}
.cb2-demo-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.62fr);gap:34px;align-items:start}
.cb2-demo-grid h3{margin:0 0 14px;font-size:22px}
.cb2-demo-list{display:grid;gap:12px;margin:0;padding:0;list-style:none;color:#4f5d70;font-size:14px;line-height:1.6}
.cb2-demo-list li{padding:14px 16px;border:1px solid #d5dfeb;border-left:4px solid #2678eb;border-radius:12px;background:#f8fafc}
.cb2-demo-list b{color:#1e2d40}
.cb2-demo-card{display:grid;gap:10px;padding:28px;border:2px solid #2678eb;border-radius:20px;background:linear-gradient(145deg,#f4f9ff,#e9f2ff);box-shadow:0 20px 45px rgba(38,120,235,.13)}
.cb2-demo-card .section-kicker{margin:0}
.cb2-demo-card strong{color:#10365f;font-size:24px;letter-spacing:-.3px;word-break:break-all}
.cb2-demo-card p{margin:0;color:#4c6182;font-size:14px}
.cb2-demo-card .button{width:100%;margin-top:6px}
.cb2-demo-card small{color:#5c697b;font-size:12px}
@media (max-width:1080px){.cb2-demo-grid{grid-template-columns:1fr}}

/* Caly-Branch-14 : keep every navigation entry accessible on laptop widths. */
@media (max-width:1700px){
 .main-nav{position:absolute;left:0;right:0;top:calc(100% + 8px);display:none;margin-left:0;flex-direction:column;align-items:stretch;gap:0;padding:12px;border:1px solid #d9dee5;border-radius:14px;background:#fff;box-shadow:0 18px 48px rgba(33,50,75,.12)}
 .main-nav.is-open{display:flex}.main-nav a{min-height:48px;padding:15px 13px;white-space:normal}
 .menu-button{display:block}
 .main-nav .cb2-nav-app-action{display:flex;align-items:center;justify-content:center;margin-top:8px;min-height:48px;border-radius:10px;background:#176fe7;color:#fff;font-weight:900;text-align:center}
 .main-nav .cb2-nav-app-action:hover{background:#0f5fc9}
}
/* CB-151 — clarification commerciale et Académie publique */
.cb151-text-link {
  align-self: center;
  color: #174fbd;
  font-weight: 800;
  padding: .75rem .25rem;
  text-underline-offset: .25rem;
}

.menu-button { min-height: 44px; }
.button-small { min-height: 44px; }

.cb151-journey {
  padding: clamp(4rem, 7vw, 7rem) 0;
  background: #fff;
}

.cb151-journey-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
  padding: 0;
  margin: 2.25rem 0 0;
  list-style: none;
  counter-reset: none;
}

.cb151-journey-grid li {
  position: relative;
  min-height: 16.5rem;
  padding: 1.5rem;
  border: 1px solid #d8e0eb;
  border-top: 4px solid #2674ea;
  border-radius: 1.25rem;
  background: linear-gradient(180deg, #f9fbff 0%, #fff 100%);
}

.cb151-journey-grid li::after {
  content: "→";
  position: absolute;
  right: -.9rem;
  top: 2.3rem;
  z-index: 2;
  width: 1.8rem;
  height: 1.8rem;
  display: grid;
  place-items: center;
  border-radius: 999px;
  color: #174fbd;
  background: #fff;
  box-shadow: 0 3px 12px rgba(18, 42, 74, .14);
  font-weight: 900;
}

.cb151-journey-grid li:last-child::after { display: none; }
.cb151-journey-grid span { color: #176fe7; font-weight: 900; letter-spacing: .08em; }
.cb151-journey-grid h3 { margin: 1rem 0 .7rem; font-size: clamp(1.15rem, 1.6vw, 1.45rem); }
.cb151-journey-grid p { margin: 0; color: #4c5c71; line-height: 1.55; }
.cb151-journey-grid small { position: absolute; left: 1.5rem; right: 1.5rem; bottom: 1.35rem; color: #174fbd; font-weight: 800; }

.cb151-interface-note {
  display: flex;
  gap: .75rem 1.5rem;
  align-items: baseline;
  margin-top: 1.25rem;
  padding: 1rem 1.25rem;
  border-radius: 1rem;
  color: #17304f;
  background: #eaf3ff;
}

.cb151-interface-note span { color: #41536a; }

.cb151-boundary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem;
  margin: 2rem 0 1.25rem;
}

.cb151-boundary-grid article {
  padding: clamp(1.4rem, 3vw, 2rem);
  border-radius: 1.3rem;
  border: 1px solid #d8e0eb;
  background: #fff;
}

.cb151-boundary-grid .cb151-do { border-top: 4px solid #16875b; }
.cb151-boundary-grid .cb151-dont { border-top: 4px solid #f0a128; }
.cb151-boundary-grid h3 { margin: 0 0 1rem; color: #142236; }
.cb151-boundary-grid ul { display: grid; gap: .75rem; margin: 0; padding-left: 1.3rem; color: #405268; }

.cb151-academy {
  padding: clamp(4rem, 7vw, 7rem) 0;
  background: linear-gradient(135deg, #edf6ff 0%, #f7f4ff 100%);
}

.cb151-academy-grid {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(30rem, 1.1fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: center;
}

.cb151-academy-preview {
  display: grid;
  gap: 1rem;
}

.cb151-academy-preview article {
  padding: 1.5rem;
  border: 1px solid rgba(38, 116, 234, .18);
  border-radius: 1.25rem;
  background: rgba(255,255,255,.88);
  box-shadow: 0 12px 35px rgba(18, 42, 74, .08);
}

.cb151-academy-preview span {
  display: inline-block;
  margin-bottom: .65rem;
  color: #174fbd;
  font-weight: 900;
  font-size: .78rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.cb151-academy-preview h3 { margin: 0 0 .4rem; }
.cb151-academy-preview p { margin: 0; color: #4c5c71; }

.cb151-units {
  margin-top: 1.4rem;
  padding: 1.25rem;
  border: 1px solid #d8e0eb;
  border-radius: 1.2rem;
  background: #f8fafc;
}

.cb151-units > strong { display: block; margin-bottom: 1rem; font-size: 1.05rem; }
.cb151-units dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; margin: 0; }
.cb151-units dl div { padding: .9rem; border-radius: .8rem; background: #fff; }
.cb151-units dt { color: #174fbd; font-weight: 900; }
.cb151-units dd { margin: .25rem 0 0; color: #4c5c71; font-size: .92rem; line-height: 1.45; }
.cb151-units p { margin: 1rem 0 0; color: #405268; font-size: .92rem; }

@media (max-width: 960px) {
  .cb151-journey-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cb151-journey-grid li:nth-child(2)::after { display: none; }
  .cb151-academy-grid { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
  .cb151-journey-grid,
  .cb151-boundary-grid,
  .cb151-units dl { grid-template-columns: 1fr; }
  .cb151-journey-grid li { min-height: 0; padding-bottom: 1.5rem; }
  .cb151-journey-grid li::after { content: "↓"; left: 1.5rem; right: auto; top: auto; bottom: -.9rem; }
  .cb151-journey-grid li:nth-child(2)::after { display: grid; }
  .cb151-journey-grid li:last-child::after { display: none; }
  .cb151-journey-grid small { position: static; display: block; margin-top: 1rem; }
  .cb151-interface-note { align-items: flex-start; flex-direction: column; }
  .cb151-academy-grid { min-width: 0; }
  .cb151-academy .hero-actions { align-items: stretch; }
  .cb151-academy .button { width: 100%; text-align: center; }
}
