:root {
--style-white: white;
--style-black: black;
--panel-dur: .3s;
--panel-ease: ease-in-out;
}   .nav-item.menu-toggle-item {
display: none;
}
#site-header {
z-index: 10000;
font-size: clamp(0.82rem, 0.85vw, 1rem);
display: flex;
align-items: center;
justify-content: center;
background: var(--style-black);
position: fixed;
top: 0;
left: 0;
width: 100%;
overflow: hidden;
color: var(--style-white);
height: auto;
border-bottom: 1px solid rgba(255,255,255,.08);
box-shadow:
0 1px 0 rgba(34,199,242,.22),
0 10px 24px rgba(0,0,0,.22);
}
#site-header::after {
content: "";
position: absolute;
left: 50%;
bottom: -1px;
transform: translateX(-50%);
width: min(92%, 1600px);
height: 2px;
background:
linear-gradient(
90deg,
rgba(34,199,242,0),
#22C7F2 18%,
#2F6FDB 50%,
#6A2FD8 82%,
rgba(106,47,216,0)
);
box-shadow:
0 0 12px rgba(34,199,242,.35),
0 0 18px rgba(106,47,216,.22);
pointer-events: none;
}
#site-header.is-released {
position: absolute;
}
#site-header::before {
content: "";
position: absolute;
inset: 0;
background: var(--style-white);
transform: translateX(-100%);
transition: transform var(--panel-dur) var(--panel-ease);
pointer-events: none;
}
#site-header > * {
position: relative;
z-index: 2;
}
.is-menu-open #site-header::before {
transform: translateX(0);
}
.is-menu-open #site-header {
color: var(--style-black);
}
#main-nav {
display: flex;
align-items: center;
width: 100%;
max-width: 1920px;
padding: clamp(10px, 1.4svh, 18px) clamp(20px, 3vw, 48px);
}
.main-nav .nav-list {
display: flex;
align-items: center;
justify-content: space-between;
list-style: none;
margin: 0;
padding: 0;
width: 100%;
}
.nav-main-layout {
display: grid;
grid-template-columns: 1fr auto 1fr;
align-items: center;
width: 100%;
column-gap: clamp(1rem, 2vw, 2.5rem);
}
.nav-logo {
justify-self: start;
display: flex;
align-items: center;
}
.nav-links {
justify-self: center;
display: flex;
align-items: center;
gap: clamp(0.75rem, 1.6vw, 1.8rem);
white-space: nowrap;
}
.nav-contact {
justify-self: end;
display: flex;
align-items: center;
padding-left: clamp(1rem, 2vw, 2.5rem);
}
.nav-links a {
color: inherit;
text-decoration: none;
transition: color var(--panel-dur) var(--panel-ease);
position: relative;
}
.nav-links a::after {
content: "";
position: absolute;
left: 0;
bottom: -4px;
width: 100%;
height: 2px;
background: currentColor;
transform: scaleX(0);
transform-origin: left center;
transition: transform 0.35s ease;
}
.nav-links a:hover::after {
transform: scaleX(1);
}
body.home .nav-links a:nth-child(1)::after {
transform: scaleX(1);
}
body.page-template-page-mes-realisations .nav-links a:nth-child(6)::after {
transform: scaleX(1);
}
.menu-toggle {
position: relative;
display: inline-flex;
align-items: center;
gap: 14px;
padding: 7px 14px;
border: 2px solid currentColor;
border-radius: 999px;
font-weight: 700;
background: transparent;
cursor: pointer;
color: inherit;
transition: color var(--panel-dur) var(--panel-ease), border-color var(--panel-dur) var(--panel-ease);
}
.menu-toggle .burger {
position: relative;
width: 24px;
height: 16px;
display: inline-flex;
}
.menu-toggle .burger-bar {
position: absolute;
left: 0;
right: 0;
height: 2px;
background: currentColor;
transition: background-color var(--panel-dur) var(--panel-ease), transform .25s ease, opacity .25s ease;
}
.menu-toggle .burger-bar.top { top: 0; }
.menu-toggle .burger-bar.middle { top: 7px; }
.menu-toggle .burger-bar.bottom { bottom: 0; }
.is-menu-open .menu-toggle .burger-bar.top {
transform: translateY(7px) rotate(45deg);
}
.is-menu-open .menu-toggle .burger-bar.middle {
opacity: 0;
}
.is-menu-open .menu-toggle .burger-bar.bottom {
transform: translateY(-7px) rotate(-45deg);
}
.is-menu-open #site-header .menu-toggle {
color: var(--style-black);
border-color: var(--style-black);
}
.menu-panel {
position: fixed;
inset: 0;
width: 100%;
height: 100dvh;
background: var(--style-white);
color: var(--style-black);
transform: translateX(-100%);
transition: transform var(--panel-dur) var(--panel-ease);
will-change: transform;
font-size: clamp(0.9rem, 1.1vw, 1.4rem);
z-index: 1000;
overflow-y: auto;
overscroll-behavior: contain;
}
.is-menu-open .menu-panel {
transform: translateX(0);
}
.menu-panel .panel-list {
list-style: none;
margin: 0;
display: flex;
flex-direction: column;
gap: 24px;
padding: clamp(5.5rem, 12svh, 7rem) 5vw 2rem;
}
.menu-panel .panel-list li a {
text-decoration: none;
color: var(--style-black);
}
.panel-contact {
display: flex;
justify-content: flex-start;
margin-top: clamp(12px, 3vw, 28px);
}
.panel-contact .nav-contact-btn {
border-color: var(--style-black);
color: var(--style-black);
}
.panel-contact .nav-contact-btn__part {
background: var(--style-black);
}
.panel-contact .nav-contact-btn__title {
color: var(--style-black);
}
.panel-contact .nav-contact-btn:hover .nav-contact-btn__title {
color: var(--style-white);
}
.nav-contact-btn {
position: relative;
display: flex;
align-items: center;
width: clamp(165px, 12vw, 210px);
height: 40px;
border: 1px solid rgba(255,255,255,.18);
cursor: pointer;
color: var(--style-white);
overflow: hidden;
text-decoration: none;
flex-direction: row;
border-radius: 999px;
background:
linear-gradient(
180deg,
rgba(255,255,255,.07),
rgba(255,255,255,.02)
);
box-shadow:
inset 0 1px 0 rgba(255,255,255,.10),
0 0 18px rgba(34,199,242,.08);
transition:
border-color .35s ease,
box-shadow .35s ease;
}
.is-menu-open .nav-contact-btn {
border-color: var(--style-black);
color: var(--style-black);
}
.nav-contact-btn::after,
.nav-contact-btn:hover::after {
content: none;
}
.nav-contact-btn__part {
flex: 1;
height: 100%;
background: var(--style-white);
transition: transform 0.5s cubic-bezier(1, 0.49, 0.16, 0.96), background-color var(--panel-dur) var(--panel-ease);
transform-origin: center bottom;
transform: scaleY(0);
}
.is-menu-open .nav-contact-btn__part {
background: var(--style-black);
}
.nav-contact-btn:hover .nav-contact-btn__part {
transform: scaleY(1);
}
.nav-contact-btn__part:nth-child(1)  { transition-delay: 0.02s; }
.nav-contact-btn__part:nth-child(2)  { transition-delay: 0.04s; }
.nav-contact-btn__part:nth-child(3)  { transition-delay: 0.06s; }
.nav-contact-btn__part:nth-child(4)  { transition-delay: 0.08s; }
.nav-contact-btn__part:nth-child(5)  { transition-delay: 0.10s; }
.nav-contact-btn__part:nth-child(6)  { transition-delay: 0.12s; }
.nav-contact-btn__part:nth-child(7)  { transition-delay: 0.14s; }
.nav-contact-btn__part:nth-child(8)  { transition-delay: 0.16s; }
.nav-contact-btn__part:nth-child(9)  { transition-delay: 0.18s; }
.nav-contact-btn__part:nth-child(10) { transition-delay: 0.20s; }
.nav-contact-btn__title {
position: absolute;
inset: 0;
display: flex;
align-items: center;
justify-content: center;
font-size: clamp(0.72rem, 0.7vw, 0.86rem);
font-weight: 700;
letter-spacing: 2px;
text-align: center;
text-transform: uppercase;
color: var(--style-white);
transition: color var(--panel-dur) var(--panel-ease);
z-index: 2;
}
.is-menu-open .nav-contact-btn__title {
color: var(--style-black);
}
.nav-contact-btn:hover .nav-contact-btn__title {
color: var(--style-black);
transition-delay: 0.4s;
}
.nav-contact-btn:hover {
border-color: rgba(34,199,242,.38);
box-shadow:
inset 0 1px 0 rgba(255,255,255,.12),
0 0 26px rgba(34,199,242,.16);
}
.is-menu-open .nav-contact-btn:hover .nav-contact-btn__title {
color: var(--style-white);
}   #site-footer {
display: flex;
align-items: center;
justify-content: space-between;
gap: clamp(6px, 1.2vw, 28px);
background: var(--style-black);
color: var(--style-white);
}
#site-footer .footer-content,
#site-footer .footer-content p,
#site-footer .footer-content .footer-text,
#site-footer .footer-content a,
#site-footer .mention-footer a {
color: inherit;
}
#site-footer .footer-content p .footer-text {
pointer-events: none;
}
#site-footer .footer-content a,
#site-footer .mention-footer a {
text-decoration: none;
transition: all var(--panel-dur) var(--panel-ease);
position: relative;
}
#site-footer .footer-content p a::after,
#site-footer .mention-footer a::after {
content: "";
position: absolute;
left: 0;
bottom: -4px;
width: 100%;
height: 2px;
background: currentColor;
transform: scaleX(0);
transform-origin: left center;
transition: transform 0.35s ease;
}
#site-footer .footer-content p a:hover::after,
#site-footer .mention-footer a:hover::after {
transform: scaleX(1);
}
.footer-socials {
display: flex;
justify-content: center;
align-items: center;
gap: clamp(1.5rem, 2.5vw, 3.5rem);
padding-top: clamp(0.5rem, 1.5vw, 1.5rem);
padding-bottom: clamp(0.5rem, 1.5vw, 1.5rem);
}
.footer-content {
flex: 1;
text-align: center;
padding: 2svh 0 2svh 0;
font-size: clamp(0.9rem, 1.1vw, 1.4rem);
line-height: 1.35;
color: inherit;
}
.mention-footer {
display: flex;
justify-content: center;
align-items: center;
gap: clamp(0.75rem, 2vw, 2rem);
flex-wrap: wrap;
text-align: center;
}
.footer-left {
width: clamp(28px, 2.5vw, 60px);
}
.footer-socials svg {
width: clamp(14px, 1.5vw, 28px);
height: auto;
}
.footer-socials a {
text-decoration: none !important;
display: flex;
align-items: center;
justify-content: center;
}
.footer-socials a::after {
content: none !important;
}
.footer-socials a:hover {
text-decoration: none !important;
}
.footer-socials a:hover svg {
opacity: 0.7;
transform: scale(1.1);
transition: transform 0.2s ease, opacity 0.2s ease;
}   @property --halo {
syntax: "<number>";
inherits: false;
initial-value: 0.12;
}
@property --stop {
syntax: "<percentage>";
inherits: false;
initial-value: 55%;
}
.back-to-top {
display: inline-flex;
align-items: center;
justify-content: center;
width: clamp(44px, 5vw, 110px);
height: clamp(44px, 5vw, 110px);
border-radius: 999px;
background: radial-gradient(circle at center, rgba(138,109,240,var(--halo)) 0%, transparent var(--stop));
transition: --halo 0.4s ease, --stop 0.45s ease;
}
.back-to-top:hover {
--halo: 0.25;
--stop: 65%;
}
.footer-arrow { margin: 0; }
.back-to-top svg {
width: clamp(20px, 2.2vw, 52px);
height: auto;
fill: url(#pathGradient);
filter: drop-shadow(0 0 6px rgba(0,0,0,0.4));
transition: transform .3s ease, filter .3s ease;
}
.back-to-top:hover svg {
transform: translateY(-5px) scale(1.15);
filter: drop-shadow(0 0 14px #8A6DF0) brightness(1.2);
}   @media (max-width: 1024px) {
.nav-contact,
.nav-links {
display: none;
}
.nav-item.menu-toggle-item {
display: block;
}
#site-header {
z-index: 10000;
}
#main-nav {
padding: clamp(10px, 1.4svh, 16px) clamp(18px, 5vw, 32px);
}
.menu-panel .panel-list {
font-size: 1rem;
padding-top: clamp(5rem, 11svh, 6.5rem);
}
}* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
body {
background-color: var(--style-white);
font-family: 'Mori', sans-serif;
color: var(--style-black);
}
html,
body {
overscroll-behavior: auto;
overflow-y: auto;
overflow-x: clip;
}   #primary {
min-height: 100svh;
padding:
clamp(96px, 12svh, 140px)
clamp(1rem, 4vw, 2rem)
clamp(3rem, 8svh, 6rem);
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: clamp(1.5rem, 4vw, 2.5rem);
background: var(--style-white);
color: var(--style-black);
text-align: center;
}
#primary h1,
#primary .page-title {
max-width: 900px;
margin: 0;
font-size: clamp(3rem, 10vw, 8rem);
line-height: 0.95;
font-weight: 700;
letter-spacing: -0.06em;
background: linear-gradient(
90deg,
#67D2FF,
#6F8BFF,
#8B64FF
);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
}
#primary p {
max-width: 620px;
margin: 0;
font-size: clamp(1rem, 1.4vw, 1.25rem);
line-height: 1.7;
color: rgba(0, 0, 0, 0.72);
}
#primary a {
position: relative;
display: inline-flex;
align-items: center;
justify-content: center;
min-height: 48px;
padding:
0.85rem
1.3rem;
border: 2px solid var(--style-black);
border-radius: 999px;
background: var(--style-black);
color: var(--style-white);
text-decoration: none;
font-weight: 700;
letter-spacing: 0.02em;
transition:
transform 0.2s ease,
background-color 0.25s ease,
color 0.25s ease,
box-shadow 0.25s ease;
}
#primary a:hover {
transform: translateY(-2px);
background: var(--style-white);
color: var(--style-black);
box-shadow: 0 12px 30px rgba(0, 0, 0, 0.14);
}   .mention {
font-size: clamp(0.75rem, 0.9vw, 1.2rem);
}
#mentions-legales a {
color: #6F8BFF;
}   .mention {
font-size: clamp(0.75rem, 0.9vw, 1.2rem);
}
#politique-confidentialite a {
color: #6F8BFF;
}
#politique-confidentialite .text-box ul {
list-style: disc;
margin: 1rem 0 1.25rem;
padding-left: 1.5rem;
}
#politique-confidentialite .text-box li {
margin-bottom: 0.5rem;
line-height: 1.6;
}
#politique-confidentialite .text-box ul li::marker {
color: var(--style-white);
}
#politique-confidentialite .text-box p {
line-height: 1.6;
color: var(--style-white);
}   .mention {
font-size: clamp(0.75rem, 0.9vw, 1.2rem);
}
#politique-cookies a {
color: #6F8BFF;
}
#politique-cookies .text-box ul {
list-style: disc;
list-style-position: outside;
margin: 1rem 0 1.25rem;
padding-left: 1.5rem;
}
#politique-cookies .text-box li {
margin-bottom: 0.5rem;
line-height: 1.6;
}
#politique-cookies .text-box ul li::marker {
color: var(--style-white);
}
#politique-cookies .text-box p {
line-height: 1.6;
background: none;
border: none;
backdrop-filter: none;
border-radius: 0;
padding: 0;
color: var(--style-white);
}
#politique-cookies h2 {
color: var(--style-white);
margin-bottom: 0.6rem;
font-weight: 600;
}
#politique-cookies table {
width: 100%;
border-collapse: collapse;
background: rgba(255, 255, 255, 0.03);
border: 1px solid rgba(255, 255, 255, 0.05);
border-radius: 10px;
overflow: hidden;
margin-top: 1rem;
}
#politique-cookies table th,
#politique-cookies table td {
padding: .75rem 1rem;
border-bottom: 1px solid rgba(255, 255, 255, 0.05);
text-align: left;
font-size: 0.9rem;
color: var(--style-white);
}   .comp-dev,
.comp-mobile {
width: 100%;
min-height: 100svh;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
gap: clamp(1rem, 3vw, 2rem);
padding:
calc(clamp(72px, 8svh, 110px) + clamp(1rem, 3vw, 2rem))
clamp(1rem, 3vw, 2rem)
clamp(1rem, 3vw, 2rem);
}
.main-title {
font-size: clamp(1.8rem, 4vw + 0.5rem, 3.2rem);
text-align: center;
color: var(--style-black);
}
.content {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: center;
gap: clamp(1rem, 3vw, 2rem);
max-width: 1200px;
width: 100%;
}
.content .text-box {
flex: 1 1 280px;
max-width: 500px;
margin: 0 auto;
font-size: clamp(0.95rem, 0.6vw + 0.6rem, 1.15rem);
line-height: 1.6;
background: rgba(15, 15, 15, 0.96);
backdrop-filter: blur(20px);
padding: clamp(16px, 2.5vw, 40px);
border: 1px solid rgba(255, 255, 255, 0.08);
border-radius: 10px;
color: var(--style-white);
box-shadow:
0 18px 40px rgba(0, 0, 0, 0.12),
0 6px 14px rgba(0, 0, 0, 0.08);
}