/* ============================================================
   Next Wave AI — feuille de style editoriale premium (clair / sombre)
   Design inspire de la maquette Claude Design, version modernisee.
   ============================================================ */

:root{
  --bg:#FAF8F3; --surface:#FFFFFF; --surface2:#F4F1EA; --headerBg:rgba(250,248,243,0.72);
  --ink:#14151A; --inkBody:#2C2D33; --inkSoft:#5B5C64; --inkFaint:#8B8C93;
  --border:rgba(20,21,26,0.10); --border2:rgba(20,21,26,0.06);
  --accent:#14151A; --accentInk:#FFFFFF;
  --gold:#F5A623; --gold-soft:rgba(245,166,35,0.14);
  --toggleTrack:#D8D6CC;
  --artFrom:#3A3B42; --artMid:#14151A; --artTo:#05060a;
  --shadow-sm:0 2px 8px rgba(20,21,26,0.05);
  --shadow-md:0 18px 40px -22px rgba(20,21,26,0.30);
  --shadow-lg:0 34px 60px -28px rgba(20,21,26,0.40);
  --radius:20px;
}
html.nw-dark{
  --bg:#0B0D12; --surface:#14161D; --surface2:#171922; --headerBg:rgba(11,13,18,0.66);
  --ink:#F3F1EA; --inkBody:#D8D6CE; --inkSoft:#9A9CA8; --inkFaint:#6B6D78;
  --border:rgba(255,255,255,0.10); --border2:rgba(255,255,255,0.06);
  --accent:#F3F1EA; --accentInk:#0B0D12;
  --gold:#F5A623; --gold-soft:rgba(245,166,35,0.16);
  --toggleTrack:#3A3D4A;
  --artFrom:#2A2C38; --artMid:#14161D; --artTo:#0B0D12;
  --shadow-sm:0 2px 10px rgba(0,0,0,0.4);
  --shadow-md:0 22px 46px -22px rgba(0,0,0,0.7);
  --shadow-lg:0 40px 70px -30px rgba(0,0,0,0.8);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:var(--bg);color:var(--ink);
  font-family:'Manrope',system-ui,-apple-system,sans-serif;
  transition:background .4s ease,color .4s ease;-webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
::selection{background:var(--gold-soft);}

@keyframes nwFadeUp{from{opacity:0;transform:translateY(18px);}to{opacity:1;transform:translateY(0);}}
@keyframes nwFloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-14px);}}
@keyframes nwPop{from{opacity:0;transform:scale(.96);}to{opacity:1;transform:scale(1);}}

.nw-wrap{max-width:1240px;margin:0 auto;padding:0 32px;}

/* grain */
.nw-grain{position:fixed;inset:0;z-index:1;pointer-events:none;
  background-image:radial-gradient(rgba(127,127,127,0.7) 0.6px,transparent 0.6px);
  background-size:3px 3px;opacity:0.03;mix-blend-mode:multiply;}
html.nw-dark .nw-grain{opacity:0.05;mix-blend-mode:overlay;}

/* reading progress (single) */
.nw-progress{position:fixed;top:0;left:0;height:3px;width:0;z-index:60;
  background:linear-gradient(90deg,var(--gold),#ffcf7a);transition:width .1s linear;
  box-shadow:0 0 12px rgba(245,166,35,.5);}

/* ---------- HEADER ---------- */
.nw-header{position:sticky;top:0;z-index:50;backdrop-filter:blur(18px) saturate(1.2);
  background:var(--headerBg);border-bottom:1px solid var(--border);}
.nw-logo-row{display:flex;justify-content:center;padding:18px 32px 8px;}
.nw-logo-row img{width:74px;height:74px;border-radius:50%;object-fit:cover;
  transition:transform .4s cubic-bezier(.2,.8,.2,1);animation:nwPop .6s ease both;}
.nw-logo-row a:hover img{transform:scale(1.06) rotate(-3deg);}
html.nw-dark .nw-logo-row img,html.nw-dark .nw-foot img{filter:invert(1);}
.nw-nav-row{position:relative;max-width:1240px;margin:0 auto;padding:0 32px 16px;
  display:flex;align-items:center;justify-content:center;flex-wrap:wrap;row-gap:10px;gap:20px;}
.nw-nav{display:flex;align-items:center;gap:26px;flex-wrap:wrap;justify-content:center;row-gap:8px;}
.nw-nav a{position:relative;font-size:13px;font-weight:700;letter-spacing:0.04em;text-transform:uppercase;
  color:var(--inkSoft);white-space:nowrap;padding-bottom:8px;transition:color .2s;}
.nw-nav a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:2px;
  background:var(--ink);transition:right .28s cubic-bezier(.2,.8,.2,1);}
.nw-nav a:hover{color:var(--ink);}
.nw-nav a:hover::after{right:0;}
.nw-nav a.active{color:var(--ink);}
.nw-nav a.active::after{right:0;background:var(--gold);}
.nw-tools{display:flex;align-items:center;gap:14px;flex-shrink:0;}
.nw-search{position:relative;display:flex;align-items:center;}
.nw-search input{width:150px;min-width:90px;padding:9px 12px 9px 32px;border-radius:99px;
  border:1px solid var(--border);background:var(--surface);color:var(--ink);
  font-family:'Manrope',sans-serif;font-size:13.5px;outline:none;
  transition:box-shadow .25s,border-color .25s,width .25s;}
.nw-search input:focus{border-color:var(--gold);width:210px;
  box-shadow:0 0 0 4px var(--gold-soft);}
.nw-search svg{position:absolute;left:11px;width:14px;height:14px;stroke:var(--inkSoft);pointer-events:none;}
.nw-toggle{cursor:pointer;width:46px;height:25px;border-radius:99px;background:var(--toggleTrack);
  position:relative;border:none;flex-shrink:0;transition:background .3s;padding:0;}
.nw-toggle .knob{position:absolute;top:3px;left:3px;width:19px;height:19px;border-radius:50%;
  background:#fff;box-shadow:0 1px 4px rgba(0,0,0,0.35);transition:left .3s cubic-bezier(.2,.8,.2,1),background .3s;
  display:flex;align-items:center;justify-content:center;}
html.nw-dark .nw-toggle .knob{left:24px;background:#2A2C38;}
.nw-toggle .knob svg{width:11px;height:11px;}

/* ---------- HERO ---------- */
.nw-hero{position:relative;display:grid;grid-template-columns:1.05fr 0.95fr;gap:60px;align-items:center;
  padding:72px 0 60px;animation:nwFadeUp .7s ease both;}
.nw-hero::before{content:"";position:absolute;z-index:-1;top:-10%;right:-8%;width:520px;height:520px;
  background:radial-gradient(circle,var(--gold-soft),transparent 68%);filter:blur(10px);pointer-events:none;}
.nw-eyebrow{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;font-weight:800;
  letter-spacing:0.10em;text-transform:uppercase;color:var(--inkFaint);margin-bottom:14px;}
.nw-eyebrow .star{color:var(--gold);font-size:13px;}
.nw-tag{display:inline-flex;align-items:center;font-size:11px;font-weight:800;letter-spacing:0.06em;
  text-transform:uppercase;padding:6px 13px;border-radius:99px;color:var(--accentInk);background:var(--accent);}
.nw-hero h1{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;
  font-size:clamp(34px,4.4vw,54px);line-height:1.05;letter-spacing:-0.025em;
  margin:18px 0 18px;color:var(--ink);}
.nw-hero h1 a{background-image:linear-gradient(var(--gold),var(--gold));background-size:0% 3px;
  background-repeat:no-repeat;background-position:0 92%;transition:background-size .35s ease;}
.nw-hero h1 a:hover{background-size:100% 3px;}
.nw-hero .excerpt{font-size:17.5px;line-height:1.62;color:var(--inkSoft);margin:0 0 28px;max-width:520px;}
.nw-byline{display:flex;align-items:center;gap:14px;margin-bottom:26px;padding-top:22px;
  border-top:1px solid var(--border);}
.nw-avatar{width:36px;height:36px;border-radius:50%;background:var(--accent);color:var(--accentInk);
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;flex-shrink:0;}
.nw-byline .meta{font-size:13px;color:var(--inkSoft);}
.nw-btn{display:inline-flex;align-items:center;gap:8px;border:none;cursor:pointer;background:var(--ink);
  color:var(--bg);font-family:'Manrope',sans-serif;font-weight:700;font-size:14.5px;padding:14px 28px;
  border-radius:99px;transition:transform .25s ease,box-shadow .25s ease,background .25s;}
.nw-btn:hover{transform:translateY(-3px);box-shadow:0 16px 30px -12px var(--ink);}
.nw-hero-art{position:relative;aspect-ratio:4/3.1;border-radius:26px;overflow:hidden;
  border:1px solid var(--border);box-shadow:var(--shadow-lg);
  background:linear-gradient(135deg,var(--artFrom),var(--artMid) 60%,var(--artTo));
  animation:nwPop .8s ease both;}
.nw-hero-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transition:transform .8s cubic-bezier(.2,.8,.2,1);}
.nw-hero-art:hover img{transform:scale(1.05);}
.nw-hero-art .g1{position:absolute;inset:0;background:radial-gradient(circle at 30% 20%,rgba(255,255,255,0.22),transparent 55%);}
.nw-hero-art .c1{position:absolute;width:220px;height:220px;border-radius:50%;border:1.5px solid rgba(255,255,255,0.30);top:-40px;right:-40px;animation:nwFloat 7s ease-in-out infinite;}
.nw-hero-art .c2{position:absolute;width:140px;height:140px;border-radius:50%;background:rgba(255,255,255,0.10);bottom:-30px;left:20px;animation:nwFloat 9s ease-in-out infinite reverse;}

/* ---------- PILLS ---------- */
.nw-pills{display:flex;gap:10px;flex-wrap:wrap;padding-bottom:40px;}
.nw-pill{cursor:pointer;font-size:13.5px;font-weight:600;padding:10px 18px;border-radius:99px;
  border:1px solid var(--border);color:var(--inkSoft);background:transparent;
  transition:border-color .2s,color .2s,background .2s,transform .2s;}
.nw-pill:hover{border-color:var(--gold);color:var(--ink);transform:translateY(-2px);}
.nw-pill.active{color:var(--accentInk);background:var(--accent);border-color:var(--accent);}

/* ---------- GRID ---------- */
.nw-h2{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:27px;
  letter-spacing:-0.015em;color:var(--ink);margin:8px 0 30px;display:flex;align-items:center;gap:12px;}
.nw-h2::after{content:"";flex:1;height:1px;background:var(--border);}
.nw-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:auto;gap:30px;}
.nw-card{cursor:pointer;animation:nwFadeUp .6s ease both;transition:transform .3s cubic-bezier(.2,.8,.2,1);}
.nw-card:hover{transform:translateY(-8px);}
.nw-card .art{position:relative;aspect-ratio:16/11;border-radius:18px;overflow:hidden;margin-bottom:16px;
  box-shadow:var(--shadow-md);border:1px solid var(--border);
  background:linear-gradient(135deg,var(--artFrom),var(--artMid) 60%,var(--artTo));
  transition:box-shadow .3s;}
.nw-card:hover .art{box-shadow:var(--shadow-lg);}
.nw-card .art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transition:transform .7s cubic-bezier(.2,.8,.2,1);}
.nw-card:hover .art img{transform:scale(1.07);}
.nw-card .art .nw-tag{position:absolute;top:14px;left:14px;backdrop-filter:blur(6px);}
.nw-card h3{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:19px;line-height:1.26;
  letter-spacing:-0.01em;color:var(--ink);margin:0 0 8px;transition:color .2s;}
.nw-card:hover h3{color:var(--gold);}
.nw-card p{font-size:14px;line-height:1.55;color:var(--inkSoft);margin:0 0 12px;}
.nw-card .meta{font-size:12.5px;color:var(--inkFaint);}
.nw-card.big{grid-column:span 2;grid-row:span 2;}
.nw-card.big .art{aspect-ratio:16/12;}
.nw-card.big h3{font-size:26px;line-height:1.18;}
.nw-card.big p{font-size:15.5px;}

/* ---------- CATEGORY / ARCHIVE BANNER ---------- */
.nw-crumb{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--inkSoft);
  padding:22px 0 0;flex-wrap:wrap;}
.nw-crumb a:hover{color:var(--gold);}
.nw-crumb .cur{color:var(--ink);}
.nw-banner{position:relative;overflow:hidden;border-radius:26px;padding:52px 46px;margin:24px 0 46px;
  background:linear-gradient(120deg,var(--surface2),transparent);border:1px solid var(--border2);}
.nw-banner::before{content:"";position:absolute;top:-40%;right:-6%;width:340px;height:340px;
  background:radial-gradient(circle,var(--gold-soft),transparent 70%);}
.nw-banner .k{font-size:12.5px;font-weight:800;letter-spacing:0.10em;text-transform:uppercase;color:var(--gold);margin-bottom:10px;}
.nw-banner .t{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:40px;letter-spacing:-0.02em;color:var(--ink);margin-bottom:12px;}
.nw-banner p{font-size:16px;line-height:1.6;color:var(--inkSoft);max-width:600px;margin:0 0 6px;}
.nw-banner .c{font-size:13px;color:var(--inkFaint);}

/* ---------- SINGLE ---------- */
.nw-article{max-width:760px;margin:0 auto;padding:0 32px 100px;}
.nw-article .nw-tag{margin:28px 0 16px;}
.nw-article h1{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;
  font-size:clamp(30px,3.6vw,42px);line-height:1.1;letter-spacing:-0.02em;color:var(--ink);margin:0 0 22px;}
.nw-article .abyline{display:flex;align-items:center;gap:14px;margin-bottom:32px;}
.nw-article .abyline .avatar{width:40px;height:40px;font-size:14px;}
.nw-article .abyline .name{font-size:14px;font-weight:700;color:var(--ink);}
.nw-article .abyline .sub{font-size:12.5px;color:var(--inkFaint);}
.nw-hero-img{aspect-ratio:16/9;border-radius:22px;margin-bottom:38px;border:1px solid var(--border);overflow:hidden;
  box-shadow:var(--shadow-lg);background:linear-gradient(135deg,var(--artFrom),var(--artMid) 60%,var(--artTo));}
.nw-hero-img img{width:100%;height:100%;object-fit:cover;}
.nw-body{font-size:17.5px;line-height:1.78;color:var(--inkBody);}
.nw-body p{margin:0 0 22px;}
.nw-body h2{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:29px;letter-spacing:-0.01em;color:var(--ink);margin:44px 0 16px;}
.nw-body h3{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:22px;color:var(--ink);margin:32px 0 12px;}
.nw-body ul,.nw-body ol{margin:0 0 22px;padding-left:22px;}
.nw-body li{margin:0 0 8px;}
.nw-body img{border-radius:16px;margin:24px 0;border:1px solid var(--border);}
.nw-body blockquote{margin:34px 0;padding:6px 0 6px 26px;border-left:3px solid var(--gold);
  font-family:'Bricolage Grotesque',sans-serif;font-weight:600;font-size:22px;line-height:1.45;color:var(--ink);font-style:normal;}
.nw-body a{border-bottom:1px solid var(--gold);}
.nw-body a:hover{background:var(--gold-soft);}
.nw-tags{display:flex;gap:10px;flex-wrap:wrap;margin:36px 0 56px;}
.nw-tags .t{font-size:12.5px;padding:7px 14px;border-radius:99px;border:1px solid var(--border);color:var(--inkSoft);transition:border-color .2s,color .2s;}
.nw-tags .t:hover{border-color:var(--gold);color:var(--ink);}
.nw-related-h{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:22px;color:var(--ink);
  margin:0 0 24px;border-top:1px solid var(--border);padding-top:40px;}
.nw-related{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.nw-related a{transition:transform .3s;}
.nw-related a:hover{transform:translateY(-6px);}
.nw-related .art{aspect-ratio:16/11;border-radius:14px;margin-bottom:12px;border:1px solid var(--border);overflow:hidden;
  box-shadow:var(--shadow-md);background:linear-gradient(135deg,var(--artFrom),var(--artMid) 60%,var(--artTo));}
.nw-related .art img{width:100%;height:100%;object-fit:cover;transition:transform .6s;}
.nw-related a:hover .art img{transform:scale(1.06);}
.nw-related .rt{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:14.5px;line-height:1.3;color:var(--ink);}

/* ---------- FOOTER ---------- */
.nw-foot{border-top:1px solid var(--border);margin-top:40px;background:var(--surface2);}
.nw-foot .inner{max-width:640px;margin:0 auto;padding:60px 32px 40px;display:flex;flex-direction:column;align-items:center;text-align:center;}
.nw-foot img{width:54px;height:54px;border-radius:50%;object-fit:cover;}
.nw-foot .name{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:19px;color:var(--ink);margin:16px 0 8px;}
.nw-foot .tag{font-size:13.5px;line-height:1.6;color:var(--inkFaint);max-width:340px;margin:0 0 28px;}
.nw-foot .links{display:flex;gap:24px;flex-wrap:wrap;justify-content:center;margin-bottom:20px;}
.nw-foot .links a{font-size:13.5px;font-weight:600;color:var(--inkSoft);transition:color .2s;}
.nw-foot .links a:hover{color:var(--gold);}
.nw-foot .copy{border-top:1px solid var(--border);padding:20px 32px;text-align:center;font-size:12.5px;color:var(--inkFaint);}

.nw-main{min-height:50vh;}
.nw-pagination{display:flex;justify-content:center;gap:12px;margin:56px 0 0;}
.nw-pagination a,.nw-pagination span{padding:10px 17px;border-radius:99px;border:1px solid var(--border);font-size:13.5px;color:var(--inkSoft);transition:all .2s;}
.nw-pagination a:hover{border-color:var(--gold);color:var(--ink);}
.nw-pagination .current{background:var(--accent);color:var(--accentInk);border-color:var(--accent);}

/* Elementor : neutralise le padding des sections pour nos blocs pleine largeur */
.elementor-widget-shortcode{max-width:1240px;margin:0 auto;}

/* ---------- RESPONSIVE ---------- */
@media(max-width:980px){
  .nw-hero{grid-template-columns:1fr;gap:34px;padding:44px 0 40px;}
  .nw-grid{grid-template-columns:repeat(2,1fr);}
  .nw-card.big{grid-column:span 2;grid-row:auto;}
  .nw-card.big h3{font-size:22px;}
  .nw-related{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:640px){
  .nw-wrap,.nw-article{padding-left:20px;padding-right:20px;}
  .nw-grid{grid-template-columns:1fr;}
  .nw-card.big{grid-column:auto;}
  .nw-banner{padding:34px 24px;}
  .nw-banner .t{font-size:28px;}
  .nw-related{grid-template-columns:1fr 1fr;}
  .nw-search input{width:120px;}
}
