*{box-sizing:border-box}
body{margin:0;background:#F5F6F8;font-family:'Barlow',system-ui,sans-serif;color:#1A1D22;-webkit-font-smoothing:antialiased}
a{color:#C42C20;text-decoration:none}
a:hover{color:#E23B2E}
input,select,textarea,button{font-family:inherit}
::selection{background:#E23B2E;color:#fff}
@keyframes nsPulse{0%,100%{opacity:.55}50%{opacity:1}}
.ns-hidden{display:none !important}
.ns-container{max-width:1200px;margin:0 auto;padding:0 28px}
.ns-page{min-height:100vh;display:flex;flex-direction:column;background:#F5F6F8}
main{flex:1}
.ns-grid-bg{position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(0,0,0,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,0,.03) 1px,transparent 1px);background-size:44px 44px}
.ns-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.9);backdrop-filter:blur(10px);border-bottom:1px solid rgba(0,0,0,.08)}
.ns-astreinte{background:#1A1D22;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.06em;color:#C9CDD3;text-align:center;padding:6px 16px}
.ns-astreinte .dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#E23B2E;margin-right:8px;vertical-align:middle;animation:nsPulse 1.8s ease-in-out infinite}
.ns-astreinte a{color:#fff}
.ns-headbar{max-width:1200px;margin:0 auto;padding:14px 28px;display:flex;align-items:center;gap:22px}
.ns-logo{background:transparent;border:0;padding:0;cursor:pointer;display:flex;align-items:center;gap:12px}
.ns-logo-badge{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,#E23B2E,#F7941E);display:flex;align-items:center;justify-content:center;box-shadow:0 5px 16px rgba(226,59,46,.28)}
.ns-logo-img{height:42px;width:auto;display:block}
.ns-logo-txt{font-family:'Oswald',sans-serif;font-weight:700;font-size:24px;letter-spacing:.02em;line-height:1;text-transform:uppercase}
.ns-logo-txt .a{color:#1A1D22}.ns-logo-txt .b{color:#E23B2E}
.ns-nav{margin-left:auto;display:flex;align-items:center;gap:8px}
.ns-nav-link{background:transparent;border:0;font-family:'Oswald',sans-serif;font-weight:500;letter-spacing:.04em;font-size:13px;padding:9px 12px;border-radius:7px;cursor:pointer;color:#5B6069}
.ns-nav-link.is-active{background:rgba(0,0,0,.06);font-weight:600;color:#14171B}
.ns-nav-cta{display:flex;align-items:center;gap:8px;background:#E23B2E;color:#fff;font-family:'Oswald',sans-serif;font-weight:600;letter-spacing:.03em;font-size:13px;padding:10px 16px;border-radius:8px;margin-left:6px}
.ns-btn{background:#E23B2E;color:#fff;border:0;font-family:'Oswald',sans-serif;font-weight:600;letter-spacing:.03em;font-size:16px;padding:16px 26px;border-radius:9px;cursor:pointer;box-shadow:0 8px 20px rgba(226,59,46,.25)}
.ns-btn-dark{background:#14171B;color:#fff;border:0;font-family:'Oswald',sans-serif;font-weight:600;font-size:17px;padding:17px 30px;border-radius:10px;cursor:pointer}
.ns-btn-outline{display:flex;align-items:center;gap:10px;color:#1A1D22;border:1px solid rgba(0,0,0,.16);font-family:'Oswald',sans-serif;font-weight:500;font-size:16px;padding:16px 24px;border-radius:9px}
.ns-eyebrow{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.14em;color:#C42C20}
.ns-hero{position:relative;overflow:hidden;background:radial-gradient(1200px 500px at 78% -10%,rgba(226,59,46,.1),transparent 60%),#FFFFFF;border-bottom:1px solid rgba(0,0,0,.07)}
.ns-hero-inner{max-width:1200px;margin:0 auto;padding:74px 28px 78px;display:grid;grid-template-columns:1.15fr .85fr;gap:52px;align-items:center;position:relative}
.ns-hero h1{font-family:'Oswald',sans-serif;font-weight:700;font-size:60px;line-height:.98;letter-spacing:-.01em;margin:0 0 22px;text-transform:uppercase;color:#14171B}
.ns-hero h1 .accent{color:#E23B2E}
.ns-hero p{font-size:19px;line-height:1.55;color:#5B6069;max-width:520px;margin:0 0 32px}
.ns-hero-actions{display:flex;flex-wrap:wrap;gap:14px}
.ns-hero-figure{position:relative;aspect-ratio:4/5;border-radius:12px;border:1px solid rgba(0,0,0,.1);overflow:hidden;box-shadow:0 20px 50px rgba(20,23,27,.15)}
.ns-hero-figure img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.ns-hero-figure .tape{position:absolute;top:0;left:0;right:0;height:6px;background:repeating-linear-gradient(90deg,#F7941E,#F7941E 22px,#E23B2E 22px,#E23B2E 34px)}
.ns-hero-badge{position:absolute;bottom:-22px;left:-22px;background:#FFFFFF;border:1px solid rgba(0,0,0,.08);border-radius:12px;padding:18px 22px;box-shadow:0 18px 40px rgba(20,23,27,.16)}
.ns-hero-badge .n{font-family:'Oswald',sans-serif;font-weight:700;font-size:40px;line-height:1;color:#E23B2E}
.ns-hero-badge .l{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.08em;color:#5B6069;margin-top:4px}
.ns-stats{background:#FFFFFF;border-bottom:1px solid rgba(0,0,0,.07)}
.ns-stats-inner{max-width:1200px;margin:0 auto;padding:0 28px;display:grid;grid-template-columns:repeat(3,1fr)}
.ns-stat{padding:26px 8px;text-align:center;border-right:1px solid rgba(0,0,0,.07)}
.ns-stat:last-child{border-right:0}
.ns-stat .t{font-family:'Oswald',sans-serif;font-weight:600;font-size:26px;color:#14171B}
.ns-stat .s{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.08em;color:#5B6069;margin-top:5px}
.ns-section{max-width:1200px;margin:0 auto;padding:82px 28px 40px}
.ns-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:40px;flex-wrap:wrap}
.ns-section-head h2{font-family:'Oswald',sans-serif;font-weight:700;font-size:42px;margin:0;text-transform:uppercase;letter-spacing:-.01em;color:#14171B}
.ns-section-head p{color:#5B6069;max-width:340px;margin:0;font-size:15px;line-height:1.5}
.ns-services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(0,0,0,.08);border:1px solid rgba(0,0,0,.08);border-radius:14px;overflow:hidden}
.ns-service-card{background:#FFFFFF;padding:32px 28px;min-height:190px;position:relative}
.ns-service-card .num{font-family:'IBM Plex Mono',monospace;font-size:12px;color:#B4B8BF;position:absolute;top:22px;right:24px}
.ns-service-card .icon{width:44px;height:44px;border-radius:10px;background:rgba(226,59,46,.1);border:1px solid rgba(226,59,46,.24);display:flex;align-items:center;justify-content:center;margin-bottom:20px;font-size:22px}
.ns-service-card h3{font-family:'Oswald',sans-serif;font-weight:600;font-size:22px;margin:0 0 10px;text-transform:uppercase;letter-spacing:.01em;color:#14171B}
.ns-service-card p{color:#5B6069;font-size:14.5px;line-height:1.55;margin:0}
.ns-clientele{max-width:1200px;margin:0 auto;padding:52px 28px 40px}
.ns-clientele-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.ns-client-card{border:1px solid rgba(0,0,0,.1);border-radius:12px;padding:24px 22px;background:#FFFFFF}
.ns-client-card .t{font-family:'Oswald',sans-serif;font-weight:600;font-size:20px;text-transform:uppercase;margin-bottom:6px;color:#14171B}
.ns-client-card .d{color:#5B6069;font-size:14px;line-height:1.5}
.ns-zone{background:#FFFFFF;border-top:1px solid rgba(0,0,0,.07);border-bottom:1px solid rgba(0,0,0,.07);margin-top:42px}
.ns-zone-inner{max-width:1200px;margin:0 auto;padding:78px 28px;display:grid;grid-template-columns:.9fr 1.1fr;gap:52px;align-items:center}
.ns-zone h2{font-family:'Oswald',sans-serif;font-weight:700;font-size:40px;margin:0 0 18px;text-transform:uppercase;letter-spacing:-.01em;color:#14171B}
.ns-zone p{color:#5B6069;font-size:17px;line-height:1.6;margin:0 0 26px}
.ns-villes{display:flex;flex-wrap:wrap;gap:10px}
.ns-ville{font-family:'Barlow Semi Condensed',sans-serif;font-weight:500;font-size:14px;letter-spacing:.02em;padding:8px 14px;border:1px solid rgba(0,0,0,.14);border-radius:999px;color:#3C424B}
.ns-map{position:relative;border-radius:14px;border:1px solid rgba(0,0,0,.12);overflow:hidden;background:repeating-linear-gradient(0deg,#EDEFF2,#EDEFF2 33px,#E6E8EC 33px,#E6E8EC 34px),repeating-linear-gradient(90deg,#EDEFF2,#EDEFF2 33px,#E6E8EC 33px,#E6E8EC 34px)}
.ns-map .tag{position:absolute;bottom:14px;left:16px;font-family:'IBM Plex Mono',monospace;font-size:11px;color:#7d838b;background:rgba(255,255,255,.8);padding:5px 9px;border-radius:6px}
.ns-cta{max-width:1200px;margin:0 auto;padding:72px 28px}
.ns-cta-box{position:relative;overflow:hidden;border-radius:16px;background:linear-gradient(120deg,#E23B2E,#c22c20);padding:48px 46px;display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap;box-shadow:0 18px 40px rgba(226,59,46,.22)}
.ns-cta-box .stripes{position:absolute;top:0;right:0;width:220px;height:100%;background:repeating-linear-gradient(135deg,rgba(0,0,0,.14),rgba(0,0,0,.14) 14px,transparent 14px,transparent 28px)}
.ns-cta-box h2{font-family:'Oswald',sans-serif;font-weight:700;font-size:34px;margin:0 0 8px;text-transform:uppercase;color:#fff}
.ns-cta-box p{margin:0;color:rgba(255,255,255,.9);font-size:17px}
.ns-contact-hero{position:relative;overflow:hidden;background:radial-gradient(1000px 420px at 20% -10%,rgba(247,148,30,.12),transparent 60%),#FFFFFF;border-bottom:1px solid rgba(0,0,0,.07)}
.ns-contact-hero-inner{max-width:1200px;margin:0 auto;padding:64px 28px 40px;position:relative}
.ns-contact-hero h1{font-family:'Oswald',sans-serif;font-weight:700;font-size:52px;margin:0 0 14px;text-transform:uppercase;letter-spacing:-.01em;color:#14171B}
.ns-contact-hero p{color:#5B6069;font-size:18px;max-width:560px;margin:0}
.ns-contact-grid{max-width:1200px;margin:0 auto;padding:56px 28px 84px;display:grid;grid-template-columns:1.15fr .85fr;gap:44px;align-items:start}
.ns-form{border:1px solid rgba(0,0,0,.1);border-radius:16px;background:#FFFFFF;padding:36px 34px;box-shadow:0 10px 30px rgba(20,23,27,.06)}
.ns-form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}
.ns-field{display:block;margin-bottom:18px}
.ns-label{display:block;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.08em;color:#5B6069;margin-bottom:8px}
.ns-input,.ns-select,.ns-textarea{width:100%;background:#F5F6F8;border:1px solid rgba(0,0,0,.14);border-radius:9px;padding:13px 14px;color:#14171B;font-size:15px;outline:none}
.ns-textarea{resize:vertical;line-height:1.5}
.ns-select{appearance:none}
.ns-form .submit{width:100%;background:#E23B2E;color:#fff;border:0;font-family:'Oswald',sans-serif;font-weight:600;letter-spacing:.03em;font-size:17px;padding:16px;border-radius:10px;cursor:pointer;box-shadow:0 8px 20px rgba(226,59,46,.25)}
.ns-form .hint{font-size:12.5px;color:#8A8F97;margin:14px 0 0;text-align:center}
.ns-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.ns-success{text-align:center;padding:40px 10px}
.ns-success .check{width:60px;height:60px;border-radius:50%;background:rgba(247,148,30,.14);border:1px solid rgba(247,148,30,.4);display:flex;align-items:center;justify-content:center;margin:0 auto 20px;font-size:30px;color:#C42C20}
.ns-success h3{font-family:'Oswald',sans-serif;font-weight:600;font-size:26px;margin:0 0 10px;text-transform:uppercase;color:#14171B}
.ns-success p{color:#5B6069;font-size:15.5px;margin:0 0 24px}
.ns-coord{display:flex;flex-direction:column;gap:16px}
.ns-coord-card{border:1px solid rgba(0,0,0,.1);border-radius:14px;background:#FFFFFF;padding:24px 26px}
.ns-coord-card .l{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.08em;color:#5B6069;margin-bottom:6px}
.ns-coord-card .v{font-family:'Oswald',sans-serif;font-weight:600;font-size:20px;color:#14171B}
.ns-coord-card.astreinte{border-color:rgba(226,59,46,.35);background:linear-gradient(180deg,rgba(226,59,46,.07),#FFFFFF)}
.ns-coord-card.astreinte .l{color:#C42C20}
.ns-footer{background:#14171B;border-top:1px solid rgba(0,0,0,.08)}
.ns-footer-inner{max-width:1200px;margin:0 auto;padding:44px 28px;display:flex;justify-content:space-between;align-items:flex-start;gap:32px;flex-wrap:wrap}
.ns-footer p{color:#9BA1A9;font-size:14px;line-height:1.6;margin:0}
.ns-footer .col-title{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.08em;color:#6B7178;margin-bottom:14px}
.ns-foot-link{background:transparent;border:0;padding:0;text-align:left;cursor:pointer;color:#C9CDD3;font-size:14px;font-family:'Barlow',sans-serif;display:block;margin-bottom:10px}
.ns-footer .contact-mail{color:#F7941E}
.ns-footer-bar{border-top:1px solid rgba(255,255,255,.08);padding:18px 28px;text-align:center;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.06em;color:#6B7178}
@media(max-width:860px){
  .ns-hero-inner,.ns-zone-inner,.ns-contact-grid{grid-template-columns:1fr}
  .ns-services-grid,.ns-clientele-grid{grid-template-columns:1fr 1fr}
  .ns-hero h1{font-size:42px}
  .ns-nav{display:none}
}
@media(max-width:520px){
  .ns-services-grid,.ns-clientele-grid,.ns-stats-inner{grid-template-columns:1fr}
  .ns-form-row{grid-template-columns:1fr}
}
/* Admin */
.adm-wrap{max-width:640px;margin:60px auto;padding:0 20px;font-family:'Barlow',system-ui,sans-serif}
.adm-card{border:1px solid rgba(0,0,0,.1);border-radius:16px;background:#fff;padding:32px 30px;box-shadow:0 10px 30px rgba(20,23,27,.06)}
.adm-card h1{font-family:'Oswald',sans-serif;font-weight:700;text-transform:uppercase;color:#14171B;margin:0 0 22px}
.adm-field{display:block;margin-bottom:16px}
.adm-field .l{display:block;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.08em;color:#5B6069;margin-bottom:6px}
.adm-field input[type=text],.adm-field input[type=email],.adm-field input[type=password]{width:100%;background:#F5F6F8;border:1px solid rgba(0,0,0,.14);border-radius:9px;padding:12px 14px;font-size:15px;outline:none}
.adm-btn{background:#E23B2E;color:#fff;border:0;font-family:'Oswald',sans-serif;font-weight:600;font-size:16px;padding:14px 22px;border-radius:9px;cursor:pointer}
.adm-msg{border-radius:9px;padding:12px 14px;margin-bottom:18px;font-size:14px;background:rgba(247,148,30,.14);color:#8a5a00;border:1px solid rgba(247,148,30,.4)}
.adm-msg.err{background:rgba(226,59,46,.1);color:#C42C20;border-color:rgba(226,59,46,.35)}
.adm-thumb{max-height:70px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-top:8px;display:block}
.adm-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}
.adm-top a{font-size:13px}
