:root{--brand-primary:#101828;--brand-secondary:#475467}
:root{--bg:#07111f;--bg2:#0b1728;--card:#0f2036;--text:#eef6ff;--muted:#9fb0c3;--accent:#4fe0c4;--accent2:#82aaff;--line:rgba(255,255,255,.11);--light:#f6f8fb;--ink:#101827}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,system-ui,sans-serif;background:var(--bg);color:var(--text);line-height:1.6}.container{width:min(1160px,calc(100% - 40px));margin:auto}.nav-wrap{position:sticky;top:0;z-index:50;background:rgba(7,17,31,.78);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}.nav{height:78px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;gap:10px;align-items:center;color:#fff;text-decoration:none;font-weight:800}.brand-mark{color:var(--accent)}.nav-links{display:flex;align-items:center;gap:26px}.nav-links a{color:#cdd8e5;text-decoration:none;font-size:14px}.menu-btn{display:none;background:none;border:0;color:#fff;font-size:25px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 20px;border-radius:12px;background:linear-gradient(135deg,var(--accent),#68b8ff);color:#06111e!important;text-decoration:none;border:0;font-weight:800;cursor:pointer}.btn-small{padding:10px 14px}.btn-ghost{background:transparent;border:1px solid var(--line);color:#fff!important}.full{width:100%}.hero{min-height:720px;display:grid;grid-template-columns:1.15fr .85fr;gap:70px;align-items:center;padding:90px 0}.eyebrow{display:inline-block;color:var(--accent);text-transform:uppercase;letter-spacing:.12em;font-size:12px;font-weight:800}.hero h1{font-family:'Space Grotesk',sans-serif;font-size:clamp(48px,6vw,78px);line-height:1.02;letter-spacing:-.045em;margin:18px 0 24px}.hero h1 span{background:linear-gradient(90deg,var(--accent),#9bbcff);-webkit-background-clip:text;color:transparent}.hero p{max-width:700px;color:var(--muted);font-size:19px}.hero-actions{display:flex;gap:12px;margin:34px 0}.trust{display:flex;gap:18px;flex-wrap:wrap;color:#b9c8d7;font-size:13px}.glass{background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.035));border:1px solid var(--line);box-shadow:0 25px 80px rgba(0,0,0,.35);border-radius:24px}.hero-card{padding:18px}.terminal-head{display:flex;gap:7px;padding-bottom:14px;border-bottom:1px solid var(--line)}.terminal-head span{width:10px;height:10px;border-radius:50%;background:#607086}.hero-card pre{white-space:pre-wrap;font-size:15px;padding:24px 10px;color:#e9f3ff}.muted{color:#72859a}.accent{color:#85e8d5}.ok{color:#8cffaa}.section{padding:100px 0}.section-title{max-width:760px;margin-bottom:42px}.section-title h2,.quote-grid h2,.contact-grid h2{font-family:'Space Grotesk';font-size:clamp(34px,4vw,52px);line-height:1.08;margin:10px 0 16px}.section-title p,.quote-grid>div>p,.contact-grid>div>p{color:var(--muted)}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.card{padding:26px;background:var(--bg2);border:1px solid var(--line);border-radius:18px}.card .icon{font-size:28px;color:var(--accent)}.card h3{font-size:20px}.card p{color:var(--muted);font-size:14px}.card span{font-weight:700;font-size:13px}.dark-band{padding:36px 0;background:#0a1423;border-block:1px solid var(--line)}.stats{display:grid;grid-template-columns:repeat(4,1fr);text-align:center}.stats div{border-right:1px solid var(--line)}.stats div:last-child{border:0}.stats strong{display:block;font-size:24px}.stats span{color:var(--muted);font-size:13px}.projects{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.project{overflow:hidden;border:1px solid var(--line);border-radius:20px;background:var(--bg2)}.project>div:last-child{padding:22px}.project p{color:var(--muted);font-size:14px}.project small{color:#7f91a5}.project-visual{height:220px;display:grid;place-items:center;font-family:'Space Grotesk';font-size:26px;font-weight:700}.gradient-a{background:radial-gradient(circle at 30% 20%,#bb86fc55,transparent 35%),linear-gradient(135deg,#2a1538,#151d36)}.gradient-b{background:radial-gradient(circle at 75% 30%,#4fe0c455,transparent 35%),linear-gradient(135deg,#092e32,#17233a)}.gradient-c{background:radial-gradient(circle at 50% 20%,#6ea8ff55,transparent 35%),linear-gradient(135deg,#152646,#151b2d)}.quote-section{background:var(--light);color:var(--ink)}.quote-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;align-items:start}.quote-grid .eyebrow{color:#087d69}.quote-grid>div>p{color:#5d6878}.quote-result{margin-top:30px;border-left:4px solid #19b69b;background:#fff;padding:22px;border-radius:14px}.quote-result span,.quote-result small{display:block;color:#687486}.quote-result strong{display:block;font-size:30px;margin:4px 0}.form-card{background:#fff;color:var(--ink);padding:28px;border-radius:20px;border:1px solid #dfe5ec;box-shadow:0 15px 45px rgba(21,34,50,.08)}.form-card label,.form-card legend{display:block;font-size:13px;font-weight:700;margin-bottom:14px}.form-card input,.form-card select,.form-card textarea{width:100%;margin-top:7px;border:1px solid #ced6df;border-radius:10px;padding:12px 13px;font:inherit;background:#fbfcfe}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-card fieldset{border:0;padding:0;margin:0 0 14px}.checks{display:grid;grid-template-columns:1fr 1fr;gap:8px}.checks label{display:flex;gap:8px;align-items:center;font-weight:500;margin:0}.checks input{width:auto;margin:0}.status{font-size:13px;margin:10px 0 0;min-height:20px}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px}.contact-note{padding-top:20px;border-top:1px solid var(--line)}footer{border-top:1px solid var(--line);padding:40px 0}.footer{display:grid;grid-template-columns:2fr 1fr 1fr;gap:30px;color:var(--muted);font-size:13px}.footer strong{color:#fff}.footer a,.footer span{display:block;color:var(--muted);text-decoration:none;margin:5px 0}
@media(max-width:900px){.nav-links{display:none;position:absolute;top:78px;left:20px;right:20px;background:#0d1a2d;padding:20px;border:1px solid var(--line);border-radius:16px;flex-direction:column;align-items:stretch}.nav-links.open{display:flex}.menu-btn{display:block}.hero{grid-template-columns:1fr;padding:70px 0}.hero-card{display:none}.cards,.projects{grid-template-columns:1fr 1fr}.quote-grid,.contact-grid{grid-template-columns:1fr;gap:35px}.stats{grid-template-columns:1fr 1fr;gap:20px}.stats div{border:0}.footer{grid-template-columns:1fr 1fr}}@media(max-width:600px){.container{width:min(100% - 28px,1160px)}.hero{min-height:auto}.hero h1{font-size:46px}.cards,.projects,.form-row,.checks,.footer{grid-template-columns:1fr}.hero-actions{flex-direction:column}.section{padding:72px 0}}

.cms-image{background-size:cover!important;background-position:center!important}.project-link{display:inline-block;margin-top:12px;font-weight:700;color:inherit}.contact-direct{display:flex;gap:12px;flex-wrap:wrap}.contact-direct a{color:inherit;font-weight:700}

.testimonial .stars{letter-spacing:.12em;margin-bottom:12px}.testimonial small{display:block;margin-top:5px;opacity:.7}

.appointment-form{max-width:760px;margin:28px auto 0}.two-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px}.appointment-form select{width:100%;border:1px solid #d7dce5;border-radius:12px;padding:13px;background:#fff;font:inherit}@media(max-width:650px){.two-cols{grid-template-columns:1fr}}


.btn,.btn-primary,.brand-mark{background:var(--brand-primary)!important}
.hero h1 span,.eyebrow,.section-label{color:var(--brand-secondary)}
a{accent-color:var(--brand-primary)}

.offer-catalog{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:28px 0}.offer-card{border:1px solid #e4e7ec;border-radius:20px;padding:24px;background:#fff;cursor:pointer;transition:.2s;position:relative}.offer-card:hover,.offer-card.active{transform:translateY(-3px);box-shadow:0 18px 45px #10182812;border-color:var(--brand-primary)}.offer-card h3{font-size:22px;margin:8px 0}.offer-card .price{font-size:28px;font-weight:800;margin:18px 0 4px}.offer-card small{color:#667085}.offer-badge{display:inline-flex;padding:5px 9px;border-radius:999px;background:#f2f4f7;font-size:11px;font-weight:700}.offer-options{display:grid;gap:10px;margin:18px 0}.offer-option{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:start;border:1px solid #eaecf0;border-radius:12px;padding:12px}.offer-option input{margin-top:4px}.offer-option strong{display:block}.offer-option small{display:block;color:#667085;margin-top:4px}.offer-option .option-price{font-weight:800;white-space:nowrap}.configurator-grid{align-items:start}@media(max-width:900px){.offer-catalog{grid-template-columns:1fr}.configurator-grid{grid-template-columns:1fr}}

.recommend-box{display:grid;grid-template-columns:1.1fr 1.5fr;gap:24px;align-items:end;margin:24px 0}.recommend-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.recommend-form button{grid-column:1/-1}.package-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0 18px}.package-card{border:1px solid #e4e7ec;border-radius:14px;padding:14px;cursor:pointer;background:#fff}.package-card.active{border:2px solid var(--brand-primary);box-shadow:0 10px 30px #10182810}.package-card .package-badge{font-size:10px;font-weight:800;background:#f2f4f7;border-radius:999px;padding:4px 7px;display:inline-flex;margin-bottom:8px}.package-card strong{display:block}.package-card .package-price{font-size:20px;font-weight:800;margin-top:8px}.config-block h4{margin:18px 0 8px}.recurring-summary{margin-top:5px;color:#667085;font-size:12px}@media(max-width:800px){.recommend-box,.recommend-form{grid-template-columns:1fr}.package-grid{grid-template-columns:1fr}}

/* V3.1 — direction artistique premium */
:root{--bg:#07101d;--bg2:#0b1626;--card:#0e1c2e;--text:#f7fbff;--muted:#9eafc2;--accent:#5eead4;--accent2:#8fb4ff;--line:rgba(255,255,255,.1);--shadow:0 30px 90px rgba(0,0,0,.28)}
body{overflow-x:hidden;background:
radial-gradient(circle at 70% -10%,rgba(91,133,255,.14),transparent 30%),
radial-gradient(circle at 10% 20%,rgba(94,234,212,.07),transparent 25%),var(--bg)}
body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.13;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(to bottom,#000,transparent 80%)}
.ambient{position:absolute;border-radius:50%;filter:blur(90px);pointer-events:none;opacity:.22}.ambient-a{width:430px;height:430px;background:#44d7c1;top:260px;left:-300px}.ambient-b{width:520px;height:520px;background:#5f80ff;top:30px;right:-360px}
.nav-wrap{background:rgba(7,16,29,.72);box-shadow:0 1px 0 rgba(255,255,255,.03)}.nav{height:82px}.brand{font-family:'Space Grotesk';letter-spacing:-.02em}.brand-mark{display:grid;place-items:center;width:36px;height:36px;border:1px solid rgba(94,234,212,.25);border-radius:11px;background:rgba(94,234,212,.08)}.nav-links a{transition:.2s ease}.nav-links>a:not(.btn):hover{color:#fff}.btn{position:relative;overflow:hidden;box-shadow:0 12px 34px rgba(79,224,196,.12);transition:transform .2s ease,box-shadow .2s ease}.btn:hover{transform:translateY(-2px);box-shadow:0 18px 44px rgba(79,224,196,.2)}.btn-shine:after{content:"";position:absolute;inset:-100% auto -100% -35%;width:25%;transform:rotate(20deg);background:rgba(255,255,255,.38);transition:left .5s}.btn-shine:hover:after{left:120%}.btn-ghost:hover{border-color:rgba(255,255,255,.28);background:rgba(255,255,255,.04)}
.hero{position:relative;min-height:760px;grid-template-columns:1.08fr .92fr;gap:74px;padding:110px 0 90px}.hero-copy{position:relative;z-index:2}.hero-badge{padding:8px 12px;border:1px solid rgba(94,234,212,.18);border-radius:999px;background:rgba(94,234,212,.06)}.hero h1{max-width:820px;font-size:clamp(50px,6.4vw,82px);text-wrap:balance}.hero p{font-size:18px;max-width:660px}.hero-actions{margin:36px 0 30px}.hero-proof{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:34px}.hero-proof div{padding:13px 12px;border-top:1px solid var(--line);display:grid;gap:4px}.hero-proof strong{font-family:'Space Grotesk';font-size:12px;color:var(--accent)}.hero-proof span{font-size:11px;color:#a9b9ca;line-height:1.35}
.hero-visual{position:relative;perspective:1000px}.hero-card{position:relative;z-index:2;transform:rotateY(-4deg) rotateX(2deg);box-shadow:0 40px 110px rgba(0,0,0,.42),0 0 0 1px rgba(255,255,255,.03) inset;transition:transform .35s ease}.hero-card:hover{transform:rotateY(0) rotateX(0) translateY(-5px)}.hero-orbit{position:absolute;border:1px solid rgba(94,234,212,.12);border-radius:50%;z-index:0}.orbit-a{width:440px;height:440px;left:-40px;top:-70px}.orbit-b{width:320px;height:320px;right:-50px;bottom:-80px;border-color:rgba(143,180,255,.14)}.terminal-status{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;align-items:center;border-top:1px solid var(--line);padding:16px 10px 4px}.terminal-status span{font-size:12px;color:#b8c8d9}.terminal-status span i{display:inline-block;width:7px;height:7px;background:#6ce9a6;border-radius:50%;margin-right:7px;box-shadow:0 0 12px #6ce9a6}.terminal-status strong{grid-row:1/3;grid-column:2;font-family:'Space Grotesk';font-size:26px}.terminal-status small{font-size:10px;color:#71859b}
.section{position:relative}.section-title h2,.section-head h2{letter-spacing:-.035em;text-wrap:balance}.cards,.projects{gap:20px}.card,.project{transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}.card:hover,.project:hover{transform:translateY(-6px);border-color:rgba(94,234,212,.25);box-shadow:var(--shadow)}.card{position:relative;overflow:hidden}.card:after{content:"";position:absolute;width:120px;height:120px;border-radius:50%;background:rgba(94,234,212,.06);right:-70px;top:-70px}.dark-band{background:rgba(10,20,35,.75);backdrop-filter:blur(12px)}.stats strong{font-family:'Space Grotesk'}.project-visual{transition:transform .5s ease}.project:hover .project-visual{transform:scale(1.025)}
.quote-section{background:linear-gradient(180deg,#f8fafc,#eef3f8);position:relative}.quote-section:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 80% 10%,rgba(88,132,255,.1),transparent 28%);pointer-events:none}.form-card{box-shadow:0 24px 70px rgba(21,34,50,.09);border-color:#e3e8ef}.form-card input,.form-card select,.form-card textarea{transition:border-color .2s,box-shadow .2s}.form-card input:focus,.form-card select:focus,.form-card textarea:focus{outline:none;border-color:#55bdaa;box-shadow:0 0 0 4px rgba(85,189,170,.11)}
@keyframes revealUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}.hero-copy>*{animation:revealUp .65s ease both}.hero-copy>*:nth-child(2){animation-delay:.08s}.hero-copy>*:nth-child(3){animation-delay:.15s}.hero-copy>*:nth-child(4){animation-delay:.22s}.hero-copy>*:nth-child(5){animation-delay:.29s}.hero-copy>*:nth-child(6){animation-delay:.36s}.hero-visual{animation:revealUp .8s .2s ease both}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
@media(max-width:900px){.hero{grid-template-columns:1fr;min-height:auto;padding:80px 0}.hero-visual{max-width:650px}.hero-card{transform:none}.hero-proof{max-width:650px}.orbit-a,.orbit-b{display:none}}
@media(max-width:600px){.container{width:min(100% - 28px,1160px)}.hero{padding:62px 0}.hero h1{font-size:clamp(42px,13vw,60px)}.hero p{font-size:16px}.hero-actions{display:grid}.hero-proof{grid-template-columns:1fr}.hero-proof div{grid-template-columns:32px 1fr;align-items:center}.trust{gap:10px}.section{padding:72px 0}.hero-card pre{font-size:12px;padding:16px 4px}}

/* V3.2 — conversion commerciale */
.section-lead{max-width:620px;color:var(--muted);margin-top:12px}.conversion-band{padding:90px 0;background:linear-gradient(135deg,#0b1727,#101f34);border-block:1px solid rgba(255,255,255,.06)}.conversion-head{max-width:800px}.conversion-head h2{font-size:clamp(34px,4vw,52px)}.conversion-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:44px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.08);border-radius:20px;overflow:hidden}.conversion-steps article{padding:28px;background:#0d1a2c;min-height:220px;transition:background .2s}.conversion-steps article:hover{background:#11243a}.conversion-steps span{display:inline-grid;place-items:center;width:35px;height:35px;border-radius:50%;background:rgba(94,234,212,.08);border:1px solid rgba(94,234,212,.15);color:var(--accent);font:700 11px 'Space Grotesk'}.conversion-steps h3{margin:34px 0 10px}.conversion-steps p{font-size:13px;color:#9eb0c3;line-height:1.65}.testimonial-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.testimonial{min-height:230px;display:flex;flex-direction:column}.testimonial .stars{color:#f5bd4f;letter-spacing:2px;font-size:13px}.testimonial p{font-size:16px;line-height:1.7;flex:1}.testimonial strong{margin-top:18px}.testimonial small{display:block;color:var(--muted);margin-top:3px}.faq-section{max-width:1000px}.faq-grid{display:grid;gap:10px;margin-top:34px}.faq-grid details{border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.025);padding:0 20px;transition:border-color .2s,background .2s}.faq-grid details[open]{border-color:rgba(94,234,212,.24);background:rgba(94,234,212,.035)}.faq-grid summary{cursor:pointer;list-style:none;font-weight:750;padding:20px 30px 20px 0;position:relative}.faq-grid summary::-webkit-details-marker{display:none}.faq-grid summary:after{content:"+";position:absolute;right:0;font-size:22px;color:var(--accent);font-weight:400}.faq-grid details[open] summary:after{content:"−"}.faq-grid details p{margin:0 0 20px;color:var(--muted);line-height:1.7}.appointment-conversion{position:relative}.appointment-conversion:before{content:"";position:absolute;inset:40px -40px;border-radius:32px;background:linear-gradient(135deg,rgba(94,234,212,.055),rgba(143,180,255,.055));border:1px solid rgba(255,255,255,.06);z-index:-1}.appointment-conversion .appointment-form{max-width:900px;margin-inline:auto}.appointment-conversion .section-head{text-align:center;max-width:720px;margin-inline:auto}.sticky-commercial-cta{display:none}
@media(max-width:900px){.conversion-steps{grid-template-columns:repeat(2,1fr)}.testimonial-grid{grid-template-columns:1fr 1fr}}@media(max-width:600px){.conversion-steps{grid-template-columns:1fr}.conversion-steps article{min-height:0}.testimonial-grid{grid-template-columns:1fr}.appointment-conversion:before{inset:25px -8px}.sticky-commercial-cta{display:grid;grid-template-columns:1fr 1fr;position:fixed;left:10px;right:10px;bottom:10px;z-index:90;background:rgba(7,16,29,.88);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.12);padding:7px;border-radius:14px;box-shadow:0 18px 50px rgba(0,0,0,.35);gap:7px}.sticky-commercial-cta a{text-align:center;padding:11px 8px;border-radius:9px;font-size:12px;font-weight:800}.sticky-commercial-cta a:first-child{background:var(--accent);color:#07101d}.sticky-commercial-cta a:last-child{border:1px solid rgba(255,255,255,.15);color:#fff}footer{padding-bottom:90px}}

/* V3.3 — identité KODERYS */
:root{
  --brand-primary:#07152f;
  --brand-secondary:#1267d6;
  --bg:#050d1e;
  --bg2:#09162c;
  --card:#0b1b35;
  --accent:#168cff;
  --accent2:#25c7ff;
}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.nav{height:94px}
.koderys-brand{display:flex;align-items:center}
.brand-logo{display:block;width:auto;height:66px;max-width:240px;object-fit:contain;border-radius:11px;background:#fff;padding:4px 8px;box-shadow:0 8px 28px rgba(0,0,0,.18)}
.footer-brand-logo{display:block;width:min(270px,100%);height:auto;border-radius:14px;background:#fff;padding:8px 12px;margin-bottom:14px}
.hero h1 span{background:linear-gradient(90deg,#20c8ff,#168cff 48%,#6d83ff);-webkit-background-clip:text;color:transparent}
.btn{background:linear-gradient(135deg,#20c8ff,#168cff);box-shadow:0 12px 34px rgba(22,140,255,.18)}
.btn:hover{box-shadow:0 18px 44px rgba(22,140,255,.28)}
.hero-badge{color:#54cfff;border-color:rgba(22,140,255,.25);background:rgba(22,140,255,.08)}
.eyebrow{color:#31baff}
.hero-proof strong,.conversion-steps span,.faq-grid summary:after{color:#35bcff}
.conversion-steps span{background:rgba(22,140,255,.09);border-color:rgba(37,199,255,.18)}
.card:after{background:rgba(22,140,255,.07)}
.card:hover,.project:hover{border-color:rgba(37,199,255,.28)}
.ambient-a{background:#1267d6}.ambient-b{background:#25c7ff}
@media(max-width:900px){.nav{height:82px}.brand-logo{height:56px;max-width:205px}}
@media(max-width:600px){.brand-logo{height:48px;max-width:175px;padding:3px 6px;border-radius:9px}.nav{height:72px}}

/* V3.3.1 — corrections de contraste et identité */
.btn,
.btn:link,
.btn:visited,
button.btn,
.form-card .btn,
.recommend-form .btn,
.appointment-conversion .btn,
.sticky-commercial-cta a {
  color:#fff !important;
}
.btn span,
.btn strong,
.btn small,
.form-card .btn span,
.recommend-form .btn span,
.appointment-conversion .btn span {
  color:inherit !important;
}
.btn-ghost,
.btn-ghost:link,
.btn-ghost:visited {
  color:#eaf4ff !important;
}
.koderys-brand .brand-logo{
  background:transparent !important;
  padding:0 !important;
  box-shadow:none !important;
  border-radius:0 !important;
  height:72px;
  max-width:285px;
  object-fit:contain;
}
.footer-favicon{
  width:68px;
  height:68px;
  object-fit:cover;
  border-radius:16px;
  display:block;
  margin-bottom:12px;
  box-shadow:0 12px 30px rgba(0,0,0,.24);
}
.footer-identity strong{
  display:block;
  font-family:"Space Grotesk",sans-serif;
  font-size:1.15rem;
  letter-spacing:.12em;
  margin-bottom:8px;
}
.footer-legal{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.footer-legal a{
  color:inherit;
  text-decoration:none;
}
.footer-legal a:hover{
  color:#53c9ff;
}
.legal-shell{
  max-width:920px;
  margin:0 auto;
  padding:56px 20px 80px;
}
.legal-shell h1{
  font-size:clamp(2rem,5vw,3.8rem);
  margin:0 0 14px;
}
.legal-shell h2{
  margin-top:34px;
  font-size:1.35rem;
}
.legal-shell p,.legal-shell li{
  color:var(--muted,#a9b8cc);
  line-height:1.75;
}
.legal-shell a{color:#45c5ff}
.legal-card{
  margin-top:28px;
  padding:26px;
  border:1px solid rgba(255,255,255,.1);
  background:rgba(8,22,44,.72);
  border-radius:20px;
}
@media(max-width:900px){
  .koderys-brand .brand-logo{height:60px;max-width:235px}
}
@media(max-width:600px){
  .koderys-brand .brand-logo{height:50px;max-width:195px}
  .footer-favicon{width:58px;height:58px}
}

/* =========================================================
   V3.4 — Motion design KODERYS
   ========================================================= */
html{scroll-behavior:smooth}
body{position:relative;overflow-x:hidden}
body>*:not(.site-bg):not(.network-background):not(.ambient){position:relative;z-index:1}

.site-bg,.network-background{position:fixed;inset:0;pointer-events:none}
.site-bg{z-index:0;overflow:hidden;background:
  radial-gradient(circle at 18% 10%,rgba(20,105,220,.14),transparent 30%),
  radial-gradient(circle at 82% 18%,rgba(36,202,255,.10),transparent 28%),
  linear-gradient(180deg,#050c1b 0%,#071126 42%,#050b18 100%)}
.network-background{z-index:0;width:100%;height:100%;opacity:.54}
.bg-grid{position:absolute;inset:-20%;background-image:
  linear-gradient(rgba(76,161,255,.045) 1px,transparent 1px),
  linear-gradient(90deg,rgba(76,161,255,.045) 1px,transparent 1px);
  background-size:72px 72px;
  transform:perspective(700px) rotateX(66deg) translateY(19%);
  transform-origin:center bottom;
  mask-image:linear-gradient(to bottom,transparent 2%,#000 25%,#000 72%,transparent 96%);
  animation:gridDrift 24s linear infinite}
.bg-orb{position:absolute;border-radius:50%;filter:blur(90px);opacity:.22;will-change:transform}
.bg-orb-a{width:46vw;height:46vw;left:-18vw;top:-10vw;background:#1267d6;animation:orbA 20s ease-in-out infinite alternate}
.bg-orb-b{width:38vw;height:38vw;right:-12vw;top:24vh;background:#20c8ff;animation:orbB 25s ease-in-out infinite alternate}
.bg-orb-c{width:28vw;height:28vw;left:38vw;bottom:-16vw;background:#2954ff;opacity:.13;animation:orbC 30s ease-in-out infinite alternate}
.bg-noise{position:absolute;inset:0;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.88' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E")}

@keyframes gridDrift{to{transform:perspective(700px) rotateX(66deg) translateY(calc(19% + 72px))}}
@keyframes orbA{to{transform:translate(14vw,10vh) scale(1.16)}}
@keyframes orbB{to{transform:translate(-12vw,18vh) scale(.9)}}
@keyframes orbC{to{transform:translate(8vw,-16vh) scale(1.2)}}

.nav-wrap{background:rgba(5,13,30,.68)!important;backdrop-filter:blur(18px) saturate(145%);-webkit-backdrop-filter:blur(18px) saturate(145%);border-bottom:1px solid rgba(109,174,255,.09)}
.nav-links a:not(.btn){position:relative}
.nav-links a:not(.btn)::after{content:"";position:absolute;left:50%;right:50%;bottom:-8px;height:2px;border-radius:2px;background:linear-gradient(90deg,#20c8ff,#168cff);transition:left .25s ease,right .25s ease}
.nav-links a:not(.btn):hover::after{left:0;right:0}

.hero{min-height:calc(100svh - 92px);align-items:center}
.hero-copy,.hero-visual{animation:heroEnter .9s cubic-bezier(.2,.7,.2,1) both}
.hero-visual{animation-delay:.16s}
@keyframes heroEnter{from{opacity:0;transform:translateY(24px);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}

.hero-card{animation:heroFloat 6s ease-in-out infinite;box-shadow:0 30px 100px rgba(0,76,190,.24),inset 0 1px rgba(255,255,255,.06)}
.hero-card::after{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:linear-gradient(135deg,rgba(71,209,255,.65),transparent 36%,transparent 64%,rgba(48,112,255,.45));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
@keyframes heroFloat{0%,100%{transform:translateY(0) rotateX(0deg)}50%{transform:translateY(-12px) rotateX(1deg)}}

.hero-orbit{animation-duration:10s!important}
.orbit-a{animation-name:orbitPulseA!important}
.orbit-b{animation-name:orbitPulseB!important}
@keyframes orbitPulseA{0%,100%{transform:scale(.94) rotate(0deg);opacity:.55}50%{transform:scale(1.08) rotate(12deg);opacity:.95}}
@keyframes orbitPulseB{0%,100%{transform:scale(1.03) rotate(0deg);opacity:.45}50%{transform:scale(.92) rotate(-14deg);opacity:.8}}

.card,.project,.form-card,.offer-card,.package-card,.conversion-steps>*,.faq-grid details{
  transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s ease,box-shadow .35s ease,background .35s ease;
  transform-style:preserve-3d}
.card:hover,.project:hover,.offer-card:hover,.package-card:hover,.conversion-steps>*:hover{
  transform:translateY(-7px);
  box-shadow:0 22px 60px rgba(0,31,83,.22);
  border-color:rgba(57,188,255,.32)}
.card .icon{transition:transform .35s ease,filter .35s ease}
.card:hover .icon{transform:translateY(-3px) scale(1.08) rotate(-3deg);filter:drop-shadow(0 7px 16px rgba(31,172,255,.3))}

.btn{position:relative;isolation:isolate;overflow:hidden;transition:transform .22s ease,box-shadow .22s ease,filter .22s ease}
.btn::before{content:"";position:absolute;inset:-2px auto -2px -45%;width:38%;transform:skewX(-18deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.42),transparent);transition:left .55s ease;z-index:-1}
.btn:hover{transform:translateY(-2px);filter:saturate(1.13)}
.btn:hover::before{left:115%}
.btn:active{transform:translateY(0) scale(.985)}

.section{position:relative}
.section::before{content:"";position:absolute;left:50%;top:4px;width:min(780px,70vw);height:1px;transform:translateX(-50%);background:linear-gradient(90deg,transparent,rgba(46,167,255,.18),transparent)}
.section.reveal-ready>.section-title,.section.reveal-ready>.cards,.section.reveal-ready>.projects,.section.reveal-ready>.quote-grid,.section.reveal-ready>.contact-grid,.section.reveal-ready>.appointment-grid,.section.reveal-ready>.faq-grid,.section.reveal-ready>.conversion-steps{
  opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .75s cubic-bezier(.2,.7,.2,1)}
.section.reveal-ready.revealed>.section-title,.section.reveal-ready.revealed>.cards,.section.reveal-ready.revealed>.projects,.section.reveal-ready.revealed>.quote-grid,.section.reveal-ready.revealed>.contact-grid,.section.reveal-ready.revealed>.appointment-grid,.section.reveal-ready.revealed>.faq-grid,.section.reveal-ready.revealed>.conversion-steps{
  opacity:1;transform:none}

.form-card input,.form-card textarea,.form-card select{
  transition:border-color .2s ease,box-shadow .2s ease,background .2s ease,transform .2s ease}
.form-card input:focus,.form-card textarea:focus,.form-card select:focus{
  transform:translateY(-1px);box-shadow:0 0 0 4px rgba(32,174,255,.08),0 12px 30px rgba(0,37,90,.1)!important}

/* Footer premium */
.site-footer{position:relative;margin-top:72px;background:linear-gradient(180deg,rgba(4,13,30,.96),#030914);border-top:1px solid rgba(83,176,255,.12);overflow:hidden}
.footer-glow{position:absolute;width:720px;height:260px;left:50%;top:-180px;transform:translateX(-50%);background:#087bff;filter:blur(120px);opacity:.14;pointer-events:none}
.site-footer>.container{padding-top:0}
.footer-cta{position:relative;top:-42px;display:flex;align-items:center;justify-content:space-between;gap:32px;padding:32px 36px;border:1px solid rgba(81,185,255,.22);border-radius:24px;background:linear-gradient(135deg,rgba(13,40,82,.96),rgba(5,21,47,.96));box-shadow:0 24px 70px rgba(0,0,0,.28),inset 0 1px rgba(255,255,255,.05);overflow:hidden}
.footer-cta::after{content:"";position:absolute;width:260px;height:260px;right:-80px;top:-120px;border-radius:50%;background:radial-gradient(circle,rgba(30,183,255,.2),transparent 68%);pointer-events:none}
.footer-cta h2{margin:.35rem 0 .45rem;font-size:clamp(1.45rem,3vw,2.25rem);max-width:720px}
.footer-cta p{margin:0;color:#aebfd4;max-width:720px}
.footer-cta-actions{display:flex;align-items:center;gap:18px;flex-shrink:0}
.footer-text-link{color:#d9e8fa;text-decoration:none;font-weight:700;white-space:nowrap}
.footer-text-link:hover{color:#55cbff}

.footer-main{display:grid;grid-template-columns:1.6fr .8fr 1fr 1fr;gap:48px;padding:18px 0 44px}
.footer-brand-link{display:inline-flex;align-items:center;gap:14px;text-decoration:none;color:#fff}
.footer-brand-link span{display:flex;flex-direction:column;gap:2px}
.footer-brand-link strong{font-family:"Space Grotesk",sans-serif;font-size:1.16rem;letter-spacing:.16em}
.footer-brand-link small{font-size:.75rem;color:#7f94af}
.footer-favicon{width:58px!important;height:58px!important;margin:0!important;border-radius:15px!important}
.footer-brand-block>p{max-width:390px;color:#8498b2;line-height:1.65;margin:18px 0}
.footer-status{display:inline-flex;align-items:center;gap:9px;padding:8px 12px;border:1px solid rgba(66,199,157,.16);border-radius:999px;background:rgba(40,169,126,.07);color:#9adbc4;font-size:.8rem}
.footer-status i{width:8px;height:8px;border-radius:50%;background:#43d6a3;box-shadow:0 0 0 5px rgba(67,214,163,.08);animation:statusPulse 2.2s ease-in-out infinite}
@keyframes statusPulse{50%{box-shadow:0 0 0 9px rgba(67,214,163,0)}}
.footer-column{display:flex;flex-direction:column;gap:11px}
.footer-column>strong{color:#edf5ff;margin-bottom:5px;font-size:.9rem}
.footer-column a,.footer-column span{color:#8093ad;text-decoration:none;font-size:.88rem;transition:color .2s ease,transform .2s ease}
.footer-column a:hover{color:#57c8ff;transform:translateX(3px)}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:22px;padding:22px 0 28px;border-top:1px solid rgba(255,255,255,.07);color:#71849d;font-size:.8rem}
.footer-bottom>div{display:flex;align-items:center;gap:20px}
.footer-bottom a{color:#8da0b9;text-decoration:none}
.footer-bottom a:hover{color:#56c8ff}
.back-to-top{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;border:1px solid rgba(82,185,255,.18);background:rgba(19,75,136,.12);font-size:1rem!important;transition:transform .2s ease!important}
.back-to-top:hover{transform:translateY(-3px)!important}

@media(max-width:980px){
  .footer-cta{align-items:flex-start;flex-direction:column}
  .footer-main{grid-template-columns:1.5fr 1fr 1fr}
  .footer-contact{grid-column:2/4}
}
@media(max-width:720px){
  .network-background{opacity:.35}
  .bg-grid{background-size:48px 48px}
  .footer-cta{top:-28px;padding:26px 22px;border-radius:20px}
  .footer-cta-actions{width:100%;align-items:stretch;flex-direction:column}
  .footer-cta-actions .btn{text-align:center}
  .footer-main{grid-template-columns:1fr 1fr;gap:32px 24px;padding-top:8px}
  .footer-brand-block{grid-column:1/-1}
  .footer-contact{grid-column:auto}
  .footer-bottom{align-items:flex-start;flex-direction:column}
  .footer-bottom>div{flex-wrap:wrap}
}
@media(max-width:480px){
  .footer-main{grid-template-columns:1fr}
  .footer-contact{grid-column:auto}
  .footer-cta h2{font-size:1.55rem}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .network-background{display:none}
}

.hero::after{content:"";position:absolute;width:520px;height:520px;left:var(--mouse-x,36%);top:var(--mouse-y,38%);transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(36,185,255,.07),transparent 68%);pointer-events:none;z-index:-1;transition:left .08s linear,top .08s linear}
main{background:transparent}
.section:not(.light-section){background-color:transparent}

.scroll-progress{position:fixed;left:0;top:0;width:0;height:2px;z-index:1000;background:linear-gradient(90deg,#20c8ff,#168cff,#7f8cff);box-shadow:0 0 14px rgba(32,200,255,.65);pointer-events:none}

/* =========================================================
   V3.6 — Background motion+
   ========================================================= */
.site-bg::before,.site-bg::after{content:"";position:absolute;inset:-30%;pointer-events:none}
.site-bg::before{
  background:conic-gradient(from 0deg at 50% 50%,transparent 0 18%,rgba(23,125,255,.035) 23%,transparent 30% 55%,rgba(32,202,255,.028) 62%,transparent 70%);
  animation:bgAuroraSpin 42s linear infinite;
  filter:blur(28px)}
.site-bg::after{
  background:radial-gradient(ellipse at center,transparent 0 44%,rgba(41,135,255,.055) 45%,transparent 46% 59%,rgba(30,195,255,.035) 60%,transparent 61%);
  animation:bgBreath 13s ease-in-out infinite alternate}

.bg-grid{animation:gridDrift 16s linear infinite,gridPulse 7s ease-in-out infinite}
.bg-orb-a{animation:orbA 14s ease-in-out infinite alternate}
.bg-orb-b{animation:orbB 18s ease-in-out infinite alternate}
.bg-orb-c{animation:orbC 21s ease-in-out infinite alternate}

.bg-beam{position:absolute;width:9vw;min-width:90px;height:150vh;top:-25vh;opacity:.09;filter:blur(18px);transform-origin:center;background:linear-gradient(180deg,transparent,rgba(50,194,255,.72),rgba(33,96,255,.3),transparent);mix-blend-mode:screen}
.bg-beam-a{left:18%;transform:rotate(28deg);animation:beamSweepA 17s ease-in-out infinite alternate}
.bg-beam-b{right:15%;transform:rotate(-25deg);animation:beamSweepB 21s ease-in-out infinite alternate}

.bg-ring{position:absolute;border:1px solid rgba(67,177,255,.13);border-radius:50%;box-shadow:0 0 70px rgba(22,126,255,.04),inset 0 0 60px rgba(37,193,255,.025);will-change:transform}
.bg-ring::before,.bg-ring::after{content:"";position:absolute;border-radius:50%;border:1px dashed rgba(79,193,255,.09)}
.bg-ring::before{inset:9%}.bg-ring::after{inset:21%}
.bg-ring-a{width:42vw;height:42vw;min-width:420px;min-height:420px;right:-16vw;top:8vh;animation:ringSpin 38s linear infinite}
.bg-ring-b{width:30vw;height:30vw;min-width:320px;min-height:320px;left:-12vw;bottom:-5vh;animation:ringSpinReverse 31s linear infinite}

.bg-comet{position:absolute;width:170px;height:1px;background:linear-gradient(90deg,transparent 0%,rgba(58,173,255,.12) 38%,rgba(94,211,255,.9) 100%);filter:drop-shadow(0 0 7px rgba(55,184,255,.7));opacity:0;transform-origin:right center;transform:rotate(-28deg)}
.bg-comet::after{content:"";position:absolute;right:-2px;top:-2px;width:5px;height:5px;border-radius:50%;background:#d4f6ff;box-shadow:0 0 7px #8be2ff,0 0 16px #36bfff}
.bg-comet-a{top:18%;left:-220px;animation:cometFlight 12s 1s linear infinite}
.bg-comet-b{top:52%;left:-260px;animation:cometFlight 17s 7s linear infinite}
.bg-comet-c{top:78%;left:-230px;animation:cometFlight 21s 12s linear infinite}

@keyframes bgAuroraSpin{to{transform:rotate(360deg) scale(1.06)}}
@keyframes bgBreath{0%{transform:scale(.9);opacity:.45}100%{transform:scale(1.12);opacity:1}}
@keyframes gridPulse{0%,100%{opacity:.55}50%{opacity:.9}}
@keyframes beamSweepA{0%{transform:translateX(-15vw) rotate(28deg)}100%{transform:translateX(42vw) rotate(28deg)}}
@keyframes beamSweepB{0%{transform:translateX(12vw) rotate(-25deg)}100%{transform:translateX(-38vw) rotate(-25deg)}}
@keyframes ringSpin{to{transform:rotate(360deg) scale(1.08)}}
@keyframes ringSpinReverse{to{transform:rotate(-360deg) scale(.92)}}
@keyframes cometFlight{
  0%,72%{opacity:0;transform:translate(-12vw,48vh) rotate(-28deg)}
  74%{opacity:.9}
  88%{opacity:.62}
  92%,100%{opacity:0;transform:translate(125vw,-58vh) rotate(-28deg)}
}

@media(max-width:720px){
  .bg-beam{opacity:.055}
  .bg-ring{opacity:.65}
  .bg-comet{width:110px}
  .bg-comet-b{display:none}
}
@media(prefers-reduced-motion:reduce){
  .bg-beam,.bg-ring,.bg-comet,.site-bg::before,.site-bg::after{animation:none!important}
  .bg-comet{display:none}
}


/* =========================================================
   V3.6.2 — Hiérarchie visuelle des formules
   ========================================================= */
.package-grid{align-items:stretch}
.package-card{
  position:relative;
  min-height:210px;
  padding:24px 18px 20px;
  overflow:hidden;
  transition:transform .24s ease,border-color .24s ease,box-shadow .24s ease,background .24s ease;
}
.package-card::before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:4px;
  background:var(--tier-accent,#8b98aa);
  opacity:.9;
}
.package-card::after{
  content:"";
  position:absolute;
  width:130px;height:130px;
  right:-62px;top:-65px;
  border-radius:50%;
  background:var(--tier-glow,rgba(115,130,150,.08));
  filter:blur(2px);
  pointer-events:none;
}
.package-card:hover{transform:translateY(-5px)}
.package-card>strong{display:block;font-size:1.15rem;margin-top:5px}
.package-card .package-price{margin-top:18px}
.package-tier-label{
  display:block;
  min-height:18px;
  margin-bottom:7px;
  font-size:.72rem;
  line-height:1;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--tier-accent,#667085);
}
.package-select-hint{
  display:block;
  margin-top:15px;
  font-size:.76rem;
  font-weight:700;
  opacity:.48;
  transition:opacity .2s ease,transform .2s ease;
}
.package-card:hover .package-select-hint,.package-card.active .package-select-hint{opacity:.9;transform:translateX(2px)}
.package-badge{
  position:absolute;
  right:12px;
  top:12px;
  z-index:2;
  font-size:.68rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.04em;
}

/* Essentiel : sobre, accessible */
.package-essential{
  --tier-accent:#667085;
  --tier-glow:rgba(102,112,133,.08);
  background:linear-gradient(180deg,#fff,#fbfcfe);
}
.package-essential:hover{border-color:#98a2b3;box-shadow:0 16px 34px rgba(16,24,40,.08)}

/* Pro : formule centrale mise en avant */
.package-pro{
  --tier-accent:#168cff;
  --tier-glow:rgba(22,140,255,.14);
  border-color:rgba(22,140,255,.42);
  background:linear-gradient(180deg,rgba(235,247,255,.96),#fff 62%);
  box-shadow:0 14px 36px rgba(22,140,255,.10);
  transform:translateY(-6px);
}
.package-pro:hover{transform:translateY(-10px);box-shadow:0 20px 44px rgba(22,140,255,.17)}
.package-pro .package-badge{
  color:#fff;
  background:linear-gradient(135deg,#1267d6,#25c7ff);
  border:0;
  box-shadow:0 7px 18px rgba(18,103,214,.22);
}

/* Premium : plus statutaire, sans être tape-à-l'œil */
.package-premium{
  --tier-accent:#7257d9;
  --tier-glow:rgba(114,87,217,.12);
  border-color:rgba(114,87,217,.25);
  background:linear-gradient(180deg,rgba(248,246,255,.97),#fff 64%);
}
.package-premium::before{background:linear-gradient(90deg,#7257d9,#25c7ff)}
.package-premium:hover{border-color:rgba(114,87,217,.5);box-shadow:0 18px 40px rgba(84,64,160,.12)}

.package-card.active{
  border-width:2px;
  border-color:var(--tier-accent,#168cff);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--tier-accent,#168cff) 12%,transparent),0 18px 42px rgba(16,24,40,.12);
}
.package-card.active::after{transform:scale(1.18)}
.package-card.active .package-select-hint::before{content:"✓ ";font-weight:900}

@media(max-width:720px){
  .package-card{min-height:192px;padding:22px 17px 18px}
  .package-pro{transform:none}
  .package-pro:hover{transform:translateY(-4px)}
  .package-tier-label{padding-right:68px}
}

/* V3.7 — contenu des formules */
.package-card{height:auto;min-height:300px;display:flex;flex-direction:column}
.package-summary{display:block;min-height:36px;margin-top:8px}
.package-features{list-style:none;padding:15px 0 4px;margin:14px 0 0;border-top:1px solid rgba(120,135,155,.16);display:grid;gap:9px;text-align:left}
.package-features li{position:relative;padding-left:21px;font-size:.82rem;line-height:1.35;color:var(--text)}
.package-features li::before{content:"✓";position:absolute;left:0;top:0;color:var(--tier-accent,#168cff);font-weight:900}
.package-features-empty{font-size:.78rem;color:var(--muted);font-style:italic;margin:15px 0 4px}
.package-select-hint{margin-top:auto;padding-top:14px}
@media(max-width:720px){.package-card{min-height:0}.package-summary{min-height:0}.package-features li{font-size:.84rem}}


/* =========================================================
   V3.7.1 — correction menu mobile au-dessus du contenu
   ========================================================= */
.nav-wrap{
  position:sticky;
  top:0;
  z-index:10000;
  isolation:isolate;
}
.nav{
  position:relative;
  z-index:10001;
}
.menu-btn{
  position:relative;
  z-index:10003;
}
@media(max-width:900px){
  .nav-links{
    top:100%;
    z-index:10002;
    background:#08162b;
    box-shadow:0 24px 60px rgba(0,0,0,.55);
  }
  .nav-links.open{
    display:flex;
  }
  .hero,
  .hero-copy,
  .hero-visual,
  .ambient{
    z-index:auto;
  }
}


/* =========================================================
   V3.8.1 — menu mobile réellement au premier plan + header lisible
   Le sélecteur V3.4 `body>*...{z-index:1}` était plus spécifique
   que `.nav-wrap{z-index:10000}` et annulait le correctif précédent.
   ========================================================= */
body > .nav-wrap{
  position:sticky !important;
  top:0;
  z-index:2147483000 !important;
  isolation:isolate;
}
body > main{
  z-index:1;
}
.nav-wrap .nav{
  position:relative;
  z-index:2147483001 !important;
}

/* Identité compacte : pictogramme lumineux + nom en texte */
.koderys-brand{
  min-width:0;
  gap:11px;
  text-decoration:none;
}
.header-brand-icon{
  display:grid;
  place-items:center;
  width:52px;
  height:52px;
  flex:0 0 52px;
  border-radius:14px;
  overflow:hidden;
  box-shadow:0 8px 25px rgba(0,72,255,.28),0 0 0 1px rgba(61,185,255,.18);
}
.header-brand-icon img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}
.header-brand-copy{
  display:grid;
  min-width:0;
  line-height:1;
}
.header-brand-copy strong{
  color:#f7fbff;
  font-family:'Space Grotesk',Inter,system-ui,sans-serif;
  font-size:21px;
  line-height:1;
  letter-spacing:.14em;
  text-shadow:0 0 20px rgba(31,157,255,.20);
  white-space:nowrap;
}
.header-brand-copy small{
  margin-top:7px;
  color:#7fb9e8;
  font-size:9px;
  line-height:1;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  white-space:nowrap;
}

@media(max-width:900px){
  body > .nav-wrap{
    z-index:2147483000 !important;
  }
  .nav-wrap .nav{
    z-index:2147483001 !important;
  }
  .nav-wrap .menu-btn{
    position:relative;
    z-index:2147483003 !important;
  }
  .nav-wrap .nav-links{
    position:absolute !important;
    top:100% !important;
    left:14px !important;
    right:14px !important;
    z-index:2147483002 !important;
    background:#07152b !important;
    border:1px solid rgba(83,174,255,.24) !important;
    box-shadow:0 26px 70px rgba(0,0,0,.72),0 0 0 1px rgba(0,0,0,.15) !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
  }
  .nav-wrap .nav-links.open{
    display:flex !important;
  }
  main,
  main .hero,
  main .hero-copy,
  main .hero-visual{
    z-index:1 !important;
  }
}
@media(max-width:600px){
  .header-brand-icon{
    width:44px;
    height:44px;
    flex-basis:44px;
    border-radius:12px;
  }
  .header-brand-copy strong{
    font-size:17px;
    letter-spacing:.12em;
  }
  .header-brand-copy small{
    margin-top:5px;
    font-size:7.5px;
    letter-spacing:.045em;
  }
}
@media(max-width:390px){
  .header-brand-copy small{display:none}
  .header-brand-copy strong{font-size:16px}
}


/* =========================================================
   V3.18.3 — pages légales alignées sur la vitrine KODERYS
   ========================================================= */
.legal-page{min-height:100vh;background:transparent}
.legal-page .nav{height:82px}
.legal-page .legal-main{position:relative;padding:76px 0 110px}
.legal-page .legal-hero{max-width:820px;margin:0 auto 42px;text-align:center}
.legal-page .legal-hero .eyebrow{padding:7px 12px;border:1px solid rgba(49,186,255,.18);border-radius:999px;background:rgba(22,140,255,.07)}
.legal-page .legal-hero h1{font-family:'Space Grotesk',sans-serif;font-size:clamp(2.7rem,7vw,5.2rem);line-height:1;letter-spacing:-.055em;margin:20px 0 18px;background:linear-gradient(100deg,#f8fbff 18%,#83d9ff 62%,#638bff);-webkit-background-clip:text;color:transparent}
.legal-page .legal-hero p{max-width:680px;margin:0 auto;color:#91a6c0;font-size:1.02rem;line-height:1.75}
.legal-page .legal-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:34px;align-items:start;max-width:1050px;margin:0 auto}
.legal-page .legal-toc{position:sticky;top:108px;padding:20px;border:1px solid rgba(73,171,255,.12);border-radius:18px;background:rgba(7,21,47,.62);backdrop-filter:blur(14px)}
.legal-page .legal-toc strong{display:block;color:#dcecff;font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:12px}
.legal-page .legal-toc a{display:block;color:#8198b4;text-decoration:none;font-size:.82rem;padding:7px 0;transition:.2s}
.legal-page .legal-toc a:hover{color:#52c9ff;transform:translateX(3px)}
.legal-page .legal-content{display:grid;gap:16px}
.legal-page .legal-card{position:relative;margin:0;padding:30px 32px;border:1px solid rgba(71,171,255,.12);background:linear-gradient(145deg,rgba(10,29,59,.78),rgba(5,17,38,.88));border-radius:22px;box-shadow:0 18px 55px rgba(0,0,0,.14);overflow:hidden}
.legal-page .legal-card:before{content:"";position:absolute;left:0;top:26px;width:3px;height:38px;border-radius:0 4px 4px 0;background:linear-gradient(#25c7ff,#168cff);box-shadow:0 0 18px rgba(37,199,255,.42)}
.legal-page .legal-card h2{font-family:'Space Grotesk',sans-serif;color:#f4f9ff;font-size:1.22rem;margin:0 0 13px;letter-spacing:-.02em}
.legal-page .legal-card p{margin:0;color:#93a7bf;line-height:1.78}
.legal-page .legal-card p+p{margin-top:12px}
.legal-page .legal-card a,.legal-page .legal-inline-link{color:#51c8ff;text-decoration:none;font-weight:650}
.legal-page .legal-card a:hover,.legal-page .legal-inline-link:hover{text-decoration:underline}
.legal-page .legal-note{display:flex;align-items:flex-start;gap:12px;margin-top:20px;padding:15px 17px;border:1px solid rgba(62,194,255,.12);border-radius:14px;background:rgba(20,114,185,.07);color:#91aac4;font-size:.86rem}
.legal-page .legal-note span:first-child{color:#42c9ff;font-weight:800}
.legal-page .legal-footer-link{text-align:center;margin-top:30px;color:#8499b2;font-size:.9rem}
.legal-page .site-footer{margin-top:0}
.legal-page .site-footer .footer-main{grid-template-columns:1.5fr 1fr 1fr;padding-top:42px}
.legal-page .site-footer .footer-brand-block{max-width:430px}
@media(max-width:820px){.legal-page .legal-layout{grid-template-columns:1fr}.legal-page .legal-toc{position:static;display:flex;gap:8px;overflow:auto;padding:12px}.legal-page .legal-toc strong{display:none}.legal-page .legal-toc a{white-space:nowrap;padding:8px 11px;border:1px solid rgba(255,255,255,.07);border-radius:999px}.legal-page .site-footer .footer-main{grid-template-columns:1fr 1fr}.legal-page .site-footer .footer-brand-block{grid-column:1/-1}}
@media(max-width:560px){.legal-page .legal-main{padding:54px 0 76px}.legal-page .legal-hero{text-align:left;margin-bottom:30px}.legal-page .legal-hero h1{font-size:2.75rem}.legal-page .legal-hero p{font-size:.94rem}.legal-page .legal-card{padding:24px 22px}.legal-page .site-footer .footer-main{grid-template-columns:1fr}}


/* =========================================================
   V3.18.8 — formules lisibles : aperçu + détails dépliables
   ========================================================= */
.package-card{color:#101827}
.package-card>strong,.package-card .package-price,.package-card .package-delay{color:#101827}
.package-card .package-summary{color:#667085}
.package-features-wrap{margin-top:14px;border-top:1px solid rgba(120,135,155,.16)}
.package-features-wrap .package-features{border-top:0;margin:0;padding:15px 0 4px}
.package-features li{color:#344054}
.package-features-extra[hidden]{display:none}
.package-features-extra .package-features{padding-top:5px}
.package-features-toggle{width:100%;margin:10px 0 2px;padding:11px 10px;border:1px solid color-mix(in srgb,var(--tier-accent,#168cff) 24%,#d0d5dd);border-radius:10px;background:color-mix(in srgb,var(--tier-accent,#168cff) 5%,#fff);color:#344054;cursor:pointer;text-align:left;font:inherit;transition:border-color .2s ease,background .2s ease,transform .2s ease}
.package-features-toggle:hover{border-color:var(--tier-accent,#168cff);background:color-mix(in srgb,var(--tier-accent,#168cff) 9%,#fff);transform:translateY(-1px)}
.package-features-toggle span{display:block;color:var(--tier-accent,#168cff);font-size:.78rem;font-weight:800}
.package-features-toggle small{display:block;margin-top:2px;color:#667085;font-size:.7rem}
.package-select-hint{color:#667085}
@media(max-width:720px){.package-features-toggle{padding:12px 11px}.package-features-toggle span{font-size:.82rem}}


/* =========================================================
   V3.18.9 — grilles de formules adaptatives (1 / 2 / 3 cartes)
   ========================================================= */
.package-grid[data-count="2"]{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.package-grid[data-count="1"]{
  grid-template-columns:minmax(0,1fr);
  max-width:360px;
}
.package-grid[data-count="2"] .package-card>strong{
  font-size:1.12rem;
  line-height:1.4;
}
@media(max-width:800px){
  .package-grid[data-count="1"],
  .package-grid[data-count="2"]{
    grid-template-columns:1fr;
    max-width:none;
  }
}
