/* Polices auto-hebergees — RGPD : aucune requete vers Google. Fontes variables. */
@font-face{font-family:'DM Sans';font-style:normal;font-weight:200 600;font-display:swap;src:url(assets/fonts/DMSans-latin.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:'DM Sans';font-style:normal;font-weight:200 600;font-display:swap;src:url(assets/fonts/DMSans-latinext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:300 500;font-display:swap;src:url(assets/fonts/JetBrainsMono-latin.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:'JetBrains Mono';font-style:normal;font-weight:300 500;font-display:swap;src:url(assets/fonts/JetBrainsMono-latinext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}

:root{
  --teal:#668C82;--teal-d:#3d5f57;--teal-l:#8fbeb3;
  --mint:#B5D4C8;--beige:#E8E4DE;--beige2:#f0ece4;
  --paper:#f5f5f7;--gold:#D4AF37;--gold-l:#e8cd6a;
  --ink:#131815;--ink2:#374039;--ink3:#6b7a74;
  --line:rgba(19,24,21,.1);--lsoft:rgba(19,24,21,.06);
  --sans:'DM Sans',system-ui,sans-serif;
  --mono:'JetBrains Mono',monospace;
}
*{box-sizing:border-box;margin:0;padding:0;}
html,body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}

/* HEADER */
.hdr{position:fixed;top:0;left:0;right:0;z-index:60;display:flex;justify-content:space-between;align-items:center;padding:18px 40px;transition:background .4s,border-color .4s;}
.brand{display:flex;align-items:center;background:rgba(255,255,255,.12);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:6px 16px 6px 8px;}
.brand-logo{height:40px;width:auto;}
.hdr-right{display:flex;align-items:center;gap:8px;}
.nav{display:flex;align-items:center;gap:2px;background:rgba(255,255,255,.1);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.15);border-radius:999px;padding:4px;height:42px;box-sizing:border-box;}
.nav a{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.8);padding:7px 16px;border-radius:999px;transition:background .2s,color .2s;white-space:nowrap;}
.nav a:hover,.nav a.active{color:#fff;background:rgba(255,255,255,.18);}
.hdr.light-bg .nav{background:rgba(19,24,21,.08);border-color:rgba(19,24,21,.15);}
.hdr.light-bg .nav a{color:var(--ink3);}
.hdr.light-bg .nav a:hover,.hdr.light-bg .nav a.active{color:var(--ink);background:rgba(19,24,21,.07);}
.hdr.light-bg .hdr-cta{border-color:rgba(19,24,21,.25);color:var(--ink);background:rgba(19,24,21,.04);}
.hdr.light-bg .burger{color:var(--ink);}
.hdr-cta{display:inline-flex;align-items:center;gap:8px;padding:0 22px;height:42px;background:rgba(19,24,21,.2);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.2);color:#fff;border-radius:999px;font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;transition:background .3s;white-space:nowrap;}
.hdr-cta:hover{background:rgba(19,24,21,.35);}
.burger{display:none;background:none;border:none;color:#fff;font-size:22px;cursor:pointer;padding:6px;}
.mob-menu{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:var(--ink);z-index:55;flex-direction:column;align-items:center;justify-content:center;gap:28px;}
.mob-menu.open{display:flex;}
.mob-menu a{font-family:var(--sans);font-size:28px;font-weight:300;color:#fff;letter-spacing:-.01em;}
.mob-menu a:hover{color:var(--mint);}

/* HERO — copie EXACTE du hero home (direction-d) */
.hero{position:relative;min-height:100vh;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;background:#0a1810;}

/* ─── HEROS DE PAGE — photos d'en-tête darkvalley.fr (sans noircissement) ─── */
.hero-page{position:relative;min-height:62vh;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;background:#0a1812;box-sizing:border-box;}
.hero-page .photo-bg{position:absolute;inset:-20px;background-size:cover;background-position:center center;animation:photo-zoom 28s ease-in-out infinite alternate;will-change:transform;}
.hero-page .frost{position:absolute;inset:0;backdrop-filter:blur(2px) saturate(1.05);-webkit-backdrop-filter:blur(2px) saturate(1.05);pointer-events:none;}
.hero-page .grain{position:absolute;inset:0;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:180px;mix-blend-mode:overlay;pointer-events:none;}
.hero-page .hero-content{position:relative;z-index:2;padding:112px 48px 56px;}
.hero-page .hero-h{font-size:clamp(48px,5.5vw,80px);margin-bottom:40px;}
.hero-page .hero-lede p{}
.hero-page .hero-actions .btn-hero-fill{background:rgba(15,25,20,.4);border-color:rgba(255,255,255,.4);}
.hero-page .hero-actions .btn-hero-out{border-color:rgba(255,255,255,.45);color:rgba(255,255,255,.95);}
@keyframes photo-zoom{0%{transform:scale(1) translate(0,0);}100%{transform:scale(1.06) translate(-1%,-1.5%);}}

/* Photos d'en-tête darkvalley.fr — chacune correspond à la page d'origine */
.hero-page.theme-conception .photo-bg{background-image:url(assets/hero-conception.webp);}

/* Frost fort sur projets / a-propos / contact — verre dépoli prononcé */
.hero-page.theme-projets .frost,
.hero-page.theme-apropos .frost,
.hero-page.theme-contact .frost{
  backdrop-filter:blur(28px) saturate(1.15);
  -webkit-backdrop-filter:blur(28px) saturate(1.15);
  background:linear-gradient(180deg,rgba(255,255,255,.04) 0%,rgba(255,255,255,.02) 100%);
}

/* Texte plus contrasté avec le frost fort (titre clair sur frost projets aussi) */
.hero-page.theme-projets .hero-h{color:#fff;}
.hero-page.theme-projets .hero-h em{color:var(--mint);}
.hero-page.theme-projets .hero-lede p{color:rgba(255,255,255,.92) !important;}
.hero-page.theme-projets .btn-hero-fill{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.4);color:#fff;}
.hero-page.theme-projets .btn-hero-out{border-color:rgba(255,255,255,.45);color:rgba(255,255,255,.95);}

.blob{position:absolute;border-radius:50%;will-change:transform;mix-blend-mode:screen;}
.b1{width:75vw;height:75vw;background:radial-gradient(circle at 50% 50%,rgba(60,220,170,1) 0%,rgba(30,160,120,.65) 35%,transparent 60%);top:-15%;right:-5%;filter:blur(48px);animation:b1 3.5s ease-in-out infinite alternate;}
.b2{width:55vw;height:55vw;background:radial-gradient(circle at 50% 50%,rgba(155,238,115,.9) 0%,rgba(90,190,70,.5) 40%,transparent 65%);top:15%;left:30%;filter:blur(42px);animation:b2 4.5s ease-in-out infinite alternate;}
.b3{width:60vw;height:60vw;background:radial-gradient(circle at 50% 50%,rgba(70,90,230,.65) 0%,rgba(30,50,160,.25) 45%,transparent 68%);top:-5%;left:-5%;filter:blur(70px);animation:b3 3s ease-in-out infinite alternate;}
.b4{width:45vw;height:45vw;background:radial-gradient(circle at 50% 50%,rgba(235,200,75,.85) 0%,rgba(160,120,20,.3) 45%,transparent 68%);bottom:10%;right:10%;filter:blur(55px);animation:b4 4s ease-in-out infinite alternate;}
.b5{width:40vw;height:40vw;background:radial-gradient(circle at 50% 50%,rgba(50,140,110,.6) 0%,rgba(30,90,70,.15) 45%,transparent 55%);top:25%;left:5%;filter:blur(38px);animation:b5 2.5s ease-in-out infinite alternate;}
.b6{width:100vw;height:55vw;background:radial-gradient(ellipse at 50% 100%,rgba(0,0,0,.98) 0%,rgba(0,0,0,.88) 25%,rgba(0,0,0,.35) 50%,transparent 75%);bottom:-5%;left:0;pointer-events:none;}
@keyframes b1{0%{transform:translate(0,0) scale(1);}100%{transform:translate(-18%,20%) scale(1.25);}}
@keyframes b2{0%{transform:translate(0,0) scale(1);}100%{transform:translate(18%,-16%) scale(.8);}}
@keyframes b3{0%{transform:translate(0,0) scale(1);}100%{transform:translate(20%,14%) scale(1.22);}}
@keyframes b4{0%{transform:translate(0,0) scale(1);}100%{transform:translate(-16%,-20%) scale(1.28);}}
@keyframes b5{0%{transform:translate(0,0) scale(1);}100%{transform:translate(15%,20%) scale(.82);}}
.hero-noise{position:absolute;inset:0;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:200px;}
.hero-content{position:relative;z-index:2;padding:0 48px 64px;max-width:1520px;margin:0 auto;width:100%;display:flex;flex-direction:column;gap:0;}
.hero-h{font-family:var(--sans);font-weight:300;font-size:clamp(64px,7vw,100px);line-height:.92;letter-spacing:-.03em;color:#fff;max-width:900px;margin-bottom:56px;}
.hero-h em{font-style:normal;font-weight:300;color:var(--mint);letter-spacing:-.04em;}
.hero-bottom{display:flex;justify-content:space-between;align-items:flex-end;}
.hero-lede{max-width:420px;}
.hero-lede p{font-size:16px;color:rgba(255,255,255,.72);line-height:1.6;}
.hero-lede .meta{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.45);margin-bottom:12px;}
.hero-actions{display:flex;align-items:center;gap:12px;}
.btn-hero-fill{background:rgba(255,255,255,.15);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3);color:#fff;transition:background .3s,border-color .3s;}
.btn-hero-fill:hover{background:rgba(255,255,255,.25);border-color:rgba(255,255,255,.5);}

/* SHARED */
.wrap{max-width:1200px;margin:0 auto;padding:0 48px;}
.section{padding:100px 0;}
.kicker{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--teal);margin-bottom:14px;display:flex;align-items:center;gap:8px;}
.dot{display:inline-block;width:9px;height:9px;background:var(--teal);border-radius:1px;flex-shrink:0;}
.dot-lime{background:#a0e060;}
.dh{font-family:var(--sans);font-weight:300;font-size:clamp(40px,5vw,68px);line-height:1.05;letter-spacing:-.025em;color:var(--ink);margin-bottom:32px;}
.dh .fd{color:var(--mint);}
.dh .grad{background:linear-gradient(135deg,var(--teal),var(--mint) 60%,#a0e060);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.dcta{display:flex;align-items:center;gap:10px;margin-top:28px;}
.pd{display:inline-flex;align-items:center;padding:12px 22px;background:var(--ink);color:#fff;border-radius:999px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;transition:background .3s;}
.pd:hover{background:var(--teal);}
.pl{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;background:linear-gradient(135deg,#2a8c7a 0%,#6fcfb0 40%,#d4f7a0 100%);color:var(--ink);border-radius:999px;font-size:18px;font-weight:700;flex-shrink:0;transition:opacity .3s,transform .3s;box-shadow:0 2px 12px rgba(100,220,160,.35);}
.pl:hover{opacity:.85;transform:translateX(3px);}
.btn-hero{display:inline-flex;align-items:center;gap:10px;padding:14px 22px;border-radius:999px;font-size:14px;font-weight:500;}
.btn-hero-out{border:1px solid rgba(255,255,255,.25);color:rgba(255,255,255,.75);transition:border-color .3s,color .3s;}
.btn-hero-out:hover{border-color:rgba(255,255,255,.6);color:#fff;}

/* CARDS */
.card{padding:32px;border-radius:14px;background:#fff;border:1px solid var(--lsoft);transition:transform .35s,box-shadow .35s;}
.card:hover{transform:translateY(-4px);box-shadow:0 20px 48px rgba(19,24,21,.08);}
.card-dark{background:#0d201a;color:#fff;border:none;}
.card-dark p,.card-dark li{color:rgba(255,255,255,.78);}

/* FOOTER */
.ftr{padding:48px 0 24px;background:#0f1a14;color:#fff;}
.ftr-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:48px;margin-bottom:32px;}
.ftr-logo{height:40px;filter:none;margin-bottom:14px;}
.ftr-brand p{color:rgba(255,255,255,.5);max-width:280px;font-size:13.5px;line-height:1.6;}
.ftr-col h5{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.3);margin-bottom:10px;}
.ftr-col ul{list-style:none;display:flex;flex-direction:column;gap:7px;}
.ftr-col a{color:rgba(255,255,255,.6);font-size:14px;}
.ftr-col a:hover{color:var(--mint);}
.ftr-bot{display:flex;justify-content:space-between;padding-top:18px;border-top:1px solid rgba(255,255,255,.1);font-family:var(--mono);font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.3);}
.ftr-bot a{color:#a0e060;}
.ftr-social{display:flex;gap:10px;margin-top:18px;}
.ftr-social a{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid rgba(255,255,255,.18);border-radius:999px;color:rgba(255,255,255,.7);transition:border-color .25s,color .25s;}
.ftr-social a:hover{border-color:var(--mint);color:var(--mint);}

/* REVEAL */
.rv{opacity:0;transform:translateY(14px);transition:opacity .8s,transform .8s cubic-bezier(.2,.8,.2,1);}
.rv.in{opacity:1;transform:none;}

@media(max-width:1100px){
  .nav,.hdr-cta{display:none;}
  .burger{display:block;}
  .ftr-grid{grid-template-columns:1fr 1fr;}
  .hero-bottom{flex-direction:column;gap:32px;align-items:flex-start;}
  .hero-lede{max-width:100%;}
  .hero-content{padding:0 24px 48px;}
  .hero-h{font-size:clamp(48px,10vw,80px);}
}
@media(max-width:640px){
  .wrap{padding:0 20px;}
  .hdr{padding:14px 20px;}
  .ftr-grid{grid-template-columns:1fr;gap:28px;}
  .section{padding:64px 0;}
  .hero-h{font-size:clamp(40px,12vw,64px);margin-bottom:32px;}
  .phero{padding:120px 20px 60px;min-height:50vh;}
}

/* Mobile : couper les animations lourdes (blobs floutes) pour la fluidite */
@media (max-width:768px){.sblob,.blob,.photo-bg,.focus-word,.logo-glow{animation:none !important;}}

@media(max-width:600px){.hero-actions{flex-wrap:wrap;gap:10px;}.btn-hero{padding:11px 15px;font-size:12.5px;white-space:nowrap;}}

/* ── Sélecteur de langue (header, toutes pages) ─────────────────────── */
.lang-switch{position:relative;display:inline-flex;}
.lang-btn{display:inline-flex;align-items:center;gap:6px;height:42px;padding:0 13px;background:rgba(255,255,255,.1);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.2);color:#fff;border-radius:999px;font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:background .3s,border-color .3s,color .3s;}
.lang-btn:hover{background:rgba(255,255,255,.2);}
.lang-btn .globe{width:15px;height:15px;opacity:.85;}
.lang-btn .chev{width:9px;height:9px;opacity:.7;transition:transform .25s;}
.lang-switch.open .lang-btn .chev{transform:rotate(180deg);}
.hdr.light-bg .lang-btn{background:rgba(19,24,21,.06);border-color:rgba(19,24,21,.18);color:var(--ink);}
.hdr.light-bg .lang-btn:hover{background:rgba(19,24,21,.1);}
.lang-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:80;min-width:158px;background:rgba(18,26,22,.94);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:6px;list-style:none;margin:0;opacity:0;transform:translateY(-6px);pointer-events:none;transition:opacity .2s,transform .2s;box-shadow:0 18px 44px rgba(0,0,0,.35);}
.lang-switch.open .lang-menu{opacity:1;transform:none;pointer-events:auto;}
.lang-menu li{margin:0;}
.lang-menu a{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:9px 13px;border-radius:9px;color:rgba(255,255,255,.82);font-family:var(--sans);font-size:14px;font-weight:400;letter-spacing:0;text-transform:none;transition:background .2s,color .2s;}
.lang-menu a:hover{background:rgba(255,255,255,.1);color:#fff;}
.lang-menu a[aria-current="true"]{color:var(--mint);}
.lang-menu a[aria-current="true"]::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--mint);flex-shrink:0;}
