@charset "UTF-8";
@font-face{font-family:'League Spartan';font-style:normal;font-weight:500 700;font-display:swap;src:url('../fonts/LeagueSpartan-var.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Roboto';font-style:normal;font-weight:400 700;font-display:swap;src:url('../fonts/Roboto-var.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Roboto';font-style:italic;font-weight:400;font-display:swap;src:url('../fonts/Roboto-italic-var.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}

/* ===== Perfect Plast — charte Processus Group (janv. 2023) =====
   Typo : League Spartan (titres, Medium, MAJUSCULES) / Roboto (texte)
   Couleurs : gris foncé #525252, gris medium #C8C8C8, gris clair #EEEEEE, blanc
   Couleur d'entité Perfect Plast : #B52283 (titres, rond d'entête, pictos — jamais en fond) */
:root{
  --g-dark:#525252; --g-mid:#C8C8C8; --g-light:#EEEEEE; --white:#FFFFFF;
  --pp:#B52283; --pp-hover:#931B6A;
  --c-origin:#22B1E1; --c-precimade:#229B94; --c-group:#55CE06;
  --display:"League Spartan","Segoe UI",system-ui,sans-serif;
  --body:"Roboto","Segoe UI",system-ui,-apple-system,sans-serif;
  --wrap:min(1200px, 100% - 2*clamp(1.25rem,4vw,3rem));
  --s1:.5rem; --s2:1rem; --s3:1.5rem; --s4:2.5rem; --s5:4rem; --s6:clamp(4rem,8vw,7rem);
  --radius:4px;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
}
*,*::before,*::after{box-sizing:inherit}
html{scroll-behavior:smooth; scroll-padding-top:calc(6rem + env(safe-area-inset-top,0px)); -webkit-text-size-adjust:100%}
body{margin:0; background:var(--white); color:var(--g-dark); font:400 1.0625rem/1.65 var(--body)}
::selection{background:var(--pp); color:#fff}
img{max-width:100%; display:block; height:auto}
a{color:var(--pp); text-underline-offset:.2em; text-decoration-thickness:1px}
a:hover{color:var(--pp-hover)}
:focus-visible{outline:2px solid var(--pp); outline-offset:3px; border-radius:2px}
h1,h2,h3{font-family:var(--display); color:var(--g-dark); margin:0; text-wrap:balance}
p{margin:0}
strong{font-weight:700}
.wrap{width:var(--wrap); margin-inline:auto}
.lede{font-size:1.125rem; max-width:62ch}
.num{font-variant-numeric:tabular-nums}
.todo{background:none; color:inherit; border-bottom:1.5px dashed var(--pp); cursor:help}
.skip{position:absolute; left:-999px; top:0; background:#fff; padding:.75rem 1rem; z-index:99}
.skip:focus{left:1rem}

/* Entête de la charte : ligne + rond */
.rule{display:flex; align-items:center; gap:0}
.rule::before{content:""; flex:1; height:2px; background:var(--g-dark)}
.rule::after{content:""; width:.7rem; height:.7rem; border:2px solid var(--pp); border-radius:50%; margin-left:.6rem; flex:none}
.title{display:flex; align-items:center}
.title h2,.title h1{font-weight:500; text-transform:uppercase; letter-spacing:.01em; line-height:1.05; font-size:clamp(1.75rem,3.4vw,2.6rem); flex:0 1 auto; max-width:min(100%,24ch); margin-right:clamp(1rem,2vw,1.75rem)}
.title::after{content:""; flex:1; min-width:3rem; height:2px; background:var(--g-dark); margin-top:-.2em}
.title > i{order:3; width:.7rem; height:.7rem; border:2px solid var(--pp); border-radius:50%; flex:none; margin-left:.45rem; margin-top:-.2em}
.subtitle{font:500 1.375rem/1.2 var(--display); color:var(--g-dark)}

/* Boutons */
.btn{display:inline-flex; align-items:center; gap:.6em; font:600 1rem/1 var(--display); letter-spacing:.02em; text-decoration:none; padding:.95rem 1.4rem .8rem; border-radius:var(--radius); border:1.5px solid transparent; transition:background-color .2s,color .2s,border-color .2s}
.btn-primary{background:var(--pp); color:#fff}
.btn-primary:hover{background:var(--pp-hover); color:#fff}
.btn-ghost{border-color:var(--g-dark); color:var(--g-dark)}
.btn-ghost:hover{background:var(--g-dark); color:#fff}
.btn svg{width:1em; height:1em; transition:transform .25s cubic-bezier(.16,1,.3,1)}
.btn:hover svg{transform:translateX(3px)}

/* En-tête du site */
.site-head{position:sticky; top:0; z-index:20; background:rgba(255,255,255,.96); backdrop-filter:blur(6px)}
.site-head .head-bar{display:flex; align-items:center; gap:var(--s3); min-height:4.25rem}
.brand img{height:30px; width:auto}
.nav{margin-left:auto; display:flex; gap:clamp(1rem,2vw,1.75rem); align-items:center}
.nav a{font:500 .9688rem/1 var(--display); color:var(--g-dark); text-decoration:none; padding:.5rem 0; position:relative}
.nav a:not(.btn)::after{content:""; position:absolute; left:0; right:0; bottom:.05rem; height:2px; background:var(--pp); transform:scaleX(0); transform-origin:left; transition:transform .35s cubic-bezier(.16,1,.3,1)}
.nav a:not(.btn):hover::after,.nav a[aria-current]::after{transform:scaleX(1)}
.nav .btn{padding:.75rem 1.1rem .6rem; color:#fff}
.site-head .rule{padding-bottom:.75rem}
.menu{display:none}

/* Hero */
.hero{padding:clamp(2.5rem,6vw,5rem) 0 var(--s6)}
.hero .wrap{display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:clamp(2rem,5vw,5rem); align-items:end}
.hero h1{font-weight:600; text-transform:uppercase; font-size:clamp(2.4rem,5.6vw,4.6rem); line-height:.98; letter-spacing:-.01em}
.hero h1 span{display:block}
.hero h1 span:last-child{color:var(--pp)}
.hero .subtitle{margin-top:var(--s3)}
.hero .lede{margin-top:var(--s2)}
.hero-actions{display:flex; flex-wrap:wrap; gap:var(--s2); margin-top:var(--s4)}
.plate{background:var(--white); border:1px solid var(--g-mid); border-radius:var(--radius)}
.plate-head{display:flex; justify-content:space-between; align-items:center; padding:var(--s2) var(--s3); border-bottom:1px solid var(--g-mid); font:500 .875rem/1 var(--display); letter-spacing:.06em; text-transform:uppercase}
.plate-head span:last-child{color:var(--pp)}
.plate dl{margin:0; display:grid; grid-template-columns:auto 1fr}
.plate dt,.plate dd{margin:0; padding:.8rem var(--s3); border-bottom:1px solid var(--g-light)}
.plate dt{font-size:.9375rem}
.plate dd{font:600 1.0625rem/1.35 var(--display); text-align:right}
.plate dl > :nth-last-child(-n+2){border-bottom:0}

/* Sections */
.section{padding:var(--s6) 0}
.section .lede{margin-top:var(--s3)}
.band-light{background:var(--g-light)}

/* Photos */
.gallery{display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); grid-template-rows:auto auto; gap:var(--s2); margin-top:var(--s5)}
.gallery figure{margin:0; position:relative; overflow:hidden; border-radius:var(--radius); background:var(--g-light)}
.gallery figure:first-child{grid-row:span 2}
.gallery img{width:100%; height:100%; object-fit:cover; aspect-ratio:auto; transition:transform 1.2s cubic-bezier(.16,1,.3,1)}
.gallery figure:hover img{transform:scale(1.03)}
.gallery figcaption{position:absolute; left:0; bottom:0; background:var(--white); padding:.7rem 1.1rem .55rem; font:500 1.0625rem/1.2 var(--display); color:var(--g-dark); display:flex; align-items:center; gap:.6rem; border-top-right-radius:var(--radius)}
.gallery figcaption::before{content:""; width:.55rem; height:.55rem; border:2px solid var(--pp); border-radius:50%}

/* Parcours */
.steps{list-style:none; margin:var(--s5) 0 0; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--s3)}
.steps li{background:var(--white); border-radius:var(--radius); padding:var(--s3); display:flex; flex-direction:column; gap:.6rem}
.steps .logo{height:46px; display:flex; align-items:center}
.steps .logo img{height:46px; width:auto}
.steps h3{font-weight:500; font-size:1.25rem; margin-top:.4rem}
.steps p{font-size:.9688rem}
.steps a.site{margin-top:auto; font:500 .9375rem/1 var(--display); text-decoration:none}
.steps li.here{outline:2px solid var(--pp); outline-offset:-2px}

/* Savoir-faire */
.split{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.5fr); gap:clamp(2rem,5vw,5rem); margin-top:var(--s5)}
.skills{margin:0; border-top:2px solid var(--g-dark)}
.skill{display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr); gap:var(--s3); padding:var(--s3) 0; border-bottom:1px solid var(--g-mid)}
.skill dt{font:500 1.375rem/1.15 var(--display); color:var(--g-dark)}
.skill dd{margin:0}
.aside-note{border-left:0; padding-top:var(--s1)}
.aside-note .subtitle{margin-bottom:var(--s2)}

/* Parc machines */
.chart{margin-top:var(--s5)}
.scale,.row{display:grid; grid-template-columns:13rem 1fr; gap:var(--s3); align-items:center}
.scale{font:500 .8125rem/1 var(--body)}
.ticks{position:relative; height:1.5rem; border-bottom:1px solid var(--g-mid)}
.ticks span{position:absolute; transform:translateX(-50%); bottom:.45rem}
.row{padding:1rem 0; border-bottom:1px solid var(--g-light)}
.row .name{font:500 1.0625rem/1.25 var(--display)}
.row .name small{display:block; font:400 .875rem/1.35 var(--body); margin-top:.2rem}
.track{position:relative; height:2.5rem; background:repeating-linear-gradient(90deg,transparent 0 calc(100%/7 - 1px),var(--g-light) calc(100%/7 - 1px) calc(100%/7))}
.bar{position:absolute; top:.4rem; bottom:.4rem; left:var(--from); width:calc(var(--to) - var(--from)); border-radius:3px; background:var(--pp); color:#fff; display:flex; align-items:center; justify-content:center; font:600 .875rem/1 var(--display); white-space:nowrap; transform-origin:left; transition:transform 1.1s cubic-bezier(.16,1,.3,1)}
.bar.mono{background:var(--g-dark)}
.chart.pending .bar{transform:scaleX(0)}
.legend{display:flex; flex-wrap:wrap; gap:var(--s3); margin-top:var(--s3); font-size:.9375rem}
.legend i{display:inline-block; width:1.5rem; height:.75rem; border-radius:2px; vertical-align:-.05rem; margin-right:.5rem}
.note{margin-top:var(--s3); font-size:.9375rem; max-width:70ch}

/* Qualité */
.quality{display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:clamp(2rem,5vw,5rem); align-items:start; margin-top:var(--s5)}
.cert{display:flex; gap:var(--s3); align-items:center; padding:var(--s3); border:1px solid var(--g-mid); border-radius:var(--radius)}
.cert .seal{flex:none; width:5.5rem; height:5.5rem; border-radius:50%; border:2px solid var(--pp); display:grid; place-items:center; text-align:center; font:700 1.375rem/1 var(--display); color:var(--pp)}
.cert .seal small{display:block; font:500 .6875rem/1 var(--display); letter-spacing:.08em; margin-top:.2rem}
.checks{margin:var(--s3) 0 0; padding:0; list-style:none}
.checks li{padding:.8rem 0 .8rem 1.75rem; border-bottom:1px solid var(--g-light); position:relative}
.checks li::before{content:""; position:absolute; left:0; top:1.3rem; width:.75rem; height:2px; background:var(--pp)}
.sectors{margin-top:var(--s4); font:500 1.0625rem/1.9 var(--display); display:flex; flex-wrap:wrap; align-items:baseline}
.sectors b{font-weight:500; color:var(--g-dark); margin-right:.75rem}
.sectors span:not(:last-child)::after{content:"/"; color:var(--g-mid); padding:0 .5rem}

/* Carte du groupe */
.map-grid{display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:clamp(2rem,5vw,4rem); align-items:center; margin-top:var(--s5)}
.map{width:100%; height:auto}
.map .country{fill:none; stroke:var(--g-dark); stroke-width:2.2; stroke-linejoin:round}
.map .lead{fill:none; stroke-width:1.2; stroke-dasharray:2 4}
.map .city{font:400 10.5px var(--body); fill:var(--g-dark)}
.map .cname{font:500 14px var(--display); fill:var(--g-dark); letter-spacing:.06em}
.map a:hover image,.map a:focus image{opacity:.8}
.companies{list-style:none; margin:0; padding:0; display:grid; gap:0; border-top:2px solid var(--g-dark)}
.companies li{border-bottom:1px solid var(--g-mid)}
.companies a{display:grid; grid-template-columns:7.5rem 1fr auto; gap:var(--s2); align-items:center; padding:var(--s2) 0; text-decoration:none; color:var(--g-dark)}
.companies img{height:44px; width:auto}
.companies span{font-size:.9375rem; line-height:1.4}
.companies em{font:500 .875rem/1 var(--display); font-style:normal; color:var(--pp); white-space:nowrap}
.companies a:hover em{text-decoration:underline}

/* Contact + fil conducteur */
.contact{position:relative; overflow:hidden; padding:var(--s6) 0 calc(var(--s6) + 4rem)}
.contact .wrap{position:relative; z-index:1}
.contact .grid{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(2rem,5vw,5rem); align-items:start; margin-top:var(--s5)}
.contact address{font-style:normal; display:grid; gap:var(--s3)}
.contact address div{border-top:1px solid var(--g-mid); padding-top:var(--s2)}
.contact address b{display:block; font:500 .875rem/1 var(--display); letter-spacing:.08em; text-transform:uppercase; margin-bottom:.5rem}
.contact .btn{margin-top:var(--s4)}
.fil{position:absolute; left:0; bottom:0; width:min(50%,560px); z-index:0; pointer-events:none; user-select:none}
.contact .actions{position:relative; z-index:1}

/* Pied de page (charte : version sombre) */
.site-foot{background:var(--g-dark); color:#fff; clip-path:polygon(0 1.6rem,100% 0,100% 100%,0 100%); padding:calc(var(--s5) + 1rem) 0 var(--s3); font-size:.9375rem}
.site-foot .baseline{font:italic 400 1.25rem/1.3 var(--body); color:#fff; text-align:right}
.foot-band{display:flex; align-items:center; gap:clamp(1rem,3vw,2.5rem); flex-wrap:wrap; margin-top:var(--s2); padding-top:var(--s2); border-top:1px solid rgba(255,255,255,.5)}
.foot-band img{height:40px; width:auto}
.foot-band a{font:500 1rem/1 var(--display); letter-spacing:.04em; color:#fff; text-decoration:none; text-transform:uppercase}
.foot-band a:hover{text-decoration:underline}
.foot-band a[aria-current]{text-decoration:underline; text-decoration-color:var(--pp); text-decoration-thickness:2px}
.foot-legal{display:flex; flex-wrap:wrap; gap:.4rem 1.5rem; margin-top:var(--s4); font-size:.875rem; color:#E6E6E6}
.foot-legal a,.foot-legal button{color:#fff; text-decoration:none; font:inherit; background:none; border:0; padding:0; cursor:pointer}
.foot-legal a:hover,.foot-legal button:hover{text-decoration:underline}
.foot-legal .copy{margin-left:auto}

/* Pages légales */
.legal{padding:clamp(2.5rem,6vw,4.5rem) 0 var(--s6)}
.legal .meta{margin-top:var(--s2); font-size:.9375rem}
.legal-body{max-width:76ch; margin-top:var(--s5)}
.legal-body h2{font-weight:500; font-size:1.5rem; text-transform:uppercase; margin:var(--s5) 0 var(--s2); display:flex; align-items:center; gap:1rem}
.legal-body h2::after{content:""; flex:1; height:1.5px; background:var(--g-mid)}
.legal-body h3{font-weight:500; font-size:1.1875rem; margin:var(--s4) 0 .5rem}
.legal-body p,.legal-body ul,.legal-body table{margin:0 0 var(--s2)}
.legal-body ul{padding-left:1.2rem}
.legal-body li{margin-bottom:.35rem}
.legal-body table{width:100%; border-collapse:collapse; font-size:.9375rem; display:block; overflow-x:auto}
.legal-body th,.legal-body td{text-align:left; padding:.7rem .8rem; border-bottom:1px solid var(--g-mid); vertical-align:top}
.legal-body th{font:500 .875rem/1.2 var(--display); text-transform:uppercase; letter-spacing:.04em; background:var(--g-light)}
.legal-body dl{display:grid; grid-template-columns:minmax(10rem,auto) 1fr; gap:.4rem 1.5rem; margin:0 0 var(--s2)}
.legal-body dt{font:500 1rem/1.5 var(--display)}
.legal-body dd{margin:0}
.callout{background:var(--g-light); padding:var(--s3); border-radius:var(--radius); margin:var(--s3) 0}

/* Consentement */
.cc-banner{position:fixed; left:50%; bottom:calc(1rem + env(safe-area-inset-bottom,0px)); transform:translateX(-50%); width:min(760px, 100% - 2rem); background:var(--white); border:1px solid var(--g-mid); border-radius:var(--radius); box-shadow:0 18px 40px -20px rgba(0,0,0,.35); padding:var(--s3); z-index:50; display:grid; gap:var(--s2)}
.cc-banner h2{font-weight:500; font-size:1.125rem; text-transform:uppercase}
.cc-banner p{font-size:.9375rem}
.cc-actions{display:flex; flex-wrap:wrap; gap:.75rem}
.cc-actions .btn{padding:.8rem 1.1rem .65rem; font-size:.9375rem}
.cc-dialog{border:0; border-radius:var(--radius); padding:0; width:min(640px, 100% - 2rem); color:var(--g-dark); box-shadow:0 24px 60px -20px rgba(0,0,0,.45)}
.cc-dialog::backdrop{background:rgba(82,82,82,.6)}
.cc-dialog form{padding:var(--s4) var(--s4) var(--s3)}
.cc-dialog h2{font-weight:500; font-size:1.375rem; text-transform:uppercase}
.cc-cat{display:grid; grid-template-columns:1fr auto; gap:.3rem var(--s2); padding:var(--s2) 0; border-bottom:1px solid var(--g-light)}
.cc-cat h3{font-weight:500; font-size:1.0625rem}
.cc-cat p{grid-column:1/-1; font-size:.9063rem}
.switch{appearance:none; width:2.75rem; height:1.5rem; border-radius:99px; background:var(--g-mid); position:relative; margin:0; cursor:pointer; transition:background-color .25s}
.switch::after{content:""; position:absolute; top:3px; left:3px; width:1.125rem; height:1.125rem; border-radius:50%; background:#fff; transition:transform .3s cubic-bezier(.16,1,.3,1)}
.switch:checked{background:var(--pp)}
.switch:checked::after{transform:translateX(1.25rem)}
.switch:disabled{opacity:.55; cursor:not-allowed}

/* Responsive */
@media (max-width:980px){
  .hero .wrap,.split,.quality,.map-grid,.contact .grid{grid-template-columns:minmax(0,1fr)}
  .steps{grid-template-columns:1fr 1fr}
  .gallery{grid-template-columns:1fr 1fr}
  .gallery figure:first-child{grid-row:auto; grid-column:1/-1; aspect-ratio:4/3}
  .fil{width:70%}
}
@media (max-width:720px){
  .nav{display:none}
  .menu{display:block; margin-left:auto; position:relative}
  .menu summary{list-style:none; cursor:pointer; font:500 .9375rem/1 var(--display); padding:.75rem 1rem .6rem; border:1.5px solid var(--g-dark); border-radius:var(--radius)}
  .menu summary::-webkit-details-marker{display:none}
  .menu nav{position:absolute; right:0; top:calc(100% + .5rem); background:#fff; border:1px solid var(--g-mid); border-radius:var(--radius); box-shadow:0 18px 40px -20px rgba(0,0,0,.35); display:grid; min-width:14rem; padding:.5rem}
  .menu nav a{padding:.8rem 1rem; color:var(--g-dark); text-decoration:none; font:500 1rem/1 var(--display)}
  .brand img{height:24px}
  .steps,.gallery{grid-template-columns:minmax(0,1fr)}
  .skill{grid-template-columns:1fr; gap:.4rem}
  .scale,.row{grid-template-columns:1fr; gap:.4rem}
  .scale > span:first-child{display:none}
  .plate dd{text-align:left}
  .companies a{grid-template-columns:6rem 1fr}
  .companies em{display:none}
  .site-foot .baseline{text-align:left}
  .foot-legal .copy{margin-left:0}
  .fil{width:90%}
  .legal-body dl{grid-template-columns:1fr; gap:.1rem}
  .legal-body dd{margin-bottom:.6rem}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important; transition:none!important}
  html{scroll-behavior:auto}
  .chart.pending .bar{transform:none}
}
.gallery figure:first-child img{object-position:50% 80%}
.track{background-color:var(--white)}
.contact{padding-bottom:clamp(10rem,22vw,17rem)}
.fil{width:min(42%,480px)}
@media (max-width:720px){.fil{width:75%}}
/* V2.1 : parcours en 3 étapes, photos plus compactes */
.steps{grid-template-columns:repeat(3,minmax(0,1fr))}
.gallery{grid-template-columns:repeat(3,minmax(0,1fr)); grid-template-rows:none}
.gallery figure:first-child{grid-row:auto; grid-column:auto; aspect-ratio:auto}
.gallery figure{height:clamp(200px,22vw,300px)}
@media (max-width:980px){.steps{grid-template-columns:minmax(0,1fr)} .gallery{grid-template-columns:repeat(2,minmax(0,1fr))} .gallery figure:first-child{grid-column:1/-1}}
@media (max-width:720px){.gallery{grid-template-columns:minmax(0,1fr)} .gallery figure{height:220px}}
.gallery figure:first-child img{object-position:50% 62%}

   /* V2.2 : parc machines, sous-titres Injection / Usinage et liste usinage */

/* Sous-titres : League Spartan en minuscules (règle de la charte) */
.parc__sous-titre {
  font-family: "League Spartan", sans-serif;
  font-weight: 500;
  font-size: 1.3rem;
  text-transform: lowercase;
  color: #525252;
  margin: 2rem 0 1rem;
  padding-bottom: .4rem;
  border-bottom: 1px solid #C8C8C8;
}

.parc-usinage {
  margin-top: 2.5rem;
}

.parc-usinage__liste {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.1rem 2.5rem;
}

.parc-usinage__liste li {
  display: flex;
  align-items: center;
  gap: 1rem;
}

/* Effectif dans un rond magenta, en écho aux ronds de la charte */
.parc-usinage__nb {
  flex: none;
  width: 2.6rem;
  height: 2.6rem;
  border: 2px solid var(--pp);
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-family: "League Spartan", sans-serif;
  font-weight: 500;
  font-size: 1.3rem;
  line-height: 1;
  padding-top: .12rem; /* ligne de base de League Spartan */
  color: var(--pp);
}

.parc-usinage__txt {
  font-family: "Roboto", sans-serif;
  color: var(--g-dark);
  line-height: 1.4;
}
.parc-usinage__txt strong {
  display: block;
  font-weight: 700;
}
.parc-usinage__cap {
  display: block;
  font-size: .92rem;
}

.sr-only {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

@media (max-width: 640px) {
  .parc-usinage__liste { grid-template-columns: 1fr; }
}
.parc__sous-titre + .chart { margin-top: 0; padding-top: 0; }
/* V2.3 (15/10/2026) : titres enrichis pour le référencement
   Le sous-titre fait partie du Hn (lu par les moteurs) mais garde
   le rendu « sous-titre en minuscules » de la charte. */

/* H1 du hero : 3 lignes en majuscules + sous-titre */
.hero h1 span.h1-sub{display:block; margin-top:var(--s3); color:var(--g-dark);
  font:500 1.375rem/1.2 var(--display); text-transform:none; letter-spacing:0}

/* H2 de section : ligne 1 = titre + filet + rond, ligne 2 = sous-titre */
.title--sub{display:grid; grid-template-columns:auto minmax(3rem,1fr) auto;
  grid-template-rows:auto auto; align-items:center; column-gap:0}
.title--sub h2{grid-column:1/-1; grid-row:1/3; display:grid;
  grid-template-columns:subgrid; grid-template-rows:subgrid;
  max-width:none; margin-right:0}
.title--sub .h2-main{grid-column:1; grid-row:1; max-width:24ch;
  margin-right:clamp(1rem,2vw,1.75rem)}
.title--sub::after{grid-column:2; grid-row:1}
.title--sub > i{grid-column:3; grid-row:1}
.title--sub .h2-sub{grid-column:1/-1; grid-row:2; max-width:52ch; margin-top:var(--s1);
  font:500 1.375rem/1.2 var(--display); text-transform:none; letter-spacing:0}
/* Navigateurs sans subgrid : sous-titre sous le titre, filet centré */
@supports not (grid-template-columns:subgrid){
  .title--sub h2{grid-column:1; display:block; margin-right:clamp(1rem,2vw,1.75rem)}
  .title--sub .h2-main,.title--sub .h2-sub{display:block; margin-right:0}
  .title--sub::after,.title--sub > i{grid-row:1/3}
}

/* Savoir-faire : intitulés en H3 (remplacent dt/dd) */
.skill h3{font:500 1.375rem/1.15 var(--display); color:var(--g-dark)}
