/* ==========================================================================
   Welkem — inner pages (À Propos, Blog, Contact, Gammes, Produits & Services,
   Catalogues). Compositor-friendly motion: transform / opacity only.
   ========================================================================== */
:root {
    --wk-ink: #0f172a;
    --wk-muted: #64748b;
    --wk-line: #e8edf3;
    --wk-paper: #f8fafc;
    --wk-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
    --wk-ease-inout: cubic-bezier(0.65, 0, 0.35, 1);
}
.wk-mono { font-family: "Space Mono", ui-monospace, monospace; }

/* ---------- 1. Page hero ---------- */
.wk-ph {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background: #020617;
    color: #fff;
    padding: clamp(8.5rem, 13vw, 11.5rem) 0 clamp(6rem, 9vw, 8.5rem);
}
.wk-ph--marquee { padding-bottom: 0; }
.wk-ph__bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.wk-ph__grid {
    position: absolute;
    inset: 0;
    background-image: radial-gradient(rgba(148, 163, 184, 0.18) 1px, transparent 1.4px);
    background-size: 30px 30px;
    -webkit-mask-image: radial-gradient(ellipse 70% 75% at 72% 38%, #000 0%, transparent 74%);
            mask-image: radial-gradient(ellipse 70% 75% at 72% 38%, #000 0%, transparent 74%);
}
.wk-ph__glow { position: absolute; border-radius: 50%; }
.wk-ph__glow--a {
    width: 70vw; height: 70vw; max-width: 980px; max-height: 980px;
    right: -20vw; top: -34vw;
    background: radial-gradient(circle, rgba(14, 165, 233, 0.3) 0%, transparent 62%);
    background: radial-gradient(circle, color-mix(in srgb, var(--wk-primary) 34%, transparent) 0%, transparent 62%);
}
.wk-ph__glow--b {
    width: 52vw; height: 52vw; max-width: 760px; max-height: 760px;
    left: -18vw; bottom: -30vw;
    background: radial-gradient(circle, rgba(103, 232, 249, 0.14) 0%, transparent 62%);
    background: radial-gradient(circle, color-mix(in srgb, var(--wk-accent) 16%, transparent) 0%, transparent 62%);
}
.wk-ph__lines { position: absolute; left: 0; bottom: 0; width: 100%; height: 70%; fill: none; stroke: rgba(255, 255, 255, 0.055); stroke-width: 1; }
.wk-ph__inner { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2.5rem; align-items: center; }
@media (min-width: 1024px) {
    .wk-ph__inner { grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: 3rem; }
}
.wk-ph__content { position: relative; z-index: 2; max-width: 46rem; }
.wk-ph__top { display: flex; flex-wrap: wrap; align-items: center; gap: 0.8rem 1.1rem; margin-bottom: 1.8rem; }
.wk-ph__crumbs {
    display: inline-flex; align-items: center; gap: 0.6rem;
    font-family: "Space Mono", ui-monospace, monospace;
    font-size: 0.68rem; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase;
    color: #64748b;
}
.wk-ph__crumbs a { color: #94a3b8; transition: color 0.3s; }
.wk-ph__crumbs a:hover { color: #fff; }
.wk-ph__crumbs [aria-current] { color: var(--wk-accent); }
.wk-ph__badge {
    display: inline-flex; align-items: center; gap: 0.6rem;
    padding: 0.45rem 0.95rem; border-radius: 999px;
    background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.1);
    font-size: 0.7rem; font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase; color: #e2e8f0;
}
.wk-ph__title {
    margin: 0 0 1.5rem;
    font-weight: 900;
    font-size: clamp(2.6rem, 6.2vw, 5.5rem);
    line-height: 0.98;
    letter-spacing: -0.04em;
    color: #fff;
    text-wrap: balance;
}
.wk-ph__accent {
    background-image: linear-gradient(100deg, var(--wk-accent) 0%, var(--wk-primary) 40%, #a5f3fc 60%, var(--wk-accent) 100%);
    background-size: 220% 100%;
    -webkit-background-clip: text;
            background-clip: text;
    color: transparent;
    animation: wk-shine 9s linear infinite;
}
@keyframes wk-shine { to { background-position: -220% 0; } }
.wk-ph__desc { max-width: 36rem; margin: 0 0 2.4rem; font-size: clamp(1.02rem, 1.35vw, 1.22rem); line-height: 1.7; color: #94a3b8; }
.wk-ph__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.9rem; }
.wk-ph__visual { position: relative; z-index: 1; width: 100%; max-width: 560px; aspect-ratio: 1 / 1; margin-inline: auto; }
@media (max-width: 1023px) {
    .wk-ph__visual { position: absolute; top: 4.5rem; right: -30%; width: min(440px, 96vw); max-width: none; pointer-events: none; z-index: 0; }
    .wk-ph__inner { position: static; }
    .wk-pchip { display: none; }
}

/* hero search */
.wk-search { position: relative; width: 100%; max-width: 34rem; }
.wk-search__input {
    width: 100%; height: 4.1rem; padding: 0 3.6rem 0 3.5rem;
    border-radius: 1.15rem; border: 1px solid rgba(255, 255, 255, 0.12);
    background: rgba(255, 255, 255, 0.06); color: #fff; font-size: 1rem; outline: none;
    transition: background 0.4s, border-color 0.4s, box-shadow 0.5s var(--wk-ease-out);
    -webkit-appearance: none; appearance: none;
}
.wk-search__input::placeholder { color: #64748b; }
.wk-search__input::-webkit-search-cancel-button { display: none; }
.wk-search__input:focus {
    background: rgba(255, 255, 255, 0.1);
    border-color: color-mix(in srgb, var(--wk-primary) 70%, transparent);
    box-shadow: 0 0 0 6px color-mix(in srgb, var(--wk-primary) 18%, transparent), 0 24px 60px -24px color-mix(in srgb, var(--wk-primary) 70%, transparent);
}
.wk-search__icon { position: absolute; left: 1.25rem; top: 50%; width: 1.25rem; height: 1.25rem; margin-top: -0.625rem; color: #64748b; pointer-events: none; transition: color 0.3s; }
.wk-search__icon svg, .wk-search__clear svg, .wk-search__go svg { width: 100%; height: 100%; }
.wk-search:focus-within .wk-search__icon { color: var(--wk-accent); }
.wk-search__clear, .wk-search__go {
    position: absolute; right: 0.7rem; top: 50%; width: 2.6rem; height: 2.6rem; margin-top: -1.3rem;
    display: grid; place-items: center; padding: 0.7rem; border-radius: 0.85rem;
    color: #cbd5e1; background: rgba(255, 255, 255, 0.08); border: 0; cursor: pointer;
    transition: opacity 0.3s, background 0.3s, color 0.3s, transform 0.5s var(--wk-ease-out);
}
.wk-search__clear { opacity: 0; pointer-events: none; transform: scale(0.8); }
.wk-search.has-value .wk-search__clear { opacity: 1; pointer-events: auto; transform: none; }
.wk-search__clear:hover, .wk-search__go:hover { background: var(--wk-primary); color: #fff; }
.wk-search__go { background: var(--wk-primary); color: #fff; }
.wk-search__kbd {
    position: absolute; right: 1rem; top: 50%; transform: translateY(-50%);
    font: 700 0.7rem/1 "Space Mono", monospace; color: #64748b;
    border: 1px solid rgba(255, 255, 255, 0.14); border-radius: 0.4rem; padding: 0.3rem 0.45rem;
    pointer-events: none; transition: opacity 0.3s;
}
.wk-search.has-value .wk-search__kbd, .wk-search:focus-within .wk-search__kbd { opacity: 0; }
@media (hover: none) { .wk-search__kbd { display: none; } }

/* marquee */
.wk-ph__marquee {
    position: relative; z-index: 1; overflow: hidden;
    margin-top: clamp(3.5rem, 6vw, 5.5rem); padding: 0.5rem 0 clamp(4.5rem, 7vw, 6rem);
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
            mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
}
.wk-ph__track { display: flex; width: max-content; animation: wk-pmarquee 60s linear infinite; }
.wk-ph__group { display: flex; align-items: center; flex: none; }
.wk-ph__word {
    padding: 0 0.45em; white-space: nowrap;
    font-weight: 900; font-size: clamp(2.6rem, 7vw, 6.2rem); line-height: 1.05; letter-spacing: -0.035em;
    color: transparent; -webkit-text-stroke: 1px rgba(255, 255, 255, 0.2);
    transition: color 0.6s var(--wk-ease-out), -webkit-text-stroke-color 0.6s;
}
.wk-ph__word:hover { color: #fff; -webkit-text-stroke-color: transparent; }
.wk-ph__star { color: var(--wk-accent); font-size: clamp(1.1rem, 2.2vw, 1.9rem); opacity: 0.85; }
@keyframes wk-pmarquee { to { transform: translate3d(-50%, 0, 0); } }

/* ---------- 2. Scenes ---------- */
.wk-pscene { --wk-scene-alpha: 1; position: absolute; inset: 0; color: var(--wk-primary); contain: layout style; }
@media (max-width: 1023px) { .wk-pscene { --wk-scene-alpha: 0.26; } }
html:not(.wk-motion) .wk-pscene:not(.wk-pscene--orbit) { opacity: var(--wk-scene-alpha); }
.wk-motion .wk-hero .wk-pscene:not(.wk-pscene--orbit),
.wk-motion .wk-ph .wk-pchip__in { opacity: 0; }
.wk-pscene__glow {
    position: absolute; inset: 12%; border-radius: 50%;
    background: radial-gradient(circle, rgba(14, 165, 233, 0.3) 0%, transparent 68%);
    background: radial-gradient(circle, color-mix(in srgb, var(--wk-primary) 30%, transparent) 0%, transparent 68%);
}
.wk-pscene__svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.wk-ph .wk-pscene--orbit .wk-scene {
    --wk-scene-size: 100%;
    position: absolute; inset: 0; top: 0; right: 0; left: 0; width: 100%; height: 100%; margin: 0;
}
@media (max-width: 1023px) { .wk-ph .wk-pscene--orbit .wk-scene { top: 0; right: 0; } }

.wk-f-p { fill: var(--wk-primary); }
.wk-f-a { fill: var(--wk-accent); }
.wk-f-w { fill: #fff; }
.wk-f-d { fill: #0b1324; }
.wk-st-p { stroke: var(--wk-primary); }
.wk-st-a { stroke: var(--wk-accent); }
.wk-st-w { stroke: #fff; }
.wk-c-w { color: #fff; }
.wk-globe-mesh ellipse { fill: none; stroke: var(--wk-accent); stroke-opacity: 0.26; stroke-width: 1; }

/* loops */
.wk-pscene [class*="wk-l-"], .wk-art [class*="wk-l-"] { transform-box: fill-box; transform-origin: 50% 50%; }
.wk-pscene .wk-l-spin, .wk-art .wk-l-spin { transform-box: view-box; transform-origin: 280px 280px; animation: wk-pspin var(--dur, 40s) linear infinite; }
.wk-pscene .wk-l-spin--self, .wk-art .wk-l-spin--self { transform-box: fill-box; transform-origin: 50% 50%; }
.wk-l-rev { animation-direction: reverse !important; }
.wk-l-float { animation: wk-pfloat var(--dur, 7s) ease-in-out infinite; }
.wk-l-bob { animation: wk-pbob 3.2s ease-in-out infinite; }
.wk-l-shadow { animation: wk-pshadow 3.2s ease-in-out infinite; }
.wk-l-pulse { animation: wk-ppulse 2.8s ease-in-out infinite; }
.wk-l-ripple { vector-effect: non-scaling-stroke; animation: wk-pripple 2.8s cubic-bezier(0.2, 0.6, 0.3, 1) infinite; }
.wk-l-ripple--slow { animation-name: wk-pripple-big; animation-duration: 3.6s; }
.wk-l-twinkle { animation: wk-ptwinkle 3.4s ease-in-out infinite; }
.wk-l-meridian { fill: none; stroke: var(--wk-accent); stroke-opacity: 0.38; stroke-width: 1; vector-effect: non-scaling-stroke; animation: wk-pmeridian 12s ease-in-out infinite; }
.wk-l-typing { animation: wk-ptyping 1.4s ease-in-out infinite; }
.wk-pscene .wk-l-type, .wk-art .wk-l-type { transform-origin: 0 50%; animation: wk-ptype 7s var(--wk-ease-inout) infinite both; }
.wk-l-scan { animation: wk-pscan 4.6s var(--wk-ease-inout) infinite; }
.wk-l-drop { animation: wk-pdrop 1.8s var(--wk-ease-inout) infinite; }
.wk-l-wave { animation: wk-pwave 4s linear infinite; }
.wk-l-wave--b { animation-duration: 6.5s; animation-direction: reverse; }
.wk-l-bubble { animation: wk-pbubble 3.6s ease-in infinite; }
.wk-l-fall { animation: wk-pfall 3.4s cubic-bezier(0.55, 0, 1, 0.45) infinite; }
.wk-l-write { animation: wk-pwrite 2.4s ease-in-out infinite; }
.wk-l-drive { animation: wk-pdrive var(--dur, 9s) linear infinite; }
.wk-l-wheel { animation: wk-pspin 0.9s linear infinite; }

@keyframes wk-pspin { to { transform: rotate(360deg); } }
@keyframes wk-pfloat { 0%, 100% { transform: translate3d(0, 0, 0); } 50% { transform: translate3d(0, -12px, 0); } }
@keyframes wk-pbob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
@keyframes wk-pshadow { 0%, 100% { transform: scale(1); opacity: 0.35; } 50% { transform: scale(0.7); opacity: 0.16; } }
@keyframes wk-ppulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.18); } }
@keyframes wk-pripple { 0% { transform: scale(0.4); opacity: 0.85; } 100% { transform: scale(3.4); opacity: 0; } }
@keyframes wk-pripple-big { 0% { transform: scale(0.6); opacity: 0.7; } 100% { transform: scale(6.2); opacity: 0; } }
@keyframes wk-ptwinkle { 0%, 100% { transform: scale(0.5) rotate(0deg); opacity: 0.3; } 50% { transform: scale(1) rotate(45deg); opacity: 1; } }
@keyframes wk-pmeridian { 0% { transform: scaleX(1); } 50% { transform: scaleX(-1); } 100% { transform: scaleX(1); } }
@keyframes wk-ptyping { 0%, 60%, 100% { transform: translateY(0); opacity: 0.35; } 30% { transform: translateY(-6px); opacity: 1; } }
@keyframes wk-ptype { 0% { transform: scaleX(0); } 14%, 86% { transform: scaleX(1); } 100% { transform: scaleX(0); } }
@keyframes wk-pscan { 0% { transform: translateY(0); opacity: 0; } 12%, 88% { opacity: 1; } 100% { transform: translateY(370px); opacity: 0; } }
@keyframes wk-pdrop { 0%, 100% { transform: translateY(-4px); } 50% { transform: translateY(5px); } }
@keyframes wk-pwave { to { transform: translateX(-80px); } }
@keyframes wk-pbubble { 0% { transform: translateY(0) scale(0.6); opacity: 0; } 15% { opacity: 0.9; } 100% { transform: translateY(-120px) scale(1); opacity: 0; } }
@keyframes wk-pfall { 0% { transform: translateY(-20px) scale(0.6); opacity: 0; } 20% { transform: translateY(0) scale(1); opacity: 1; } 75% { opacity: 1; } 100% { transform: translateY(250px) scale(0.85); opacity: 0; } }
@keyframes wk-pwrite { 0%, 100% { transform: translate(0, 0) rotate(0deg); } 25% { transform: translate(3px, -2px) rotate(2deg); } 50% { transform: translate(6px, 1px) rotate(-1deg); } 75% { transform: translate(2px, 2px) rotate(1deg); } }
@keyframes wk-pdrive { 0% { transform: translateX(-220px); } 100% { transform: translateX(820px); } }

/* floating chips */
.wk-pchip { position: absolute; z-index: 3; }
.wk-pchip--1 { left: -3%; bottom: 11%; }
.wk-pchip--2 { right: -3%; top: 11%; }
.wk-pchip__card {
    display: flex; align-items: center; gap: 0.8rem;
    padding: 0.85rem 1.15rem 0.85rem 0.95rem; border-radius: 1.1rem;
    background: rgba(15, 23, 42, 0.92); border: 1px solid rgba(255, 255, 255, 0.12);
    box-shadow: 0 24px 50px -24px rgba(0, 0, 0, 0.7);
    animation: wk-pfloat 7s ease-in-out infinite;
}
.wk-pchip--2 .wk-pchip__card { animation-duration: 8.5s; animation-delay: -3s; }
.wk-pchip__dot { position: relative; width: 0.6rem; height: 0.6rem; border-radius: 50%; background: var(--wk-accent); flex: none; }
.wk-pchip__dot::after { content: ""; position: absolute; inset: 0; border-radius: inherit; background: inherit; animation: wk-ping 2.2s cubic-bezier(0, 0, 0.2, 1) infinite; }
.wk-pchip__text strong { display: block; font-size: 1.3rem; font-weight: 900; line-height: 1.05; color: #fff; letter-spacing: -0.02em; }
.wk-pchip__text em { display: block; font-style: normal; font-size: 0.72rem; font-weight: 600; color: #94a3b8; letter-spacing: 0.03em; }
@keyframes wk-ping { 75%, 100% { transform: scale(2.8); opacity: 0; } }

/* ---------- 3. Sheet & section heads ---------- */
.wk-sheet { position: relative; z-index: 2; margin-top: -2.75rem; border-radius: 2.75rem 2.75rem 0 0; background: var(--wk-paper); }
.wk-sheet--white { background: #fff; }
.wk-sec { padding: clamp(4.5rem, 8vw, 7.5rem) 0; }
.wk-eyebrow {
    display: inline-flex; align-items: center; gap: 0.7rem;
    font-size: 0.72rem; font-weight: 800; letter-spacing: 0.2em; text-transform: uppercase; color: var(--wk-primary);
}
.wk-eyebrow::before { content: ""; width: 1.75rem; height: 2px; border-radius: 2px; background: currentColor; }
.wk-h2 { margin: 0.9rem 0 0; font-weight: 900; font-size: clamp(2rem, 4vw, 3.3rem); line-height: 1.04; letter-spacing: -0.035em; color: var(--wk-ink); text-wrap: balance; }
.wk-lead { margin: 1rem 0 0; color: var(--wk-muted); font-size: 1.05rem; line-height: 1.7; max-width: 38rem; }
.wk-head-row { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1.5rem 3rem; margin-bottom: clamp(2.5rem, 4vw, 3.5rem); }
.wk-more { display: inline-flex; align-items: center; gap: 0.55rem; font-weight: 800; font-size: 0.92rem; color: var(--wk-ink); }
.wk-more svg { width: 1.1rem; height: 1.1rem; transition: transform 0.5s var(--wk-ease-out); }
.wk-more:hover { color: var(--wk-primary); }
.wk-more:hover svg { transform: translateX(4px); }

/* ---------- 4. Spotlight, icon redraw ---------- */
.wk-spot { position: relative; }
.wk-spot::after {
    content: ""; position: absolute; inset: 0; z-index: 4; border-radius: inherit; pointer-events: none;
    opacity: 0; transition: opacity 0.5s;
    background: radial-gradient(380px circle at var(--mx, 50%) var(--my, 50%), rgba(255, 255, 255, 0.16), transparent 45%);
}
.wk-spot--tint::after { background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 50%), color-mix(in srgb, var(--c, var(--wk-primary)) 12%, transparent), transparent 46%); }
@media (hover: hover) { .wk-spot:hover::after { opacity: 1; } }
.wk-icon-draw:hover svg :is(path, line, polyline, polygon, circle, rect, ellipse) { animation: wk-redraw 1s var(--wk-ease-out) both; }
@keyframes wk-redraw { 0% { stroke-dasharray: 1 1; stroke-dashoffset: 1; } 100% { stroke-dasharray: 1 1; stroke-dashoffset: 0; } }

/* ---------- 5. Filter chips & toolbar ---------- */
.wk-toolbar { position: sticky; top: 6rem; z-index: 30; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 2.5rem; pointer-events: none; }
.wk-toolbar > * { pointer-events: auto; }
.wk-chips {
    position: relative; display: flex; gap: 0.3rem; max-width: 100%; padding: 0.35rem;
    border-radius: 999px; background: rgba(255, 255, 255, 0.94); border: 1px solid var(--wk-line);
    box-shadow: 0 18px 40px -26px rgba(15, 23, 42, 0.35);
    overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch;
}
.wk-chips::-webkit-scrollbar { display: none; }
.wk-chip-btn {
    position: relative; z-index: 1; flex: none; display: inline-flex; align-items: center; gap: 0.5rem;
    padding: 0.7rem 1.15rem; border: 0; border-radius: 999px; background: transparent; cursor: pointer;
    font-size: 0.86rem; font-weight: 700; color: #475569; white-space: nowrap; transition: color 0.35s, background 0.35s;
}
.wk-chip-btn:hover { color: var(--wk-ink); }
.wk-chip-btn.is-active { color: #fff; background: var(--wk-ink); }
.wk-chips.is-ready .wk-chip-btn.is-active { background: transparent; }
.wk-chip-btn__n { min-width: 1.45rem; padding: 0.12rem 0.42rem; border-radius: 999px; background: #f1f5f9; color: #64748b; font-size: 0.66rem; font-weight: 800; text-align: center; transition: background 0.35s, color 0.35s; }
.wk-chip-btn.is-active .wk-chip-btn__n { background: rgba(255, 255, 255, 0.18); color: #fff; }
.wk-chips__ind {
    position: absolute; z-index: 0; top: 0.35rem; left: 0; height: calc(100% - 0.7rem); width: 0;
    border-radius: 999px; background: var(--wk-ink); box-shadow: 0 10px 24px -10px rgba(15, 23, 42, 0.6);
    opacity: 0; pointer-events: none;
    transition: transform 0.6s var(--wk-ease-out), width 0.6s var(--wk-ease-out), opacity 0.3s;
}
.wk-chips.is-ready .wk-chips__ind { opacity: 1; }
.wk-results { font-size: 0.8rem; font-weight: 700; color: var(--wk-muted); padding: 0.55rem 1rem; border-radius: 999px; background: rgba(255, 255, 255, 0.94); border: 1px solid var(--wk-line); }
.wk-results b { color: var(--wk-ink); }
.wk-empty { text-align: center; padding: 4rem 1rem 2rem; }
.wk-empty[hidden] { display: none !important; }
.wk-empty__art { width: 9rem; height: 9rem; margin: 0 auto 1.5rem; color: var(--wk-primary); }
.wk-empty h3 { font-size: 1.5rem; font-weight: 900; color: var(--wk-ink); margin: 0 0 0.5rem; }
.wk-empty p { color: var(--wk-muted); margin: 0 auto; max-width: 28rem; }
[data-wk-item][hidden] { display: none !important; }

/* ---------- 6. Buttons (light context) ---------- */
.wk-btn--dark { background: var(--wk-ink); color: #fff; }
.wk-btn--dark::before { background: var(--wk-primary); }
.wk-btn--light { background: #fff; color: var(--wk-ink); }
.wk-btn--light::before { background: var(--wk-accent); }
.wk-btn--outline { border: 1px solid rgba(255, 255, 255, 0.25); color: #fff; }
.wk-btn--outline::before { background: #fff; }
.wk-btn--outline:hover { color: var(--wk-ink); border-color: #fff; }
.wk-btn svg { width: 1.15rem; height: 1.15rem; }

/* ---------- 7. Stats strip ---------- */
.wk-stats {
    position: relative; z-index: 3; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
    max-width: 62rem; margin: -4.25rem auto 0; background: #fff; border: 1px solid var(--wk-line);
    border-radius: 1.75rem; box-shadow: 0 40px 80px -40px rgba(15, 23, 42, 0.3); overflow: hidden;
}
.wk-stat { display: flex; align-items: center; gap: 1rem; padding: 1.6rem 1.8rem; }
.wk-stat + .wk-stat { border-left: 1px solid var(--wk-line); }
.wk-stat__icon { display: grid; place-items: center; width: 3.1rem; height: 3.1rem; flex: none; border-radius: 1rem; color: var(--wk-primary); background: color-mix(in srgb, var(--wk-primary) 10%, transparent); }
.wk-stat__icon svg { width: 1.45rem; height: 1.45rem; }
.wk-stat strong { display: block; font-size: 1.9rem; line-height: 1; font-weight: 900; letter-spacing: -0.03em; color: var(--wk-ink); font-variant-numeric: tabular-nums; }
.wk-stat span { display: block; margin-top: 0.3rem; font-size: 0.7rem; font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase; color: #94a3b8; }
@media (max-width: 640px) {
    .wk-stats { grid-template-columns: 1fr; }
    .wk-stat + .wk-stat { border-left: 0; border-top: 1px solid var(--wk-line); }
    .wk-stat { padding: 1.1rem 1.4rem; }
}

/* ---------- 8. Gamme cards ---------- */
.wk-grid { display: grid; gap: 1.75rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 19.5rem), 1fr)); }
.wk-gcard {
    --c: var(--wk-primary);
    position: relative; display: flex; flex-direction: column; height: 100%;
    border-radius: 1.75rem; background: #fff; border: 1px solid var(--wk-line); overflow: hidden;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
    transition: transform 0.8s var(--wk-ease-out), box-shadow 0.8s var(--wk-ease-out), border-color 0.5s;
}
.wk-gcard:hover {
    transform: translateY(-8px);
    border-color: color-mix(in srgb, var(--c) 30%, var(--wk-line));
    box-shadow: 0 50px 80px -46px color-mix(in srgb, var(--c) 70%, transparent), 0 18px 36px -26px rgba(15, 23, 42, 0.3);
}
.wk-gcard__media { position: relative; display: block; height: 15.5rem; overflow: hidden; background: #0f172a; }
.wk-gcard__media img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.02); transition: transform 1.4s var(--wk-ease-out); }
.wk-gcard:hover .wk-gcard__media img { transform: scale(1.1); }
.wk-gcard__ph { position: absolute; inset: 0; background: radial-gradient(circle at 30% 30%, color-mix(in srgb, var(--c) 60%, #0f172a), #0f172a 70%); }
.wk-gcard__tint {
    position: absolute; inset: 0;
    background: linear-gradient(to top, rgba(2, 6, 23, 0.94) 0%, rgba(2, 6, 23, 0.4) 46%, rgba(2, 6, 23, 0) 78%),
                linear-gradient(to top right, color-mix(in srgb, var(--c) 50%, transparent), transparent 60%);
    transition: opacity 0.6s;
}
.wk-gcard__icon {
    position: absolute; top: 1rem; left: 1rem; z-index: 2; width: 3.1rem; height: 3.1rem; display: grid; place-items: center;
    border-radius: 1rem; color: #fff; background: var(--c); box-shadow: 0 12px 26px -10px var(--c);
    transition: transform 0.8s var(--wk-ease-out);
}
.wk-gcard__icon svg, .wk-gcard__icon i { width: 1.45rem; height: 1.45rem; }
.wk-gcard:hover .wk-gcard__icon { transform: rotate(-10deg) scale(1.08); }
.wk-gcard__count { position: absolute; top: 1.15rem; right: 1rem; z-index: 2; padding: 0.4rem 0.8rem; border-radius: 999px; background: rgba(2, 6, 23, 0.6); border: 1px solid rgba(255, 255, 255, 0.14); color: #fff; font-size: 0.7rem; font-weight: 800; letter-spacing: 0.05em; }
.wk-gcard__title { position: absolute; left: 1.5rem; right: 1.5rem; bottom: 1.3rem; z-index: 2; margin: 0; color: #fff; font-size: 1.6rem; font-weight: 900; letter-spacing: -0.025em; line-height: 1.1; }
.wk-gcard__title::after { content: ""; display: block; width: 2.4rem; height: 3px; margin-top: 0.75rem; border-radius: 3px; background: var(--c); transition: width 0.8s var(--wk-ease-out); }
.wk-gcard:hover .wk-gcard__title::after { width: 5.5rem; }
.wk-gcard__body { position: relative; z-index: 1; display: flex; flex-direction: column; flex: 1; padding: 1.5rem; }
.wk-gcard__desc { flex: 1; margin: 0 0 1.25rem; color: var(--wk-muted); font-size: 0.93rem; line-height: 1.65; }
.wk-gcard__subs { display: flex; flex-wrap: wrap; gap: 0.4rem; padding-top: 1.1rem; margin-bottom: 1.25rem; border-top: 1px solid #f1f5f9; }
.wk-gcard__subs-label { width: 100%; margin-bottom: 0.2rem; font-size: 0.64rem; font-weight: 800; letter-spacing: 0.18em; text-transform: uppercase; color: #94a3b8; }
.wk-gcard__sub { padding: 0.36rem 0.72rem; border-radius: 0.6rem; background: var(--wk-paper); border: 1px solid var(--wk-line); color: #475569; font-size: 0.75rem; font-weight: 600; transition: background 0.3s, color 0.3s, border-color 0.3s; }
.wk-gcard__sub:hover { background: var(--c); border-color: var(--c); color: #fff; }
.wk-gcard__cta {
    display: flex; align-items: center; justify-content: space-between; padding: 0.95rem 1.15rem; border-radius: 1rem;
    background: var(--wk-paper); color: var(--wk-ink); font-size: 0.9rem; font-weight: 800;
    transition: background 0.5s, color 0.5s, box-shadow 0.5s;
}
.wk-gcard__cta svg { width: 1.1rem; height: 1.1rem; transition: transform 0.6s var(--wk-ease-out); }
.wk-gcard:hover .wk-gcard__cta { background: var(--c); color: #fff; box-shadow: 0 16px 30px -16px var(--c); }
.wk-gcard:hover .wk-gcard__cta svg { transform: translateX(4px) rotate(-45deg); }

/* bento (Produits & Services) */
.wk-bento { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr)); grid-auto-rows: 16rem; }
@media (min-width: 1024px) {
    .wk-bento { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 15rem; }
    .wk-bento > :first-child { grid-column: span 2; grid-row: span 2; }
    .wk-bento > :nth-child(4) { grid-column: span 2; }
}
.wk-uni { --c: var(--wk-primary); position: relative; display: block; overflow: hidden; border-radius: 1.75rem; background: #0f172a; color: #fff; isolation: isolate; }
.wk-uni img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: scale(1.03); transition: transform 1.4s var(--wk-ease-out); }
.wk-uni:hover img { transform: scale(1.12); }
.wk-uni__tint { position: absolute; inset: 0; background: linear-gradient(to top, rgba(2, 6, 23, 0.92), rgba(2, 6, 23, 0.15) 60%, rgba(2, 6, 23, 0.05)), linear-gradient(to top right, color-mix(in srgb, var(--c) 45%, transparent), transparent 55%); }
.wk-uni__icon { position: absolute; top: 1.1rem; left: 1.1rem; width: 2.9rem; height: 2.9rem; display: grid; place-items: center; border-radius: 0.95rem; background: var(--c); box-shadow: 0 10px 24px -10px var(--c); transition: transform 0.8s var(--wk-ease-out); }
.wk-uni__icon svg, .wk-uni__icon i { width: 1.35rem; height: 1.35rem; }
.wk-uni__arrow { position: absolute; top: 1.1rem; right: 1.1rem; width: 2.9rem; height: 2.9rem; display: grid; place-items: center; border-radius: 50%; background: rgba(255, 255, 255, 0.12); border: 1px solid rgba(255, 255, 255, 0.2); transition: transform 0.8s var(--wk-ease-out), background 0.4s, color 0.4s; }
.wk-uni__arrow svg { width: 1.15rem; height: 1.15rem; }
.wk-uni:hover .wk-uni__arrow { background: #fff; color: var(--wk-ink); transform: rotate(-45deg); }
.wk-uni:hover .wk-uni__icon { transform: rotate(-10deg) scale(1.08); }
.wk-uni__body { position: absolute; left: 1.4rem; right: 1.4rem; bottom: 1.3rem; }
.wk-uni__body h3 { margin: 0; font-size: 1.35rem; font-weight: 900; letter-spacing: -0.02em; line-height: 1.1; }
.wk-bento > :first-child .wk-uni__body h3 { font-size: clamp(1.6rem, 2.6vw, 2.3rem); }
.wk-uni__body p { margin: 0.5rem 0 0; color: rgba(226, 232, 240, 0.8); font-size: 0.88rem; line-height: 1.55; max-width: 26rem; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.wk-uni__count { display: inline-block; margin-top: 0.75rem; font-size: 0.68rem; font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase; color: var(--wk-accent); }

/* services */
.wk-svcs { position: relative; display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); }
.wk-svc {
    position: relative; display: flex; flex-direction: column; height: 100%; padding: 2.2rem 2rem 2rem; overflow: hidden;
    border-radius: 1.75rem; background: #fff; border: 1px solid var(--wk-line);
    transition: transform 0.8s var(--wk-ease-out), box-shadow 0.8s var(--wk-ease-out), border-color 0.5s;
}
.wk-svc:hover { transform: translateY(-6px); border-color: color-mix(in srgb, var(--wk-primary) 28%, var(--wk-line)); box-shadow: 0 46px 80px -46px color-mix(in srgb, var(--wk-primary) 60%, transparent); }
.wk-svc__n { position: absolute; right: 1.4rem; top: 0.6rem; font-weight: 900; font-size: 4.8rem; line-height: 1; letter-spacing: -0.05em; color: transparent; -webkit-text-stroke: 1.5px #e2e8f0; transition: -webkit-text-stroke-color 0.6s, transform 0.8s var(--wk-ease-out); }
.wk-svc:hover .wk-svc__n { -webkit-text-stroke-color: color-mix(in srgb, var(--wk-primary) 55%, transparent); transform: translateY(-4px); }
.wk-svc__icon { display: grid; place-items: center; width: 3.6rem; height: 3.6rem; margin-bottom: 1.6rem; border-radius: 1.15rem; color: var(--wk-primary); background: color-mix(in srgb, var(--wk-primary) 10%, transparent); transition: background 0.5s, color 0.5s, transform 0.8s var(--wk-ease-out); }
.wk-svc__icon svg, .wk-svc__icon i { width: 1.65rem; height: 1.65rem; }
.wk-svc:hover .wk-svc__icon { background: var(--wk-primary); color: #fff; transform: rotate(-8deg) scale(1.06); }
.wk-svc h3 { margin: 0 0 0.65rem; font-size: 1.35rem; font-weight: 900; letter-spacing: -0.02em; color: var(--wk-ink); }
.wk-svc p { flex: 1; margin: 0 0 1.5rem; color: var(--wk-muted); line-height: 1.7; }
.wk-svc__bar { position: absolute; left: 2rem; right: 2rem; bottom: 0; height: 3px; border-radius: 3px 3px 0 0; background: linear-gradient(90deg, var(--wk-accent), var(--wk-primary)); transform: scaleX(0); transform-origin: left; transition: transform 0.9s var(--wk-ease-out); }
.wk-svc:hover .wk-svc__bar { transform: scaleX(1); }

/* products row */
.wk-products ul.products { display: grid !important; gap: 1.5rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 15.5rem), 1fr)); margin: 0; padding: 0; list-style: none; }
.wk-products ul.products::before, .wk-products ul.products::after { display: none !important; }
.wk-products ul.products > li { width: auto !important; margin: 0 !important; float: none !important; }

/* ---------- 9. CTA band ---------- */
.wk-band {
    position: relative; isolation: isolate; overflow: hidden; border-radius: 2.25rem;
    padding: clamp(3rem, 7vw, 5.5rem) clamp(1.5rem, 6vw, 5rem); background: #020617; color: #fff;
}
.wk-band__glow { position: absolute; z-index: -1; width: 46rem; height: 46rem; right: -14rem; top: 50%; margin-top: -23rem; border-radius: 50%; background: radial-gradient(circle, color-mix(in srgb, var(--wk-primary) 38%, transparent), transparent 62%); pointer-events: none; }
.wk-band__orbits { position: absolute; z-index: -1; right: -8%; top: 50%; width: min(620px, 80vw); aspect-ratio: 1; transform: translateY(-50%); color: var(--wk-primary); opacity: 0.6; pointer-events: none; }
.wk-band__orbits svg { width: 100%; height: 100%; overflow: visible; }
.wk-band__orbits .wk-l-spin { transform-box: view-box; transform-origin: 300px 300px; animation: wk-pspin var(--dur, 80s) linear infinite; }
.wk-band__content { position: relative; max-width: 40rem; }
.wk-band h2 { margin: 0.9rem 0 1rem; font-weight: 900; font-size: clamp(2rem, 4.2vw, 3.4rem); line-height: 1.04; letter-spacing: -0.035em; text-wrap: balance; }
.wk-band p { margin: 0 0 2.2rem; color: #94a3b8; font-size: 1.08rem; line-height: 1.7; }
.wk-band__actions { display: flex; flex-wrap: wrap; gap: 0.9rem; }

/* ---------- 10. Catalogue (document) cards ---------- */
.wk-docs { display: grid; gap: 1.75rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 16.5rem), 1fr)); }
.wk-doc { position: relative; display: flex; flex-direction: column; height: 100%; border-radius: 1.75rem; background: #fff; border: 1px solid var(--wk-line); transition: box-shadow 0.8s var(--wk-ease-out), border-color 0.5s, transform 0.8s var(--wk-ease-out); }
.wk-doc:hover { transform: translateY(-6px); border-color: color-mix(in srgb, var(--wk-primary) 26%, var(--wk-line)); box-shadow: 0 46px 80px -48px color-mix(in srgb, var(--wk-primary) 65%, transparent); }
.wk-doc__cover { position: relative; height: 17rem; padding: 1.75rem 2.6rem 0; border-radius: 1.75rem 1.75rem 0 0; overflow: hidden; perspective: 1100px; background: radial-gradient(circle at 50% 120%, color-mix(in srgb, var(--wk-primary) 22%, #eef2f7), #eef2f7 70%); }
.wk-doc__stack, .wk-doc__sheet { position: absolute; left: 2.6rem; right: 2.6rem; top: 1.9rem; bottom: -1.5rem; border-radius: 0.9rem; }
.wk-doc__stack { background: #fff; box-shadow: 0 10px 30px -18px rgba(15, 23, 42, 0.5); transform: rotate(4deg) translate3d(10px, 6px, 0); transition: transform 0.9s var(--wk-ease-out); }
.wk-doc__stack::before { content: ""; position: absolute; inset: 0; border-radius: inherit; background: #fff; box-shadow: 0 10px 30px -20px rgba(15, 23, 42, 0.5); transform: rotate(-7deg) translate3d(-14px, 2px, 0); }
.wk-doc__sheet {
    display: block; overflow: hidden; background: #fff; box-shadow: 0 30px 50px -24px rgba(15, 23, 42, 0.55);
    transform-origin: 0% 50%; transition: transform 0.9s var(--wk-ease-out), box-shadow 0.9s var(--wk-ease-out);
}
.wk-doc__sheet img { width: 100%; height: 100%; object-fit: cover; object-position: top center; }
.wk-doc:hover .wk-doc__sheet { transform: rotateY(-16deg) translate3d(-4px, -6px, 0); box-shadow: 24px 36px 60px -26px rgba(15, 23, 42, 0.6); }
.wk-doc:hover .wk-doc__stack { transform: rotate(7deg) translate3d(18px, 2px, 0); }
.wk-doc__shine { position: absolute; inset: 0; background: linear-gradient(115deg, transparent 30%, rgba(255, 255, 255, 0.55) 46%, transparent 60%); transform: translate3d(-120%, 0, 0); transition: transform 1.1s var(--wk-ease-out); pointer-events: none; }
.wk-doc:hover .wk-doc__shine { transform: translate3d(120%, 0, 0); }
.wk-doc__fallback { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: space-between; padding: 1.25rem; color: #fff; }
.wk-doc__fallback::before { content: ""; position: absolute; inset: 0; background-image: radial-gradient(rgba(255, 255, 255, 0.18) 1px, transparent 1.3px); background-size: 14px 14px; opacity: 0.5; }
.wk-doc__fallback svg { position: relative; width: 2.4rem; height: 2.4rem; opacity: 0.85; }
.wk-doc__fallback strong { position: relative; font-size: 1.05rem; font-weight: 900; line-height: 1.15; letter-spacing: -0.01em; }
.wk-doc__badges { position: absolute; z-index: 3; top: 1rem; left: 1rem; display: flex; gap: 0.4rem; }
.wk-doc__badge { padding: 0.32rem 0.65rem; border-radius: 0.55rem; background: rgba(255, 255, 255, 0.95); color: var(--wk-ink); font-size: 0.62rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; box-shadow: 0 6px 16px -10px rgba(15, 23, 42, 0.6); }
.wk-doc__badge--new { background: var(--wk-primary); color: #fff; }
.wk-doc__dl {
    position: absolute; z-index: 3; right: 1rem; bottom: 1rem; width: 3.1rem; height: 3.1rem; display: grid; place-items: center;
    border-radius: 50%; color: #fff; background: var(--wk-ink); box-shadow: 0 14px 30px -12px rgba(15, 23, 42, 0.7);
    transition: transform 0.7s var(--wk-ease-out), background 0.4s;
}
.wk-doc__dl svg { width: 1.2rem; height: 1.2rem; }
.wk-doc__dl:hover { background: var(--wk-primary); transform: scale(1.08); }
.wk-doc__dl:hover svg { animation: wk-pdrop 1.2s var(--wk-ease-inout) infinite; }
.wk-doc__body { display: flex; flex-direction: column; flex: 1; padding: 1.5rem 1.5rem 1.35rem; }
.wk-doc__meta { display: flex; align-items: center; gap: 0.6rem; margin-bottom: 0.6rem; font-size: 0.72rem; font-weight: 700; color: #94a3b8; letter-spacing: 0.04em; }
.wk-doc__meta i { width: 3px; height: 3px; border-radius: 50%; background: #cbd5e1; }
.wk-doc__title { margin: 0 0 0.6rem; font-size: 1.15rem; font-weight: 900; line-height: 1.25; letter-spacing: -0.015em; color: var(--wk-ink); }
.wk-doc__title a { transition: color 0.3s; }
.wk-doc:hover .wk-doc__title a { color: var(--wk-primary); }
.wk-doc__excerpt { flex: 1; margin: 0 0 1.1rem; font-size: 0.86rem; line-height: 1.6; color: var(--wk-muted); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.wk-doc__foot { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; padding-top: 1rem; border-top: 1px solid #f1f5f9; }
.wk-doc__link { display: inline-flex; align-items: center; gap: 0.4rem; font-size: 0.82rem; font-weight: 800; color: var(--wk-ink); transition: color 0.3s; }
.wk-doc__link svg { width: 1rem; height: 1rem; transition: transform 0.5s var(--wk-ease-out); }
.wk-doc__link:hover { color: var(--wk-primary); }
.wk-doc__link:hover svg { transform: translateX(3px); }
.wk-doc__link--dl { color: var(--wk-primary); }

/* ---------- 11. Blog ---------- */
.wk-feat { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); overflow: hidden; border-radius: 2.25rem; background: #020617; color: #fff; isolation: isolate; }
@media (min-width: 1024px) { .wk-feat { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); min-height: 30rem; } }
.wk-feat__media { position: relative; display: block; min-height: 18rem; overflow: hidden; }
.wk-feat__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: scale(1.04); transition: transform 1.6s var(--wk-ease-out); }
.wk-feat:hover .wk-feat__media img { transform: scale(1.1); }
.wk-feat__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent 55%, #020617), linear-gradient(to top, rgba(2, 6, 23, 0.6), transparent 50%); }
@media (max-width: 1023px) { .wk-feat__media::after { background: linear-gradient(to top, #020617, transparent 55%); } }
.wk-feat__body { position: relative; display: flex; flex-direction: column; justify-content: center; padding: clamp(2rem, 4.5vw, 3.75rem); }
.wk-feat__body::before { content: ""; position: absolute; z-index: -1; width: 30rem; height: 30rem; right: -12rem; bottom: -14rem; border-radius: 50%; background: radial-gradient(circle, color-mix(in srgb, var(--wk-primary) 32%, transparent), transparent 62%); }
.wk-feat__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; margin-bottom: 1.4rem; font-size: 0.78rem; font-weight: 700; color: #94a3b8; }
.wk-feat__tag { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.4rem 0.85rem; border-radius: 999px; background: var(--wk-primary); color: #fff; font-size: 0.66rem; font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase; }
.wk-feat h2 { margin: 0 0 1.1rem; font-weight: 900; font-size: clamp(1.7rem, 3.2vw, 2.7rem); line-height: 1.08; letter-spacing: -0.03em; text-wrap: balance; }
.wk-feat h2 a { background-image: linear-gradient(currentColor, currentColor); background-size: 0% 2px; background-repeat: no-repeat; background-position: 0 100%; transition: background-size 0.7s var(--wk-ease-out); }
.wk-feat h2 a:hover { background-size: 100% 2px; }
.wk-feat p { margin: 0 0 2rem; color: #94a3b8; line-height: 1.75; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.wk-feat__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 1.25rem; }
.wk-feat__author { display: flex; align-items: center; gap: 0.7rem; font-size: 0.85rem; font-weight: 700; }
.wk-feat__author img { width: 2.5rem; height: 2.5rem; border-radius: 50%; border: 2px solid rgba(255, 255, 255, 0.2); }

.wk-post { transition: transform 0.8s var(--wk-ease-out), box-shadow 0.8s var(--wk-ease-out), border-color 0.5s !important; }
.wk-post:hover { transform: translateY(-8px) !important; border-color: color-mix(in srgb, var(--wk-primary) 25%, #f1f5f9) !important; box-shadow: 0 46px 80px -48px color-mix(in srgb, var(--wk-primary) 60%, transparent) !important; }
.wk-post img { transition: transform 1.4s var(--wk-ease-out) !important; }
.wk-post:hover img { transform: scale(1.08) !important; }
.wk-loadmore[hidden] { display: none !important; }
.wk-loadmore.is-loading .wk-btn__icon { animation: wk-pspin 0.9s linear infinite; }
.wk-blog-grid.is-busy { opacity: 0.45; pointer-events: none; transition: opacity 0.3s; }
.wk-blog-grid { transition: opacity 0.4s; }

/* ---------- 12. Contact ---------- */
.wk-ci {
    --c: var(--wk-primary);
    position: relative; display: flex; align-items: flex-start; gap: 1.1rem; padding: 1.5rem; overflow: hidden;
    border-radius: 1.5rem; background: #fff; border: 1px solid var(--wk-line);
    transition: border-color 0.5s, box-shadow 0.8s var(--wk-ease-out), transform 0.8s var(--wk-ease-out);
}
.wk-ci:hover { transform: translateY(-3px); border-color: color-mix(in srgb, var(--c) 30%, var(--wk-line)); box-shadow: 0 30px 60px -40px color-mix(in srgb, var(--c) 70%, transparent); }
.wk-ci__icon { display: grid; place-items: center; width: 3.1rem; height: 3.1rem; flex: none; border-radius: 1rem; color: var(--c); background: color-mix(in srgb, var(--c) 11%, transparent); transition: background 0.5s, color 0.5s; }
.wk-ci__icon svg { width: 1.4rem; height: 1.4rem; }
.wk-ci:hover .wk-ci__icon { background: var(--c); color: #fff; }
.wk-ci__body { flex: 1; min-width: 0; }
.wk-ci__label { display: block; margin-bottom: 0.3rem; font-size: 0.68rem; font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase; color: #94a3b8; }
.wk-ci__value { display: block; font-size: 1.05rem; font-weight: 800; color: var(--wk-ink); line-height: 1.45; word-break: break-word; transition: color 0.3s; }
a.wk-ci__value:hover { color: var(--c); }
.wk-ci__meta { display: block; margin-top: 0.25rem; font-size: 0.85rem; color: var(--wk-muted); }
.wk-copy { position: relative; z-index: 5; display: inline-flex; align-items: center; gap: 0.35rem; flex: none; padding: 0.45rem 0.7rem; border-radius: 0.7rem; border: 1px solid var(--wk-line); background: var(--wk-paper); color: #475569; font-size: 0.72rem; font-weight: 800; cursor: pointer; transition: background 0.3s, color 0.3s, border-color 0.3s; }
.wk-copy svg { width: 0.9rem; height: 0.9rem; }
.wk-copy:hover { background: var(--wk-ink); border-color: var(--wk-ink); color: #fff; }
.wk-copy.is-done { background: #10b981; border-color: #10b981; color: #fff; }
.wk-open { display: inline-flex; align-items: center; gap: 0.5rem; margin-top: 0.55rem; padding: 0.3rem 0.7rem; border-radius: 999px; font-size: 0.72rem; font-weight: 800; background: #f1f5f9; color: #64748b; }
.wk-open[hidden] { display: none; }
.wk-open i { position: relative; width: 0.5rem; height: 0.5rem; border-radius: 50%; background: currentColor; }
.wk-open.is-open { background: #ecfdf5; color: #059669; }
.wk-open.is-open i::after { content: ""; position: absolute; inset: 0; border-radius: inherit; background: inherit; animation: wk-ping 2s cubic-bezier(0, 0, 0.2, 1) infinite; }
.wk-open.is-closed { background: #fef2f2; color: #dc2626; }
.wk-socials { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.wk-social { display: inline-flex; align-items: center; gap: 0.55rem; padding: 0.7rem 1.1rem; border-radius: 999px; border: 1px solid var(--wk-line); background: #fff; color: var(--wk-ink); font-size: 0.85rem; font-weight: 800; transition: background 0.4s, color 0.4s, border-color 0.4s, transform 0.6s var(--wk-ease-out); }
.wk-social svg { width: 1.05rem; height: 1.05rem; }
.wk-social:hover { background: var(--wk-ink); border-color: var(--wk-ink); color: #fff; transform: translateY(-2px); }

.wk-cform { position: relative; overflow: hidden; padding: clamp(1.75rem, 4vw, 3rem); border-radius: 2rem; background: #fff; border: 1px solid var(--wk-line); box-shadow: 0 50px 100px -60px rgba(15, 23, 42, 0.35); }
.wk-cform__deco { position: absolute; right: -5rem; top: -5rem; width: 16rem; height: 16rem; color: var(--wk-primary); opacity: 0.18; pointer-events: none; }
.wk-cform__deco .wk-l-spin { transform-box: view-box; transform-origin: 300px 300px; animation: wk-pspin 60s linear infinite; }
.wk-cform h2 { position: relative; margin: 0.8rem 0 0.6rem; font-size: clamp(1.6rem, 2.6vw, 2.2rem); font-weight: 900; letter-spacing: -0.03em; color: var(--wk-ink); }
.wk-cform__desc { position: relative; margin: 0 0 2rem; color: var(--wk-muted); line-height: 1.7; }
.wk-cform__promise { display: inline-flex; align-items: center; gap: 0.55rem; margin-top: 1.5rem; font-size: 0.82rem; font-weight: 700; color: #059669; }
.wk-cform__promise svg { width: 1rem; height: 1rem; }
.wk-cform .wpcf7 form > p { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin: 0; }
.wk-cform .wpcf7 form > p > br { display: none; }
.wk-cform .wpcf7-form-control-wrap { position: relative; display: block; }
.wk-cform .wpcf7-form-control-wrap[data-name="your-message"], .wk-cform .wpcf7-submit, .wk-cform .wpcf7-spinner { grid-column: 1 / -1; }
@media (max-width: 640px) { .wk-cform .wpcf7 form > p { grid-template-columns: 1fr; } }
.wk-cform input[type="text"], .wk-cform input[type="email"], .wk-cform input[type="tel"], .wk-cform input[type="url"], .wk-cform select, .wk-cform textarea {
    width: 100%; padding: 1.1rem 1.1rem; border-radius: 1rem; border: 1px solid #e2e8f0; background: var(--wk-paper);
    color: var(--wk-ink); font-size: 0.98rem; line-height: 1.4; outline: none;
    transition: border-color 0.3s, background 0.3s, box-shadow 0.4s var(--wk-ease-out);
}
.wk-cform textarea { min-height: 10rem; resize: vertical; }
.wk-cform input:focus, .wk-cform textarea:focus, .wk-cform select:focus { border-color: var(--wk-primary); background: #fff; box-shadow: 0 0 0 5px color-mix(in srgb, var(--wk-primary) 14%, transparent); }
.wk-cform.is-float .wk-fwrap input, .wk-cform.is-float .wk-fwrap textarea { padding-top: 1.55rem; padding-bottom: 0.65rem; }
.wk-flabel { position: absolute; left: 1.15rem; top: 1.1rem; font-size: 0.98rem; color: #94a3b8; pointer-events: none; transform-origin: 0 0; transition: transform 0.4s var(--wk-ease-out), color 0.3s; }
.wk-fwrap :is(input, textarea):focus + .wk-flabel, .wk-fwrap :is(input, textarea):not(:placeholder-shown) + .wk-flabel { transform: translateY(-0.62rem) scale(0.74); color: var(--wk-primary); }
.wk-cform .wpcf7-not-valid-tip { margin-top: 0.4rem; font-size: 0.78rem; font-weight: 700; }
.wk-cform .wpcf7-not-valid { border-color: #f87171 !important; }
.wk-cform input[type="submit"], .wk-cform button[type="submit"] {
    justify-self: start; padding: 1.1rem 2.1rem; border: 0; border-radius: 999px; cursor: pointer;
    background: var(--wk-ink); color: #fff; font-size: 0.95rem; font-weight: 800;
    box-shadow: 0 20px 40px -22px rgba(15, 23, 42, 0.8);
    transition: background 0.4s, transform 0.6s var(--wk-ease-out), box-shadow 0.6s var(--wk-ease-out);
}
.wk-cform input[type="submit"]:hover, .wk-cform button[type="submit"]:hover { background: var(--wk-primary); transform: translateY(-2px); box-shadow: 0 24px 46px -22px color-mix(in srgb, var(--wk-primary) 80%, transparent); }
.wk-cform .wpcf7-response-output { margin: 1.25rem 0 0 !important; padding: 0.9rem 1.1rem !important; border-radius: 1rem; font-size: 0.88rem; font-weight: 600; }
.wk-cform .wpcf7 form.sent .wpcf7-response-output { border-color: #10b981 !important; background: #ecfdf5; color: #047857; }
.wk-cform .welkem-native-contact label { color: var(--wk-ink); }
.wk-cform .welkem-native-contact input, .wk-cform .welkem-native-contact textarea { background: var(--wk-paper) !important; color: var(--wk-ink) !important; border-color: #e2e8f0 !important; }

.wk-map { position: relative; height: clamp(24rem, 44vw, 32rem); overflow: hidden; border-radius: 2.25rem; background: #e2e8f0; isolation: isolate; }
.wk-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; filter: grayscale(0.9) contrast(1.05); transition: filter 0.9s; }
.wk-map:hover iframe { filter: none; }
.wk-map__pulse { position: absolute; left: 50%; top: 50%; z-index: 2; width: 0; height: 0; pointer-events: none; }
.wk-map__pulse i { position: absolute; left: -70px; top: -70px; width: 140px; height: 140px; border-radius: 50%; border: 2px solid var(--wk-primary); animation: wk-mapping 3s cubic-bezier(0.2, 0.6, 0.3, 1) infinite; }
.wk-map__pulse i:nth-child(2) { animation-delay: -1s; }
.wk-map__pulse i:nth-child(3) { animation-delay: -2s; }
@keyframes wk-mapping { 0% { transform: scale(0.15); opacity: 0.9; } 100% { transform: scale(1.6); opacity: 0; } }
.wk-map__card { position: absolute; z-index: 3; left: 1.5rem; bottom: 1.5rem; max-width: 23rem; padding: 1.6rem; border-radius: 1.5rem; background: #fff; box-shadow: 0 40px 80px -40px rgba(15, 23, 42, 0.55); }
.wk-map__card h3 { display: flex; align-items: center; gap: 0.6rem; margin: 0 0 0.5rem; font-size: 1.15rem; font-weight: 900; color: var(--wk-ink); }
.wk-map__card h3 svg { width: 1.1rem; height: 1.1rem; color: var(--wk-primary); }
.wk-map__card p { margin: 0 0 1.1rem; color: var(--wk-muted); font-size: 0.9rem; line-height: 1.6; }
@media (max-width: 640px) { .wk-map { height: auto; padding-top: 22rem; } .wk-map iframe { height: 22rem; } .wk-map__card { position: relative; left: auto; bottom: auto; max-width: none; border-radius: 0; box-shadow: none; } .wk-map__pulse { top: 11rem; } }

.wk-acc { border-bottom: 1px solid var(--wk-line); }
.wk-acc:first-child { border-top: 1px solid var(--wk-line); }
.wk-acc summary { display: flex; align-items: center; gap: 1.25rem; padding: 1.55rem 0; cursor: pointer; list-style: none; }
.wk-acc summary::-webkit-details-marker { display: none; }
.wk-acc summary:focus-visible { outline: 2px solid var(--wk-primary); outline-offset: 4px; border-radius: 0.5rem; }
.wk-acc__n { font-family: "Space Mono", monospace; font-size: 0.75rem; font-weight: 700; color: var(--wk-primary); flex: none; }
.wk-acc__q { flex: 1; font-size: clamp(1.02rem, 1.5vw, 1.25rem); font-weight: 800; letter-spacing: -0.01em; color: var(--wk-ink); transition: color 0.3s; }
.wk-acc:hover .wk-acc__q { color: var(--wk-primary); }
.wk-acc__ic { position: relative; flex: none; width: 2.6rem; height: 2.6rem; border-radius: 50%; border: 1px solid #dbe3ec; transition: background 0.4s, border-color 0.4s, transform 0.7s var(--wk-ease-out); }
.wk-acc__ic::before, .wk-acc__ic::after { content: ""; position: absolute; left: 50%; top: 50%; width: 0.85rem; height: 2px; margin: -1px 0 0 -0.425rem; border-radius: 2px; background: var(--wk-ink); transition: transform 0.6s var(--wk-ease-out), background 0.4s; }
.wk-acc__ic::after { transform: rotate(90deg); }
.wk-acc[open] .wk-acc__ic { background: var(--wk-ink); border-color: var(--wk-ink); transform: rotate(180deg); }
.wk-acc[open] .wk-acc__ic::before, .wk-acc[open] .wk-acc__ic::after { background: #fff; }
.wk-acc[open] .wk-acc__ic::after { transform: rotate(0deg); }
.wk-acc__a { overflow: hidden; }
.wk-acc__a > div { max-width: 44rem; padding: 0 3.5rem 1.6rem 2.75rem; color: var(--wk-muted); line-height: 1.75; }

/* dark contact sheet (Contact style 1 / 3) */
.wk-sheet--dark { background: #0b1120; }
.wk-sheet--dark .wk-h2, .wk-sheet--dark .wk-acc__q, .wk-sheet--dark .wk-ci__value, .wk-sheet--dark .wk-cform h2 { color: #fff; }
.wk-sheet--dark .wk-ci, .wk-sheet--dark .wk-cform, .wk-sheet--dark .wk-social, .wk-sheet--dark .wk-map__card { background: #0f172a; border-color: rgba(255, 255, 255, 0.08); }
.wk-sheet--dark .wk-map__card h3, .wk-sheet--dark .wk-social { color: #fff; }
.wk-sheet--dark .wk-cform input, .wk-sheet--dark .wk-cform textarea { background: #020617; border-color: rgba(255, 255, 255, 0.1); color: #fff; }
.wk-sheet--dark .wk-acc, .wk-sheet--dark .wk-acc:first-child { border-color: rgba(255, 255, 255, 0.08); }
.wk-sheet--dark .wk-acc__ic { border-color: rgba(255, 255, 255, 0.16); }
.wk-sheet--dark .wk-acc__ic::before, .wk-sheet--dark .wk-acc__ic::after { background: #fff; }
.wk-sheet--dark .wk-copy { background: rgba(255, 255, 255, 0.06); border-color: rgba(255, 255, 255, 0.1); color: #cbd5e1; }

/* ---------- 13. About: values, features, timeline ---------- */
.wk-val {
    position: relative; height: 100%; padding: 2.1rem 2rem 2.2rem; overflow: hidden;
    border-radius: 1.75rem; background: #fff; border: 1px solid var(--wk-line);
    transition: transform 0.8s var(--wk-ease-out), box-shadow 0.8s var(--wk-ease-out), border-color 0.5s;
}
.wk-val:hover { transform: translateY(-6px); border-color: color-mix(in srgb, var(--wk-primary) 26%, var(--wk-line)); box-shadow: 0 46px 80px -48px color-mix(in srgb, var(--wk-primary) 60%, transparent); }
.wk-val__n { position: absolute; top: 1.6rem; right: 1.8rem; font-family: "Space Mono", monospace; font-size: 0.8rem; font-weight: 700; color: #cbd5e1; transition: color 0.4s; }
.wk-val:hover .wk-val__n { color: var(--wk-primary); }
.wk-val__icon { display: grid; place-items: center; width: 3.5rem; height: 3.5rem; margin-bottom: 1.6rem; border-radius: 1.1rem; color: var(--wk-primary); background: color-mix(in srgb, var(--wk-primary) 10%, transparent); transition: background 0.5s, color 0.5s, transform 0.8s var(--wk-ease-out); }
.wk-val__icon svg, .wk-val__icon i { width: 1.6rem; height: 1.6rem; }
.wk-val:hover .wk-val__icon { background: var(--wk-primary); color: #fff; transform: rotate(-8deg) scale(1.06); }
.wk-val h3 { margin: 0 0 0.6rem; font-size: 1.25rem; font-weight: 900; letter-spacing: -0.015em; color: var(--wk-ink); }
.wk-val p { margin: 0; color: var(--wk-muted); font-size: 0.93rem; line-height: 1.7; }
.wk-val__bar { position: absolute; left: 2rem; right: 2rem; bottom: 0; height: 3px; border-radius: 3px 3px 0 0; background: linear-gradient(90deg, var(--wk-accent), var(--wk-primary)); transform: scaleX(0); transform-origin: left; transition: transform 0.9s var(--wk-ease-out); }
.wk-val:hover .wk-val__bar { transform: scaleX(1); }

.wk-afeats { display: grid; gap: 0.25rem; margin: 1.75rem 0 0; }
.wk-afeat { display: flex; align-items: center; gap: 1rem; padding: 0.85rem 0; border-bottom: 1px dashed #e2e8f0; }
.wk-afeat:last-child { border-bottom: 0; }
.wk-afeat__icon { display: grid; place-items: center; width: 2.6rem; height: 2.6rem; flex: none; border-radius: 0.85rem; color: var(--wk-primary); background: color-mix(in srgb, var(--wk-primary) 10%, transparent); transition: background 0.4s, color 0.4s, transform 0.7s var(--wk-ease-out); }
.wk-afeat__icon svg, .wk-afeat__icon i { width: 1.2rem; height: 1.2rem; }
.wk-afeat:hover .wk-afeat__icon { background: var(--wk-primary); color: #fff; transform: rotate(-8deg); }
.wk-afeat__t { font-weight: 800; color: var(--wk-ink); }
.wk-afeat__d { color: #475569; font-size: 0.95rem; }

.wk-tl { position: relative; max-width: 68rem; margin: 0 auto; padding: 0.5rem 0; }
.wk-tl__rail { position: absolute; top: 0; bottom: 0; left: 1.25rem; width: 2px; margin-left: -1px; overflow: hidden; border-radius: 2px; background: #e2e8f0; }
.wk-tl__fill { position: absolute; inset: 0; background: linear-gradient(var(--wk-accent), var(--wk-primary)); transform-origin: 50% 0; transform: scaleY(0); }
html:not(.wk-ui) .wk-tl__fill { transform: none; }
.wk-tl__item { position: relative; padding-left: 3.5rem; margin-bottom: 1.6rem; }
.wk-tl__dot { position: absolute; z-index: 2; left: 1.25rem; top: 2rem; width: 1.15rem; height: 1.15rem; margin-left: -0.575rem; border-radius: 50%; background: #fff; border: 2px solid #cbd5e1; transition: background 0.5s, border-color 0.5s, box-shadow 0.6s, transform 0.7s var(--wk-ease-out); }
.wk-tl__item.is-active .wk-tl__dot { background: var(--wk-primary); border-color: var(--wk-primary); box-shadow: 0 0 0 7px color-mix(in srgb, var(--wk-primary) 16%, transparent); transform: scale(1.12); }
.wk-tl__card { position: relative; padding: 1.75rem 2rem; border-radius: 1.5rem; background: #fff; border: 1px solid var(--wk-line); box-shadow: 0 24px 50px -40px rgba(15, 23, 42, 0.4); transition: border-color 0.6s, box-shadow 0.8s var(--wk-ease-out), transform 0.8s var(--wk-ease-out); }
.wk-tl__card:hover { transform: translateY(-4px); }
.wk-tl__item.is-active .wk-tl__card { border-color: color-mix(in srgb, var(--wk-primary) 24%, var(--wk-line)); box-shadow: 0 36px 70px -46px color-mix(in srgb, var(--wk-primary) 60%, transparent); }
.wk-tl__year { display: inline-block; margin-bottom: 0.8rem; padding: 0.28rem 0.65rem; border-radius: 0.5rem; font-family: "Space Mono", monospace; font-size: 0.78rem; font-weight: 700; color: var(--wk-primary); background: color-mix(in srgb, var(--wk-primary) 10%, transparent); }
.wk-tl__card h3 { margin: 0 0 0.45rem; font-size: 1.4rem; font-weight: 900; letter-spacing: -0.02em; color: var(--wk-ink); }
.wk-tl__card p { margin: 0; color: var(--wk-muted); line-height: 1.7; }
.wk-tl__ghost { display: none; }
@media (min-width: 768px) {
    .wk-tl__rail { left: 50%; }
    .wk-tl__item { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 6rem; align-items: center; padding-left: 0; margin-bottom: 1rem; }
    .wk-tl__dot { left: 50%; top: 50%; margin-top: -0.575rem; }
    .wk-tl__card, .wk-tl__ghost { grid-row: 1; }
    .wk-tl__item.is-left .wk-tl__card { grid-column: 1; }
    .wk-tl__item.is-left .wk-tl__ghost { grid-column: 2; }
    .wk-tl__item.is-right .wk-tl__card { grid-column: 2; }
    .wk-tl__item.is-right .wk-tl__ghost { grid-column: 1; text-align: right; }
    .wk-tl__ghost {
        display: block; font-weight: 900; font-size: clamp(3.5rem, 7vw, 6.5rem); line-height: 1; letter-spacing: -0.05em;
        color: transparent; -webkit-text-stroke: 1.5px #d5dde7;
        transition: -webkit-text-stroke-color 0.8s, color 0.8s, transform 0.9s var(--wk-ease-out);
    }
    .wk-tl__item.is-active .wk-tl__ghost { -webkit-text-stroke-color: color-mix(in srgb, var(--wk-primary) 55%, transparent); }
    .wk-tl__item.is-left.is-active .wk-tl__ghost { transform: translateX(10px); }
    .wk-tl__item.is-right.is-active .wk-tl__ghost { transform: translateX(-10px); }
}

/* ---------- 14. About illustrations ---------- */
.wk-art { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: radial-gradient(circle at 50% 46%, #e0f2fe 0%, #f1f5f9 58%, #f8fafc 100%); color: var(--wk-primary); }
.wk-art > svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.wk-art .wk-l-spin:not(.wk-l-spin--self) { transform-origin: 300px 225px; }
.wk-art__grid { position: absolute; inset: 0; background-image: radial-gradient(rgba(14, 165, 233, 0.18) 1px, transparent 1.3px); background-size: 22px 22px; -webkit-mask-image: radial-gradient(ellipse 60% 60% at 50% 50%, #000, transparent 75%); mask-image: radial-gradient(ellipse 60% 60% at 50% 50%, #000, transparent 75%); }
.wk-art .wk-ink { fill: #0f172a; }
.wk-art .wk-art-ln { fill: none; stroke: #94a3b8; stroke-width: 1.4; }

/* ---------- 15. CTA element decor ---------- */
.my-cta-section .wk-cta-orbits { position: absolute; z-index: 0; right: -6%; top: 50%; width: min(560px, 70vw); aspect-ratio: 1; transform: translateY(-50%); color: #fff; opacity: 0.22; pointer-events: none; }
.my-cta-section .wk-cta-orbits--l { right: auto; left: -12%; width: min(420px, 60vw); opacity: 0.14; }
.my-cta-section .wk-cta-orbits svg { width: 100%; height: 100%; overflow: visible; }
.my-cta-section .wk-cta-orbits .wk-l-spin { transform-box: view-box; transform-origin: 300px 300px; animation: wk-pspin var(--dur, 90s) linear infinite; }

/* ---------- 16. Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
    .wk-ph *, .wk-pscene *, .wk-art *, .wk-band *, .wk-map *, .my-cta-section .wk-cta-orbits * { animation: none !important; }
    .wk-ph__accent { animation: none; }
}

/* ---------- 16. Additions (templates v2) ---------- */
.wk-empty__lens { transform-box: fill-box; animation: wk-lens 4.2s var(--wk-ease-inout, ease-in-out) infinite; }
@keyframes wk-lens { 0%, 100% { transform: translate(0, 0); } 33% { transform: translate(-34px, -16px); } 66% { transform: translate(-16px, 8px); } }
.wk-empty .wk-btn { margin-top: 1.6rem; }

.wk-post { position: relative; }
.wk-post.wk-animating { transition: none !important; }
.wk-post__link::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
.wk-post__go { transition: background 0.4s, color 0.4s, transform 0.6s var(--wk-ease-out); }
.wk-post:hover .wk-post__go { background: var(--wk-primary); color: #fff; transform: translate(2px, -2px); }
.wk-post:focus-within { outline: 2px solid var(--wk-primary); outline-offset: 3px; }
.wk-post__link:focus { outline: none; }

.wk-art__glow { position: absolute; inset: 14%; border-radius: 50%; background: radial-gradient(circle, color-mix(in srgb, var(--wk-primary) 20%, transparent) 0%, transparent 70%); pointer-events: none; }
.wk-art--facility { background: linear-gradient(180deg, #e0f2fe 0%, #f0f9ff 62%, #f8fafc 100%); }

.wk-sec + .wk-sec--band, .wk-sec--white + .wk-sec--band { padding-top: 0; }
.wk-sec--white + .wk-sec--band { padding-top: clamp(4.5rem, 8vw, 7.5rem); }
.wk-sheet > .wk-sec:first-child, .wk-sheet > .container:first-child + .wk-sec { padding-top: clamp(4rem, 7vw, 6rem); }
.wk-page--gammes .wk-sheet > .container:first-child { padding-top: 0.01px; }
.wk-page--gammes .wk-stats { margin-top: 0; transform: translateY(-3.25rem); margin-bottom: -3.25rem; }

.wk-gcard__media { color: #fff; }
.wk-gcard__media:focus-visible { outline: 3px solid var(--c); outline-offset: -3px; }

.wk-ci .wk-copy { align-self: flex-start; }
.wk-ci .wk-more { font-size: 0.82rem; }
.wk-ci .wk-more svg { width: 0.95rem; height: 0.95rem; }
.wk-ci .wk-open { margin-left: 0; }
.wk-sheet--dark .wk-ci__label { color: #64748b; }
.wk-sheet--dark .wk-more { color: #e2e8f0; }
.wk-sheet--dark .wk-lead, .wk-sheet--dark .wk-cform__desc, .wk-sheet--dark .wk-acc__a > div { color: #94a3b8; }
.wk-cform__form { position: relative; }

.wk-page .wk-feat { margin-bottom: 2.5rem; }
.wk-blog-cards:empty { display: none; }

/* about page: sections inside the sheet keep their own backgrounds; round the first one */
.wk-page--about .wk-sheet > :first-child { border-radius: 2.75rem 2.75rem 0 0; }
.wk-page--about .wk-sheet { overflow: hidden; }

/* values/timeline/afeats inherit fonts */
.wk-afeats { list-style: none; padding: 0; }
.wk-val.wk-animating, .wk-gcard.wk-animating, .wk-doc.wk-animating, .wk-svc.wk-animating, .wk-tl__card.wk-animating { transition: none !important; }
.wk-ph__title .wk-line { padding-bottom: 0.3em; margin-bottom: -0.3em; }
.wk-band__orbits { opacity: 0.85; }
.wk-band__drop { transform-box: fill-box; transform-origin: 50% 100%; animation: wk-bdrop 4.8s var(--wk-ease-inout, ease-in-out) infinite; }
.wk-band__ring { transform-box: fill-box; transform-origin: 50% 50%; animation: wk-bring 3.6s cubic-bezier(0.2, 0.6, 0.3, 1) infinite; }
@keyframes wk-bring { 0% { transform: scale(1); opacity: 0.7; } 100% { transform: scale(2.3); opacity: 0; } }
@keyframes wk-bdrop { 0%, 100% { transform: translateY(0) scale(1, 1); } 45% { transform: translateY(-10px) scale(0.97, 1.03); } 55% { transform: translateY(-10px) scale(0.97, 1.03); } 80% { transform: translateY(2px) scale(1.04, 0.96); } }
@media (min-width: 1024px) {
    .wk-bento--1 > * { grid-column: 1 / -1 !important; grid-row: span 2 !important; }
    .wk-bento--2 > * { grid-column: span 2 !important; grid-row: span 2 !important; }
    .wk-bento--3 > :nth-child(n+2) { grid-column: span 2; }
    .wk-bento--6 > :nth-child(6) { grid-column: 1 / -1; }
}

/* ---------- 17. Mobile hero polish ---------- */
@media (max-width: 1023px) {
    .wk-ph__visual { top: 2.5rem; right: -34%; width: min(380px, 88vw); }
    .wk-pscene { --wk-scene-alpha: 0.2; }
    .wk-ph .wk-search__input { background: rgba(8, 15, 35, 0.9); }
    .wk-ph .wk-search__icon, .wk-ph .wk-search__clear, .wk-ph .wk-search__kbd { z-index: 2; }
    .wk-ph .wk-search__input:focus { background: rgba(12, 22, 48, 0.94); }
}
@media (max-width: 640px) {
    .wk-ph__visual { top: 1.5rem; right: -42%; width: 92vw; }
}

/* ---------- 18. WPBakery full-bleed rows (no negative gutter overflow) ---------- */
.wpb-content-wrapper > .vc_row:not([data-vc-full-width]):has(> .vc_col-sm-12:only-child) { margin-left: 0; margin-right: 0; }
.wpb-content-wrapper > .vc_row:not([data-vc-full-width]) > .vc_col-sm-12:only-child > .vc_column-inner { padding-left: 0; padding-right: 0; }

/* ---------- 19. Mobile: contact cards & sticky toolbars ---------- */
@media (max-width: 640px) {
    .wk-ci { padding: 1.25rem; gap: 0.9rem; }
    .wk-ci__icon { width: 2.75rem; height: 2.75rem; border-radius: 0.85rem; }
    .wk-ci .wk-copy { padding: 0.5rem; }
    .wk-ci .wk-copy__lbl { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
    .wk-open { white-space: nowrap; }
    .wk-toolbar { top: 5rem; margin-bottom: 1.75rem; }
    .wk-toolbar .wk-results { display: none; }
    .wk-chips { width: 100%; -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
}

/* ---------- 20. Contact cards with several numbers / emails ---------- */
.wk-ci__name { display: block; margin-bottom: 0.25rem; font-size: 0.82rem; font-weight: 800; color: var(--c); }
.wk-ci__rows { display: flex; flex-direction: column; margin-top: 0.15rem; }
.wk-ci__row { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; padding: 0.7rem 0; border-top: 1px dashed var(--wk-line); }
.wk-ci__row:first-child { padding-top: 0.2rem; border-top: 0; }
.wk-ci__row:last-child { padding-bottom: 0; }
.wk-ci__rowtx { min-width: 0; }
.wk-ci__rowtx small { display: block; margin-bottom: 0.1rem; font-size: 0.72rem; font-weight: 700; color: var(--wk-muted); }
.wk-ci--list .wk-ci__value { font-size: 1rem; }
.wk-ci--list .wk-copy { align-self: center; }
.wk-sheet--dark .wk-ci__row { border-color: rgba(255, 255, 255, 0.08); }
