/* Accueil UrbanVoirie (maquette, version sobre). Généré par deploiement/accueil/construire-css.js depuis
   assets/css/styles.css et sobre.css : ne pas modifier à la main, modifier la maquette puis regénérer. */
body .uvac a,body .uvac button,body .uvac input,body .uvac select,body .uvac textarea{font-family:inherit}
.uvac{font-family:"UVFP DM Sans","DM Sans",system-ui,-apple-system,"Segoe UI",sans-serif;font-size:16px;line-height:1.55;color:var(--ink);background:#fff;font-optical-sizing:none;-webkit-font-smoothing:antialiased;text-align:left}
.uvac *,.uvac *::before,.uvac *::after{box-sizing:border-box}
.uvac h1,.uvac h2,.uvac h3,.uvac h4{margin:0;padding:0;font-family:inherit;font-weight:600;line-height:1.15;letter-spacing:-.02em;color:inherit;text-transform:none;text-wrap:balance}
.uvac p,.uvac ul,.uvac ol,.uvac dl,.uvac dd,.uvac figure{margin:0;padding:0}
.uvac ul,.uvac ol{list-style:none}
.uvac a{color:inherit;text-decoration:none;box-shadow:none}
.uvac img{display:block;max-width:100%;height:auto}
.uvac button,.uvac input,.uvac textarea,.uvac select{font:inherit;color:inherit;letter-spacing:normal;text-transform:none}
.uvac button{cursor:pointer}
.uvac .icon{width:20px;height:20px;flex:none}
.uvac .icon-sm{width:16px;height:16px}
.uvac .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}
.uvac [hidden]{display:none!important}
.uvac{
  
  --navy-950: #0B2942;
  --navy-900: #0F3557;
  --navy-800: #164573;
  --blue-700: #136FB0;   
  --blue-600: #1B86D0;   
  --blue-400: #4FA6E0;
  --blue-300: #7CC4EE;
  --blue-100: #DCEEFB;
  --blue-50:  #EEF6FD;

  
  --gold: #C19B2B;
  --gold-hover: #A8861F;
  --on-gold: #FFFFFF;
  --gold-ink: #8F7019;   
  --gold-soft: #F1E7CC;  

  
  --ink:   #0F1E2E;
  --ink-2: #3D4E60;
  --ink-3: #5A6875;
  --line:  #DDE3E9;
  --line-2:#E9EEF3;
  --bg:      #FFFFFF;
  --bg-soft: #F4F7FA;
  --bg-blue: #F2F7FC;

  
  --ok: #14603E;
  --ok-bg: #E7F4EC;
  --danger: #B42318;
  --focus: #1B86D0;

  
  --cl-A15-bg: #E3F2FC; --cl-A15-fg: #0B4F80;
  --cl-B125-bg:#BFE0F5; --cl-B125-fg:#0B3F66;
  --cl-C250-bg:#136FB0; --cl-C250-fg:#FFFFFF;
  --cl-D400-bg:#0F4F85; --cl-D400-fg:#FFFFFF;
  --cl-E600-bg:#0F3557; --cl-E600-fg:#FFFFFF;
  --cl-F900-bg:#0B1E33; --cl-F900-fg:#FFFFFF;

  --radius-sm: 6px;
  --radius: 10px;
  --radius-lg: 16px;
  --shadow-sm: 0 1px 2px rgba(15, 30, 46, .06);
  --shadow: 0 8px 24px -10px rgba(15, 53, 87, .22);
  --shadow-lg: 0 28px 56px -20px rgba(15, 53, 87, .35);

  --font: 'DM Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --mono: 'JetBrains Mono', ui-monospace, 'SF Mono', Menlo, monospace;

  --container: 1520px; 
  --gutter: clamp(16px, 4vw, 40px);
  --header-h: 72px;
  --ease: cubic-bezier(.2, .7, .2, 1);
  --dur: 200ms;
}
.uvac .sr-only{position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;}
.uvac .container{width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter);}
.uvac .icon{width: 20px; height: 20px; flex: none; stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round;}
.uvac .icon-sm{width: 16px; height: 16px;}
.uvac .mono{font-family: var(--mono); font-feature-settings: 'zero' 0; letter-spacing: -0.01em;}
.uvac .eyebrow{display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--mono); font-size: 12px; font-weight: 500;
  letter-spacing: .08em; text-transform: uppercase; color: var(--blue-700);}
.uvac .eyebrow::before{content: ''; width: 18px; height: 1px; background: currentColor;}
.uvac .section{padding-block: clamp(56px, 8vw, 104px);}
.uvac .section-head{display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 16px 32px; margin-bottom: clamp(28px, 4vw, 44px);}
.uvac .section-head h2{margin-top: 10px;}
.uvac .section-head p{max-width: 520px; color: var(--ink-2);}
.uvac .h2{font-size: clamp(28px, 18.4px + 1.9vw, 41.6px); font-weight: 700;}
.uvac .lead{font-size: clamp(16.8px, 16px + .3vw, 19.2px); color: var(--ink-2);}
.uvac .btn{display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 44px; padding: 0 18px;
  border: 1px solid transparent; border-radius: 8px;
  font-weight: 600; font-size: 15px; line-height: 1; white-space: nowrap;
  transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease), box-shadow var(--dur) var(--ease), transform 120ms var(--ease);}
.uvac .btn:active{transform: translateY(1px);}
.uvac .btn-primary{background: var(--blue-700); color: #fff;}
.uvac .btn-primary:hover{background: var(--navy-900);}
.uvac .btn-gold{background: var(--gold); border-color: var(--gold); color: var(--on-gold);}
.uvac .btn-gold:hover{background: var(--gold-hover); border-color: var(--gold-hover); color: var(--on-gold);}
.uvac .btn-ghost-light{background: transparent; border-color: rgba(255,255,255,.35); color: #fff;}
.uvac .btn-ghost-light:hover{background: rgba(255,255,255,.1); border-color: #fff;}
.uvac .btn-lg{min-height: 52px; padding: 0 24px; font-size: 16px;}
.uvac .btn-block{width: 100%;}
.uvac .btn[disabled]{opacity: .55; cursor: not-allowed;}
.uvac .link-arrow{display: inline-flex; align-items: center; gap: 6px; font-weight: 600; color: var(--blue-700);}
.uvac .link-arrow .icon{transition: transform var(--dur) var(--ease);}
.uvac .link-arrow:hover .icon{transform: translateX(3px);}
.uvac .link-arrow:hover{color: var(--navy-900);}
.uvac .badge-cl{display: inline-flex; align-items: center; gap: 6px;
  height: 26px; padding: 0 9px; border-radius: 6px;
  font-family: var(--mono); font-size: 12px; font-weight: 600; letter-spacing: .02em; white-space: nowrap;}
.uvac .badge-cl small{font-weight: 400; opacity: .85; font-size: 11px;}
.uvac .badge-cl[data-cl="A15"]{background: var(--cl-A15-bg);  color: var(--cl-A15-fg);}
.uvac .badge-cl[data-cl="B125"]{background: var(--cl-B125-bg); color: var(--cl-B125-fg);}
.uvac .badge-cl[data-cl="C250"]{background: var(--cl-C250-bg); color: var(--cl-C250-fg);}
.uvac .badge-cl[data-cl="D400"]{background: var(--cl-D400-bg); color: var(--cl-D400-fg);}
.uvac .badge-cl[data-cl="E600"]{background: var(--cl-E600-bg); color: var(--cl-E600-fg);}
.uvac .badge-cl[data-cl="F900"]{background: var(--cl-F900-bg); color: var(--cl-F900-fg);}
.uvac .tag{display: inline-flex; align-items: center; gap: 5px; height: 24px; padding: 0 8px; border-radius: 999px;
  font-size: 12px; font-weight: 600; color: var(--navy-900); background: var(--blue-50); border: 1px solid var(--blue-100); white-space: nowrap;}
.uvac .tag.tag-ic{height: 28px; padding: 0 6.5px; gap: 0; justify-content: center; position: relative; z-index: 2; pointer-events: auto; cursor: default;}
.uvac .tag.tag-ic .icon{flex: none; width: 15px; height: 15px;}
.uvac .tag-ic .tag-l{max-width: 0; overflow: hidden; white-space: nowrap; opacity: 0; transition: max-width 260ms var(--ease), opacity 200ms var(--ease), margin 260ms var(--ease);}
.uvac .tag-ic:hover .tag-l{max-width: 90px; opacity: 1; margin: 0 6px 0 4px;}
.uvac .stock{display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--ok); font-weight: 500;}
.uvac .stock::before{content: ''; width: 7px; height: 7px; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 3px var(--ok-bg);}
.uvac .icon-btn{position: relative; display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 10px;
  background: none; border: 0; color: var(--navy-900); transition: background-color var(--dur) var(--ease);}
.uvac .icon-btn:hover{background: var(--bg-soft);}
@keyframes bump{ 40% { transform: scale(1.35); } }
.uvac .search{position: relative;}
.uvac .search-field{display: flex; align-items: center; gap: 10px; height: 46px; padding: 0 6px 0 14px;
  background: var(--bg-soft); border: 1px solid var(--line-2); border-radius: 10px;
  transition: border-color var(--dur) var(--ease), background-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);}
.uvac .search-field:focus-within{background: #fff; border-color: var(--blue-600); box-shadow: 0 0 0 4px rgba(27,134,208,.15);}
.uvac .search-field .icon{color: var(--ink-3);}
.uvac .search-field .btn .icon{color: inherit;}
.uvac .search-field input{flex: 1; min-width: 0; height: 100%; border: 0; background: none; outline: none; font-size: 15px;}
.uvac .search-field input::placeholder{color: var(--ink-3);}
.uvac .search-field kbd{font-family: var(--mono); font-size: 11px; color: var(--ink-3); border: 1px solid var(--line); border-bottom-width: 2px; border-radius: 5px; padding: 1px 6px; background: #fff; margin-right: 6px;}
.uvac .search-lg .search-field{height: 64px; padding: 0 8px 0 20px; background: #fff; border-color: var(--line); box-shadow: var(--shadow); border-radius: 14px;}
.uvac .search-lg .search-field input{font-size: 17px;}
.uvac .search-lg .search-field .icon{width: 22px; height: 22px;}
.uvac .search-lg .btn{min-height: 48px;}
@keyframes pop{ from { opacity: 0; transform: translateY(-4px); } }
.uvac .hero{position: relative; overflow: hidden; isolation: isolate;
  background-color: var(--bg-blue);
  background-image:
    linear-gradient(rgba(27,134,208,.09) 1px, transparent 1px),
    linear-gradient(90deg, rgba(27,134,208,.09) 1px, transparent 1px),
    linear-gradient(rgba(27,134,208,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(27,134,208,.045) 1px, transparent 1px);
  background-size: 120px 120px, 120px 120px, 24px 24px, 24px 24px;
  background-position: -1px -1px;
  border-bottom: 1px solid var(--line-2);}
.uvac .hero::after{content: ''; position: absolute; z-index: -1; inset: auto 0 0 0; height: 120px; background: linear-gradient(transparent, rgba(242,247,252,.9)); pointer-events: none;}
.uvac .hero-inner{position: relative; display: grid; grid-template-columns: 1.08fr .92fr; align-items: center; gap: clamp(32px, 5vw, 72px); padding-block: clamp(40px, 6vw, 80px) clamp(48px, 6vw, 88px);}
.uvac .hero h1{margin-top: 18px; font-size: clamp(35.2px, 20.8px + 2.6vw, 54.4px); font-weight: 700; letter-spacing: -0.028em; line-height: 1.06; color: var(--navy-950);}
.uvac .hero h1 em{font-style: normal; color: var(--blue-600);}
.uvac .hero .lead{margin-top: 20px; max-width: 560px;}
.uvac .hero .search{margin-top: 32px; max-width: 620px;}
.uvac .hero-stats{display: grid; grid-template-columns: repeat(4, auto); justify-content: start; gap: 28px; margin-top: 40px; padding-top: 24px; border-top: 1px solid rgba(15,53,87,.12); max-width: 620px;}
.uvac .hero-stats dt{font-family: var(--mono); font-size: clamp(18.4px, 16px + .6vw, 24px); font-weight: 600; color: var(--navy-900); letter-spacing: -0.03em;}
.uvac .hero-stats dd{margin: 4px 0 0; font-size: 13px; color: var(--ink-3); line-height: 1.35;}
.uvac .blueprint{position: relative; width: 100%; max-width: 580px; margin-inline: auto;}
.uvac .blueprint-frame{position: relative; aspect-ratio: 1;}
.uvac .blueprint-frame img{position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; filter: contrast(1.04);}
.uvac .blueprint-svg{position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none;}
.uvac .blueprint-svg .ln{stroke: var(--blue-600); stroke-width: 2; fill: none; vector-effect: non-scaling-stroke;}
.uvac .blueprint-svg .ln-dash{stroke-dasharray: 5 5;}
.uvac .blueprint-svg .dot{fill: #fff; stroke: var(--blue-600); stroke-width: 2; vector-effect: non-scaling-stroke;}
.uvac .blueprint-svg text{font-family: var(--mono); font-size: 26px; font-weight: 600; fill: var(--blue-700);}
.uvac .callout{position: absolute; z-index: 2; padding: 8px 12px; background: rgba(255,255,255,.92); border: 1px solid var(--blue-100);
  border-radius: 8px; box-shadow: var(--shadow-sm); backdrop-filter: blur(4px);
  font-family: var(--mono); font-size: clamp(10.5px, 8.8px + .25vw, 12.5px); line-height: 1.35; color: var(--ink-2); white-space: nowrap;}
.uvac .callout b{display: block; font-weight: 600; color: var(--navy-900); font-size: 1.08em;}
.uvac .callout-1{left: 66%; top: 6%;}
.uvac .callout-2{left: 70%; top: 61%;}
.uvac .callout-3{left: -2%; top: 70%;}
.uvac .hero-product{position: relative; z-index: 3; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 12px 16px;
  margin: -6% 4% 0; padding: 14px 14px 14px 18px; background: #fff; border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow-lg);}
.uvac .hero-product .n{font-weight: 600; font-size: 15px; line-height: 1.3;}
.uvac .hero-product .n:hover{color: var(--blue-700);}
.uvac .hero-product .meta{display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-top: 6px;}
.uvac .hero-product .price{font-size: 20px; font-weight: 700; letter-spacing: -0.02em;}
.uvac .hero-product .price small{margin-left: 8px; font-size: 13px; font-weight: 500; letter-spacing: 0; color: var(--ink-3); white-space: nowrap;}
.uvac .assurance{background: var(--navy-900); color: #fff;}
.uvac .assurance ul{display: grid; grid-template-columns: repeat(4, 1fr);}
.uvac .assurance li{display: flex; align-items: center; gap: 14px; padding: 22px 20px; border-left: 1px solid rgba(255,255,255,.1);}
.uvac .assurance li:first-child{border-left: 0; padding-left: 0;}
.uvac .assurance .ic{display: grid; place-items: center; width: 42px; height: 42px; border-radius: 10px; background: rgba(124,196,238,.14); color: var(--blue-300); flex: none;}
.uvac .assurance strong{display: block; font-size: 15px; font-weight: 600;}
.uvac .assurance span{font-size: 13px; color: rgba(255,255,255,.72);}
.uvac .classes{background: #fff;}
.uvac .loadscale{display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px;}
.uvac .ls-btn{position: relative; display: flex; flex-direction: column; gap: 6px; min-height: 150px; padding: 16px;
  background: #fff; border: 1px solid var(--line); border-radius: 12px; text-align: left;
  transition: border-color var(--dur) var(--ease), background-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease);}
.uvac .ls-btn:hover{border-color: var(--blue-300);}
@media (hover: hover){
.uvac .ls-btn:hover{transform: translateY(-2px); box-shadow: var(--shadow-sm);}
}
.uvac .ls-btn .ic{color: var(--blue-700); margin-bottom: auto;}
.uvac .ls-btn .code{margin-top: 14px; font-family: var(--mono); font-size: 22px; font-weight: 700; letter-spacing: -0.03em; color: var(--navy-950); line-height: 1;}
.uvac .ls-btn .meta{display: flex; justify-content: space-between; gap: 8px;}
.uvac .ls-btn .t{font-family: var(--mono); font-size: 13px; font-weight: 500; color: var(--ink-2);}
.uvac .ls-btn .cnt{font-size: 12px; color: var(--ink-3);}
.uvac .ls-meter{display: block; height: 4px; margin-top: 4px; border-radius: 2px; background: var(--blue-100); overflow: hidden;}
.uvac .ls-meter > span{display: block; height: 100%; min-width: 4px; border-radius: 2px; background: var(--blue-700);}
.uvac .ls-btn .t{color: var(--blue-700); font-weight: 600;}
.uvac .ls-btn[aria-selected="true"]{background: var(--navy-900); border-color: var(--navy-900); box-shadow: var(--shadow);}
.uvac .ls-btn[aria-selected="true"] .code,.uvac .ls-btn[aria-selected="true"] .ic{color: #fff;}
.uvac .ls-btn[aria-selected="true"] .t,.uvac .ls-btn[aria-selected="true"] .cnt{color: rgba(255,255,255,.78);}
.uvac .ls-btn[aria-selected="true"] .ls-meter{background: rgba(255,255,255,.18);}
.uvac .ls-btn[aria-selected="true"] .ls-meter > span{background: var(--blue-300);}
.uvac .ls-btn[aria-selected="true"] .t{color: var(--blue-300);}
.uvac .ls-legend{display: flex; align-items: center; gap: 10px; margin-top: 12px; font-size: 13px; color: var(--ink-3);}
.uvac .ls-legend-meter{display: inline-block; flex: none; width: 36px; height: 4px; border-radius: 2px; background: var(--blue-100); overflow: hidden;}
.uvac .ls-legend-meter > span{display: block; width: 44%; height: 100%; border-radius: 2px; background: var(--blue-700);}
.uvac .cl-panel{display: grid; grid-template-columns: 340px 1fr; gap: 32px; margin-top: 28px; padding: 28px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: linear-gradient(180deg, var(--bg-blue), #fff 60%);}
.uvac .cl-panel[hidden]{display: none;}
.uvac .cl-info h3{margin-top: 12px; font-size: 24px; color: var(--navy-950);}
.uvac .cl-info p{margin-top: 8px; color: var(--ink-2); font-size: 15px;}
.uvac .cl-info > .eyebrow{color: var(--blue-700);}
.uvac .cl-info .ex{margin-top: 18px; padding-top: 16px; border-top: 1px dashed var(--line); font-size: 14px; color: var(--ink-2);}
.uvac .cl-info .ex b{display: block; font-family: var(--mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-3); font-weight: 500; margin-bottom: 4px;}
.uvac .cl-info .btn{margin-top: 22px;}
.uvac .cl-products{display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; align-content: start;}
.uvac .cl-note{margin-top: 18px; font-size: 14px; color: var(--ink-3); display: flex; align-items: center; gap: 8px;}
.uvac .pcard{position: relative; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line-2); border-radius: 14px;
  transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease);}
@media (hover: hover){
.uvac .pcard:hover{border-color: var(--blue-100); box-shadow: var(--shadow); transform: translateY(-2px);}
}
.uvac .pcard-media{position: relative; display: block; aspect-ratio: 1 / .86; padding: 14px; border-radius: 14px 14px 0 0; background: #fff; overflow: hidden;}
.uvac .pcard-media img{width: 100%; height: 100%; object-fit: contain; transition: transform 400ms var(--ease);}
@media (hover: hover){
.uvac .pcard:hover .pcard-media img{transform: scale(1.04);}
}
.uvac .pcard-media .ph,.uvac .ph{display: grid; place-items: center; width: 100%; height: 100%; color: var(--blue-300); background: var(--bg-blue); border-radius: 10px;}
.uvac .pcard-media .ph .icon{width: 40px; height: 40px; stroke-width: 1.2;}
.uvac .pcard-flags{position: absolute; top: 12px; left: 12px; right: 12px; display: flex; justify-content: space-between; gap: 6px; pointer-events: none;}
.uvac .pcard-body{display: flex; flex-direction: column; flex: 1; gap: 8px; padding: 4px 16px 16px;}
.uvac .pcard-cat{font-family: var(--font); font-size: 11.5px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-3);}
.uvac .pcard-title{font-size: 15px; font-weight: 600; line-height: 1.32; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.64em;}
.uvac .pcard-title a::after{content: ''; position: absolute; inset: 0; z-index: 1; border-radius: 14px;}
.uvac .pcard-title a:hover{color: var(--blue-700);}
.uvac .pcard-specs{display: flex; flex-wrap: wrap; gap: 2px 14px; font-family: var(--mono); font-size: 12px; color: var(--ink-2);}
.uvac .pcard-specs span{white-space: nowrap;}
.uvac .pcard-specs abbr{text-decoration: none; cursor: help;}
.uvac .pcard-foot{display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; padding-top: 12px; border-top: 1px solid var(--line-2);}
.uvac .pcard-price{font-size: 19px; font-weight: 700; letter-spacing: -0.02em; line-height: 1.1;}
.uvac .pcard-price small{display: block; margin-top: 3px; font-size: 12px; font-weight: 500; letter-spacing: 0;}
.uvac .pcard-price small.stock{display: flex;}
.uvac .pcard-price small.ttc{color: var(--ink-3);}
.uvac .btn-add{position: relative; z-index: 2; min-height: 42px; padding: 0 14px;}
.uvac .compact .pcard-media{aspect-ratio: 1 / .8; padding: 10px;}
.uvac .compact .pcard-body{padding: 2px 12px 12px; gap: 6px;}
.uvac .compact .pcard-title{font-size: 14px;}
.uvac .compact .pcard-price{font-size: 16px;}
.uvac .compact .btn-add{min-height: 40px; width: 40px; padding: 0;}
.uvac .compact .btn-add span{display: none;}
.uvac .compact .pcard-flags{top: 8px; left: 8px; right: 8px;}
.uvac .compact .pcard-flags .badge-cl small{display: none;}
.uvac .perso{background: var(--navy-900); color: #fff; position: relative; overflow: hidden;}
.uvac .perso::before{content: ''; position: absolute; inset: 0; opacity: .5; pointer-events: none;
  background-image: linear-gradient(rgba(124,196,238,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(124,196,238,.08) 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: radial-gradient(ellipse at 80% 50%, #000 0%, transparent 70%);}
.uvac .perso .container{position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 6vw, 88px); align-items: center;}
.uvac .perso .eyebrow{color: var(--gold);}
.uvac .perso h2{margin-top: 12px; color: #fff;}
.uvac .perso .lead{color: rgba(255,255,255,.78); margin-top: 16px;}
.uvac .steps{counter-reset: s; display: grid; gap: 4px; margin-top: 32px;}
.uvac .steps li{counter-increment: s; display: grid; grid-template-columns: 44px 1fr; gap: 16px; padding: 14px 0; border-top: 1px solid rgba(255,255,255,.12);}
.uvac .steps li::before{content: '0' counter(s); font-family: var(--mono); font-size: 14px; font-weight: 600; color: var(--gold); padding-top: 2px;}
.uvac .steps strong{display: block; font-size: 16px;}
.uvac .steps span{font-size: 14px; color: rgba(255,255,255,.72);}
.uvac .perso-facts{display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px;}
.uvac .perso-facts .tag{background: rgba(124,196,238,.12); border-color: rgba(124,196,238,.25); color: #fff; height: 30px; padding: 0 12px; font-size: 13px;}
.uvac .perso-cta{display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px;}
.uvac .perso-visual{position: relative; background: #fff; border-radius: 20px; padding: 6%; box-shadow: 0 40px 80px -30px rgba(0,0,0,.5);}
.uvac .perso-visual img{width: 100%; aspect-ratio: 1; object-fit: contain;}
.uvac .perso-label{position: absolute; left: 58%; top: 7%; font-family: var(--mono); font-size: 12.5px; color: var(--navy-900); line-height: 1.35;}
.uvac .perso-label b{display: block; font-size: 13.5px;}
.uvac .perso-visual .lead-line{position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none;}
.uvac .perso-visual .lead-line path{stroke: var(--blue-600); stroke-width: 1.5; fill: none; stroke-dasharray: 4 4; vector-effect: non-scaling-stroke;}
.uvac .perso-visual .lead-line circle{fill: var(--blue-600);}
.uvac .contact{background: var(--bg-blue);}
.uvac .contact .container{display: grid; grid-template-columns: 1.15fr .85fr; gap: 28px clamp(28px, 5vw, 64px); align-items: stretch;}
.uvac .contact-head{grid-column: 1 / -1; max-width: 760px;}
.uvac .contact .quote-card{display: flex; flex-direction: column;}
.uvac .contact .quote-card > .btn-block{margin-top: auto;}
.uvac .contact .quote-card .promises{margin-bottom: 28px;}
.uvac .contact h2{margin-top: 12px;}
.uvac .contact .lead{margin-top: 14px;}
.uvac .contact .form-card{margin-top: 0;}
.uvac .form-card-compact textarea{min-height: 96px;}
.uvac .quote-card{position: relative; overflow: hidden; background: var(--navy-900); color: #fff; border-radius: var(--radius-lg); padding: clamp(24px, 3vw, 36px); box-shadow: var(--shadow-lg);}
.uvac .quote-card::before{content: ''; position: absolute; inset: 0; pointer-events: none; opacity: .6; background-image: linear-gradient(rgba(124,196,238,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(124,196,238,.08) 1px, transparent 1px); background-size: 32px 32px; mask-image: linear-gradient(160deg, #000, transparent 70%);}
.uvac .quote-card > *{position: relative;}
.uvac .quote-card .eyebrow{color: var(--blue-300);}
.uvac .quote-card h3{margin-top: 12px; font-size: clamp(21.6px, 17.6px + .8vw, 27.2px);}
.uvac .quote-card > p{margin-top: 10px; color: rgba(255,255,255,.78); font-size: 15px;}
.uvac .quote-card .promises{margin-top: 24px;}
.uvac .quote-card .promises .ic{background: rgba(124,196,238,.12); border-color: rgba(124,196,238,.22); color: var(--blue-300);}
.uvac .quote-card .promises span{color: rgba(255,255,255,.7);}
.uvac .quote-card .btn-block{margin-top: 20px;}
.uvac .quote-card .direct-links{margin-top: 10px;}
.uvac .quote-card .direct-links .btn{flex: 1;}
@keyframes spin{ to { transform: rotate(360deg); } }
.uvac .promises{margin-top: 32px; display: grid; gap: 16px;}
.uvac .promises li{display: grid; grid-template-columns: 44px 1fr; gap: 14px; align-items: start;}
.uvac .promises .ic{display: grid; place-items: center; width: 44px; height: 44px; border-radius: 10px; background: #fff; border: 1px solid var(--line-2); color: var(--blue-700);}
.uvac .promises strong{display: block;}
.uvac .promises span{font-size: 14px; color: var(--ink-2);}
.uvac .direct-links{display: flex; flex-wrap: wrap; gap: 10px;}
.uvac .form-card{background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: clamp(20px, 3vw, 32px); box-shadow: var(--shadow);}
.uvac .form-card h3{font-size: 20px;}
.uvac .form-card > p{margin-top: 6px; font-size: 14px; color: var(--ink-3);}
.uvac .faq .container{display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(32px, 6vw, 80px);}
.uvac .faq h2{margin-top: 12px;}
.uvac .faq .lead{margin-top: 14px;}
.uvac .faq-list{border-top: 1px solid var(--line);}
.uvac .faq details{border-bottom: 1px solid var(--line);}
.uvac .faq summary{display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 0; font-weight: 600; font-size: 17px; cursor: pointer; list-style: none;}
.uvac .faq summary::-webkit-details-marker{display: none;}
.uvac .faq summary:hover{color: var(--blue-700);}
.uvac .faq summary .icon{color: var(--blue-700); transition: transform var(--dur) var(--ease);}
.uvac .faq details[open] summary .icon{transform: rotate(45deg);}
.uvac .faq details p{padding: 0 40px 22px 0; color: var(--ink-2);}
@keyframes toast-in{ from { opacity: 0; transform: translateY(10px); } }
@keyframes toast-out{ to { opacity: 0; transform: translateY(6px); } }
@media (max-width: 1180px){
.uvac .cl-products{grid-template-columns: repeat(2, 1fr);}
}
@media (max-width: 1024px){
.uvac .hero-inner{grid-template-columns: minmax(0, 1fr);}
.uvac .hero .blueprint{max-width: 520px;}
.uvac .loadscale{grid-template-columns: repeat(3, 1fr);}
.uvac .ls-btn{min-height: 136px;}
.uvac .cl-panel{grid-template-columns: minmax(0, 1fr);}
.uvac .perso .container,.uvac .contact .container,.uvac .faq .container{grid-template-columns: minmax(0, 1fr);}
.uvac .perso-visual{max-width: 520px;}
.uvac .assurance ul{grid-template-columns: repeat(2, 1fr);}
.uvac .assurance li:nth-child(3){border-left: 0; padding-left: 0;}
.uvac .assurance li{padding-inline: 0 16px;}
.uvac .assurance li + li:not(:nth-child(3)){padding-left: 20px;}
}
@media (max-width: 768px){
.uvac{ --header-h: 60px; }
.uvac .hero-stats{grid-template-columns: repeat(2, 1fr); gap: 20px;}
.uvac .search-lg .search-field{height: 56px; padding-left: 14px;}
.uvac .search-lg .btn span{display: none;}
.uvac .search-lg .btn{padding: 0 14px;}
.uvac .callout-3,.uvac .blueprint-svg .lk3{display: none;}
.uvac .callout-1,.uvac .callout-2{left: auto; right: 0; max-width: 44%; white-space: normal;}
.uvac .callout-1{top: 2%;}
.uvac .callout-2{top: 64%;}
.uvac .hero-product{margin: -4% 0 0; grid-template-columns: 1fr;}
.uvac .hero-product .btn{width: 100%;}
.uvac .cl-products{grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px;}
.uvac .pcard-body{padding: 2px 12px 12px;}
.uvac .pcard-title{font-size: 14px; -webkit-line-clamp: 3; min-height: 3.96em;}
.uvac .pcard-price{font-size: 16px;}
.uvac .pcard-flags{left: 8px; right: 8px; top: 8px; flex-wrap: wrap;}
.uvac .pcard-flags .badge-cl small{display: none;}
.uvac .pcard-foot{flex-direction: column; align-items: stretch;}
.uvac .btn-add,.uvac .compact .btn-add{width: 100%;}
.uvac .pcard-specs{flex-direction: column; gap: 2px;}
.uvac .loadscale{display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--gutter); gap: 8px; margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); padding-top: 6px; padding-bottom: 8px; scrollbar-width: none;}
.uvac .loadscale::-webkit-scrollbar{display: none;}
.uvac .ls-btn{flex: 0 0 38%; scroll-snap-align: start; min-height: 128px;}
.uvac .cl-panel{padding: 20px;}
.uvac .assurance ul{grid-template-columns: 1fr;}
.uvac .assurance li,.uvac .assurance li + li:not(:nth-child(3)){padding: 14px 0; border-left: 0; border-top: 1px solid rgba(255,255,255,.1);}
.uvac .assurance li:first-child{border-top: 0;}
.uvac .faq details p{padding-right: 0;}
}
@media (max-width: 420px){
.uvac .pcard-specs span{white-space: normal;}
.uvac .cl-products{gap: 10px;}
.uvac .hero-stats{gap: 16px;}
.uvac .hero-stats dt{font-size: 16.8px;}
.uvac .ls-btn{flex-basis: 44%;}
}
.uvac{--bg-blue: #F5F7F9;
  --bg-soft: #F5F7F9;
  --blue-50: #F2F5F8;
  --blue-100: #E2E7ED;
  --radius-sm: 3px;
  --radius: 4px;
  --radius-lg: 4px;
  --shadow-sm: none;
  --shadow: none;}
.uvac .eyebrow{font-family: var(--font); font-size: 12px; font-weight: 600; letter-spacing: .12em; color: var(--ink-3);}
.uvac .eyebrow::before{display: none;}
.uvac .quote-card .eyebrow{color: var(--blue-300);}
.uvac .perso .eyebrow{color: var(--gold);}
.uvac .cl-info > .eyebrow{color: var(--blue-700);}
.uvac .h2{font-weight: 600; font-size: clamp(25.6px, 19.2px + 1.3vw, 35.2px); letter-spacing: -0.02em;}
.uvac .section-head{margin-bottom: clamp(24px, 3vw, 36px); padding-bottom: 20px; border-bottom: 1px solid var(--line-2);}
.uvac .section-head p{font-size: 15px;}
.uvac .section-head:has(> p){flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 10px;}
.uvac .section-head:has(> p) > p{max-width: 680px;}
.uvac .classes + .section:not(.perso):not(.contact){padding-top: clamp(16px, 2vw, 32px);}
.uvac .btn,.uvac .icon-btn,.uvac .search-field,.uvac .search-lg .search-field,.uvac .pcard,.uvac .pcard-media,.uvac .ls-btn,.uvac .cl-panel,.uvac .perso-visual,.uvac .form-card,.uvac .quote-card,.uvac .promises .ic,.uvac .assurance .ic,.uvac .hero-product,.uvac .callout{border-radius: 4px;}
.uvac .badge-cl{border-radius: 2px;}
.uvac .search-lg .search-field{box-shadow: none; border-color: var(--line); height: 58px;}
.uvac .pcard:hover,.uvac .ls-btn:hover{transform: none; box-shadow: none;}
.uvac .pcard:hover{border-color: var(--ink-3);}
.uvac .pcard:hover .pcard-media img{transform: none;}
.uvac .tag{border-radius: 2px; background: transparent; border-color: var(--line); color: var(--ink-2); font-size: 11px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase;}
.uvac .pcard-flags .badge-cl{display: none;}
.uvac .pcard-flags{justify-content: flex-end;}
.uvac .tag.tag-ic{border-radius: 999px; background: #EEF6FD; border-color: #DCEEFB; color: var(--navy-900); text-transform: none; letter-spacing: 0; font-size: 12px;}
.uvac .hero{background: #fff; background-image: none; border-bottom: 1px solid var(--line-2);}
.uvac .hero::after{display: none;}
.uvac .hero-inner{grid-template-columns: 1fr 1fr; padding-block: clamp(40px, 5vw, 72px);}
.uvac .hero h1{font-weight: 600; font-size: clamp(33.6px, 21.6px + 2.3vw, 50.4px); letter-spacing: -0.03em; line-height: 1.08; color: var(--navy-950);}
.uvac .hero .lead{font-size: 17px;}
.uvac .hero-stats{gap: 0; padding-top: 0; border-top: 1px solid var(--line); grid-template-columns: repeat(4, 1fr); max-width: 620px;}
.uvac .hero-stats > div{padding: 18px 16px 0 0;}
.uvac .hero-stats > div + div{padding-left: 16px; border-left: 1px solid var(--line-2);}
.uvac .hero-stats dt{font-family: var(--font); font-weight: 600; font-size: 21.6px; letter-spacing: -0.02em; font-variant-numeric: tabular-nums;}
.uvac .blueprint{max-width: none; padding: clamp(20px, 3vw, 36px); background: var(--bg-soft); border: 1px solid var(--line-2);}
.uvac .blueprint-svg .ln{stroke: var(--navy-800); stroke-width: 1.25;}
.uvac .blueprint-svg .ln-dash{stroke-dasharray: none;}
.uvac .blueprint-svg .dot{fill: var(--navy-800); stroke: var(--bg-soft); stroke-width: 2;}
.uvac .blueprint-svg text{fill: var(--navy-800); font-weight: 500;}
.uvac .callout{background: #fff; border: 1px solid var(--line); box-shadow: none; backdrop-filter: none; font-family: var(--font); font-size: 12px; color: var(--ink-3); padding: 7px 10px;}
.uvac .callout b{font-family: var(--mono); font-size: 12.5px; font-weight: 600; color: var(--navy-900);}
.uvac .hero-product{margin: 20px 0 0; box-shadow: none; border-color: var(--line); padding: 14px 16px;}
.uvac .assurance{background: #fff; color: var(--ink); border-bottom: 1px solid var(--line-2);}
.uvac .assurance li{border-left-color: var(--line-2); padding-block: 20px;}
.uvac .assurance .ic{width: auto; height: auto; background: none; color: var(--navy-800);}
.uvac .assurance .ic .icon{width: 20px; height: 20px; stroke-width: 1.5;}
.uvac .assurance strong{color: var(--ink);}
.uvac .assurance span{color: var(--ink-3);}
.uvac .ls-btn{min-height: 0; padding: 16px; gap: 4px; border-color: var(--line);}
.uvac .ls-btn .code{margin-top: 0; font-size: 21px; font-weight: 600;}
.uvac .ls-btn .zone{font-size: 13px; line-height: 1.35; color: var(--ink-2); min-height: 2.7em; margin-top: 2px;}
.uvac .ls-btn[aria-selected="true"] .zone{color: rgba(255,255,255,.82);}
.uvac .ls-btn .meta{margin-top: 6px;}
.uvac .ls-btn[aria-selected="true"]{box-shadow: none;}
.uvac .cl-panel{background: var(--bg-soft); border-color: var(--line-2);}
.uvac .cl-info h3{font-weight: 600;}
.uvac .pcard{border-color: var(--line-2);}
.uvac .pcard-media{background: var(--bg-soft); padding: 18px; margin: 0; border-radius: 4px 4px 0 0;}
.uvac .pcard-media img{mix-blend-mode: multiply;}
.uvac .pcard-body{padding-top: 14px;}
.uvac .pcard-title{font-weight: 600;}
.uvac .perso::before{display: none;}
.uvac .perso-visual{box-shadow: none;}
.uvac .perso-facts .tag{border-radius: 2px; color: #fff; border-color: rgba(255,255,255,.3); text-transform: none; letter-spacing: 0; font-size: 13px;}
.uvac .contact{background: var(--bg-soft);}
.uvac .form-card{box-shadow: none;}
.uvac .quote-card{box-shadow: none;}
.uvac .quote-card::before{display: none;}
.uvac .promises .ic{background: transparent; border: 0; width: auto; height: auto; color: var(--navy-800);}
.uvac .promises li{grid-template-columns: 28px 1fr;}
.uvac .quote-card .promises .ic{color: var(--blue-300);}
.uvac .rails{display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(36px, 5vw, 56px);}
.uvac .rail-bloc{min-width: 0;}
.uvac .rail-head{display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px 20px; margin-bottom: 20px; padding-bottom: 16px; border-bottom: 1px solid var(--line);}
.uvac .rail-head h3{font-size: clamp(23.2px, 19.2px + .8vw, 29.6px); font-weight: 600; letter-spacing: -0.025em; line-height: 1.15; color: var(--navy-950);}
.uvac .rail-head h3 a:hover{color: var(--blue-700);}
.uvac .rail-titre p{margin-top: 6px; font-size: 14.5px; color: var(--ink-2);}
.uvac .rail-titre p .mono{margin-left: 8px; font-size: 13px; color: var(--ink-3);}
.uvac .rail-nav{display: flex; align-items: center; gap: 8px;}
.uvac .rail-nav .link-arrow{margin-right: 8px;}
.uvac .rail-btn{width: 40px; height: 40px; padding: 0; border: 1px solid var(--line); background: #fff; color: var(--navy-900);}
.uvac .rail-btn + .rail-btn{margin-left: -9px;}
.uvac .rail-nav .rail-btn:first-of-type{border-radius: 4px 0 0 4px;}
.uvac .rail-nav .rail-btn:last-of-type{border-radius: 0 4px 4px 0;}
.uvac .rail-btn:hover:not(:disabled){z-index: 1; border-color: var(--navy-900); background: #fff;}
.uvac .rail-btn:disabled{color: #B4BEC8; background: #fff; cursor: default;}
.uvac .rail{width: 100%; min-width: 0; display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 3 * 20px) / 4); gap: 20px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: 4px;}
.uvac .rail::-webkit-scrollbar{display: none;}
.uvac .rail > .pcard{scroll-snap-align: start;}
.uvac .rail:focus-visible{outline: 3px solid var(--focus); outline-offset: 4px;}
@media (max-width: 1024px){
.uvac .rail{grid-auto-columns: calc((100% - 20px) / 2.4);}
.uvac .hero-inner{grid-template-columns: minmax(0, 1fr);}
}
@media (max-width: 768px){
.uvac .rail{grid-auto-columns: 78%; gap: 14px;}
.uvac .rail-btn{display: none;}
.uvac .rail .pcard-title{-webkit-line-clamp: 2; min-height: 2.64em;}
.uvac .rail .pcard-specs{flex-direction: row; gap: 2px 12px;}
.uvac .rail .pcard-specs span{white-space: nowrap;}
.uvac .rail .pcard-foot{flex-direction: row; align-items: center;}
.uvac .rail-titre p .mono{display: block; margin: 2px 0 0;}
.uvac .hero-stats{grid-template-columns: repeat(2, 1fr);}
.uvac .hero-stats > div:nth-child(3){padding-left: 0; border-left: 0;}
.uvac .hero-stats > div:nth-child(n+3){padding-top: 14px;}
.uvac .blueprint{padding: 16px;}
.uvac .assurance li{border-top-color: var(--line-2);}
}
.uvac .btn,.uvac .icon-btn,.uvac .search-field,.uvac .search-lg .search-field,.uvac .callout,.uvac .ls-btn,.uvac .pcard,.uvac .pcard-title a::after,.uvac .perso-visual,.uvac .promises .ic{border-radius: 4px;}
.uvac .ph{border-radius: 3px;}
.uvac .search-field kbd{border-radius: 2px;}

/* ---- Intégration WordPress (Astra + Elementor) ---- */
/* Astra met 20 px de marge intérieure autour du contenu : l'accueil occupe toute la largeur (fonds des sections bord à bord). */
.ast-container:has(.uvac){max-width:none;padding-left:0;padding-right:0}
#primary:has(.uvac){margin-top:0;margin-bottom:0}
/* formulaire FluentForm de la page Contact, dans la carte de la maquette */
.uvac .uvac-form .ff-el-group{margin-bottom:16px}
.uvac .uvac-form .ff-el-input--label label{font-size:14px;font-weight:600;color:var(--ink)}
.uvac .uvac-form .ff-el-form-control{min-height:46px;border:1px solid var(--line);border-radius:4px;box-shadow:none;font-size:15px}
.uvac .uvac-form .ff-el-form-control:focus{border-color:var(--blue-700);box-shadow:0 0 0 3px rgba(19,111,176,.15)}
.uvac .uvac-form .ff-btn.ff-btn-submit{min-height:46px;padding:0 20px;border-radius:4px;background:var(--blue-700)!important;border-color:var(--blue-700)!important;color:#fff!important;font-weight:600;text-transform:none;letter-spacing:0}

/* polices du module (les variables de la maquette nomment « DM Sans » et « JetBrains Mono », non chargées sous ce nom sur le site) */
.uvac{--font:"UVFP DM Sans","DM Sans",system-ui,-apple-system,"Segoe UI",sans-serif;--mono:"UVFP JetBrains Mono","JetBrains Mono",ui-monospace,Menlo,monospace}
/* formulaire FluentForm : téléphone sans flèches de nombre, case des conditions et son lien, texte d'aide du message */
.uvac .uvac-form input[type="number"]{-moz-appearance:textfield;appearance:textfield}
.uvac .uvac-form input[type="number"]::-webkit-inner-spin-button,.uvac .uvac-form input[type="number"]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.uvac .uvac-form input[type="checkbox"]{width:18px;height:18px;margin:0 8px 0 0;accent-color:var(--blue-700);vertical-align:-4px}
.uvac .uvac-form .ff_t_c a{color:var(--blue-700);text-decoration:underline;text-underline-offset:3px}
.uvac .uvac-form textarea.ff-el-form-control{line-height:1.5;padding-top:10px}
/* gravure : les trois repères sur une ligne (texte sur deux lignes au besoin) ; en une colonne, les boutons passent sous l'image */
.uvac .perso-facts{display:grid;grid-template-columns:repeat(3,auto);justify-content:start;gap:8px}
.uvac .perso-facts .tag{justify-content:center;height:auto;min-height:30px;padding:6px 8px;line-height:1.3;text-align:center;white-space:normal}
@media (max-width:1024px){
	.uvac .perso .container{row-gap:0}
	.uvac .perso .container>div:first-child{display:contents}
	/* .uvac.uvac … : passe devant « .elementor .elementor-widget:not(…) figure { margin: 0 } » */
	.uvac.uvac .perso .container>.perso-visual{order:1;margin-top:32px}
	.uvac .perso-cta{order:2;margin-top:24px}
}
@media (max-width:420px){
	.uvac .perso-facts .tag{padding:6px 4px;font-size:12px}
	.uvac .perso-cta .btn{width:100%}
}
/* formulaire de contact : mot pour les particuliers ; FAQ : groupe « Pour les particuliers » */
.uvac .uvac-form__part{margin:0 0 18px;padding:12px 14px;border-left:3px solid var(--blue-700);border-radius:4px;background:var(--blue-50);font-size:14.5px;line-height:1.5;color:var(--ink-2)}
.uvac .faq-groupe{margin:28px 0 0;padding:0 0 10px;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--blue-700)}
