/* NWS Laser — corrections V2 : composants partagés, sans masquer les débordements */
:root{--nws-v2-link-blue:#0879a5;--nws-v2-dark:#0b1133}
.nws-site :where(main,section,article,header,footer,div,figure,form,fieldset){min-inline-size:0}
.nws-site main :where(h1,h2,h3,h4,p,li,dt,dd){hyphens:none;-webkit-hyphens:none;word-break:normal}
.nws-site main :where(p,li,dt,dd){overflow-wrap:break-word}
.nws-site main :where(a:not([class]),a.nws-text-link,a.nws-text-link-light,a.nws-datamatrix-text-link,a.nws-datamatrix-inline-link,a.nws-nano-tech-link){text-decoration:underline;text-underline-offset:.2em;text-decoration-thickness:1px}
.nws-site main :where(p,li,dd) a:not(.nws-button){text-decoration:underline;text-underline-offset:.2em}
.nws-site main :where(h1,h2,h3){text-wrap:pretty}
.nws-site :where(a,button,input,select,textarea):focus-visible{outline:3px solid #0879a5;outline-offset:3px}
/* Même modèle d'application pour les deux LaserKube. */
:is(.nws-product-page-laserkube-x,.nws-product-page-laserkube-max) .nws-nano-apps-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:1px}
:is(.nws-product-page-laserkube-x,.nws-product-page-laserkube-max) .nws-nano-apps-grid-3>article{min-height:0;display:flex;flex-direction:column;justify-content:flex-start;padding:clamp(24px,2.5vw,40px)}
:is(.nws-product-page-laserkube-x,.nws-product-page-laserkube-max) .nws-nano-apps-grid-3 h3{margin-block:0 16px;font-size:clamp(24px,2.4vw,34px);line-height:1.15;overflow-wrap:normal}
/* Une même ligne de départ pour les titres des principes. */
.nws-expertise-principles{align-items:stretch;grid-auto-rows:auto}
.nws-expertise-principles>.nws-expertise-principle,.nws-expertise-principles>.nws-expertise-principle-intro{min-height:0;display:flex;flex-direction:column;justify-content:flex-start;padding:clamp(26px,2.5vw,40px);align-self:stretch}
.nws-expertise-principles>.nws-expertise-principle>span{margin:0 0 20px;flex:0 0 auto}
.nws-expertise-principles>.nws-expertise-principle h3,.nws-expertise-principles>.nws-expertise-principle-intro h2{margin-top:0;line-height:1.12}
.nws-expertise-principles>.nws-expertise-principle h3{font-size:clamp(24px,2.1vw,32px)}
.nws-expertise-principles>.nws-expertise-principle-intro h2{font-size:clamp(30px,3vw,45px)}
.nws-plastics-guide .nws-guide-sources{grid-template-columns:repeat(5,minmax(0,1fr))}
.nws-plastics-guide .nws-guide-sources>.nws-expertise-principle-intro{grid-column:auto}
.nws-plastics-guide .nws-guide-sources h2,.nws-plastics-guide .nws-guide-sources h3{font-size:clamp(22px,1.85vw,28px)}
.nws-v2-principles-title-row{grid-template-columns:repeat(4,minmax(0,1fr))}
.nws-v2-principles-title-row>.nws-expertise-principle-intro{grid-column:1/-1!important}
.nws-v2-principles-title-row>.nws-expertise-principle-intro h2{max-width:850px}
/* CTA commun : fond foncé, texte clair, y compris dans les quatre expertises. */
.nws-expertise-callout :is(.nws-button,.nws-button-primary,.nws-button-light){background:var(--nws-v2-dark)!important;color:#fff!important;border-color:var(--nws-v2-dark)!important}
.nws-expertise-callout :is(.nws-button,.nws-button-primary,.nws-button-light):hover{background:#18366b!important;color:#fff!important;border-color:#18366b!important}
.nws-capacity-tool .nws-text-link-light,.nws-capacity-tool .nws-home-config-cta .nws-button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:48px;padding:14px 20px;background:#8ed7ff!important;color:#09112f!important;border:1px solid #8ed7ff!important;text-decoration:none;white-space:normal;line-height:1.35}
.nws-capacity-tool .nws-text-link-light:hover,.nws-capacity-tool .nws-home-config-cta .nws-button:hover{background:#b8e6ff!important}
/* Les colonnes et intitulés des tableaux restent présents : défilement local, jamais masquage. */
.nws-v2-scroll-region{max-inline-size:100%;min-inline-size:0;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:auto;scrollbar-color:#0879a5 #dce8ed}
.nws-v2-scroll-region:focus-visible{outline:3px solid #0879a5;outline-offset:4px}
.nws-v2-scroll-region table{margin-bottom:0}
.nws-site .nws-v2-comparison .nws-compare-row{display:grid!important;grid-template-columns:repeat(var(--nws-v2-columns,4),minmax(0,1fr))!important;align-items:start;gap:20px;min-height:0;padding-block:20px;line-height:1.5}
.nws-site .nws-v2-comparison .nws-compare-row>*{min-inline-size:0;grid-column:auto!important;align-self:start}
.nws-v2-comparison .nws-compare-head{display:grid!important}
.nws-v2-scroll-hint{display:none;margin:0 0 10px;font:500 13px/1.5 var(--nws-body);color:inherit}
.nws-v2-scroll-active>.nws-v2-scroll-hint{display:block}
.nws-v2-table-wrap{margin-block:24px 34px}
.nws-v2-table-wrap+.nws-expertise-footnote{margin-top:24px}
@media(max-width:1100px){
 .nws-plastics-guide .nws-guide-sources,.nws-v2-principles-title-row{grid-template-columns:repeat(2,minmax(0,1fr))}
 .nws-plastics-guide .nws-guide-sources>.nws-expertise-principle-intro{grid-column:1/-1}
 .nws-expertise-principles{grid-template-columns:repeat(2,minmax(0,1fr))}
 .nws-expertise-principles>.nws-expertise-principle-intro{grid-column:1/-1}
 .nws-expertise-case-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .nws-expertise-callout{flex-wrap:wrap;gap:28px}
}
@media(max-width:767px){
 .nws-expertise-principles,.nws-plastics-guide .nws-guide-sources,.nws-v2-principles-title-row,.nws-expertise-case-grid{grid-template-columns:1fr}
 .nws-expertise-principles>.nws-expertise-principle-intro{grid-column:auto}
 .nws-expertise-principles>.nws-expertise-principle{min-height:0}
 .nws-expertise-principles{padding-inline:20px;padding-bottom:42px}
 .nws-expertise-case{min-height:0}
 .nws-expertise-case>span{margin-bottom:24px}
 .nws-expertise-detail-hero h1{font-size:clamp(35px,9.6vw,56px);line-height:1.03;letter-spacing:-.04em}
 .nws-expertise-statement h2,.nws-expertise-callout h2,.nws-expertise-compare h2,.nws-mopa-faq h2{font-size:clamp(30px,8vw,42px);line-height:1.12;letter-spacing:-.04em}
 .nws-site .nws-v2-comparison .nws-compare-row{min-inline-size:var(--nws-v2-table-width,760px);font-size:14px}
 :is(.nws-product-page-laserkube-x,.nws-product-page-laserkube-max) .nws-nano-apps-grid-3{grid-template-columns:1fr}
 .nws-site :is(.nws-button,.nws-lead-trigger,.nws-menu-toggle,.nws-lead-dialog-close,.nws-cmp-btn,.nws-mobile-nav-cta){min-height:44px}
 .nws-site :is(.nws-button,.nws-lead-trigger){white-space:normal;max-width:100%;line-height:1.4}
 .nws-lead-dialog-panel{width:100%;max-height:calc(100svh - 16px)}
 .nws-lead-dialog-close{min-width:44px;min-height:44px}
 .nws-lead-form input,.nws-lead-form select,.nws-lead-form textarea,.nws-application-form input,.nws-application-form select{font-size:16px;max-inline-size:100%;min-inline-size:0}
 .nws-nav-list a{min-height:44px;display:flex;align-items:center}
 .nws-header-actions{min-inline-size:0}
 .nws-cmp-layer .nws-cmp-actions{flex-wrap:wrap;gap:8px}
 .nws-cmp-layer .nws-cmp-actions button{min-height:44px}
}
@media(prefers-reduced-motion:reduce){.nws-site *, .nws-site *::before,.nws-site *::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* Même hauteur de repère avant chaque titre, sans alignement par le bas. */
.nws-expertise-principles>.nws-expertise-principle-intro>.nws-eyebrow,.nws-expertise-principles>.nws-expertise-principle>span{min-height:42px;line-height:1.15;margin:0 0 20px;display:flex;align-items:flex-start}
.nws-site main .nws-v2-heading-on-light em{color:#0879a5!important}
.nws-site main a.nws-v2-link-on-light:not(.nws-button):not(.nws-lead-trigger){color:#08688b;text-decoration:underline;text-underline-offset:.2em}

/* Le panneau Ressources ne doit pas élargir la page à 768 px, même fermé. */
@media(min-width:761px) and (max-width:1100px){
 .nws-site-header .nws-primary-nav,.nws-site-header .nws-nav-resources{position:static}
 .nws-site-header .nws-nav-resources-menu,.nws-site-header .nws-nav-resources:hover .nws-nav-resources-menu,.nws-site-header .nws-nav-resources:focus-within .nws-nav-resources-menu,.nws-site-header .nws-nav-resources.is-open .nws-nav-resources-menu{left:24px;right:24px;top:100%;width:auto;max-width:calc(100vw - 48px);transform:none}
 .nws-site-header .nws-nav-resources-trigger{width:32px;height:32px}
}
@media(max-width:760px){.nws-site-header .nws-nav-resources-trigger{min-width:44px;min-height:44px}}

/* Les numéros étaient positionnés en absolu : repères et titres doivent rester séparés. */
.nws-site main .nws-expertise-principles>.nws-expertise-principle>span{position:static;inset:auto;min-height:24px;margin:0 0 20px;display:flex;align-items:flex-start}
.nws-site main .nws-expertise-principles>.nws-expertise-principle-intro>.nws-eyebrow{min-height:24px;margin:0 0 20px;display:flex;align-items:flex-start}

/* Cinq repères plastiques : présentation et photo au-dessus, puis cinq cartes sur une ligne. */
.nws-plastics-guide .nws-guide-sources>.nws-expertise-principle-intro{grid-column:1/3;grid-row:auto;order:-2}
.nws-plastics-guide .nws-guide-sources>.nws-guide-sources-visual{grid-column:3/-1;grid-row:auto;order:-1;align-self:stretch;min-height:240px;max-height:340px;margin:0;display:flex;align-items:center;justify-content:center}
.nws-plastics-guide .nws-guide-sources>.nws-guide-sources-visual img{width:100%;height:100%;max-height:340px;object-fit:contain}
.nws-plastics-guide .nws-guide-sources>.nws-expertise-principle{grid-column:auto;grid-row:auto;order:0}
@media(min-width:768px) and (max-width:1100px){
 .nws-plastics-guide .nws-guide-sources{grid-template-columns:repeat(6,minmax(0,1fr))}
 .nws-plastics-guide .nws-guide-sources>.nws-expertise-principle-intro,.nws-plastics-guide .nws-guide-sources>.nws-guide-sources-visual{grid-column:1/-1}
 .nws-plastics-guide .nws-guide-sources>.nws-expertise-principle{grid-column:span 2}
 .nws-plastics-guide .nws-guide-sources>.nws-expertise-principle:nth-of-type(n+4){grid-column:span 3}
}
@media(max-width:767px){
 .nws-site main .nws-hub-hero{padding-inline:20px;grid-template-columns:minmax(0,1fr)}
 .nws-site main .nws-hub-hero h1{font-size:clamp(32px,9.2vw,46px);line-height:1.05;overflow-wrap:normal}
 .nws-plastics-guide .nws-guide-sources>.nws-expertise-principle-intro,.nws-plastics-guide .nws-guide-sources>.nws-guide-sources-visual,.nws-plastics-guide .nws-guide-sources>.nws-expertise-principle{grid-column:1/-1}
 .nws-plastics-guide .nws-guide-sources>.nws-guide-sources-visual{min-height:0;max-height:240px}
 .nws-plastics-guide .nws-guide-sources>.nws-guide-sources-visual img{max-height:240px}
}

.nws-plastics-guide .nws-guide-sources>.nws-guide-sources-visual{flex-direction:column;max-height:none;justify-content:flex-start}
.nws-plastics-guide .nws-guide-sources>.nws-guide-sources-visual img{display:block;height:260px;max-height:260px;object-fit:contain}
.nws-plastics-guide .nws-guide-sources>.nws-guide-sources-visual figcaption{width:100%;padding:14px 18px;margin:0;color:#eef4ff;background:#0b1133;font-size:14px;line-height:1.5}
@media(max-width:767px){.nws-plastics-guide .nws-guide-sources>.nws-guide-sources-visual img{height:180px;max-height:180px}}

.nws-site-header .nws-nav-resources.nws-v2-resources-closed .nws-nav-resources-menu{opacity:0!important;visibility:hidden!important;pointer-events:none!important}


/* Page: /applications/decapage-laser/ */
/* /applications/decapage-laser/ — à charger après les CSS existants.
   Aucun style ne sort de la classe racine ajoutée dans <main>.
   Les grilles existantes, tous les contenus et les médias sont conservés. */

.nws-v2-applications-decapage-laser,
.nws-v2-applications-decapage-laser * {
  word-break: normal;
  overflow-wrap: normal;
  -webkit-hyphens: none;
  hyphens: none;
}

/* Annule explicitement la césure des CSS applications existants. */
.nws-v2-applications-decapage-laser .nws-hub-hero h1,
.nws-v2-applications-decapage-laser .nws-section-title h2,
.nws-v2-applications-decapage-laser .nws-home-config-cta h2,
.nws-v2-applications-decapage-laser .nws-case-facts dd {
  word-break: normal;
  overflow-wrap: normal;
  -webkit-hyphens: none;
  hyphens: none;
}

.nws-v2-applications-decapage-laser .nws-product-lead > *,
.nws-v2-applications-decapage-laser .nws-home-config-cta > *,
.nws-v2-applications-decapage-laser .nws-decapage-faq > article {
  min-width: 0;
}

/* Les cartes restent dans leurs grilles : contenu en haut, sans centrage. */
.nws-v2-applications-decapage-laser .nws-decapage-grid,
.nws-v2-applications-decapage-laser .nws-decapage-steps,
.nws-v2-applications-decapage-laser .nws-decapage-faq {
  align-items: stretch;
}

.nws-v2-applications-decapage-laser .nws-decapage-grid > article,
.nws-v2-applications-decapage-laser .nws-decapage-steps > article,
.nws-v2-applications-decapage-laser .nws-decapage-faq > article {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

/* Respiration après chaque tableau et après sa note avant la partie suivante.
   Le débordement du tableau reste limité à son conteneur défilable. */
.nws-v2-applications-decapage-laser .nws-decapage-compare {
  min-width: 0;
  max-width: 100%;
  margin-block-end: clamp(32px, 4vw, 56px);
  overflow-x: auto;
}

.nws-v2-applications-decapage-laser .nws-decapage-note {
  margin-block-end: clamp(32px, 4vw, 56px);
}

.nws-v2-applications-decapage-laser .nws-decapage-compare th,
.nws-v2-applications-decapage-laser .nws-decapage-compare td {
  text-align: start;
}

/* Liens éditoriaux identifiables sans modifier les boutons existants. */
.nws-v2-applications-decapage-laser a:not(.nws-button) {
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.22em;
}

.nws-v2-applications-decapage-laser a:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 4px;
}

/* Cyan conservé, avec une valeur sombre lisible sur fond beige/blanc.
   Le cyan clair sur le hero navy reste celui du thème existant. */
.nws-v2-applications-decapage-laser .nws-section-title h2 em,
.nws-v2-applications-decapage-laser .nws-home-config-cta h2 em {
  color: #08749b;
}

/* Évite des colonnes trop étroites pour les mots et valeurs techniques.
   768px : tableau et cartes à deux colonnes ; 1024/1440px : grille inchangée. */
@media (min-width: 761px) and (max-width: 1100px) {
  .nws-v2-applications-decapage-laser .nws-case-facts {
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .nws-v2-applications-decapage-laser .nws-decapage-steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* 360/390px : les valeurs ne sont ni coupées ni comprimées en trois colonnes.
   Le contenu de tous les boutons revient à la ligne si nécessaire. */
@media (max-width: 760px) {
  .nws-v2-applications-decapage-laser .nws-case-facts {
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .nws-v2-applications-decapage-laser .nws-case-facts dd {
    font-size: 20px;
    line-height: 1.3;
  }
  .nws-v2-applications-decapage-laser .nws-button {
    box-sizing: border-box;
    max-width: 100%;
    white-space: normal;
    line-height: 1.5;
  }
  .nws-v2-applications-decapage-laser .nws-button > span[aria-hidden] {
    flex-shrink: 0;
  }
  .nws-v2-applications-decapage-laser .nws-hub-hero h1 {
    font-size: clamp(36px, 10vw, 60px);
    line-height: 1.08;
  }
  .nws-v2-applications-decapage-laser .nws-home-config-cta h2 {
    font-size: clamp(36px, 9.3vw, 60px);
    line-height: 1.08;
  }
}


/* Page: /applications/datamatrix-busbar-cuivre/ */
/* Correction page busbar — référence Word image12.png.
   Charger après theme.min.css et datamatrix-pages.css.
   Le prolongement vide de la grille à droite provenait d'une 4e colonne.
   Aucun recadrage ni remplacement de la photographie / du DataMatrix. */

.nws-v2-applications-datamatrix-busbar-cuivre .nws-ik-application-grid {
  box-sizing: border-box;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: stretch;
  justify-items: stretch;
  inline-size: 100%;
  max-inline-size: 560px;
  margin-inline: auto;
  gap: 0;
}

.nws-v2-applications-datamatrix-busbar-cuivre .nws-ik-application-grid > article {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: stretch;
  min-inline-size: 0;
  min-block-size: 0;
  text-align: start;
}

.nws-v2-applications-datamatrix-busbar-cuivre .nws-ik-application-grid > article h3,
.nws-v2-applications-datamatrix-busbar-cuivre .nws-ik-application-grid > article p {
  overflow-wrap: anywhere;
}

/* 1024 / 1440 px : exactement trois colonnes, aucune cellule orpheline
   ni bordure prolongée dans une quatrième colonne vide. */
@media (min-width: 901px) {
  .nws-v2-applications-datamatrix-busbar-cuivre .nws-ik-application-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    max-inline-size: 1280px;
  }

  .nws-v2-applications-datamatrix-busbar-cuivre .nws-ik-application-grid > article {
    min-block-size: 225px;
  }
}

/* 360 / 390 / 768 px : une pile centrée, les trois cartes conservées.
   Aucun masquage global du débordement, aucune transformation visuelle. */
.nws-v2-applications-datamatrix-busbar-cuivre a:not(.nws-button) {
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
}

.nws-v2-applications-datamatrix-busbar-cuivre .nws-datamatrix-inline-link a {
  color: #111a42;
}

.nws-v2-applications-datamatrix-busbar-cuivre .nws-datamatrix-inline-link a:hover {
  color: #006c89;
}


/* Page: /applications/marquage-laser-datamatrix/ */
/* DataMatrix page only. Load after datamatrix-pages.css and common overlays.
   References: image13 (qualification resources), image14 (context cards),
   image15 (source introduction). No global rules and no new media assets. */

/* Text links stay visibly recognisable without altering button components. */
.nws-v2-applications-marquage-laser-datamatrix a:not(.nws-button) {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.22em;
}
.nws-v2-applications-marquage-laser-datamatrix a:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 4px;
}

/* image13: the resource paragraphs are one compact grid, not four extra
   rows of the original method grid with an 8vw gap between every row. */
.nws-v2-applications-marquage-laser-datamatrix .nws-datamatrix-method {
  align-items: start;
  row-gap: 32px;
}
.nws-v2-applications-marquage-laser-datamatrix .nws-v2-datamatrix-resource-links {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: 0 32px;
  min-width: 0;
  margin: 0;
  padding: 0;
}
.nws-v2-applications-marquage-laser-datamatrix .nws-v2-datamatrix-resource-links > p {
  min-width: 0;
  max-width: none;
  margin: 0;
  padding: 16px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.3);
}
.nws-v2-applications-marquage-laser-datamatrix .nws-v2-datamatrix-resource-links .nws-doc-card-link {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  min-width: 0;
  color: #fff;
  font-size: 12px;
  line-height: 1.65;
  overflow-wrap: anywhere;
}
.nws-v2-applications-marquage-laser-datamatrix .nws-v2-datamatrix-resource-links .nws-doc-card-link > span {
  flex: 0 0 auto;
  color: #fff;
}
.nws-v2-applications-marquage-laser-datamatrix .nws-v2-datamatrix-resource-links .nws-doc-card-link:hover {
  color: #fff;
  text-decoration-thickness: 2px;
}

/* image15: explicit grid positions avoid an eyebrow alone in the first
   column, a very large narrow title on the right and a detached paragraph
   in a new row. The existing nodes and their reading order are preserved. */
.nws-v2-applications-marquage-laser-datamatrix .nws-datamatrix-sources {
  padding: clamp(48px, 5vw, 76px) clamp(20px, 7vw, 112px);
}
.nws-v2-applications-marquage-laser-datamatrix .nws-datamatrix-sources-intro {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  align-items: start;
  gap: 16px clamp(24px, 4vw, 64px);
  min-width: 0;
  padding: 0;
}
.nws-v2-applications-marquage-laser-datamatrix .nws-datamatrix-sources-intro > .nws-eyebrow {
  grid-column: 1 / -1;
  margin: 0;
  color: #006c94;
  line-height: 1.5;
}
.nws-v2-applications-marquage-laser-datamatrix .nws-datamatrix-sources-intro > h2 {
  grid-column: 1;
  grid-row: 2;
  min-width: 0;
  max-width: 620px;
  margin: 0;
  font-size: clamp(36px, 4.5vw, 68px);
  line-height: 1.04;
  overflow-wrap: anywhere;
}
.nws-v2-applications-marquage-laser-datamatrix .nws-datamatrix-sources-intro > h2 em {
  color: #00799f;
}
.nws-v2-applications-marquage-laser-datamatrix .nws-datamatrix-sources-intro > p:not(.nws-eyebrow) {
  grid-column: 2;
  grid-row: 2;
  min-width: 0;
  max-width: 540px;
  margin: 0;
  color: #4c596b;
  font-size: 16px;
  line-height: 1.65;
}
.nws-v2-applications-marquage-laser-datamatrix .nws-datamatrix-source-grid {
  align-items: stretch;
  margin-top: 32px;
}
.nws-v2-applications-marquage-laser-datamatrix .nws-datamatrix-source-grid article {
  min-width: 0;
  min-height: 0;
  padding: 24px;
}
.nws-v2-applications-marquage-laser-datamatrix .nws-datamatrix-source-grid article > span {
  color: #006c94;
  line-height: 1.5;
}
.nws-v2-applications-marquage-laser-datamatrix .nws-datamatrix-source-grid h3 {
  margin: 24px 0 14px;
  line-height: 1.08;
  overflow-wrap: anywhere;
}
.nws-v2-applications-marquage-laser-datamatrix .nws-datamatrix-source-grid article > a {
  padding-top: 24px;
  line-height: 1.6;
  overflow-wrap: anywhere;
}
.nws-v2-applications-marquage-laser-datamatrix .nws-datamatrix-sources > .nws-datamatrix-text-link {
  margin: 24px 0 0;
  line-height: 1.65;
}

/* image14: all four card titles start the same distance below their labels.
   Remove the auto margin that aligned the bottoms of unequal-height titles. */
.nws-v2-applications-marquage-laser-datamatrix .nws-datamatrix-bridge-grid {
  align-items: stretch;
}
.nws-v2-applications-marquage-laser-datamatrix .nws-datamatrix-bridge-grid > a {
  min-width: 0;
  min-height: 0;
  justify-content: flex-start;
  padding: 26px 24px 48px;
  color: #111a42;
  text-decoration: none;
}
.nws-v2-applications-marquage-laser-datamatrix .nws-datamatrix-bridge-grid > a > span {
  color: #006c94;
  line-height: 1.5;
}
.nws-v2-applications-marquage-laser-datamatrix .nws-datamatrix-bridge-grid > a > strong {
  margin-top: 24px;
  max-width: none;
  line-height: 1.08;
  overflow-wrap: anywhere;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.16em;
}
.nws-v2-applications-marquage-laser-datamatrix .nws-datamatrix-bridge-grid > a > p {
  color: #4c596b;
}
.nws-v2-applications-marquage-laser-datamatrix .nws-datamatrix-bridge-grid > a > b {
  color: #b51a32;
  right: 24px;
  bottom: 16px;
}

/* At 768 / 1024 px keep two readable context columns; desktop has four. */
@media (min-width: 761px) and (max-width: 1100px) {
  .nws-v2-applications-marquage-laser-datamatrix .nws-datamatrix-bridge-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .nws-v2-applications-marquage-laser-datamatrix .nws-datamatrix-source-grid article {
    padding: 20px 16px;
  }
}

/* 360 / 390 px: natural-height single columns, no clipping or offsets.
   In particular, the source intro no longer adds a second 70px section pad. */
@media (max-width: 760px) {
  .nws-v2-applications-marquage-laser-datamatrix .nws-v2-datamatrix-resource-links {
    grid-template-columns: minmax(0, 1fr);
    margin-top: 28px;
  }
  .nws-v2-applications-marquage-laser-datamatrix .nws-datamatrix-sources-intro {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
    padding: 0;
  }
  .nws-v2-applications-marquage-laser-datamatrix .nws-datamatrix-sources-intro > h2 {
    grid-column: 1;
    grid-row: auto;
    font-size: clamp(36px, 10.5vw, 57px);
  }
  .nws-v2-applications-marquage-laser-datamatrix .nws-datamatrix-sources-intro > p:not(.nws-eyebrow) {
    grid-column: 1;
    grid-row: auto;
    margin: 0;
    font-size: 15px;
  }
  .nws-v2-applications-marquage-laser-datamatrix .nws-datamatrix-source-grid,
  .nws-v2-applications-marquage-laser-datamatrix .nws-datamatrix-bridge-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .nws-v2-applications-marquage-laser-datamatrix .nws-datamatrix-source-grid h3 {
    margin-top: 20px;
  }
  .nws-v2-applications-marquage-laser-datamatrix .nws-datamatrix-bridge-grid > a > strong {
    margin-top: 20px;
  }
}


/* Page: /applications/lecture-datamatrix-production/ */
/* Lecture DataMatrix — image16: center the three context cards.
   Load after /assets/applications/datamatrix-pages.css.
   No shared component, global overflow rule or media modification. */
.nws-v2-applications-lecture-datamatrix-production .nws-datamatrix-reading-context-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
}

.nws-v2-applications-lecture-datamatrix-production .nws-datamatrix-reading-context-grid > a {
  box-sizing: border-box;
  min-width: 0;
  min-height: 290px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding: 30px clamp(20px, 2.2vw, 32px) 24px;
  color: #111a42;
  text-align: center;
  text-decoration: none;
  overflow-wrap: anywhere;
  transition: background-color .18s ease;
}

.nws-v2-applications-lecture-datamatrix-production .nws-datamatrix-reading-context-grid > a > span {
  display: block;
  margin: 0 0 30px;
  color: #08729e;
  line-height: 1.6;
}

.nws-v2-applications-lecture-datamatrix-production .nws-datamatrix-reading-context-grid > a > strong {
  display: block;
  width: 100%;
  max-width: 280px;
  min-height: 2.2em;
  margin: 0;
  font-size: clamp(26px, 2.2vw, 32px);
  line-height: 1.1;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: .15em;
}

.nws-v2-applications-lecture-datamatrix-production .nws-datamatrix-reading-context-grid > a > p {
  width: 100%;
  max-width: 34ch;
  margin: 16px auto 0;
  color: #465364;
  font-size: 14px;
  line-height: 1.6;
}

.nws-v2-applications-lecture-datamatrix-production .nws-datamatrix-reading-context-grid > a > b {
  /* Keep the arrow clear of the complete description, including long copy. */
  position: static;
  align-self: flex-end;
  margin-top: auto;
  padding-top: 18px;
  color: #b52a3d;
  line-height: 1;
}

.nws-v2-applications-lecture-datamatrix-production .nws-datamatrix-reading-context-grid > a:hover {
  background: #fff;
  transform: none;
}

.nws-v2-applications-lecture-datamatrix-production .nws-datamatrix-reading-context-grid > a:focus-visible {
  outline: 3px solid #08729e;
  outline-offset: -4px;
  background: #fff;
}

.nws-v2-applications-lecture-datamatrix-production .nws-case-back,
.nws-v2-applications-lecture-datamatrix-production .nws-datamatrix-text-link {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}

/* Avoid narrow three-column cards at tablet widths; keep the existing order. */
@media (max-width: 959px) {
  .nws-v2-applications-lecture-datamatrix-production .nws-datamatrix-reading-context-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .nws-v2-applications-lecture-datamatrix-production .nws-datamatrix-reading-context-grid > a {
    min-height: 0;
    padding: 28px 24px 24px;
  }

  .nws-v2-applications-lecture-datamatrix-production .nws-datamatrix-reading-context-grid > a > span {
    margin-bottom: 24px;
  }

  .nws-v2-applications-lecture-datamatrix-production .nws-datamatrix-reading-context-grid > a > strong {
    min-height: 0;
    font-size: 28px;
  }
}


/* Page: / */
/* Accueil uniquement — charger après theme.min.css et i18n.css.
 * image17 : respiration latérale des références clients.
 * image18 : cyan lisible sur fond clair, sans appliquer le cyan foncé sur navy.
 * Aucun média, texte, formulaire ou composant partagé n'est remplacé.
 */
.nws-v2-home {
  --nws-v2-home-blue: #006a98;
  --nws-v2-home-gutter: clamp(20px, 8.2vw, 132px);
}

/* Le bloc de références gardait un padding horizontal nul, contrairement
 * aux autres sections. Conserver sa composition et les seize logos existants.
 */
.nws-v2-home .nws-client-references.nws-wrap {
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: var(--nws-v2-home-gutter);
  align-items: start;
}
.nws-v2-home .nws-client-references-copy,
.nws-v2-home .nws-client-reference-grid,
.nws-v2-home .nws-client-reference-grid > figure {
  min-width: 0;
}

/* Titres bleus des surfaces blanches / beige : contraste >= 4.7:1 sur
 * #e7e4dc, 5.29:1 sur #f3f1eb, 5.72:1 sur #fbfaf7, 5.97:1 sur blanc.
 * Ne pas changer --nws-cyan globalement : les boutons gardent leur cyan.
 */
.nws-v2-home h2 em {
  color: var(--nws-v2-home-blue);
}
.nws-v2-home .nws-home-expertise-copy h2 em {
  color: var(--nws-cyan-pale, #a4e5ff);
}
.nws-v2-home .nws-navigation-hub .nws-eyebrow,
.nws-v2-home .nws-home-machine-intro .nws-eyebrow,
.nws-v2-home .nws-home-config-cta .nws-eyebrow,
.nws-v2-home .nws-client-references .nws-eyebrow,
.nws-v2-home .nws-home-machine-card p,
.nws-v2-home .nws-navigation-hub-card:not(.nws-navigation-hub-card-navy):not(.nws-navigation-hub-card-cyan) > span {
  color: var(--nws-v2-home-blue);
}

/* Aligner les titres de cartes en haut plutôt que selon la longueur des
 * descriptions traduites. Les grilles et leur nombre de colonnes sont gardés.
 */
.nws-v2-home .nws-navigation-hub-grid,
.nws-v2-home .nws-home-machine-grid {
  align-items: stretch;
}
.nws-v2-home .nws-navigation-hub-card,
.nws-v2-home .nws-home-machine-card {
  min-width: 0;
}
.nws-v2-home .nws-navigation-hub-card strong {
  margin-top: 24px;
}
.nws-v2-home .nws-navigation-hub-card {
  padding-bottom: 52px;
}

/* Liens de texte identifiables sans dépendre de leur couleur ; les boutons
 * et les cartes entières restent les composants existants.
 */
.nws-v2-home a:not(.nws-button):not(.nws-navigation-hub-card):not(.nws-home-machine-card) {
  text-decoration: underline;
  text-underline-offset: 0.2em;
  text-decoration-thickness: 1px;
}

/* Conserver les paliers existants et leurs surfaces navy / cyan / beige.
 * minmax(0,1fr) autorise le retour à la ligne sans masquer un débordement.
 */
@media (min-width: 1150px) {
  .nws-v2-home .nws-navigation-hub-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
}
@media (min-width: 761px) and (max-width: 1149px) {
  .nws-v2-home .nws-navigation-hub-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (min-width: 761px) {
  .nws-v2-home .nws-home-machine-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 980px) {
  .nws-v2-home .nws-client-references.nws-wrap {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media (max-width: 760px) {
  .nws-v2-home {
    --nws-v2-home-gutter: 20px;
  }
  .nws-v2-home .nws-navigation-hub-grid,
  .nws-v2-home .nws-home-machine-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media (max-width: 620px) {
  .nws-v2-home .nws-client-reference-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}


/* Page: /machines/laserix-3d/ */
/* LASERIX-3D — corrections des captures image19 et image20 uniquement.
   À charger après theme.min.css et i18n.css. Aucun composant hors main ciblé. */

/* Liens éditoriaux visibles ; les boutons existants conservent leur aspect. */
.nws-v2-machines-laserix-3d a:not(.nws-button) {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
}

.nws-v2-machines-laserix-3d .nws-laserix-link {
  color: #006f91;
  border-bottom: 0;
}

/* Grille naturelle : graduations / révolution puis MOPA / UV.
   Neutralise explicitement le placement partagé du 4e article sur colonne 1. */
.nws-v2-machines-laserix-3d .nws-laserix-apps-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-auto-flow: row;
  align-items: stretch;
  gap: clamp(18px, 2vw, 28px);
}

.nws-v2-machines-laserix-3d .nws-laserix-apps-grid > article:nth-child(n) {
  grid-column: auto;
  grid-row: auto;
  min-width: 0;
  min-height: 0;
  padding: clamp(18px, 2vw, 28px);
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  background: #fff;
  color: #111a42;
  border: 1px solid #d8d8d1;
}

/* Photos un peu plus petites sans supprimer une portion de la pièce.
   Le fond beige absorbe les éventuelles marges du cadrage contain. */
.nws-v2-machines-laserix-3d .nws-laserix-apps-grid > article > figure {
  flex: none;
  width: 100%;
  min-width: 0;
  margin: 0 0 18px;
  aspect-ratio: 16 / 10;
  max-height: 260px;
  display: grid;
  place-items: center;
  background: #f4f1ea;
}

.nws-v2-machines-laserix-3d .nws-laserix-apps-grid > article > figure > img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 260px;
  object-fit: contain;
  object-position: center;
}

.nws-v2-machines-laserix-3d .nws-laserix-apps-grid > article > h3 {
  margin: 0;
  color: #006f91;
  border-top-color: #0497b8;
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.nws-v2-machines-laserix-3d .nws-laserix-apps-grid > article > p {
  color: #3a4656;
  overflow-wrap: anywhere;
}

/* Alternative « trait très fin » demandée : deux sujets clairement séparés,
   sans modifier l'ordre, l'image ou les textes de l'extracteur. */
.nws-v2-machines-laserix-3d .nws-laserix-ihm + .nws-nano-bofa {
  border-top: 1px solid #b9bcc0;
}

/* La règle Laserix d'origine intervient après le breakpoint générique :
   rétablir une colonne évite un débordement du pilotage à 360/390/768 px. */
@media (max-width: 900px) {
  .nws-v2-machines-laserix-3d .nws-laserix-ihm {
    grid-template-columns: minmax(0, 1fr);
  }

  .nws-v2-machines-laserix-3d .nws-laserix-ihm > .nws-nano-intro-copy,
  .nws-v2-machines-laserix-3d .nws-laserix-ihm > .nws-nano-intro-media {
    min-width: 0;
  }
}

/* 768/1024/1440 px : 2 colonnes. 360/390 px : lecture en une colonne. */
@media (max-width: 639px) {
  .nws-v2-machines-laserix-3d .nws-laserix-apps-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .nws-v2-machines-laserix-3d .nws-laserix-apps {
    padding-inline: 20px;
  }

  .nws-v2-machines-laserix-3d .nws-laserix-ihm > .nws-nano-intro-copy {
    padding-inline: 24px;
  }
}


/* Page: /machines/cut-x/ */
/* CUT-X v2 — charger après theme.min.css et i18n.css.
   Périmètre : les deux grilles montrées dans image21/image22 et
   le bloc Projet plexiglas déplacé conformément à image23.
   Aucun changement d'en-tête, pied de page ou formulaire partagé. */

.nws-v2-machines-cut-x .nws-nano-apps-grid-text {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-auto-flow: row;
  grid-auto-rows: auto;
  align-items: stretch;
  gap: 22px;
  min-width: 0;
}

/* Annule explicitement le placement de la quatrième carte en colonne 1
   hérité du thème, cause de la grille 2 + 1 + 1 visible sur les captures. */
.nws-v2-machines-cut-x .nws-nano-apps-grid-text > article:nth-child(n) {
  grid-column: auto;
  grid-row: auto;
  align-self: stretch;
  display: block;
  min-width: 0;
  min-height: 0;
  margin: 0;
  padding: 22px 24px;
  background: #fff;
  border: 1px solid rgba(17, 23, 37, .17);
  border-radius: 8px;
  overflow-wrap: anywhere;
}

.nws-v2-machines-cut-x .nws-nano-apps-grid-text > article > h3 {
  margin: 0 0 8px;
  padding-top: 14px;
  border-top: 1px solid #0497d5;
  color: #00789f;
  font-size: 24px;
  line-height: 1.25;
}

.nws-v2-machines-cut-x .nws-nano-apps-grid-text > article > p {
  margin: 0;
  color: #4b5563;
  font-size: 16px;
  line-height: 1.55;
}

.nws-v2-machines-cut-x a:not(.nws-button) {
  text-decoration: underline;
  text-underline-offset: .18em;
  text-decoration-thickness: 1px;
}

.nws-v2-machines-cut-x .nws-nano-apps-grid-text a:not(.nws-button) {
  color: #111a42;
}

/* Garde l'identité et la largeur du bloc navy de la référence après son
   déplacement : introduction et bouton, Projet plexiglas, Triple filtration. */
.nws-v2-machines-cut-x .nws-nano-bofa > .nws-v2-cut-x-study {
  display: block;
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: clamp(56px, 8vw, 110px) max(24px, 9vw);
  background: #111a42;
  color: #fff;
}

.nws-v2-machines-cut-x .nws-v2-cut-x-study h2 {
  max-width: 14em;
  color: #fff;
  overflow-wrap: anywhere;
}

.nws-v2-machines-cut-x .nws-v2-cut-x-study > p:not(.nws-eyebrow) {
  color: #d1d5e3;
  overflow-wrap: anywhere;
}

.nws-v2-machines-cut-x .nws-v2-cut-x-study .nws-eyebrow {
  color: #a4e5ff;
}

.nws-v2-machines-cut-x .nws-v2-cut-x-study .nws-product-hero-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 12px;
}

.nws-v2-machines-cut-x .nws-v2-cut-x-study .nws-button {
  min-width: 0;
  max-width: 100%;
  white-space: normal;
  overflow-wrap: anywhere;
}

@media (min-width: 768px) {
  .nws-v2-machines-cut-x .nws-nano-apps-grid-text {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .nws-v2-machines-cut-x .nws-nano-apps-grid-text {
    gap: 18px;
  }

  .nws-v2-machines-cut-x .nws-nano-apps-grid-text > article:nth-child(n) {
    padding: 20px;
  }
}


/* Page: /machines/cut-x-pro/ */
/* CUT X PRO only — screenshot image24.png.
   Load after the existing theme. Keep the existing beige section, white cards,
   cyan rules and typography. No rules for other sections or shared components.
   360/390 px: one column. 768/1024/1440 px: two columns, two rows.
*/
.nws-v2-machines-cut-x-pro #applications .nws-nano-apps-grid-text {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-auto-flow: row;
  grid-auto-rows: auto;
  gap: 22px;
  align-items: stretch;
  min-width: 0;
}

.nws-v2-machines-cut-x-pro #applications .nws-nano-apps-grid-text > article {
  /* Reset theme's nth-child(4) placement, which causes the orphan third row. */
  grid-column: auto;
  grid-row: auto;
  align-self: stretch;
  min-width: 0;
  min-height: 0;
  margin: 0;
  box-sizing: border-box;
  padding: 22px 24px;
  text-align: start;
  overflow-wrap: anywhere;
}

.nws-v2-machines-cut-x-pro #applications .nws-nano-apps-grid-text > article h3 {
  /* A darker cyan keeps the reference palette with readable white contrast. */
  color: #007ca8;
}

.nws-v2-machines-cut-x-pro #applications .nws-nano-apps-grid-text > article a:not(.nws-button) {
  color: #111a42;
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

@media (min-width: 768px) {
  .nws-v2-machines-cut-x-pro #applications .nws-nano-apps-grid-text {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}


/* Page: /machines/machines-speciales/ */
/* /machines/machines-speciales/ — référence image25.png.
   Charger après theme.min.css. Les couleurs, bordures, espacements et
   typographies existants navy/cyan/beige sont conservés.
   La quatrième carte ne doit plus être forcée en première colonne. */

.nws-v2-machines-machines-speciales .nws-nano-apps .nws-nano-apps-grid-text {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-auto-flow: row;
  grid-auto-rows: auto;
  gap: 22px;
  align-items: stretch;
  width: 100%;
  min-width: 0;
}

.nws-v2-machines-machines-speciales .nws-nano-apps .nws-nano-apps-grid-text > article:nth-child(n) {
  grid-column: auto;
  grid-row: auto;
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  box-sizing: border-box;
  min-width: 0;
  min-height: 0;
  height: auto;
  margin: 0;
  overflow-wrap: anywhere;
  text-align: start;
}

.nws-v2-machines-machines-speciales .nws-nano-apps .nws-nano-apps-grid-text > article > h3,
.nws-v2-machines-machines-speciales .nws-nano-apps .nws-nano-apps-grid-text > article > p {
  min-width: 0;
  max-width: 100%;
}

.nws-v2-machines-machines-speciales .nws-nano-apps .nws-nano-apps-grid-text a:not(.nws-button) {
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

/* Deux colonnes et deux rangées alignées à 768, 1024 et 1440 px.
   À 360/390 px, une colonne : aucun contenu supprimé ou tronqué. */
@media (min-width: 768px) {
  .nws-v2-machines-machines-speciales .nws-nano-apps .nws-nano-apps-grid-text {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: 1fr;
  }
}


/* Page: /expertise-technique/uv355nm/ */
/* UV355nm — captures Word image26 et image27.
   À charger après theme.min.css et i18n.css, uniquement pour cette page.
   Aucun changement des composants partagés, de la palette ou des médias. */

.nws-v2-expertise-technique-uv355nm .nws-expertise-principles {
  grid-template-columns: minmax(0, 1.14fr) repeat(3, minmax(0, 1fr));
  align-items: stretch;
}

.nws-v2-expertise-technique-uv355nm .nws-expertise-principle-intro,
.nws-v2-expertise-technique-uv355nm .nws-expertise-principle {
  min-width: 0;
  box-sizing: border-box;
}

.nws-v2-expertise-technique-uv355nm .nws-expertise-principle-intro h2,
.nws-v2-expertise-technique-uv355nm .nws-expertise-principle-intro p {
  overflow-wrap: anywhere;
  hyphens: auto;
}

/* Le thème justifiait chaque contenu en bas : des titres de longueurs
   différentes commençaient à des hauteurs différentes (image26). */
.nws-v2-expertise-technique-uv355nm .nws-expertise-principle {
  justify-content: flex-start;
  padding-block-start: 76px;
  padding-inline: clamp(24px, 2.5vw, 40px);
}

.nws-v2-expertise-technique-uv355nm .nws-expertise-principle > span {
  top: 34px;
  left: auto;
  right: auto;
  inset-inline-start: clamp(24px, 2.5vw, 40px);
}

.nws-v2-expertise-technique-uv355nm .nws-expertise-principle h3 {
  margin-block-start: 0;
  overflow-wrap: anywhere;
  hyphens: auto;
  line-height: 1.08;
}

.nws-v2-expertise-technique-uv355nm .nws-expertise-principle p {
  overflow-wrap: anywhere;
}

.nws-v2-expertise-technique-uv355nm .nws-expertise-case-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
}

.nws-v2-expertise-technique-uv355nm .nws-expertise-case {
  min-width: 0;
  box-sizing: border-box;
}

.nws-v2-expertise-technique-uv355nm .nws-expertise-case h3,
.nws-v2-expertise-technique-uv355nm .nws-case-sector,
.nws-v2-expertise-technique-uv355nm .nws-expertise-case p,
.nws-v2-expertise-technique-uv355nm .nws-expertise-case li {
  overflow-wrap: anywhere;
  hyphens: auto;
}

/* Image27 : les trois puces précèdent désormais la figure, sans espace
   artificiel ajouté sous la liste ni suppression de son contenu. */
.nws-v2-expertise-technique-uv355nm .nws-expertise-case-with-image {
  padding-block-end: clamp(28px, 3.3vw, 50px);
}

.nws-v2-expertise-technique-uv355nm .nws-expertise-case-with-image ul {
  padding-block-end: 0;
}

.nws-v2-expertise-technique-uv355nm .nws-expertise-case-photo {
  width: 100%;
  max-width: 100%;
  margin: 24px 0 0;
}

.nws-v2-expertise-technique-uv355nm .nws-expertise-case-photo img {
  display: block;
  max-width: 100%;
  /* Dimensions, cadrage et traitement de la photo existante conservés. */
}

.nws-v2-expertise-technique-uv355nm .nws-expertise-case p a,
.nws-v2-expertise-technique-uv355nm .nws-expertise-footnote a {
  text-decoration: underline;
  text-underline-offset: 0.18em;
  text-decoration-thickness: 1px;
}

.nws-v2-expertise-technique-uv355nm .nws-expertise-case p a {
  color: #12658c;
}

.nws-v2-expertise-technique-uv355nm .nws-expertise-footnote a {
  color: #b8e5ff;
}

/* 768/1024 : l'introduction occupe une ligne complète, puis les trois
   principes gardent leurs titres alignés sur une seule rangée. */
@media (min-width: 768px) and (max-width: 1199px) {
  .nws-v2-expertise-technique-uv355nm .nws-expertise-principles {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .nws-v2-expertise-technique-uv355nm .nws-expertise-principle-intro {
    grid-column: 1 / -1;
    min-height: 0;
  }

  .nws-v2-expertise-technique-uv355nm .nws-expertise-principle {
    min-height: 0;
    padding-block-end: 36px;
  }

  .nws-v2-expertise-technique-uv355nm .nws-expertise-principle h3 {
    font-size: clamp(24px, 2.7vw, 30px);
  }
}

/* Conserver trois cartes d'application lisibles à 1024, sans colonnes
   compressées par les grandes marges intérieures du thème. */
@media (min-width: 1024px) and (max-width: 1199px) {
  .nws-v2-expertise-technique-uv355nm .nws-expertise-case {
    padding-inline: 24px;
  }
}

@media (max-width: 1023px) {
  .nws-v2-expertise-technique-uv355nm .nws-expertise-case-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .nws-v2-expertise-technique-uv355nm .nws-expertise-case {
    min-height: 0;
  }
}

/* 360/390 : une colonne et hauteur naturelle ; aucun masquage de débordement. */
@media (max-width: 767px) {
  .nws-v2-expertise-technique-uv355nm .nws-expertise-principles {
    grid-template-columns: minmax(0, 1fr);
    padding-inline: 20px;
  }

  .nws-v2-expertise-technique-uv355nm .nws-expertise-principle-intro {
    grid-column: auto;
    min-height: 0;
  }

  .nws-v2-expertise-technique-uv355nm .nws-expertise-principle {
    min-height: 0;
    padding: 76px 28px 36px;
  }

  .nws-v2-expertise-technique-uv355nm .nws-expertise-principle > span {
    inset-inline-start: 28px;
  }

  .nws-v2-expertise-technique-uv355nm .nws-expertise-principle h3 {
    font-size: 30px;
  }

  .nws-v2-expertise-technique-uv355nm .nws-expertise-case-with-image {
    padding-block-end: 36px;
  }
}


/* Page: /expertise-technique/risques-feu-extraction/ */
/* NWS v2 — risques feu/extraction. Charger après theme.min.css et i18n.css.
   Périmètre graphique : captures Word image28, image29, image30 uniquement.
   Aucun média ajouté ; aucun changement aux composants partagés. */

.nws-v2-expertise-technique-risques-feu-extraction {
  --nws-v2-fire-gutter: clamp(20px, 5vw, 80px);
  --nws-v2-fire-space: clamp(44px, 5vw, 76px);
}

/* Liens textuels identifiables, y compris les références techniques. */
.nws-v2-expertise-technique-risques-feu-extraction a:not(.nws-button) {
  text-decoration: underline;
  text-underline-offset: .2em;
  text-decoration-thickness: 1px;
}

/* image28 : toute la chaîne passe sous les éléments d'introduction.
   La note de limites reste intégralement présente avant les quatre cartes. */
.nws-v2-expertise-technique-risques-feu-extraction .nws-fire-chain {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 24px;
  align-items: start;
  padding: var(--nws-v2-fire-space) var(--nws-v2-fire-gutter);
}

.nws-v2-expertise-technique-risques-feu-extraction .nws-fire-chain .nws-fire-section-heading {
  grid-row: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 16px;
  max-width: none;
  min-width: 0;
}

.nws-v2-expertise-technique-risques-feu-extraction .nws-fire-chain .nws-eyebrow {
  margin: 0;
}

.nws-v2-expertise-technique-risques-feu-extraction .nws-fire-chain h2 {
  margin: 0;
  font-size: clamp(36px, 4.5vw, 64px);
  line-height: 1.02;
  overflow-wrap: break-word;
}

.nws-v2-expertise-technique-risques-feu-extraction .nws-fire-chain .nws-fire-section-heading > p:not(.nws-eyebrow) {
  max-width: 740px;
  margin: 0;
  color: #c5cede;
  font-size: 15px;
  line-height: 1.65;
}

.nws-v2-expertise-technique-risques-feu-extraction .nws-fire-control-note {
  grid-row: 2;
  min-width: 0;
  max-width: none;
  margin: 0;
  padding: 16px 20px;
  color: #c5cede;
  overflow-wrap: break-word;
}

.nws-v2-expertise-technique-risques-feu-extraction .nws-fire-control-flow {
  grid-row: 3;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 20px;
  align-items: stretch;
  min-width: 0;
  margin: 0;
}

.nws-v2-expertise-technique-risques-feu-extraction .nws-fire-control-step {
  justify-content: flex-start;
  align-items: flex-start;
  min-width: 0;
  min-height: 0;
  padding: clamp(22px, 2vw, 30px);
}

.nws-v2-expertise-technique-risques-feu-extraction .nws-fire-control-step > span {
  flex: none;
  margin: 0 0 20px;
}

.nws-v2-expertise-technique-risques-feu-extraction .nws-fire-control-step h3 {
  margin: 0 0 12px;
  font-size: clamp(25px, 2.1vw, 31px);
  line-height: 1.12;
  hyphens: none;
  overflow-wrap: break-word;
  word-break: normal;
}

.nws-v2-expertise-technique-risques-feu-extraction .nws-fire-control-step p {
  color: #d0d9e8;
  font-size: 14px;
  line-height: 1.6;
  hyphens: none;
  overflow-wrap: break-word;
  word-break: normal;
}

/* Les indices numérotés conservent le sens de lecture ; les flèches flottantes
   inutiles aux retours à la ligne sont retirées, sans translation masquante. */
.nws-v2-expertise-technique-risques-feu-extraction .nws-fire-control-step::after {
  display: none;
  content: none;
}

/* image29 : supprimer margin-top:auto et l'ancrage en bas du contenu.
   Indices, visuels de même hauteur puis titres sur une ligne de départ commune. */
.nws-v2-expertise-technique-risques-feu-extraction .nws-fire-principles {
  grid-template-columns: minmax(0, 1fr);
  gap: 1px;
  padding: 0 var(--nws-v2-fire-gutter) var(--nws-v2-fire-space);
  align-items: stretch;
}

.nws-v2-expertise-technique-risques-feu-extraction .nws-fire-principle-intro,
.nws-v2-expertise-technique-risques-feu-extraction .nws-fire-principle {
  min-width: 0;
  min-height: 0;
  padding: 28px 24px;
}

.nws-v2-expertise-technique-risques-feu-extraction .nws-fire-principle-intro {
  grid-column: 1 / -1;
}

.nws-v2-expertise-technique-risques-feu-extraction .nws-fire-principle-intro .nws-eyebrow {
  margin: 0 0 16px;
  overflow-wrap: anywhere;
}

.nws-v2-expertise-technique-risques-feu-extraction .nws-fire-principle-intro h2 {
  margin: 0;
  font-size: clamp(35px, 3.6vw, 54px);
  line-height: 1.04;
  overflow-wrap: break-word;
}

.nws-v2-expertise-technique-risques-feu-extraction .nws-fire-principle-intro > p:not(.nws-eyebrow) {
  max-width: 800px;
  margin: 20px 0 0;
}

.nws-v2-expertise-technique-risques-feu-extraction .nws-fire-principle {
  display: grid;
  grid-template-rows: auto 142px auto;
  align-content: start;
  align-items: start;
  gap: 20px;
  justify-content: normal;
  overflow: visible;
}

.nws-v2-expertise-technique-risques-feu-extraction .nws-fire-principle > span {
  position: static;
  min-height: 15px;
  line-height: 1.5;
}

.nws-v2-expertise-technique-risques-feu-extraction .nws-fire-principle-visual {
  height: 142px;
  min-height: 0;
  margin: 0;
}

.nws-v2-expertise-technique-risques-feu-extraction .nws-fire-principle-content {
  min-width: 0;
  margin: 0;
}

.nws-v2-expertise-technique-risques-feu-extraction .nws-fire-principle-content h3 {
  margin: 0 0 12px;
  font-size: clamp(24px, 2vw, 30px);
  line-height: 1.12;
  hyphens: none;
  overflow-wrap: break-word;
  word-break: normal;
}

.nws-v2-expertise-technique-risques-feu-extraction .nws-fire-principle-content p {
  margin: 0;
  hyphens: none;
  overflow-wrap: break-word;
  word-break: normal;
}

/* image30 : l'eyebrow ne crée plus une première case orpheline dans la grille.
   En-tête et tableau sont rapprochés, sans retirer une ligne technique. */
.nws-v2-expertise-technique-risques-feu-extraction .nws-fire-scenarios {
  padding: var(--nws-v2-fire-space) var(--nws-v2-fire-gutter);
}

.nws-v2-expertise-technique-risques-feu-extraction .nws-fire-scenarios .nws-fire-section-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
  gap: 16px;
}

.nws-v2-expertise-technique-risques-feu-extraction .nws-fire-scenarios .nws-eyebrow {
  margin: 0;
}

.nws-v2-expertise-technique-risques-feu-extraction .nws-fire-scenarios h2 {
  margin: 0;
  font-size: clamp(36px, 4.5vw, 64px);
  line-height: 1.02;
  overflow-wrap: break-word;
}

.nws-v2-expertise-technique-risques-feu-extraction .nws-fire-scenarios .nws-fire-section-heading > p:not(.nws-eyebrow) {
  max-width: 720px;
  margin: 0;
  color: #526071;
}

.nws-v2-expertise-technique-risques-feu-extraction .nws-fire-scenario-table {
  min-width: 0;
  margin-top: 28px;
}

.nws-v2-expertise-technique-risques-feu-extraction .nws-fire-scenario-row {
  min-width: 0;
  align-items: start;
  gap: 12px;
  padding-block: 20px;
}

.nws-v2-expertise-technique-risques-feu-extraction .nws-fire-scenario-row > * {
  min-width: 0;
  overflow-wrap: break-word;
}

@media (min-width: 640px) {
  .nws-v2-expertise-technique-risques-feu-extraction .nws-fire-control-flow {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 768px) {
  .nws-v2-expertise-technique-risques-feu-extraction .nws-fire-principles {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .nws-v2-expertise-technique-risques-feu-extraction .nws-fire-chain .nws-fire-section-heading,
  .nws-v2-expertise-technique-risques-feu-extraction .nws-fire-scenarios .nws-fire-section-heading {
    grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
    column-gap: 40px;
    row-gap: 16px;
  }

  .nws-v2-expertise-technique-risques-feu-extraction .nws-fire-chain .nws-eyebrow,
  .nws-v2-expertise-technique-risques-feu-extraction .nws-fire-scenarios .nws-eyebrow {
    grid-column: 1 / -1;
  }

  .nws-v2-expertise-technique-risques-feu-extraction .nws-fire-scenario-row {
    gap: 24px;
  }
}

@media (min-width: 1200px) {
  .nws-v2-expertise-technique-risques-feu-extraction .nws-fire-control-flow {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .nws-v2-expertise-technique-risques-feu-extraction .nws-fire-principles {
    grid-template-columns: 1.15fr repeat(3, minmax(0, 1fr));
  }

  .nws-v2-expertise-technique-risques-feu-extraction .nws-fire-principle-intro {
    grid-column: auto;
  }
}


/* Page: /contact/ */
/* Contact v2 only. Load after theme.min.css / i18n.css / application-form.css.
   No header, footer, dialog, metadata, or global overflow changes. */
.nws-v2-contact {
  --contact-navy: #111a42;
  --contact-cyan: #a4e5ff;
  --contact-cyan-ink: #075e85;
  --contact-line: #d5dce5;
  --contact-gutter: clamp(16px, 3vw, 44px);
  display: block;
  inline-size: 100%;
  min-inline-size: 0;
  padding: 28px var(--contact-gutter) 40px;
  color: var(--contact-navy);
  background: #fff;
}
.nws-v2-contact *,
.nws-v2-contact *::before,
.nws-v2-contact *::after {
  box-sizing: border-box;
}
.nws-v2-contact > section {
  max-inline-size: 1320px;
  margin-inline: auto;
  min-inline-size: 0;
}
.nws-v2-contact :is(h1, h2, p, strong, a, button) {
  overflow-wrap: break-word;
  word-break: normal;
  hyphens: none;
}
.nws-v2-contact a:not(.nws-button) {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: .2em;
}
.nws-v2-contact :is(a, button):focus-visible {
  outline: 3px solid #0497d5;
  outline-offset: 4px;
}
.nws-v2-contact .nws-footer-local-intro {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr);
  align-items: stretch;
  padding: 0;
  background: var(--contact-navy);
  color: #fff;
  border-block-end: 4px solid #0497d5;
}
.nws-v2-contact .nws-footer-local-intro::before {
  content: none;
}
.nws-v2-contact .nws-v2-contact-copy {
  min-inline-size: 0;
  padding: clamp(32px, 3.6vw, 52px);
  align-self: start;
}
.nws-v2-contact .nws-footer-local-intro .nws-eyebrow {
  color: var(--contact-cyan);
  margin: 0 0 18px;
  font-size: 12px;
  line-height: 1.5;
  letter-spacing: .09em;
}
.nws-v2-contact .nws-footer-local-intro h1 {
  max-inline-size: 650px;
  margin: 0 0 22px;
  color: #fff;
  font-family: var(--nws-display, "Space Grotesk", sans-serif);
  font-size: clamp(36px, 3.9vw, 56px);
  line-height: 1.07;
  font-weight: 500;
  letter-spacing: -.045em;
}
.nws-v2-contact .nws-footer-local-intro h2 {
  margin: 0 0 20px;
  font-family: var(--nws-display, "Space Grotesk", sans-serif);
  font-size: clamp(23px, 2.1vw, 30px);
  font-weight: 500;
  line-height: 1.23;
  letter-spacing: -.025em;
  color: #fff;
}
.nws-v2-contact .nws-footer-local-intro h2 em {
  color: var(--contact-cyan);
  font-style: normal;
}
.nws-v2-contact .nws-v2-contact-copy > p:not(.nws-eyebrow) {
  max-inline-size: 590px;
  margin: 0;
  color: #e4eaf2;
  font-size: 16px;
  line-height: 1.65;
}
.nws-v2-contact .nws-footer-local-actions {
  display: flex;
  align-items: flex-start;
  flex-flow: row wrap;
  gap: 12px;
  margin: 24px 0 0;
}
.nws-v2-contact .nws-button {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 14px;
  min-block-size: 50px;
  max-inline-size: 100%;
  padding: 14px 20px;
  border: 1px solid transparent;
  border-radius: 2px;
  font-family: var(--nws-mono, "IBM Plex Mono", monospace);
  font-size: 13px;
  line-height: 1.5;
  font-weight: 500;
  letter-spacing: 0;
  text-align: center;
  white-space: normal;
  text-decoration: none;
  cursor: pointer;
}
.nws-v2-contact .nws-button-primary {
  background: var(--contact-cyan);
  border-color: var(--contact-cyan);
  color: #111a42;
}
.nws-v2-contact .nws-button-primary:hover {
  background: #fff;
  border-color: #fff;
  color: #111a42;
}
.nws-v2-contact .nws-v2-contact-direct {
  display: grid;
  justify-items: start;
  gap: 4px;
  margin-block-start: 20px;
  padding-block-start: 16px;
  border-block-start: 1px solid #4b5575;
}
.nws-v2-contact .nws-v2-contact-direct a {
  display: inline-flex;
  align-items: center;
  min-block-size: 44px;
  max-inline-size: 100%;
  border: 0;
  padding: 4px 0;
  color: #fff;
  font-family: var(--nws-mono, "IBM Plex Mono", monospace);
  font-size: clamp(16px, 1.5vw, 20px);
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0;
  direction: ltr;
  unicode-bidi: isolate;
}
.nws-v2-contact .nws-v2-contact-direct a:hover {
  color: var(--contact-cyan);
}
.nws-v2-contact .nws-v2-contact-photo {
  display: flex;
  align-items: center;
  justify-content: center;
  min-inline-size: 0;
  margin: 0;
  padding: 0;
  background: #090e27;
}
.nws-v2-contact .nws-v2-contact-photo img {
  display: block;
  inline-size: 100%;
  block-size: auto;
  max-inline-size: 100%;
  object-fit: contain;
  /* Keep the piece, logo, and safety labels visible; no photo manipulation. */
}
.nws-v2-contact .nws-footer-contact-details {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  align-items: start;
  margin-block: 24px 0;
  padding: 0;
  background: #fff;
}
.nws-v2-contact .nws-footer-contact-details > .nws-v2-contact-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-inline-size: 0;
  min-block-size: 0;
  block-size: 100%;
  padding: 26px;
  border: 1px solid var(--contact-line);
  border-block-start: 3px solid #0497d5;
  background: #f8f9fb;
}
.nws-v2-contact .nws-footer-contact-details .nws-eyebrow {
  margin: 0 0 16px;
  color: var(--contact-cyan-ink);
  font-size: 12px;
  line-height: 1.5;
  letter-spacing: .075em;
}
.nws-v2-contact .nws-footer-contact-details strong {
  display: block;
  margin: 0;
  max-inline-size: none;
  color: var(--contact-navy);
  font-family: var(--nws-display, "Space Grotesk", sans-serif);
  font-size: clamp(21px, 1.8vw, 26px);
  font-weight: 500;
  line-height: 1.35;
  letter-spacing: -.025em;
}
.nws-v2-contact .nws-contact-map {
  display: inline-block;
  max-inline-size: 100%;
  min-block-size: 44px;
  margin-block-start: 12px;
  padding-block: 10px;
  border: 0;
  color: #075e85;
  font-size: 13px;
  line-height: 1.55;
  letter-spacing: 0;
}
.nws-v2-contact .nws-contact-map:hover {
  color: var(--contact-navy);
}
.nws-v2-contact .nws-contact-hours-note {
  margin-block: 12px 0;
  max-inline-size: none;
  color: #38475c;
  font-size: 15px;
  line-height: 1.6;
}
.nws-v2-contact .nws-app-entry {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(210px, .48fr);
  gap: 32px;
  align-items: center;
  margin-block-start: 28px;
  padding: 36px;
  border: 1px solid var(--contact-navy);
  border-inline-start: 4px solid #0497d5;
  background: var(--contact-navy);
  color: #fff;
}
.nws-v2-contact .nws-app-entry > div {
  min-inline-size: 0;
}
.nws-v2-contact .nws-app-entry h2 {
  max-inline-size: 720px;
  margin: 0 0 14px;
  color: #fff;
  font-family: var(--nws-display, "Space Grotesk", sans-serif);
  font-size: clamp(26px, 2.7vw, 38px);
  font-weight: 500;
  line-height: 1.18;
  letter-spacing: -.03em;
}
.nws-v2-contact .nws-app-entry p {
  margin: 0;
  max-inline-size: 680px;
  color: #e4eaf2;
  font-size: 16px;
  line-height: 1.65;
}
.nws-v2-contact .nws-app-entry > .nws-button {
  justify-self: end;
  min-inline-size: 0;
}
.nws-v2-contact:dir(rtl) :is(h1, h2, strong, .nws-eyebrow) {
  font-family: "Noto Sans Arabic", var(--nws-sans, sans-serif);
  letter-spacing: 0;
  line-height: 1.5;
}
@media (max-width: 1023px) {
  .nws-v2-contact .nws-footer-local-intro {
    grid-template-columns: minmax(0, 1fr);
  }
  .nws-v2-contact .nws-v2-contact-copy {
    padding: 32px;
  }
  .nws-v2-contact .nws-v2-contact-photo img {
    max-block-size: 420px;
    inline-size: 100%;
    object-fit: contain;
  }
  .nws-v2-contact .nws-footer-contact-details > .nws-v2-contact-card {
    padding: 20px;
  }
  .nws-v2-contact .nws-app-entry {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
    padding: 30px;
  }
  .nws-v2-contact .nws-app-entry > .nws-button {
    justify-self: start;
  }
}
@media (max-width: 767px) {
  .nws-v2-contact {
    padding-block: 16px 28px;
  }
  .nws-v2-contact .nws-v2-contact-copy {
    padding: 26px 24px;
  }
  .nws-v2-contact .nws-footer-local-intro h1 {
    font-size: clamp(32px, 8.4vw, 42px);
    margin-block-end: 18px;
  }
  .nws-v2-contact .nws-footer-local-intro h2 {
    font-size: 23px;
  }
  .nws-v2-contact .nws-footer-local-actions .nws-button {
    inline-size: 100%;
  }
  .nws-v2-contact .nws-v2-contact-direct a {
    font-size: 17px;
  }
  .nws-v2-contact .nws-v2-contact-photo img {
    max-block-size: none;
  }
  .nws-v2-contact .nws-footer-contact-details {
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
    margin-block-start: 20px;
  }
  .nws-v2-contact .nws-footer-contact-details > .nws-v2-contact-card {
    padding: 24px;
  }
  .nws-v2-contact .nws-footer-contact-details strong {
    font-size: 23px;
  }
  .nws-v2-contact .nws-app-entry {
    margin-block-start: 20px;
    padding: 26px 24px;
  }
  .nws-v2-contact .nws-app-entry > .nws-button {
    inline-size: 100%;
  }
}
