:root {
    --bg: #f8fafc;
    --bg-soft: #eef3f8;
    --surface: #ffffff;
    --surface-dark: #0b1526;
    --surface-dark-alt: #101d31;
    --text: #101828;
    --text-soft: #5d6879;
    --text-light: #dce6f4;
    --border: #dfe7f0;
    --primary: #4f6ef7;
    --primary-dark: #3854dc;
    --primary-soft: #e8edff;
    --accent: #7c5cff;
    --success: #2fbf83;
    --shadow-sm: 0 14px 38px rgba(15, 31, 55, 0.08);
    --shadow-lg: 0 28px 80px rgba(7, 18, 38, 0.18);
    --radius-sm: 12px;
    --radius-md: 20px;
    --radius-lg: 30px;
    --container: 1180px;
    --header-height: 78px;
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: calc(var(--header-height) + 20px);
}

body {
    margin: 0;
    background: var(--bg);
    color: var(--text);
    font-family: "Inter", sans-serif;
    font-size: 16px;
    line-height: 1.7;
    overflow-x: hidden;
}

body.menu-open {
    overflow: hidden;
}

a {
    color: inherit;
    text-decoration: none;
}

button,
input,
select,
textarea {
    font: inherit;
}

button,
a {
    -webkit-tap-highlight-color: transparent;
}

img,
svg {
    display: block;
    max-width: 100%;
}

h1,
h2,
h3,
p {
    margin-top: 0;
}

h1,
h2,
h3 {
    font-family: "Space Grotesk", sans-serif;
    line-height: 1.12;
}

h1 {
    margin-bottom: 24px;
    font-size: clamp(3rem, 6vw, 5.8rem);
    letter-spacing: -0.055em;
}

h1 span {
    display: block;
    background: linear-gradient(100deg, var(--primary), var(--accent));
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

h2 {
    margin-bottom: 22px;
    font-size: clamp(2.2rem, 4vw, 3.7rem);
    letter-spacing: -0.045em;
}

h3 {
    margin-bottom: 14px;
    font-size: 1.45rem;
    letter-spacing: -0.025em;
}

.container {
    width: min(calc(100% - 40px), var(--container));
    margin-inline: auto;
}

.section {
    position: relative;
    padding: 120px 0;
}

.section-soft {
    background: var(--bg-soft);
}

.section-dark {
    overflow: hidden;
    background:
        radial-gradient(circle at 12% 15%, rgba(79, 110, 247, 0.22), transparent 32%),
        radial-gradient(circle at 85% 70%, rgba(124, 92, 255, 0.18), transparent 30%),
        var(--surface-dark);
    color: #fff;
}

.skip-link {
    position: fixed;
    top: -80px;
    left: 20px;
    z-index: 9999;
    padding: 12px 18px;
    border-radius: 8px;
    background: #fff;
    color: var(--text);
    box-shadow: var(--shadow-sm);
}

.skip-link:focus {
    top: 18px;
}

.site-header {
    position: fixed;
    inset: 0 0 auto;
    z-index: 1000;
    height: var(--header-height);
    border-bottom: 1px solid transparent;
    transition: background 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}

.site-header.scrolled {
    border-bottom-color: rgba(214, 223, 234, 0.85);
    background: rgba(248, 250, 252, 0.9);
    box-shadow: 0 8px 30px rgba(15, 31, 55, 0.06);
    backdrop-filter: blur(18px);
}

.header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 100%;
}

.brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-family: "Space Grotesk", sans-serif;
    font-size: 1.45rem;
    font-weight: 700;
    letter-spacing: -0.04em;
}

.brand > span:last-child > span {
    color: var(--primary);
}

.brand-mark {
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--primary), var(--accent));
    color: #fff;
    font-family: "Space Grotesk", sans-serif;
    font-size: 0.88rem;
    box-shadow: 0 10px 24px rgba(79, 110, 247, 0.24);
}

.main-nav {
    display: flex;
    align-items: center;
    gap: 29px;
}

.main-nav > a:not(.button) {
    position: relative;
    color: #344054;
    font-size: 0.94rem;
    font-weight: 600;
}

.main-nav > a:not(.button)::after {
    position: absolute;
    right: 0;
    bottom: -7px;
    left: 0;
    height: 2px;
    border-radius: 2px;
    background: var(--primary);
    content: "";
    transform: scaleX(0);
    transition: transform 0.22s ease;
}

.main-nav > a:not(.button):hover::after,
.main-nav > a:not(.button).active::after {
    transform: scaleX(1);
}

.menu-toggle {
    display: none;
    width: 45px;
    height: 45px;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
}

.menu-toggle span {
    display: block;
    width: 25px;
    height: 2px;
    margin: 6px auto;
    border-radius: 2px;
    background: var(--text);
    transition: transform 0.25s ease, opacity 0.25s ease;
}

.menu-toggle.active span:nth-child(1) {
    transform: translateY(8px) rotate(45deg);
}

.menu-toggle.active span:nth-child(2) {
    opacity: 0;
}

.menu-toggle.active span:nth-child(3) {
    transform: translateY(-8px) rotate(-45deg);
}

.button {
    display: inline-flex;
    min-height: 52px;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 13px 23px;
    border: 1px solid var(--primary);
    border-radius: 13px;
    background: linear-gradient(135deg, var(--primary), #5b7af8);
    color: #fff;
    font-weight: 700;
    box-shadow: 0 13px 30px rgba(79, 110, 247, 0.22);
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.button:hover {
    transform: translateY(-2px);
    box-shadow: 0 17px 38px rgba(79, 110, 247, 0.3);
}

.button-small {
    min-height: 43px;
    padding: 9px 17px;
    border-radius: 11px;
    font-size: 0.9rem;
}

.button-secondary {
    border-color: var(--border);
    background: rgba(255, 255, 255, 0.72);
    color: var(--text);
    box-shadow: none;
    backdrop-filter: blur(12px);
}

.button-secondary:hover {
    border-color: var(--primary);
    background: var(--surface);
    box-shadow: var(--shadow-sm);
}

.button-full {
    width: 100%;
}

.eyebrow {
    display: flex;
    align-items: center;
    gap: 11px;
    margin-bottom: 18px;
    color: var(--primary);
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.eyebrow span {
    width: 31px;
    height: 2px;
    background: currentColor;
}

.eyebrow-light {
    color: #9eb0ff;
}

.section-heading {
    max-width: 760px;
    margin-bottom: 58px;
}

.section-heading > p:last-child {
    max-width: 660px;
    margin-bottom: 0;
    color: var(--text-soft);
    font-size: 1.08rem;
}

.section-heading-centered {
    margin-inline: auto;
    text-align: center;
}

.section-heading-centered .eyebrow {
    justify-content: center;
}

.section-heading-centered > p:last-child {
    margin-inline: auto;
}

.section-heading-split {
    display: flex;
    max-width: none;
    align-items: flex-end;
    justify-content: space-between;
    gap: 60px;
}

.section-heading-split > div {
    max-width: 670px;
}

.section-heading-split > p {
    max-width: 400px;
    margin-bottom: 8px;
}

.hero {
    display: block;
    min-height: 860px;
    overflow: hidden;
    padding-top: calc(var(--header-height) + 92px);
    padding-bottom: 72px;
    background:
        linear-gradient(rgba(248, 250, 252, 0.91), rgba(248, 250, 252, 0.96)),
        radial-gradient(circle at 18% 30%, rgba(79, 110, 247, 0.20), transparent 32%),
        radial-gradient(circle at 82% 55%, rgba(124, 92, 255, 0.16), transparent 31%);
}

.hero::after {
    position: absolute;
    inset: 0;
    opacity: 0.18;
    background-image:
        linear-gradient(rgba(79, 110, 247, 0.16) 1px, transparent 1px),
        linear-gradient(90deg, rgba(79, 110, 247, 0.16) 1px, transparent 1px);
    background-size: 55px 55px;
    content: "";
    mask-image: linear-gradient(to bottom, rgba(0,0,0,0.75), transparent 88%);
    pointer-events: none;
}

.hero-glow {
    position: absolute;
    border-radius: 50%;
    filter: blur(20px);
    pointer-events: none;
}

.hero-glow-one {
    top: 160px;
    left: -170px;
    width: 420px;
    height: 420px;
    background: rgba(79, 110, 247, 0.12);
}

.hero-glow-two {
    right: -110px;
    bottom: 20px;
    width: 340px;
    height: 340px;
    background: rgba(124, 92, 255, 0.12);
}

.hero-grid {
    position: relative;
    z-index: 1;
    display: grid;
    align-items: center;
    grid-template-columns: minmax(0, 0.96fr) minmax(430px, 1.04fr);
    gap: 82px;
}

.hero-content {
    max-width: 620px;
}

.hero-content h1 {
    max-width: 610px;
    margin-bottom: 26px;
    font-size: clamp(3.65rem, 5.1vw, 5.15rem);
    line-height: 1.02;
    letter-spacing: -0.06em;
}

.hero-text {
    max-width: 590px;
    margin-bottom: 32px;
    color: var(--text-soft);
    font-size: clamp(1.02rem, 1.45vw, 1.16rem);
    line-height: 1.75;
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
}

.hero-highlights {
    display: flex;
    max-width: 1040px;
    gap: 42px;
    margin-top: 48px;
}

.hero-highlights div {
    display: flex;
    flex-direction: column;
}

.hero-highlights strong {
    font-family: "Space Grotesk", sans-serif;
    font-size: 1rem;
}

.hero-highlights span {
    color: var(--text-soft);
    font-size: 0.83rem;
}

.hero-visual {
    position: relative;
    min-height: 500px;
}

.code-window {
    position: absolute;
    top: 32px;
    right: 18px;
    width: min(100%, 550px);
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 23px;
    background: rgba(10, 21, 39, 0.97);
    box-shadow: var(--shadow-lg);
    transform: perspective(1200px) rotateY(-4deg) rotateX(2deg);
}

.window-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 15px 19px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    color: #8390a4;
    font-size: 0.78rem;
}

.window-dots {
    display: flex;
    gap: 7px;
}

.window-dots span {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #fc5f57;
}

.window-dots span:nth-child(2) {
    background: #fdbc40;
}

.window-dots span:nth-child(3) {
    background: #34c84a;
}

.code-content {
    min-height: 350px;
    padding: 35px 31px 38px;
    color: #cdd8e7;
    font-family: Consolas, Monaco, monospace;
    font-size: clamp(0.84rem, 1.4vw, 0.98rem);
    line-height: 1.9;
}

.code-content p {
    margin: 0;
}

.indent {
    padding-left: 25px;
}

.code-purple {
    color: #c792ea;
}

.code-blue {
    color: #82aaff;
}

.code-green {
    color: #c3e88d;
}

.code-yellow {
    color: #ffcb6b;
}

.terminal-line {
    margin-top: 28px !important;
    color: #7ee2b8;
}

.cursor {
    display: inline-block;
    width: 8px;
    height: 1.2em;
    margin-left: 5px;
    background: #7ee2b8;
    vertical-align: -0.2em;
    animation: blink 0.85s steps(1) infinite;
}

@keyframes blink {
    50% { opacity: 0; }
}

.floating-card {
    position: absolute;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 13px 16px;
    border: 1px solid rgba(255, 255, 255, 0.8);
    border-radius: 15px;
    background: rgba(255, 255, 255, 0.88);
    box-shadow: var(--shadow-sm);
    backdrop-filter: blur(14px);
}

.floating-card-one {
    top: 4px;
    left: -6px;
}

.floating-card-two {
    right: 0;
    bottom: 22px;
}

.floating-card strong,
.floating-card small {
    display: block;
}

.floating-card strong {
    font-size: 0.88rem;
}

.floating-card small {
    color: var(--text-soft);
    font-size: 0.7rem;
}

.floating-icon {
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    border-radius: 10px;
    background: var(--primary-soft);
    color: var(--primary);
    font-weight: 800;
}

.about-grid {
    display: grid;
    grid-template-columns: 0.85fr 1.15fr;
    gap: 90px;
}

.about-grid .section-heading {
    position: sticky;
    top: 130px;
    align-self: start;
}

.large-text {
    color: #263248;
    font-size: 1.35rem;
    font-weight: 600;
    line-height: 1.55;
}

.about-content > p:not(.large-text) {
    color: var(--text-soft);
}

.feature-list {
    display: grid;
    margin-top: 42px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
}

.feature-item {
    display: flex;
    gap: 17px;
    padding: 22px;
    border: 1px solid rgba(216, 226, 238, 0.85);
    border-radius: 17px;
    background: rgba(255, 255, 255, 0.67);
}

.feature-item > span {
    flex: 0 0 auto;
    color: var(--primary);
    font-family: "Space Grotesk", sans-serif;
    font-size: 0.85rem;
    font-weight: 700;
}

.feature-item strong {
    display: block;
    margin-bottom: 6px;
}

.feature-item p {
    margin: 0;
    color: var(--text-soft);
    font-size: 0.88rem;
    line-height: 1.55;
}

.services-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}

.service-card {
    position: relative;
    display: flex;
    min-height: 525px;
    flex-direction: column;
    overflow: hidden;
    padding: 33px;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--surface);
    box-shadow: 0 16px 50px rgba(15, 31, 55, 0.05);
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.service-card:hover {
    border-color: rgba(79, 110, 247, 0.45);
    box-shadow: var(--shadow-sm);
    transform: translateY(-7px);
}

.service-card-featured {
    border-color: rgba(79, 110, 247, 0.38);
    background:
        linear-gradient(145deg, rgba(232, 237, 255, 0.85), rgba(255, 255, 255, 0.96) 48%),
        #fff;
}

.service-label {
    position: absolute;
    top: 19px;
    right: 19px;
    padding: 6px 10px;
    border-radius: 999px;
    background: var(--primary);
    color: #fff;
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.service-number {
    position: absolute;
    top: 19px;
    left: 23px;
    color: #c8d0dd;
    font-family: "Space Grotesk", sans-serif;
    font-size: 0.78rem;
    font-weight: 700;
}

.service-icon {
    display: grid;
    width: 62px;
    height: 62px;
    margin: 42px 0 25px;
    place-items: center;
    border-radius: 17px;
    background: var(--primary-soft);
    color: var(--primary);
}

.service-icon svg {
    width: 31px;
    height: 31px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.65;
}

.service-card > p {
    color: var(--text-soft);
}

.service-card ul {
    margin: 8px 0 28px;
    padding: 0;
    list-style: none;
}

.service-card li {
    position: relative;
    padding: 8px 0 8px 24px;
    color: #3d4859;
    font-size: 0.91rem;
}

.service-card li::before {
    position: absolute;
    top: 16px;
    left: 2px;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--primary);
    content: "";
    box-shadow: 0 0 0 5px var(--primary-soft);
}

.service-card > a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: auto;
    color: var(--primary);
    font-weight: 700;
}

.service-card > a span {
    transition: transform 0.2s ease;
}

.service-card > a:hover span {
    transform: translateX(4px);
}

.section-dark .section-heading {
    margin-bottom: 65px;
}

.section-dark .section-heading h2 {
    max-width: 700px;
}

.process-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
}

.process-card {
    position: relative;
    min-height: 275px;
    padding: 31px 27px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: var(--radius-md);
    background: rgba(255, 255, 255, 0.05);
    backdrop-filter: blur(13px);
}

.process-card::after {
    position: absolute;
    top: 50px;
    right: -21px;
    z-index: 2;
    width: 40px;
    height: 1px;
    background: rgba(158, 176, 255, 0.38);
    content: "";
}

.process-card:last-child::after {
    display: none;
}

.process-card > span {
    display: grid;
    width: 43px;
    height: 43px;
    margin-bottom: 42px;
    place-items: center;
    border-radius: 12px;
    background: rgba(120, 145, 255, 0.16);
    color: #a9b9ff;
    font-family: "Space Grotesk", sans-serif;
    font-weight: 700;
}

.process-card p {
    margin-bottom: 0;
    color: #aebbcf;
    font-size: 0.91rem;
}

.projects-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 26px;
}

.project-card {
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--surface);
    box-shadow: 0 16px 45px rgba(15, 31, 55, 0.055);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.project-card:hover {
    box-shadow: var(--shadow-sm);
    transform: translateY(-5px);
}

.project-card-large {
    grid-column: 1 / -1;
}

.project-card-large {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
}

.project-visual {
    position: relative;
    display: flex;
    min-height: 330px;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.project-card:not(.project-card-large) .project-visual {
    min-height: 305px;
}

.project-visual-communication {
    min-height: 420px;
    background:
        radial-gradient(circle at 70% 30%, rgba(124, 92, 255, 0.32), transparent 35%),
        linear-gradient(145deg, #101b30, #162748);
}

.mock-sidebar {
    display: flex;
    width: 82px;
    height: 280px;
    flex-direction: column;
    align-items: center;
    gap: 17px;
    padding-top: 24px;
    border-radius: 17px 0 0 17px;
    background: #0b1424;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.24);
}

.mock-sidebar span {
    width: 37px;
    height: 37px;
    border-radius: 13px;
    background: #243553;
}

.mock-sidebar span:first-child {
    border-radius: 10px;
    background: var(--primary);
}

.mock-content {
    width: 62%;
    height: 280px;
    padding: 24px;
    border-radius: 0 17px 17px 0;
    background: #172640;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.24);
}

.mock-header {
    width: 38%;
    height: 15px;
    margin-bottom: 42px;
    border-radius: 9px;
    background: #405274;
}

.mock-message {
    width: 84%;
    height: 45px;
    margin-bottom: 17px;
    border-radius: 11px;
    background: #223652;
}

.mock-message.short {
    width: 58%;
}

.project-visual-intervention {
    background:
        radial-gradient(circle at 50% 10%, rgba(79, 110, 247, 0.18), transparent 34%),
        linear-gradient(145deg, #eef3fb, #dfe8f5);
}

.paper {
    width: 220px;
    height: 245px;
    padding: 34px 28px;
    border-radius: 6px;
    background: white;
    box-shadow: 0 25px 55px rgba(15, 31, 55, 0.18);
    transform: rotate(-3deg);
}

.paper span {
    display: block;
    height: 9px;
    margin-bottom: 18px;
    border-radius: 5px;
    background: #dce4ef;
}

.paper span:nth-child(1) {
    width: 55%;
    height: 14px;
    background: var(--primary);
}

.paper span:nth-child(3) {
    width: 72%;
}

.paper .paper-box {
    width: 100%;
    height: 90px;
    border: 2px solid #e2e8f1;
    background: transparent;
}

.project-visual-mobile {
    background:
        radial-gradient(circle at 65% 35%, rgba(124, 92, 255, 0.28), transparent 34%),
        linear-gradient(145deg, #111c32, #1b2c4a);
}

.phone-mockup {
    position: relative;
    width: 145px;
    height: 270px;
    padding: 40px 17px 18px;
    border: 5px solid #0a1020;
    border-radius: 27px;
    background: #f8fafc;
    box-shadow: 0 30px 55px rgba(0, 0, 0, 0.33);
}

.phone-speaker {
    position: absolute;
    top: 13px;
    left: 50%;
    width: 45px;
    height: 5px;
    border-radius: 4px;
    background: #0f1728;
    transform: translateX(-50%);
}

.phone-card {
    height: 75px;
    margin-bottom: 20px;
    border-radius: 13px;
    background: linear-gradient(135deg, var(--primary), var(--accent));
}

.phone-line {
    height: 9px;
    margin-bottom: 10px;
    border-radius: 5px;
    background: #d8e0ec;
}

.phone-line.short {
    width: 65%;
}

.phone-button {
    position: absolute;
    right: 17px;
    bottom: 20px;
    left: 17px;
    height: 32px;
    border-radius: 10px;
    background: var(--primary);
}

.project-content {
    padding: 31px;
}

.project-card-large .project-content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 48px;
}

.project-topline {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 15px;
    color: var(--primary);
    font-size: 0.73rem;
    font-weight: 800;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.project-content > p {
    color: var(--text-soft);
}

.project-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 20px;
}

.project-tags span {
    padding: 7px 10px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: #f8fafc;
    color: #46536a;
    font-size: 0.76rem;
    font-weight: 700;
}

.tech-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
}

.tech-list span {
    padding: 13px 18px;
    border: 1px solid rgba(209, 220, 233, 0.85);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.7);
    color: #344054;
    font-weight: 700;
    box-shadow: 0 7px 20px rgba(15, 31, 55, 0.04);
}

.contact-section {
    overflow: hidden;
    background:
        radial-gradient(circle at 10% 20%, rgba(79, 110, 247, 0.22), transparent 28%),
        radial-gradient(circle at 80% 85%, rgba(124, 92, 255, 0.18), transparent 28%),
        #0b1526;
    color: #fff;
}

.contact-grid {
    display: grid;
    align-items: center;
    grid-template-columns: 0.85fr 1.15fr;
    gap: 90px;
}

.contact-content > p:not(.eyebrow) {
    color: #b2bfd1;
    font-size: 1.08rem;
}

.contact-points {
    display: grid;
    gap: 21px;
    margin-top: 38px;
}

.contact-points > div {
    display: flex;
    align-items: flex-start;
    gap: 14px;
}

.contact-points span {
    display: grid;
    flex: 0 0 auto;
    width: 32px;
    height: 32px;
    place-items: center;
    border-radius: 9px;
    background: rgba(79, 110, 247, 0.18);
    color: #9aabff;
    font-weight: 800;
}

.contact-points p {
    margin: 0;
    color: #afbdd0;
    font-size: 0.89rem;
}

.contact-points strong {
    color: #fff;
}

.contact-card {
    padding: 34px;
    border: 1px solid rgba(255, 255, 255, 0.09);
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.065);
    box-shadow: 0 28px 70px rgba(0, 0, 0, 0.23);
    backdrop-filter: blur(16px);
}

.form-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 17px;
}

.form-group {
    display: grid;
    gap: 8px;
    margin-bottom: 18px;
}

.form-group label {
    color: #e9eef7;
    font-size: 0.84rem;
    font-weight: 700;
}

.form-group input,
.form-group select,
.form-group textarea {
    width: 100%;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 11px;
    outline: none;
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
    transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}

.form-group input,
.form-group select {
    height: 51px;
    padding: 0 14px;
}

.form-group textarea {
    min-height: 145px;
    padding: 13px 14px;
    resize: vertical;
}

.form-group select option {
    background: #14233b;
    color: #fff;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
    border-color: rgba(130, 152, 255, 0.9);
    background: rgba(255, 255, 255, 0.11);
    box-shadow: 0 0 0 4px rgba(79, 110, 247, 0.15);
}

.form-group textarea::placeholder {
    color: #8592a6;
}

.form-note {
    margin: 16px 0 0;
    color: #8795aa;
    font-size: 0.73rem;
    line-height: 1.55;
    text-align: center;
}

.honeypot {
    position: absolute !important;
    left: -9999px !important;
    opacity: 0 !important;
}

.form-message {
    display: none;
    margin-top: 16px;
    padding: 12px 14px;
    border-radius: 10px;
    font-size: 0.88rem;
    font-weight: 600;
}

.form-message.visible {
    display: block;
}

.form-message.success {
    background: rgba(47, 191, 131, 0.15);
    color: #a6f2cf;
}

.form-message.error {
    background: rgba(235, 91, 91, 0.15);
    color: #ffb8b8;
}

.site-footer {
    padding: 32px 0;
    border-top: 1px solid #1d2a3e;
    background: #08111f;
    color: #a7b3c5;
}

.footer-inner {
    display: grid;
    align-items: center;
    grid-template-columns: auto 1fr auto;
    gap: 24px;
}

.brand-footer {
    color: #fff;
}

.footer-inner > p {
    margin: 0;
    font-size: 0.81rem;
}

.footer-links {
    display: flex;
    gap: 20px;
    font-size: 0.82rem;
    font-weight: 600;
}

.footer-links a:hover {
    color: #fff;
}

.copyright {
    grid-column: 1 / -1;
    padding-top: 22px;
    border-top: 1px solid #1d2a3e;
    text-align: center;
}

.reveal {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity 0.75s ease, transform 0.75s ease;
}

.reveal.visible {
    opacity: 1;
    transform: translateY(0);
}

.reveal-delay-small {
    transition-delay: 0.08s;
}

.reveal-delay {
    transition-delay: 0.16s;
}

.reveal-delay-large {
    transition-delay: 0.24s;
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }

    .reveal {
        opacity: 1;
        transform: none;
    }
}

@media (max-width: 1050px) {
    .main-nav {
        gap: 20px;
    }

    .main-nav > a:not(.button) {
        font-size: 0.88rem;
    }

    .hero-grid {
        grid-template-columns: minmax(0, 1fr) minmax(390px, 0.95fr);
        gap: 46px;
    }

    .hero-content h1 {
        font-size: clamp(3.3rem, 5.8vw, 4.45rem);
    }

    .process-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .process-card::after {
        display: none;
    }

    .contact-grid {
        gap: 55px;
    }
}

@media (max-width: 900px) {
    :root {
        --header-height: 70px;
    }

    .section {
        padding: 90px 0;
    }

    .menu-toggle {
        display: block;
    }

    .main-nav {
        position: fixed;
        top: var(--header-height);
        right: 0;
        bottom: 0;
        left: 0;
        display: flex;
        align-items: stretch;
        flex-direction: column;
        gap: 0;
        padding: 30px 20px;
        background: rgba(248, 250, 252, 0.98);
        opacity: 0;
        pointer-events: none;
        transform: translateY(-12px);
        transition: opacity 0.22s ease, transform 0.22s ease;
        backdrop-filter: blur(18px);
    }

    .main-nav.open {
        opacity: 1;
        pointer-events: auto;
        transform: translateY(0);
    }

    .main-nav > a:not(.button) {
        padding: 15px 4px;
        border-bottom: 1px solid var(--border);
        font-size: 1rem;
    }

    .main-nav .button {
        margin-top: 24px;
    }

    .hero {
        min-height: auto;
        padding-top: 132px;
        padding-bottom: 84px;
    }

    .hero-grid {
        grid-template-columns: 1fr;
    }

    .hero-content {
        max-width: 720px;
    }

    .hero-content h1 {
        max-width: 680px;
        font-size: clamp(3rem, 9vw, 4.6rem);
    }

    .hero-visual {
        width: min(100%, 620px);
        min-height: 435px;
        margin: 15px auto 0;
    }

    .about-grid,
    .contact-grid {
        grid-template-columns: 1fr;
        gap: 45px;
    }

    .about-grid .section-heading {
        position: static;
    }

    .services-grid {
        grid-template-columns: 1fr;
    }

    .service-card {
        min-height: auto;
    }

    .project-card-large {
        grid-template-columns: 1fr;
    }

    .project-card-large .project-content {
        padding: 33px;
    }

    .footer-inner {
        grid-template-columns: 1fr;
        justify-items: center;
        text-align: center;
    }

    .copyright {
        width: 100%;
        grid-column: auto;
    }
}

@media (max-width: 650px) {
    .container {
        width: min(calc(100% - 28px), var(--container));
    }

    .section {
        padding: 76px 0;
    }

    h1 {
        font-size: clamp(2.75rem, 14vw, 4.1rem);
    }

    h2 {
        font-size: clamp(2rem, 10vw, 2.8rem);
    }

    .section-heading {
        margin-bottom: 40px;
    }

    .section-heading-split {
        display: block;
    }

    .hero {
        padding-top: 112px;
    }

    .hero-content h1 {
        font-size: clamp(2.75rem, 13vw, 3.8rem);
        line-height: 1.03;
    }

    .hero-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .hero-highlights {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 12px;
    }

    .hero-highlights div {
        padding: 13px 10px;
        border: 1px solid var(--border);
        border-radius: 11px;
        background: rgba(255, 255, 255, 0.58);
        text-align: center;
    }

    .hero-highlights strong {
        font-size: 0.82rem;
    }

    .hero-highlights span {
        font-size: 0.68rem;
    }

    .hero-visual {
        min-height: 350px;
    }

    .code-window {
        top: 25px;
    }

    .code-content {
        min-height: 290px;
        padding: 28px 20px;
        font-size: 0.73rem;
    }

    .floating-card {
        transform: scale(0.85);
    }

    .floating-card-one {
        top: -12px;
        left: -10px;
        transform-origin: left top;
    }

    .floating-card-two {
        right: -8px;
        bottom: -2px;
        transform-origin: right bottom;
    }

    .feature-list,
    .process-grid,
    .projects-grid,
    .form-row {
        grid-template-columns: 1fr;
    }

    .feature-item,
    .service-card,
    .project-content,
    .project-card-large .project-content,
    .contact-card {
        padding: 24px;
    }

    .project-card-large {
        grid-column: auto;
    }

    .project-visual-communication {
        min-height: 300px;
    }

    .mock-sidebar,
    .mock-content {
        height: 220px;
    }

    .mock-sidebar {
        width: 60px;
    }

    .mock-sidebar span {
        width: 30px;
        height: 30px;
    }

    .project-card:not(.project-card-large) .project-visual {
        min-height: 270px;
    }

    .tech-list {
        justify-content: flex-start;
    }

    .tech-list span {
        flex: 1 0 calc(50% - 12px);
        text-align: center;
    }

    .contact-section {
        padding-bottom: 90px;
    }

    .footer-links {
        flex-wrap: wrap;
        justify-content: center;
    }
}

/* ===== Refonte AlexDev 2026 ===== */
.hero-proof {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 22px;
    margin-top: 26px;
    color: #4b5870;
    font-size: 0.9rem;
    font-weight: 600;
}

.hero-proof span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.hero-proof b {
    display: grid;
    width: 22px;
    height: 22px;
    place-items: center;
    border-radius: 50%;
    background: var(--primary-soft);
    color: var(--primary);
    font-size: 0.72rem;
}

.modern-highlights {
    position: relative;
    z-index: 1;
    display: grid;
    max-width: 1040px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-top: 58px;
    padding-top: 28px;
    border-top: 1px solid rgba(205, 216, 231, 0.82);
}

.modern-highlights div {
    padding: 20px 22px;
    border: 1px solid rgba(215, 224, 236, 0.9);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.66);
    box-shadow: 0 10px 30px rgba(15, 31, 55, 0.035);
}

.modern-highlights strong,
.modern-highlights span {
    display: block;
}

.modern-highlights strong {
    margin-bottom: 4px;
    color: var(--text);
    font-family: "Space Grotesk", sans-serif;
    font-size: 1rem;
}

.modern-highlights span {
    color: var(--text-soft);
    font-size: 0.78rem;
}

.service-card {
    position: relative;
}

.service-card-featured {
    border-color: rgba(79, 110, 247, 0.42);
    box-shadow: 0 24px 60px rgba(79, 110, 247, 0.12);
}

.service-badge {
    position: absolute;
    top: 22px;
    right: 22px;
    padding: 6px 10px;
    border-radius: 999px;
    background: var(--primary-soft);
    color: var(--primary-dark);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.approach-grid {
    display: grid;
    align-items: start;
    grid-template-columns: 0.8fr 1.2fr;
    gap: 85px;
}

.approach-grid .section-heading {
    position: sticky;
    top: calc(var(--header-height) + 42px);
    margin-bottom: 0;
}

.text-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 12px;
    color: var(--primary);
    font-weight: 800;
}

.value-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.value-card {
    min-height: 240px;
    padding: 30px;
    border: 1px solid var(--border);
    border-radius: 22px;
    background: var(--surface);
    box-shadow: 0 16px 40px rgba(15, 31, 55, 0.05);
}

.value-card > span {
    display: inline-grid;
    width: 38px;
    height: 38px;
    margin-bottom: 35px;
    place-items: center;
    border-radius: 11px;
    background: var(--primary-soft);
    color: var(--primary);
    font-family: "Space Grotesk", sans-serif;
    font-size: 0.78rem;
    font-weight: 700;
}

.value-card p {
    margin-bottom: 0;
    color: var(--text-soft);
}

.ai-section {
    overflow: hidden;
    background:
        radial-gradient(circle at 10% 10%, rgba(79, 110, 247, 0.22), transparent 30%),
        radial-gradient(circle at 90% 85%, rgba(124, 92, 255, 0.2), transparent 28%),
        #0a1424;
    color: #fff;
}

.ai-layout {
    display: grid;
    align-items: center;
    grid-template-columns: 1.02fr 0.98fr;
    gap: 80px;
}

.ai-copy h2 {
    color: #fff;
}

.ai-copy h2 span {
    color: #9fb0ff;
}

.ai-copy > p {
    color: #b8c4d6;
}

.ai-copy .large-text {
    color: #eef4ff;
}

.ai-principle {
    display: flex;
    gap: 14px;
    margin-top: 28px;
    padding: 20px 22px;
    border: 1px solid rgba(132, 157, 255, 0.28);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.055);
}

.ai-principle > span {
    color: #9fb0ff;
    font-size: 1.2rem;
}

.ai-principle p {
    margin: 0;
    color: #dce6f4;
    font-size: 0.92rem;
}

.ai-cards {
    display: grid;
    gap: 14px;
}

.ai-cards article {
    display: flex;
    align-items: flex-start;
    gap: 18px;
    padding: 22px;
    border: 1px solid rgba(148, 163, 184, 0.16);
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.06);
    backdrop-filter: blur(14px);
}

.ai-cards article:nth-child(even) {
    margin-left: 30px;
}

.ai-icon {
    display: grid;
    flex: 0 0 auto;
    width: 46px;
    height: 46px;
    place-items: center;
    border: 1px solid rgba(159, 176, 255, 0.25);
    border-radius: 14px;
    background: rgba(79, 110, 247, 0.16);
    font-size: 1.1rem;
}

.ai-cards h3 {
    margin-bottom: 6px;
    color: #fff;
    font-size: 1.1rem;
}

.ai-cards p {
    margin: 0;
    color: #aebbd0;
    font-size: 0.88rem;
    line-height: 1.6;
}

.process-grid-five {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.process-grid-five .process-card {
    min-height: 285px;
}

.case-line {
    display: grid;
    gap: 5px;
    margin: 18px 0 22px;
    padding-top: 16px;
    border-top: 1px solid var(--border);
}

.case-line strong {
    color: var(--text);
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.case-line span {
    color: var(--text-soft);
    font-size: 0.84rem;
    line-height: 1.55;
}

.tech-intro {
    max-width: 1080px;
}

.faq-layout {
    display: grid;
    align-items: start;
    grid-template-columns: 0.75fr 1.25fr;
    gap: 85px;
}

.faq-layout .section-heading {
    margin-bottom: 0;
}

.faq-list {
    border-top: 1px solid var(--border);
}

.faq-list details {
    border-bottom: 1px solid var(--border);
}

.faq-list summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 24px 4px;
    color: var(--text);
    font-family: "Space Grotesk", sans-serif;
    font-size: 1.05rem;
    font-weight: 700;
    cursor: pointer;
    list-style: none;
}

.faq-list summary::-webkit-details-marker {
    display: none;
}

.faq-list summary span {
    display: grid;
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    place-items: center;
    border-radius: 50%;
    background: var(--primary-soft);
    color: var(--primary);
    transition: transform 0.2s ease;
}

.faq-list details[open] summary span {
    transform: rotate(45deg);
}

.faq-list details p {
    max-width: 760px;
    margin: -5px 48px 24px 4px;
    color: var(--text-soft);
}

.contact-points a {
    color: #c8d4ff;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.form-note a {
    color: var(--primary);
    font-weight: 700;
}

.footer-main {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(150px, 0.55fr) minmax(180px, 0.7fr);
    gap: 70px;
    padding: 54px 0 34px;
}

.footer-about p {
    max-width: 430px;
    margin: 18px 0 0;
    color: #8897ab;
    font-size: 0.9rem;
}

.footer-nav,
.footer-contact {
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    gap: 9px;
    font-size: 0.84rem;
}

.footer-nav strong,
.footer-contact strong {
    margin-bottom: 6px;
    color: #fff;
    font-family: "Space Grotesk", sans-serif;
}

.footer-nav a:hover,
.footer-contact a:hover,
.footer-bottom a:hover {
    color: #fff;
}

.footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 23px 0 28px;
    border-top: 1px solid #1d2a3e;
    color: #7f8da1;
    font-size: 0.78rem;
}

.footer-bottom p {
    margin: 0;
}

/* Page légale */
.legal-page {
    background: #f8fafc;
}

.legal-main {
    padding: 150px 0 90px;
}

.legal-container {
    max-width: 850px;
}

.legal-container > h1 {
    max-width: 720px;
    margin-bottom: 22px;
    font-size: clamp(2.8rem, 7vw, 5rem);
}

.legal-lead {
    max-width: 720px;
    margin-bottom: 60px;
    color: var(--text-soft);
    font-size: 1.14rem;
}

.legal-container section {
    padding: 28px 0;
    border-top: 1px solid var(--border);
}

.legal-container section h2 {
    margin-bottom: 12px;
    font-size: 1.55rem;
}

.legal-container section p {
    margin: 0;
    color: var(--text-soft);
}

.legal-container a {
    color: var(--primary);
    font-weight: 700;
}

@media (max-width: 1180px) {
    .process-grid-five {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 1050px) {
    .approach-grid,
    .ai-layout,
    .faq-layout {
        gap: 50px;
    }

    .modern-highlights {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .approach-grid,
    .ai-layout,
    .faq-layout {
        grid-template-columns: 1fr;
    }

    .approach-grid .section-heading {
        position: static;
    }

    .process-grid-five {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .footer-main {
        grid-template-columns: 1fr 1fr;
        gap: 40px;
    }

    .footer-about {
        grid-column: 1 / -1;
    }
}

@media (max-width: 650px) {
    .hero-proof {
        display: grid;
        gap: 10px;
    }

    .modern-highlights,
    .value-grid,
    .process-grid-five {
        grid-template-columns: 1fr;
    }

    .modern-highlights {
        margin-top: 38px;
    }

    .modern-highlights div {
        padding: 16px 18px;
        text-align: left;
    }

    .ai-cards article:nth-child(even) {
        margin-left: 0;
    }

    .ai-cards article {
        padding: 18px;
    }

    .footer-main {
        grid-template-columns: 1fr;
        gap: 34px;
        padding-top: 42px;
    }

    .footer-about {
        grid-column: auto;
    }

    .footer-bottom {
        align-items: flex-start;
        flex-direction: column;
    }

    .legal-main {
        padding-top: 120px;
    }
}

.error-page {
    display: grid;
    min-height: 100vh;
    place-items: center;
    padding: 40px 0;
    background:
        radial-gradient(circle at 20% 20%, rgba(79,110,247,.12), transparent 28%),
        var(--bg);
}

.error-card {
    max-width: 720px;
    text-align: center;
}

.error-code {
    display: inline-block;
    margin-bottom: 18px;
    color: var(--primary);
    font-family: "Space Grotesk", sans-serif;
    font-size: .9rem;
    font-weight: 800;
    letter-spacing: .18em;
}

.error-card h1 {
    margin-bottom: 18px;
    font-size: clamp(2.8rem, 8vw, 5.4rem);
}

.error-card p {
    margin: 0 auto 30px;
    color: var(--text-soft);
}

/* ===== V3 · pages internes ===== */
.internal-page {
    background: var(--bg);
}

.internal-hero {
    position: relative;
    overflow: hidden;
    padding: 160px 0 88px;
    background:
        linear-gradient(rgba(248,250,252,.88), rgba(248,250,252,.96)),
        radial-gradient(circle at 75% 20%, rgba(79,110,247,.18), transparent 34%);
    border-bottom: 1px solid var(--border);
}

.internal-hero-inner {
    position: relative;
    z-index: 2;
    max-width: 920px;
}

.internal-hero h1 {
    max-width: 900px;
    margin-bottom: 24px;
    font-size: clamp(3.2rem, 6.2vw, 5.6rem);
}

.internal-lead {
    max-width: 760px;
    margin: 0;
    color: var(--text-soft);
    font-size: clamp(1.05rem, 1.8vw, 1.25rem);
}

.breadcrumb {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 34px;
    color: #748094;
    font-size: .82rem;
    font-weight: 600;
}

.breadcrumb a:hover {
    color: var(--primary);
}

.internal-grid {
    display: grid;
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
    gap: 78px;
    align-items: start;
}

.internal-grid > .section-heading {
    position: sticky;
    top: calc(var(--header-height) + 36px);
}

.feature-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.feature-grid article,
.about-values article {
    padding: 30px;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--surface);
    box-shadow: 0 10px 30px rgba(15,31,55,.04);
}

.feature-grid article > span,
.about-values article > strong {
    display: inline-flex;
    margin-bottom: 28px;
    color: var(--primary);
    font-family: "Space Grotesk", sans-serif;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .12em;
}

.feature-grid p,
.about-values p {
    margin-bottom: 0;
    color: var(--text-soft);
}

.pill-grid {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 12px;
    max-width: 980px;
    margin: 42px auto 0;
}

.pill-grid span {
    padding: 12px 17px;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: var(--surface);
    color: #344054;
    font-size: .9rem;
    font-weight: 700;
}

.process-inline {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: var(--surface);
    overflow: hidden;
}

.process-inline > div {
    min-height: 240px;
    padding: 34px 30px;
    border-right: 1px solid var(--border);
}

.process-inline > div:last-child {
    border-right: 0;
}

.process-inline strong {
    display: block;
    margin-bottom: 42px;
    color: var(--primary);
    font-family: "Space Grotesk", sans-serif;
    font-size: .84rem;
}

.process-inline p {
    margin-bottom: 0;
    color: var(--text-soft);
}

.split-highlight {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, .85fr);
    gap: 90px;
    align-items: center;
}

.dark-list {
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: var(--radius-md);
    background: rgba(255,255,255,.045);
}

.dark-list p {
    margin: 0;
    padding: 18px 22px;
    border-bottom: 1px solid rgba(255,255,255,.1);
    color: #dce6f4;
}

.dark-list p:last-child { border-bottom: 0; }

.cta-section {
    padding: 70px 0;
    background: var(--bg);
}

.cta-panel {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
    padding: 54px 58px;
    border-radius: var(--radius-lg);
    background:
        radial-gradient(circle at 15% 20%, rgba(124,92,255,.28), transparent 35%),
        linear-gradient(135deg, #0b1526, #101d31);
    color: #fff;
    box-shadow: var(--shadow-lg);
}

.cta-panel h2 {
    margin-bottom: 10px;
    font-size: clamp(2rem, 4vw, 3.3rem);
}

.cta-panel p:last-child {
    margin-bottom: 0;
    color: #b9c7da;
}

.button-light {
    flex: 0 0 auto;
    background: #fff;
    color: var(--text);
}

.button-light:hover {
    background: #edf2ff;
}

.project-link {
    display: inline-flex;
    margin-top: 22px;
    color: var(--primary);
    font-size: .9rem;
    font-weight: 800;
}

.portfolio-list {
    display: grid;
    gap: 18px;
    margin-top: 52px;
}

.portfolio-entry {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    padding: 34px 38px;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--surface);
    transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}

.portfolio-entry:hover {
    transform: translateY(-4px);
    border-color: #c4d0ff;
    box-shadow: var(--shadow-sm);
}

.project-kicker {
    display: block;
    margin-bottom: 8px;
    color: var(--primary);
    font-size: .78rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.portfolio-entry h2 {
    margin-bottom: 10px;
    font-size: clamp(2rem, 4vw, 3rem);
}

.portfolio-entry p {
    max-width: 760px;
    margin-bottom: 18px;
    color: var(--text-soft);
}

.portfolio-arrow {
    display: grid;
    flex: 0 0 auto;
    width: 50px;
    height: 50px;
    place-items: center;
    border-radius: 50%;
    background: var(--primary-soft);
    color: var(--primary);
    font-size: 1.35rem;
    font-weight: 800;
}

.case-layout {
    display: grid;
    grid-template-columns: minmax(230px, .55fr) minmax(0, 1.25fr);
    gap: 80px;
    align-items: start;
}

.case-summary {
    position: sticky;
    top: calc(var(--header-height) + 36px);
    padding: 28px;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--surface);
}

.case-summary > span {
    color: var(--primary);
    font-size: .76rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .1em;
}

.case-summary > p {
    margin: 14px 0 24px;
    font-family: "Space Grotesk", sans-serif;
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.4;
}

.case-content {
    max-width: 760px;
}

.case-content > p:not(.eyebrow) {
    margin-bottom: 42px;
    color: var(--text-soft);
    font-size: 1.05rem;
}

.case-content .eyebrow {
    margin-top: 28px;
}

.case-feature-list {
    display: grid;
    gap: 12px;
    margin: 20px 0 50px;
}

.case-feature-list > div {
    display: flex;
    gap: 14px;
    padding: 16px 18px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: var(--surface);
}

.case-feature-list span {
    color: var(--success);
    font-weight: 900;
}

.case-feature-list p { margin: 0; }

.about-layout {
    display: grid;
    grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
    gap: 80px;
    align-items: start;
}

.about-layout .section-heading p:not(.eyebrow) {
    color: var(--text-soft);
}

.about-values {
    display: grid;
    gap: 16px;
}

.contact-page-section {
    padding-top: 90px;
}

.contact-page .contact-grid {
    align-items: start;
}

.contact-content-light {
    color: var(--text);
}

.contact-content-light > p {
    color: var(--text-soft);
}

.contact-content-light .contact-points strong { color: var(--text); }
.contact-content-light .contact-points p { color: var(--text-soft); }
.contact-content-light .contact-points a { color: var(--primary); }

.main-nav > a[aria-current="page"]::after {
    transform: scaleX(1);
}

@media (max-width: 980px) {
    .internal-grid,
    .split-highlight,
    .case-layout,
    .about-layout {
        grid-template-columns: 1fr;
        gap: 46px;
    }

    .internal-grid > .section-heading,
    .case-summary { position: static; }
    .process-inline { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .process-inline > div:nth-child(2) { border-right: 0; }
    .process-inline > div:nth-child(-n+2) { border-bottom: 1px solid var(--border); }
    .cta-panel { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 700px) {
    .internal-hero { padding: 126px 0 68px; }
    .internal-hero h1 { font-size: clamp(2.65rem, 13vw, 4.1rem); }
    .feature-grid,
    .process-inline { grid-template-columns: 1fr; }
    .process-inline > div { min-height: 0; border-right: 0; border-bottom: 1px solid var(--border); }
    .process-inline > div:last-child { border-bottom: 0; }
    .cta-panel { padding: 38px 26px; }
    .portfolio-entry { align-items: flex-start; padding: 26px; }
    .portfolio-arrow { width: 42px; height: 42px; }
}

.section-actions {
    display: flex;
    justify-content: center;
    margin-top: 38px;
}

/* V3.1 — Positionnement web prioritaire */
.services-grid-primary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 980px;
    margin-inline: auto;
}
.android-service-callout {
    max-width: 980px;
    margin: 28px auto 0;
    padding: 24px 28px;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 22px;
    border: 1px solid var(--border, #dfe6ef);
    border-radius: 22px;
    background: rgba(255,255,255,.72);
    box-shadow: 0 16px 50px rgba(8,17,31,.06);
}
.android-callout-icon {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    font-size: 1.35rem;
    font-weight: 800;
    background: #eef4ff;
    color: #2167d5;
}
.android-service-callout h3 { margin: 4px 0 6px; font-size: 1.15rem; }
.android-service-callout p { margin: 0; color: var(--text-muted, #667085); }
.android-service-callout .text-link { white-space: nowrap; }

.project-visual-partage-fichiers,
.project-visual-finances {
    min-height: 260px;
    display: grid;
    place-items: center;
    overflow: hidden;
    position: relative;
}
.project-visual-partage-fichiers { background: linear-gradient(145deg,#eaf4ff,#dbe9ff); }
.partage-fichiers-window {
    width: 74%;
    padding: 18px;
    border-radius: 18px;
    background: rgba(255,255,255,.94);
    box-shadow: 0 24px 55px rgba(40,81,140,.18);
}
.partage-fichiers-top { width: 42%; height: 12px; border-radius: 999px; background: #2f72df; margin-bottom: 18px; }
.partage-fichiers-row { display:flex; align-items:center; justify-content:space-between; gap:18px; padding: 12px 0; border-top:1px solid #e7edf5; }
.partage-fichiers-row span { width:68%; height:10px; border-radius:999px; background:#dfe7f2; }
.partage-fichiers-row i { width:28px; height:8px; border-radius:999px; background:#78a4eb; }
.partage-fichiers-row.short span { width:48%; }
.project-visual-finances { background: linear-gradient(145deg,#edf9f2,#e2f1ff); }
.finance-chart { width:56%; height:58%; display:flex; align-items:flex-end; gap:9px; padding:20px; background:rgba(255,255,255,.9); border-radius:18px; box-shadow:0 22px 48px rgba(39,91,76,.12); }
.finance-chart span { flex:1; border-radius:7px 7px 3px 3px; background:#4e8bd7; }
.finance-chart span:nth-child(1){height:42%}.finance-chart span:nth-child(2){height:66%}.finance-chart span:nth-child(3){height:52%}.finance-chart span:nth-child(4){height:84%}.finance-chart span:nth-child(5){height:72%}
.finance-card { position:absolute; right:10%; bottom:13%; width:32%; padding:15px; border-radius:14px; background:#0d1d35; box-shadow:0 18px 38px rgba(8,17,31,.24); }
.finance-card b { display:block; color:#fff; font-size:1.25rem; margin-bottom:10px; }
.finance-card i { display:block; height:7px; width:78%; border-radius:999px; background:#6e88aa; margin-top:7px; }.finance-card i.short{width:52%}

.portfolio-secondary-label {
    margin: 30px 0 -2px;
    padding: 18px 4px 6px;
    display:flex;
    align-items:center;
    gap:12px;
    color: var(--text-muted, #667085);
}
.portfolio-secondary-label span { font-size:.72rem; text-transform:uppercase; letter-spacing:.12em; font-weight:800; color:#2f72df; }
.portfolio-secondary-label strong { font-size:.95rem; color:var(--text, #111827); }
.portfolio-entry-secondary { background: rgba(248,250,252,.72); }

@media (max-width: 820px) {
    .services-grid-primary { grid-template-columns: 1fr; }
    .android-service-callout { grid-template-columns: auto 1fr; }
    .android-service-callout .text-link { grid-column: 2; justify-self:start; }
}
@media (max-width: 560px) {
    .android-service-callout { grid-template-columns: 1fr; padding: 22px; }
    .android-service-callout .text-link { grid-column: 1; }
    .portfolio-secondary-label { align-items:flex-start; flex-direction:column; gap:4px; }
}

/* ALEXDEV V4 — PREMIUM DARK */
:root {
    --bg: #06101f;
    --bg-soft: #081426;
    --surface: #0b1729;
    --surface-dark: #06101f;
    --surface-dark-alt: #0d1b30;
    --text: #f7f9ff;
    --text-soft: #9eabc0;
    --text-light: #dce6f4;
    --border: #1a2b45;
    --primary: #4f7cff;
    --primary-dark: #315ee8;
    --primary-soft: rgba(79,124,255,.14);
    --accent: #6f5cff;
    --success: #50d49b;
    --shadow-sm: 0 16px 40px rgba(0,0,0,.22);
    --shadow-lg: 0 30px 90px rgba(0,0,0,.38);
    --container: 1240px;
}

html { background: var(--bg); }
body {
    background:
      radial-gradient(circle at 16% 0%, rgba(47,92,194,.14), transparent 27rem),
      radial-gradient(circle at 92% 6%, rgba(77,69,210,.11), transparent 24rem),
      var(--bg);
    color: var(--text);
}
body::before {
    position: fixed;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    content: "";
    background-image:
      linear-gradient(rgba(105,136,188,.035) 1px, transparent 1px),
      linear-gradient(90deg, rgba(105,136,188,.035) 1px, transparent 1px);
    background-size: 56px 56px;
    mask-image: linear-gradient(to bottom, rgba(0,0,0,.7), transparent 75%);
}

::selection { background: rgba(79,124,255,.38); color:#fff; }
.section { padding: 104px 0; }
.section-soft { background: rgba(8,20,38,.86); border-block: 1px solid rgba(111,135,175,.08); }
.section-dark,
.contact-section {
    background:
      radial-gradient(circle at 15% 10%, rgba(45,93,201,.17), transparent 30%),
      radial-gradient(circle at 85% 82%, rgba(102,78,220,.14), transparent 30%),
      #071222;
}

.site-header { border-bottom: 1px solid rgba(255,255,255,.035); }
.site-header.scrolled {
    border-bottom-color: rgba(111,135,175,.15);
    background: rgba(6,16,31,.78);
    box-shadow: 0 12px 40px rgba(0,0,0,.2);
    backdrop-filter: blur(22px) saturate(140%);
}
.brand { color:#fff; }
.brand > span:last-child > span { color:#6c8cff; }
.brand-mark {
    background: linear-gradient(135deg,#3376ff,#705cff);
    box-shadow: 0 0 0 1px rgba(129,153,255,.22), 0 10px 35px rgba(64,93,255,.32);
}
.main-nav > a:not(.button) { color:#c4cddd; }
.main-nav > a:not(.button):hover { color:#fff; }
.menu-toggle span { background:#fff; }

.button {
    border-color: rgba(103,137,255,.72);
    background: linear-gradient(135deg,#3479ff,#5d69ff 62%,#6f5cff);
    box-shadow: 0 12px 32px rgba(47,92,255,.28), inset 0 1px rgba(255,255,255,.18);
}
.button:hover { box-shadow: 0 16px 42px rgba(47,92,255,.4), inset 0 1px rgba(255,255,255,.2); }
.button-secondary {
    border-color: #263a59;
    background: rgba(11,23,41,.68);
    color:#e9eef8;
    box-shadow:none;
}
.button-secondary:hover { border-color:#4e72c9; background:#0f1f36; box-shadow:0 12px 32px rgba(0,0,0,.2); }
.button-light { background:#fff; color:#071222; border-color:#fff; }

.eyebrow { color:#7598ff; }
.section-heading > p:last-child,
.large-text,
.internal-lead { color:var(--text-soft); }

.hero {
    min-height: 760px;
    padding: 150px 0 66px;
    overflow:hidden;
    background:
      radial-gradient(circle at 76% 32%, rgba(37,91,207,.22), transparent 24rem),
      radial-gradient(circle at 92% 22%, rgba(96,72,225,.12), transparent 20rem);
    border-bottom:1px solid rgba(111,135,175,.11);
}
.hero::after {
    position:absolute; inset:0; pointer-events:none; content:"";
    background: linear-gradient(90deg, transparent 49.9%, rgba(106,136,189,.045) 50%, transparent 50.1%);
}
.hero-grid { grid-template-columns: minmax(0,.9fr) minmax(520px,1.1fr); gap:72px; align-items:center; }
.hero-content { max-width: 630px; }
.hero h1 { max-width: 620px; font-size:clamp(3.7rem,5.6vw,5.8rem); letter-spacing:-.062em; }
.hero h1 span { background:linear-gradient(100deg,#4e81ff,#7d64ff); -webkit-background-clip:text; background-clip:text; }
.hero-text { max-width:620px; color:#a9b5c8; font-size:1.08rem; }
.hero-proof { border-top:1px solid rgba(111,135,175,.13); }
.hero-proof span { color:#9eabc0; }
.hero-proof b { color:#6f92ff; }
.hero-glow { opacity:.32; filter:blur(10px); }

.hero-visual { min-height:520px; }
.product-stage { position:relative; width:100%; min-height:510px; perspective:1200px; }
.dashboard-shell {
    position:absolute; top:16px; right:20px; width:min(92%,640px); height:430px;
    overflow:hidden; border:1px solid rgba(113,150,230,.35); border-radius:22px;
    background:linear-gradient(145deg,#0a1628,#0b1a30 64%,#0c1e38);
    box-shadow:0 36px 90px rgba(0,0,0,.48),0 0 60px rgba(50,95,223,.13),inset 0 1px rgba(255,255,255,.04);
    transform:rotateY(-3deg) rotateX(1deg);
}
.dashboard-bar { height:48px; padding:0 16px; border-bottom:1px solid #1a2c49; color:#718199; }
.window-status { margin-left:auto; color:#61d6a2!important; font-size:.67rem; }
.dashboard-body { display:grid; grid-template-columns:58px 1fr; height:calc(100% - 48px); }
.dashboard-sidebar { display:flex; flex-direction:column; align-items:center; gap:17px; padding:18px 0; border-right:1px solid #192b47; background:#081426; }
.sidebar-logo { display:grid; width:31px; height:31px; place-items:center; margin-bottom:7px; border-radius:9px; background:linear-gradient(135deg,#3479ff,#705cff); font-weight:800; color:#fff; }
.dashboard-sidebar span { width:19px; height:19px; border:1px solid #2b4162; border-radius:6px; background:#0d1e35; }
.dashboard-sidebar span.active { border-color:#507cff; background:rgba(79,124,255,.25); box-shadow:0 0 16px rgba(79,124,255,.18); }
.dashboard-main { padding:23px 26px; color:#fff; }
.dashboard-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:20px; }
.dashboard-head div { display:grid; gap:2px; }
.dashboard-head small { color:#71829b; font-size:.68rem; }
.dashboard-head strong { font-family:"Space Grotesk",sans-serif; font-size:1.28rem; }
.dashboard-head > span { padding:7px 10px; border:1px solid #203553; border-radius:9px; color:#90a1b9; font-size:.66rem; }
.metric-row { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.metric-row article { display:grid; gap:3px; padding:13px; border:1px solid #1c304e; border-radius:12px; background:#0c1d34; }
.metric-row small { color:#7588a4; font-size:.61rem; }
.metric-row strong { font-size:1.13rem; }
.metric-row i { color:#50d49b; font-size:.58rem; font-style:normal; }
.chart-panel { position:relative; height:132px; margin-top:14px; overflow:hidden; border:1px solid #1c304e; border-radius:12px; background:#09172a; color:#4784ff; }
.chart-grid { position:absolute; inset:0; opacity:.22; background-image:linear-gradient(#28405f 1px,transparent 1px),linear-gradient(90deg,#28405f 1px,transparent 1px); background-size:25% 33%; }
.chart-panel svg { position:absolute; inset:17px 16px; width:calc(100% - 32px); height:calc(100% - 34px); filter:drop-shadow(0 0 8px rgba(71,132,255,.35)); }
.task-row { display:flex; align-items:center; gap:10px; margin-top:13px; padding:10px 12px; border:1px solid #1d3352; border-radius:12px; background:#0b1b31; }
.task-row > span { width:8px; height:8px; border-radius:50%; background:#50d49b; box-shadow:0 0 14px rgba(80,212,155,.65); }
.task-row div { display:grid; flex:1; }
.task-row strong { font-size:.67rem; }
.task-row small { color:#74859f; font-size:.56rem; }
.task-row b { color:#50d49b; }

.code-float {
    position:absolute; left:-18px; bottom:15px; z-index:3; width:270px; padding:0 18px 18px;
    border:1px solid rgba(112,145,218,.37); border-radius:17px; background:rgba(8,20,38,.95);
    box-shadow:0 24px 60px rgba(0,0,0,.5),0 0 35px rgba(55,94,225,.12); backdrop-filter:blur(16px);
}
.mini-file { display:flex; align-items:center; gap:5px; height:38px; border-bottom:1px solid #1a2d49; color:#7789a4; }
.mini-file span { width:6px; height:6px; border-radius:50%; background:#30445f; }
.mini-file span:first-child { background:#ff6c6c; }.mini-file span:nth-child(2){background:#ffc760}.mini-file span:nth-child(3){background:#55d69a}
.mini-file b { margin-left:7px; font-size:.63rem; font-weight:600; }
.code-float code { display:block; margin-top:14px; color:#aeb9cb; font:500 .66rem/1.75 ui-monospace,SFMono-Regular,Consolas,monospace; }
.code-float em { color:#c985ff; font-style:normal; }.code-float mark{background:none;color:#a9db70}.code-float strong{color:#61a0ff}
.phone-mockup {
    position:absolute; right:-4px; bottom:-12px; z-index:4; width:142px; height:288px; padding:8px;
    border:1px solid #4264a2; border-radius:30px; background:#050b15; box-shadow:0 24px 55px rgba(0,0,0,.55),0 0 30px rgba(48,105,255,.13);
    transform:rotate(4deg);
}
.phone-screen { height:100%; padding:36px 12px 15px; border-radius:23px; background:radial-gradient(circle at 70% 10%,rgba(77,97,255,.28),transparent 42%),#0b1830; }
.phone-speaker { position:absolute; top:15px; left:50%; width:42px; height:6px; border-radius:99px; background:#1b2940; transform:translateX(-50%); z-index:2; }
.phone-pill { display:inline-flex; padding:5px 8px; border-radius:99px; background:rgba(79,124,255,.17); color:#85a3ff; font-size:.48rem; font-weight:800; }
.phone-screen strong { display:block; margin-top:19px; font:700 1.05rem/1.28 "Space Grotesk",sans-serif; }
.phone-cards { display:grid; gap:7px; margin-top:23px; }.phone-cards i{height:30px;border:1px solid #213758;border-radius:8px;background:#10213a}
.stage-badge { position:absolute; right:112px; bottom:12px; z-index:5; display:flex; align-items:center; gap:10px; padding:10px 13px; border:1px solid #263d63; border-radius:13px; background:rgba(10,24,45,.92); box-shadow:0 16px 36px rgba(0,0,0,.35); backdrop-filter:blur(14px); }
.stage-badge > span { display:grid; width:29px; height:29px; place-items:center; border-radius:9px; background:rgba(79,124,255,.16); }
.stage-badge div{display:grid}.stage-badge strong{font-size:.69rem}.stage-badge small{color:#7f8fa8;font-size:.57rem}

.modern-highlights { margin-top:44px; padding-top:28px; border-top:1px solid rgba(111,135,175,.13); }
.modern-highlights > div { border:0; border-right:1px solid rgba(111,135,175,.14); border-radius:0; background:transparent; box-shadow:none; }
.modern-highlights > div:last-child { border-right:0; }
.modern-highlights strong { color:#f7f9ff; }.modern-highlights span{color:#7f8da2}

.service-card,
.project-card,
.feature-grid article,
.about-values article,
.case-summary,
.case-feature-list > div,
.portfolio-entry,
.process-inline,
.pill-grid span,
.tech-list span,
.faq-list details {
    border-color:#1b2d49;
    background:linear-gradient(145deg,rgba(13,28,49,.96),rgba(9,21,38,.96));
    color:var(--text);
    box-shadow:0 14px 40px rgba(0,0,0,.12);
}
.service-card:hover,.project-card:hover,.portfolio-entry:hover { border-color:#365b9e; box-shadow:0 20px 50px rgba(0,0,0,.28),0 0 30px rgba(55,95,220,.06); }
.service-card p,.project-content p,.feature-grid p,.about-values p,.portfolio-entry p,.process-inline p,.case-content > p:not(.eyebrow),.case-feature-list p { color:#91a0b6; }
.service-icon { background:rgba(79,124,255,.12); color:#79a0ff; }
.service-number { color:#314769; }
.service-card-featured { background:linear-gradient(145deg,#102344,#0b1930); }

.project-visual { border-bottom-color:#1b2d49; background:#0b1930; }
.project-content { background:transparent; }
.project-topline span,.project-tags span { border-color:#263b5c; background:#0a1930; color:#8ea0bb; }
.case-line { border-color:#1b2d49; background:#08182d; }
.case-line strong { color:#dfe8f6; }.case-line span{color:#8394ad}

.tech-list span { color:#aab7ca; }
.faq-list summary { color:#eef3fb; }
.faq-list details p { color:#8fa0b8; }

.contact-card { border-color:#203756; background:rgba(10,25,46,.75); }
.contact-content-light { color:var(--text); }
.contact-content-light > p,.contact-content-light .contact-points p { color:var(--text-soft); }
.contact-content-light .contact-points strong { color:#fff; }
.form-group input,.form-group select,.form-group textarea { border-color:#223a5c; background:#0a1a31; color:#fff; }
.form-group label { color:#dce5f3; }

.site-footer { border-top-color:#172842; background:#040b15; }
.footer-main,.footer-bottom { border-color:#172842!important; }
.site-footer a:hover { color:#fff; }

.internal-page,.legal-page,.contact-page,.case-page { background:var(--bg); }
.internal-hero {
    background:
      radial-gradient(circle at 78% 20%,rgba(54,91,203,.18),transparent 32%),
      linear-gradient(180deg,#071323,#06101f);
    border-bottom-color:#172842;
}
.breadcrumb { color:#6f8099; }
.internal-lead { color:#96a5ba; }
.process-inline > div { border-color:#1b2d49; }
.cta-section { background:var(--bg); }
.cta-panel { border:1px solid #21385a; background:radial-gradient(circle at 15% 15%,rgba(79,124,255,.19),transparent 35%),linear-gradient(135deg,#0b1a31,#081426); box-shadow:var(--shadow-lg); }
.portfolio-entry-secondary { background:linear-gradient(145deg,rgba(11,26,45,.9),rgba(8,20,36,.9)); }
.portfolio-secondary-label strong { color:#eef3fb; }
.legal-container section p,.legal-lead,.error-card p { color:#94a3b8; }
.error-card { border:1px solid #1b2d49; background:#0b1729; }

@media (max-width: 1080px) {
    .hero-grid { grid-template-columns:1fr 1fr; gap:40px; }
    .dashboard-shell { width:100%; right:0; }
    .code-float { left:-10px; }
    .phone-mockup { right:-12px; }
}
@media (max-width: 900px) {
    .hero { padding-top:130px; }
    .hero-grid { grid-template-columns:1fr; }
    .hero-content { max-width:760px; }
    .hero h1 { max-width:760px; }
    .hero-visual { min-height:500px; margin-top:10px; }
    .product-stage { max-width:720px; margin-inline:auto; }
    .dashboard-shell { right:30px; width:88%; }
    .code-float { left:15px; }
    .phone-mockup { right:0; }
    .modern-highlights { grid-template-columns:repeat(2,1fr); }
    .modern-highlights > div:nth-child(2) { border-right:0; }
}
@media (max-width: 620px) {
    .section { padding:76px 0; }
    .hero { min-height:auto; padding:116px 0 38px; }
    .hero h1 { font-size:clamp(3rem,14vw,4.2rem); }
    .hero-actions { align-items:stretch; flex-direction:column; }
    .hero-actions .button { width:100%; }
    .hero-proof { gap:10px 18px; }
    .hero-visual { min-height:390px; }
    .product-stage { min-height:380px; transform:scale(.88); transform-origin:top center; margin-bottom:-45px; }
    .dashboard-shell { top:8px; right:0; width:100%; height:345px; }
    .dashboard-body { grid-template-columns:45px 1fr; }
    .dashboard-main { padding:15px; }
    .metric-row article:nth-child(3) { display:none; }
    .metric-row { grid-template-columns:repeat(2,1fr); }
    .chart-panel { height:105px; }
    .code-float { left:-8px; bottom:0; width:210px; }
    .phone-mockup { right:-7px; bottom:-10px; width:112px; height:228px; }
    .stage-badge { display:none; }
    .modern-highlights { margin-top:0; grid-template-columns:1fr 1fr; }
    .modern-highlights > div { padding:16px 12px; }
}

/* AlexDev V5 — faithful layout reconstruction, 2026-09-07.
   Shared tokens and internal-page components remain in style.css. */
:root{--container:1360px;--header-height:72px;--bg:#071324;--bg-soft:#0a182b;--surface:#101f35;--surface-dark:#071324;--surface-dark-alt:#101f35;--text:#f5f7ff;--text-soft:#a8b7ce;--border:#253b5a;--primary:#4d80ff;--primary-dark:#3266ed;--primary-soft:rgba(77,128,255,.15);--accent:#8c70ff;--success:#56dca7;--shadow-sm:0 12px 32px rgba(0,0,0,.15);--shadow-lg:0 28px 80px rgba(0,0,0,.3)}
html{background:var(--bg);scroll-padding-top:calc(var(--header-height) + 18px)}
body{background:var(--bg);color:var(--text);overflow-x:clip}
body::before{opacity:.45}
.container{width:min(calc(100% - 64px),var(--container))}
body,h1,h2,h3,button,input,select,textarea{font-family:Inter,system-ui,sans-serif}
h1,h2,h3{letter-spacing:-.045em}
h2{font-size:clamp(1.8rem,2.8vw,2.9rem)}
h3{font-size:1.2rem}
svg{width:1.25em;height:1.25em;flex-shrink:0}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #8eb4ff;outline-offset:4px}
.site-header,.site-header.scrolled{height:var(--header-height);background:rgba(7,19,36,.93);border-bottom:1px solid rgba(118,153,210,.13);box-shadow:none;backdrop-filter:blur(18px)}
.header-inner{gap:18px}.brand{white-space:nowrap;font-size:1.5rem;color:#fff}.brand-mark{width:38px;height:38px;border-radius:10px}.main-nav{gap:34px;margin-left:auto}.main-nav>a:not(.button){font-size:.86rem;color:#cbd6e8;font-weight:600}.main-nav>a:not(.button):hover,.main-nav>a[aria-current=page]:not(.button){color:#fff}.main-nav>a:not(.button).active::after{transform:scaleX(1)}
.button{min-height:46px;padding:11px 19px;border-radius:10px;background:linear-gradient(135deg,#4083ff,#4261ee);border-color:#648fff;box-shadow:0 9px 26px rgba(50,100,240,.17);font-size:.87rem}.button svg{width:17px;height:17px}.button-secondary{background:rgba(11,24,44,.72);border-color:#4b638a;color:#e9efff;box-shadow:none}.button-secondary:hover{background:#172d4b;border-color:#7da6ff;color:white}.button-small{min-height:39px;padding:9px 16px;font-size:.82rem}
.v5-theme-toggle{display:grid;place-items:center;width:38px;height:38px;border:1px solid #263d62;border-radius:11px;background:#142746;color:#b8cbff;cursor:pointer;margin-left:6px;transition:background .2s,color .2s}.v5-theme-toggle:hover{background:#1d3960;color:#fff}.v5-theme-toggle svg{width:19px;height:19px}
.eyebrow{font-size:.7rem;letter-spacing:.16em;color:#83a6ff;margin-bottom:16px;font-weight:800}.eyebrow>span{width:18px;height:2px}.v5-section .eyebrow{margin-bottom:14px}
/* Hero: editorial column, real layered product composition, separate benefit band. */
.v5-hero{position:relative;padding:calc(var(--header-height) + 45px) 0 0;overflow:hidden;background:radial-gradient(ellipse at 78% 36%,rgba(25,68,153,.23),transparent 43%),radial-gradient(ellipse at 12% 16%,rgba(37,70,140,.11),transparent 38%),#071324}
.v5-hero::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(100,150,240,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(100,150,240,.045) 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(to bottom,transparent 5%,#000 55%,transparent 100%)}
.v5-hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);gap:38px;align-items:center;min-height:492px;padding-bottom:43px}
.v5-hero-copy{position:relative;z-index:3;padding-bottom:8px}.v5-hero-copy h1{font-size:clamp(2.9rem,3.8vw,4rem);line-height:1.105;letter-spacing:-.055em;margin:0 0 22px;font-weight:800;max-width:610px}.v5-hero-copy h1 span{display:inline-block;background:linear-gradient(100deg,#4384ff,#a17cff);-webkit-background-clip:text;background-clip:text;color:transparent}.v5-hero-copy>p:not(.eyebrow){font-size:1.015rem;line-height:1.7;color:#b6c2d5;max-width:530px;margin:0 0 24px}.v5-actions{display:flex;flex-wrap:wrap;gap:12px}.v5-actions .button{min-height:46px}.v5-actions .button-secondary svg:last-child{display:none}.v5-microproof{display:flex;align-items:center;flex-wrap:wrap;gap:10px 18px;margin-top:20px;font-size:.74rem;color:#92a5c1}.v5-microproof span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.v5-microproof svg{width:13px;height:13px;color:#6b9cff}
.v5-stage{height:490px;position:relative;min-width:0;isolation:isolate}.v5-stage-glow{position:absolute;inset:10% 0 0;background:radial-gradient(ellipse at 54% 60%,rgba(37,103,255,.28),transparent 64%);filter:blur(16px);z-index:-1}.v5-dashboard{position:absolute;top:8px;right:36px;width:88%;height:365px;border:1px solid #5273b2;border-radius:18px;background:#0d1c32;box-shadow:0 0 0 4px rgba(54,113,255,.045),0 0 48px rgba(45,102,245,.16),0 30px 70px rgba(0,0,0,.36);overflow:hidden;transform:perspective(1500px) rotateY(-3deg) rotateX(1deg)}
.v5-window-top{height:39px;display:flex;align-items:center;gap:14px;padding:0 15px;border-bottom:1px solid #243a59;font-size:.65rem;color:#7189aa}.v5-dots{display:flex;gap:5px;align-items:center}.v5-dots i{display:block;width:7px;height:7px;border-radius:50%;background:#f36a7c}.v5-dots i:nth-child(2){background:#f5bb5e}.v5-dots i:nth-child(3){background:#4bd998}.v5-window-user{margin-left:auto;display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:#3976ed;color:white;font-weight:800}
.v5-dashboard-body{height:calc(100% - 39px);display:grid;grid-template-columns:142px minmax(0,1fr)}.v5-dash-sidebar{border-right:1px solid #263a58;padding:13px 9px;background:#101e34;display:flex;flex-direction:column;gap:6px}.v5-dash-sidebar>span,.v5-dash-brand{display:flex;align-items:center;gap:8px;white-space:nowrap;padding:8px;border-radius:6px;font-size:.59rem;color:#91a6c2}.v5-dash-sidebar svg{width:13px;height:13px}.v5-dash-brand{font-size:.7rem;color:#fff;padding-bottom:13px}.v5-dash-brand svg{color:#70a2ff}.v5-dash-sidebar .selected{background:linear-gradient(110deg,#285ad2,#386ff4);color:#fff}.v5-dash-main{padding:17px 17px 14px;min-width:0}.v5-dash-title{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:15px}.v5-dash-title strong{font-size:.9rem;display:block}.v5-dash-title small{display:block;font-size:.59rem;color:#8296b4;margin-top:5px}.v5-dash-title>span{font-size:.56rem;color:#9aacca;padding:6px 8px;border:1px solid #2a405f;border-radius:6px;white-space:nowrap}.v5-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:10px}.v5-metrics>div{border:1px solid #273d5d;border-radius:8px;background:#122641;padding:11px;min-width:0}.v5-metrics small{display:block;color:#8195b3;font-size:.57rem;white-space:nowrap}.v5-metrics strong{display:block;margin:5px 0;font-size:1.1rem;color:#fff}.v5-metrics span{font-size:.52rem;color:#5ad6a2;white-space:nowrap}.v5-dash-lower{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.9fr);gap:9px}.v5-graph,.v5-activity{border:1px solid #273d5d;border-radius:8px;background:#10213a;padding:10px;min-width:0}.v5-graph-title{display:flex;align-items:center;justify-content:space-between;gap:4px}.v5-graph-title strong,.v5-activity>strong{font-size:.59rem}.v5-graph-title small{font-size:.48rem;color:#6e85a7}.v5-graph svg{width:100%;height:91px;margin-top:8px;overflow:visible;background:repeating-linear-gradient(to bottom,transparent 0,transparent 29px,rgba(94,129,187,.12) 30px)}.v5-chart-months{display:flex;justify-content:space-between;color:#7084a2;font-size:.45rem}.v5-activity>div{display:flex;align-items:center;gap:7px;margin-top:13px;font-size:.55rem;white-space:nowrap}.v5-activity i{display:grid;place-items:center;width:17px;height:17px;border-radius:50%;font-style:normal;background:#183e58;color:#61d8a3;font-size:.6rem}.v5-activity small{display:block;margin-top:3px;color:#7084a2;font-size:.46rem}
.v5-code{position:absolute;left:0;bottom:14px;z-index:3;width:282px;border:1px solid #416399;border-radius:12px;background:rgba(9,21,39,.97);box-shadow:0 22px 55px rgba(0,0,0,.45),0 0 32px rgba(47,102,255,.12);overflow:hidden}.v5-code-top{display:flex;align-items:center;gap:12px;height:32px;border-bottom:1px solid #263b5a;padding:0 12px;color:#8498b6;font-size:.6rem}.v5-code pre{margin:0;padding:13px 15px 16px;white-space:pre;overflow:hidden;color:#bdc9dc;font:500 .67rem/1.7 Consolas,monospace}.v5-code .kw{color:#c89dff}.v5-code .str{color:#b5df8b}.v5-code .fn{color:#73a7ff}
.v5-phone{position:absolute;right:0;top:65px;z-index:4;width:137px;height:292px;padding:9px 7px 7px;border-radius:27px;border:2px solid #4b6da8;background:#050c18;box-shadow:0 22px 50px rgba(0,0,0,.5),0 0 26px rgba(50,114,255,.15);transform:rotate(4deg)}.v5-phone::before{content:"";position:absolute;inset:4px;border:1px solid #263854;border-radius:23px;pointer-events:none}.v5-phone-notch{position:absolute;z-index:2;top:10px;left:50%;width:46px;height:10px;background:#050c18;border-radius:0 0 9px 9px;transform:translateX(-50%)}.v5-phone-top{display:flex;justify-content:space-between;margin:5px 6px 15px;font-size:.43rem;color:#9bb3d8}.v5-phone-brand{display:flex;align-items:center;gap:4px;font-size:.56rem;font-weight:800;color:#fff;margin:0 5px 11px}.v5-phone-brand svg{width:13px;height:13px;color:#5b91ff}.v5-phone-banner{margin:0 2px;padding:13px 9px 12px;border:1px solid #2c4670;border-radius:9px;background:linear-gradient(140deg,#1a3b77,#132849 75%)}.v5-phone-banner small{color:#85adff;font-size:.42rem}.v5-phone-banner strong{display:block;font-size:.67rem;line-height:1.4;margin:8px 0 13px}.v5-phone-progress{height:4px;background:#294773;border-radius:4px}.v5-phone-progress i{display:block;width:75%;height:100%;border-radius:4px;background:#5894ff}.v5-phone-menu{display:grid;gap:6px;margin:11px 3px}.v5-phone-menu span{display:flex;align-items:center;gap:6px;padding:7px 5px;border:1px solid #1e3453;border-radius:5px;background:#112540;color:#a7b8d1;font-size:.47rem}.v5-phone-menu svg{width:10px;height:10px;color:#83a9ff}.v5-phone-tabs{display:flex;justify-content:space-around;color:#688fce;font-size:.7rem;padding-top:3px}
.v5-status{position:absolute;z-index:5;right:62px;bottom:0;width:204px;padding:13px;border:1px solid #35577f;border-radius:12px;background:rgba(12,30,52,.97);box-shadow:0 15px 45px rgba(0,0,0,.4)}.v5-status>div:first-child{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.v5-status strong{font-size:.7rem}.v5-status small{font-size:.47rem;color:#62dba7;white-space:nowrap}.v5-status small i{display:inline-block;width:5px;height:5px;background:#5ae7a7;border-radius:50%}.v5-status>span{display:block;font-size:.57rem;color:#bed0e7;padding:5px 0}.v5-status>span::first-letter{color:#5de0a6}.v5-status-pending{color:#6e849f!important}.v5-status-footer{display:flex;align-items:center;justify-content:center;gap:5px;margin-top:10px;padding:8px 4px;background:#143d40;border:1px solid #2a7769;border-radius:6px;color:#85ecc4;font-size:.55rem;font-weight:700}.v5-status-footer svg{width:12px;height:12px}.v5-scribble{position:absolute;right:0;top:-31px;color:#9cbaff;font-size:.81rem;line-height:1.45;font-style:italic;transform:rotate(-7deg);text-align:center}.v5-scribble span{display:block;font-size:1.65rem;margin-top:4px}
.v5-benefit-bar{position:relative;z-index:2;border-block:1px solid #203553;background:rgba(10,24,44,.78)}.v5-benefits{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:19px 0}.v5-benefit{display:flex;align-items:center;gap:13px;padding:0 22px;border-right:1px solid #263c5d;min-width:0}.v5-benefit:first-child{padding-left:0}.v5-benefit:last-child{border:0;padding-right:0}.v5-icon{display:grid;place-items:center;flex:none;width:46px;height:46px;border-radius:11px;border:1px solid #28436e;background:linear-gradient(145deg,#1a3761,#112745);color:#79a4ff}.v5-icon svg{width:23px;height:23px}.v5-benefit strong{display:block;color:#edf3ff;font-size:.8rem;margin-bottom:5px}.v5-benefit p{font-size:.7rem;color:#8fa2bd;line-height:1.4;margin:0}
/* Two-column sections and compact, product-led cards. */
.v5-section{position:relative;padding:40px 0;border-bottom:1px solid #1d304c;background:linear-gradient(180deg,#09172a,#081526)}.v5-split-section{display:grid;grid-template-columns:minmax(230px,280px) minmax(0,1fr);gap:32px;align-items:start}.v5-section-intro h2{font-size:clamp(1.6rem,2vw,2.05rem);line-height:1.14;letter-spacing:-.045em;margin:0 0 13px}.v5-section-intro>p:not(.eyebrow){font-size:.82rem;line-height:1.7;color:#a0aec5;margin-bottom:18px}.v5-outline-link{display:inline-flex;align-items:center;justify-content:center;gap:17px;min-height:34px;padding:7px 12px;border:1px solid #425d83;border-radius:8px;color:#dce7ff;font-size:.73rem;font-weight:700}.v5-outline-link:hover{background:#172d4b;color:#fff}.v5-outline-link svg{width:14px;height:14px}
.v5-service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.v5-service-card{position:relative;min-width:0;min-height:218px;padding:22px 20px 20px;border:1px solid #2a4162;border-radius:12px;background:linear-gradient(145deg,#142640,#0e1e35);transition:transform .2s,border-color .2s,box-shadow .2s}.v5-service-card:hover{transform:translateY(-4px);border-color:#5275ad;box-shadow:0 18px 45px rgba(0,0,0,.2)}.v5-service-card .v5-icon{width:42px;height:42px;margin-bottom:18px}.v5-service-card h3{font-size:1rem;line-height:1.3;margin:0 0 9px;letter-spacing:-.025em}.v5-service-card p{font-size:.77rem;line-height:1.6;color:#a4b3c9;margin:0;padding-right:14px}.v5-service-card>a{display:grid;place-items:center;position:absolute;right:15px;bottom:15px;width:30px;height:30px;border:1px solid #2e4669;border-radius:50%;background:#192f50;color:#dce8ff}.v5-service-card>a:hover{background:#3268e9;color:#fff}.v5-service-card>a svg{width:16px;height:16px}.v5-secondary-tag{position:absolute;top:26px;right:15px;font-size:.56rem;color:#9bb4dd;border:1px solid #2e476b;border-radius:99px;padding:3px 7px}.v5-service-card:has(.v5-secondary-tag) h3{max-width:195px}
.v5-portfolio-section{padding-top:36px}.v5-project-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.v5-project-card{min-width:0;border:1px solid #293f60;border-radius:10px;background:linear-gradient(145deg,#13243c,#0d1d33);overflow:hidden;transition:transform .2s,border-color .2s,box-shadow .2s}.v5-project-card:hover{transform:translateY(-4px);border-color:#5278b7;box-shadow:0 18px 40px rgba(0,0,0,.25)}.v5-project-link{display:flex;flex-direction:column;height:100%;color:inherit}.v5-project-head{display:flex;align-items:center;gap:9px;padding:12px 10px 0;min-height:53px}.v5-project-head>div{min-width:0}.v5-project-head h3{font-size:.72rem;line-height:1.25;letter-spacing:-.025em;margin:0 0 4px;white-space:normal}.v5-project-head p{font-size:.6rem;color:#91a5c0;margin:0;line-height:1.35}.v5-project-icon{display:grid;place-items:center;flex:none;width:33px;height:33px;border-radius:7px;color:#fff;background:linear-gradient(135deg,#426dff,#7e60f1)}.v5-project-icon svg{width:19px;height:19px}.v5-project-finances .v5-project-icon{background:linear-gradient(135deg,#168f6d,#23bf8c)}.v5-project-intervention .v5-project-icon{background:linear-gradient(135deg,#db6d34,#f4a048)}.v5-project-communication .v5-project-icon{background:linear-gradient(135deg,#6948d9,#a06aff)}.v5-project-android .v5-project-icon{background:linear-gradient(135deg,#258c55,#59c779)}.v5-project-tag{align-self:flex-start;margin:9px 10px 10px;padding:4px 7px;border-radius:99px;border:1px solid #2b496e;color:#9ebcff;background:#102746;font-size:.56rem}.v5-project-image{height:126px;margin:0 8px 8px;border-radius:6px 6px 0 0;overflow:hidden;background:#09172a;border:1px solid #263d5d;border-bottom:0}.v5-project-image img{display:block;width:100%;height:100%;object-fit:cover;object-position:top center}.v5-project-arrow{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:0 11px 10px;font-size:.62rem;color:#7fa9ff}.v5-project-arrow svg{width:14px;height:14px}
.v5-ai-section{padding:22px 0 30px;background:#071324}.v5-ai-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:14px}.v5-ai-panel{display:grid;grid-template-columns:52px minmax(0,1fr) minmax(170px,.65fr);gap:16px;align-items:center;padding:19px 21px;border:1px solid #29436a;border-radius:12px;background:linear-gradient(110deg,#12243d,#0e1d33)}.v5-ai-symbol{display:grid;place-items:center;width:51px;height:51px;border-radius:50%;background:#203b76;color:#b5a0ff;border:1px solid #3654a0}.v5-ai-symbol svg{width:27px;height:27px}.v5-ai-panel .eyebrow{font-size:.59rem;margin:0 0 5px;letter-spacing:.11em}.v5-ai-panel .eyebrow>span{display:none}.v5-ai-panel h2{font-size:1rem;line-height:1.35;margin:0 0 7px;letter-spacing:-.025em}.v5-ai-panel p:not(.eyebrow){font-size:.7rem;line-height:1.65;color:#a8b8ce;margin:0}.v5-ai-checks{display:grid;gap:11px;border-left:1px solid #2b4264;padding-left:20px}.v5-ai-checks span{display:flex;align-items:center;gap:7px;font-size:.65rem;color:#b4c4dd}.v5-ai-checks svg{width:13px;height:13px;color:#8ba7ff}
.v5-cta-panel{position:relative;display:flex;align-items:center;justify-content:space-between;gap:14px;overflow:hidden;padding:24px;border:1px solid #7585fa;border-radius:12px;background:linear-gradient(115deg,#345de7,#4f69fa 58%,#785bf0);box-shadow:0 15px 40px rgba(43,73,200,.15)}.v5-cta-panel>div:first-child,.v5-cta-button{position:relative;z-index:1}.v5-cta-panel h2{font-size:1.3rem;line-height:1.2;margin:0 0 6px;letter-spacing:-.035em}.v5-cta-panel p{font-size:.66rem;margin:0;color:#d6e2ff}.v5-cta-button{display:flex;align-items:center;gap:8px;white-space:nowrap;background:#fff;color:#2854cb;border-radius:8px;padding:11px 12px;font-size:.7rem;font-weight:800}.v5-cta-button:hover{color:#173bb1;background:#ecf2ff}.v5-cta-button svg{width:15px;height:15px}.v5-cta-mountains{position:absolute;bottom:-2px;right:-10px;left:0;height:43px;background:linear-gradient(160deg,transparent 0 25%,rgba(15,40,113,.24) 25% 33%,transparent 33% 43%,rgba(11,39,128,.24) 43% 55%,transparent 55%),linear-gradient(20deg,rgba(8,29,107,.36),transparent 65%);clip-path:polygon(0 100%,0 78%,8% 62%,15% 84%,25% 42%,35% 83%,46% 27%,58% 78%,70% 48%,81% 87%,93% 35%,100% 67%,100% 100%)}
/* Internal pages retain their information architecture; all use the same visual system. */
.internal-hero{padding-top:calc(var(--header-height) + 70px);background:radial-gradient(ellipse at 85% 20%,rgba(39,91,211,.18),transparent 45%),#071324}.internal-hero h1{font-size:clamp(2.6rem,4.1vw,4.3rem)}.internal-page .section,.case-page .section,.contact-page .section{padding-block:80px}.section-soft{background:#09182c}.site-footer{background:#050e1c}.site-footer .footer-main{padding-top:50px}.footer-bottom{padding-block:20px}.contact-section{background:radial-gradient(ellipse at 15% 15%,rgba(45,90,190,.12),transparent 45%),#09182c}.v5-contact-section{padding:68px 0 85px}.contact-card{background:#0e1f36}.v5-contact-section .contact-content h2{font-size:clamp(2rem,3vw,3rem)}
/* A usable alternate light theme: controls, form fields and illustrations keep contrast. */
html[data-theme=light]{--bg:#f5f8ff;--bg-soft:#edf3fc;--surface:#fff;--surface-dark:#edf3fc;--surface-dark-alt:#e8f0fc;--text:#14223b;--text-soft:#596b86;--border:#cdd9eb;--primary:#315ee8;--primary-dark:#234bc8;--primary-soft:#e6edff;--accent:#6652d9;--shadow-sm:0 12px 32px rgba(25,53,102,.07);--shadow-lg:0 28px 80px rgba(25,53,102,.13);color-scheme:light}
html[data-theme=light] body{background:#f5f8ff;color:var(--text)}html[data-theme=light] body::before{opacity:.2}html[data-theme=light] .site-header,html[data-theme=light] .site-header.scrolled{background:rgba(246,249,255,.95);border-color:#d7e1f0}html[data-theme=light] .brand{color:#14223b}html[data-theme=light] .main-nav>a:not(.button){color:#3c4d68}html[data-theme=light] .main-nav>a:not(.button):hover{color:#234bc8}html[data-theme=light] .menu-toggle span{background:#14223b}html[data-theme=light] .v5-theme-toggle{background:#e8efff;color:#315ee8;border-color:#cedcf4}html[data-theme=light] .button-secondary{background:#fff;color:#234bc8;border-color:#c4d3ed}html[data-theme=light] .v5-hero{background:radial-gradient(ellipse at 80% 30%,#e3ebff,transparent 50%),#f5f8ff}html[data-theme=light] .v5-hero-copy h1{color:#16233b}html[data-theme=light] .v5-hero-copy>p:not(.eyebrow){color:#566984}html[data-theme=light] .v5-microproof{color:#667994}html[data-theme=light] .v5-benefit-bar{background:#edf3fc;border-color:#d5e0f0}html[data-theme=light] .v5-benefit{border-color:#d0dcf0}html[data-theme=light] .v5-benefit strong{color:#14223b}html[data-theme=light] .v5-benefit p{color:#637590}html[data-theme=light] .v5-icon{background:#e1eaff;border-color:#cbdafa;color:#315ee8}html[data-theme=light] .v5-section{background:#f5f8ff;border-color:#dce5f2}html[data-theme=light] .v5-section-intro h2{color:#14223b}html[data-theme=light] .v5-section-intro>p:not(.eyebrow){color:#596b86}html[data-theme=light] .v5-outline-link{color:#315ee8;border-color:#bdceea}html[data-theme=light] .v5-outline-link:hover{background:#e6edff}html[data-theme=light] .v5-service-card,html[data-theme=light] .v5-project-card{background:#fff;border-color:#d4dfef;color:#14223b;box-shadow:0 8px 25px rgba(30,60,110,.04)}html[data-theme=light] .v5-service-card p,html[data-theme=light] .v5-project-head p{color:#62748e}html[data-theme=light] .v5-service-card>a{background:#e8efff;color:#315ee8;border-color:#cedcf4}html[data-theme=light] .v5-secondary-tag,html[data-theme=light] .v5-project-tag{background:#ecf2ff;color:#315ee8;border-color:#d5e1f6}html[data-theme=light] .v5-ai-panel{background:#fff;border-color:#d3deef;color:#14223b}html[data-theme=light] .v5-ai-panel p:not(.eyebrow),html[data-theme=light] .v5-ai-checks span{color:#596b86}html[data-theme=light] .v5-ai-checks{border-color:#d5e1f1}html[data-theme=light] .v5-contact-section,html[data-theme=light] .contact-section{background:#edf3fc}html[data-theme=light] .contact-card{background:#fff;border-color:#d4dfef}html[data-theme=light] .contact-content,html[data-theme=light] .contact-content h2,html[data-theme=light] .contact-content-light{color:#14223b}html[data-theme=light] .contact-content>p,html[data-theme=light] .contact-content-light>p,html[data-theme=light] .contact-content-light .contact-points p{color:#596b86}html[data-theme=light] .contact-content-light .contact-points strong{color:#14223b}html[data-theme=light] .form-group input,html[data-theme=light] .form-group select,html[data-theme=light] .form-group textarea{background:#fff;border-color:#c9d6e8;color:#14223b}html[data-theme=light] .form-group label{color:#233652}html[data-theme=light] .internal-page,html[data-theme=light] .legal-page,html[data-theme=light] .contact-page,html[data-theme=light] .case-page{background:#f5f8ff}html[data-theme=light] .internal-hero{background:linear-gradient(130deg,#edf3ff,#f8faff);border-color:#dce5f2}html[data-theme=light] .internal-lead,html[data-theme=light] .legal-lead,html[data-theme=light] .legal-container section p{color:#596b86}html[data-theme=light] .service-card,html[data-theme=light] .project-card,html[data-theme=light] .feature-grid article,html[data-theme=light] .about-values article,html[data-theme=light] .case-summary,html[data-theme=light] .case-feature-list>div,html[data-theme=light] .portfolio-entry,html[data-theme=light] .process-inline,html[data-theme=light] .pill-grid span,html[data-theme=light] .tech-list span,html[data-theme=light] .faq-list details,html[data-theme=light] .error-card{background:#fff;border-color:#d4dfef;color:#14223b}html[data-theme=light] .service-card p,html[data-theme=light] .project-content p,html[data-theme=light] .feature-grid p,html[data-theme=light] .about-values p,html[data-theme=light] .portfolio-entry p,html[data-theme=light] .case-content>p:not(.eyebrow),html[data-theme=light] .case-feature-list p,html[data-theme=light] .faq-list details p{color:#596b86}html[data-theme=light] .faq-list summary,html[data-theme=light] .case-line strong{color:#14223b}html[data-theme=light] .case-line{background:#f4f7fd;border-color:#d4dfef}html[data-theme=light] .case-line span,html[data-theme=light] .tech-list span{color:#596b86}html[data-theme=light] .cta-section{background:#f5f8ff}html[data-theme=light] .cta-panel{background:linear-gradient(135deg,#e5edff,#f5f8ff);color:#14223b;border-color:#d1def4}html[data-theme=light] .site-footer{background:#eaf0fa;color:#14223b;border-color:#d4dfef}html[data-theme=light] .site-footer a{color:#405471}html[data-theme=light] .site-footer a:hover{color:#315ee8}html[data-theme=light] .footer-main,html[data-theme=light] .footer-bottom{border-color:#d4dfef!important}html[data-theme=light] .brand-footer{color:#14223b!important}
/* Responsive: no horizontal scrolling; dashboard scales as one illustration. */
@media(max-width:1200px){.container{width:min(calc(100% - 48px),var(--container))}.main-nav{gap:22px}.v5-hero-grid{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:20px}.v5-hero-copy h1{font-size:clamp(2.7rem,4vw,3.7rem)}.v5-stage{transform:scale(.88);transform-origin:center right;margin-left:-25px}.v5-split-section{grid-template-columns:230px minmax(0,1fr);gap:22px}.v5-service-card{padding:18px 16px}.v5-service-card h3{font-size:.93rem}.v5-ai-panel{grid-template-columns:45px minmax(0,1fr)}.v5-ai-checks{grid-column:2;border-left:0;border-top:1px solid #2b4264;padding:10px 0 0;display:flex;flex-wrap:wrap;gap:8px 15px}}
@media(max-width:1000px){.v5-hero-grid{grid-template-columns:1fr;gap:20px;padding-bottom:25px}.v5-hero-copy{max-width:650px}.v5-hero-copy h1{font-size:clamp(3rem,6vw,4.3rem)}.v5-stage{width:min(100%,720px);height:490px;margin:0 auto;transform:none}.v5-dashboard{right:30px}.v5-benefits{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 0}.v5-benefit:nth-child(2){border:0}.v5-benefit:nth-child(3){padding-left:0}.v5-split-section{grid-template-columns:1fr}.v5-section-intro{max-width:650px}.v5-service-card{min-height:220px}.v5-project-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.v5-ai-grid{grid-template-columns:1fr}.v5-ai-panel{grid-template-columns:55px minmax(0,1fr) minmax(170px,.5fr)}.v5-ai-checks{grid-column:auto;border-top:0;border-left:1px solid #2b4264;padding:0 0 0 20px;display:grid}}
@media(max-width:900px){.site-header .menu-toggle{display:block;order:3;margin-left:auto}.site-header .v5-theme-toggle{margin-left:auto}.site-header .main-nav{position:fixed;top:var(--header-height);left:0;right:0;display:none;flex-direction:column;align-items:stretch;gap:0;margin:0;padding:16px 24px 24px;background:#0a192e;border-bottom:1px solid #294264;box-shadow:0 25px 50px rgba(0,0,0,.35)}.site-header .main-nav.open{display:flex}.site-header .main-nav>a{padding:13px 10px}.site-header .main-nav .button{margin-top:10px}.site-header .main-nav>a:not(.button){font-size:.95rem}.menu-open{overflow:hidden}html[data-theme=light] .site-header .main-nav{background:#f5f8ff;border-color:#d4dfef}}
@media(max-width:700px){:root{--header-height:66px}.container{width:calc(100% - 36px)}.brand{font-size:1.35rem}.brand-mark{width:36px;height:36px}.v5-hero{padding-top:calc(var(--header-height) + 34px)}.v5-hero-copy h1{font-size:clamp(2.55rem,8.6vw,3.8rem)}.v5-hero-copy>p:not(.eyebrow){font-size:.96rem}.v5-microproof{gap:9px 14px}.v5-stage{height:360px;width:100%;margin:10px 0 0;overflow:visible}.v5-dashboard{width:650px;height:365px;top:0;right:auto;left:50%;transform:translateX(-50%) scale(.79);transform-origin:top center}.v5-code{left:0;bottom:0;transform:scale(.78);transform-origin:bottom left}.v5-phone{right:0;top:55px;transform:rotate(4deg) scale(.8);transform-origin:top right}.v5-status{right:7%;bottom:-5px;transform:scale(.8);transform-origin:bottom right}.v5-scribble{display:none}.v5-benefits{padding:15px 0;gap:0}.v5-benefit{padding:12px;gap:9px}.v5-benefit:first-child,.v5-benefit:nth-child(3){padding-left:0}.v5-benefit:nth-child(3),.v5-benefit:nth-child(4){border-top:1px solid #263c5d}.v5-benefit .v5-icon{width:36px;height:36px}.v5-benefit .v5-icon svg{width:19px;height:19px}.v5-benefit strong{font-size:.72rem}.v5-benefit p{font-size:.61rem}.v5-section{padding:40px 0}.v5-section-intro h2{font-size:1.8rem}.v5-service-grid{grid-template-columns:1fr}.v5-service-card{min-height:185px;padding:19px}.v5-service-card .v5-icon{margin-bottom:13px}.v5-service-card p{max-width:450px}.v5-project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.v5-ai-panel{grid-template-columns:1fr;gap:12px}.v5-ai-checks{grid-column:auto;border-left:0;border-top:1px solid #2b4264;padding:14px 0 0;display:grid}.v5-cta-panel{flex-wrap:wrap}.v5-cta-button{width:100%;justify-content:center}.v5-contact-section{padding:60px 0}.v5-project-image{height:145px}.internal-page .section,.case-page .section,.contact-page .section{padding-block:60px}}
@media(max-width:430px){.v5-hero-copy h1{font-size:clamp(2.3rem,10vw,2.9rem)}.v5-actions{flex-direction:column;align-items:stretch}.v5-actions .button{width:100%}.v5-stage{height:315px}.v5-dashboard{transform:translateX(-50%) scale(.67)}.v5-code{transform:scale(.65)}.v5-phone{transform:rotate(4deg) scale(.68)}.v5-status{transform:scale(.68);right:1%}.v5-project-grid{gap:9px}.v5-project-head{align-items:flex-start;gap:6px;padding:10px 7px 0}.v5-project-icon{width:27px;height:27px}.v5-project-icon svg{width:15px;height:15px}.v5-project-head h3{font-size:.67rem}.v5-project-head p{font-size:.56rem}.v5-project-image{height:110px;margin-inline:5px}.v5-project-tag{margin-inline:7px}.v5-project-arrow{font-size:.56rem;padding-inline:7px}.v5-benefit p{font-size:.58rem}.v5-benefit{gap:7px;padding:10px 7px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}.reveal{opacity:1!important;transform:none!important}}
.v5-deeper{padding-block:76px;background:#09182c;border-top:1px solid #1d304c}.v5-deeper .section-heading{margin-bottom:34px}.v5-deeper .section-heading h2{font-size:clamp(1.9rem,2.8vw,2.8rem)}.v5-deeper .value-card,.v5-deeper .process-card{background:#10213a;border-color:#293f60}.v5-deeper .tech-list span{font-size:.82rem}.v5-deeper .faq-list details{background:#10213a}.v5-deeper .faq-list details summary{font-size:.98rem}.v5-deeper .faq-list details p{font-size:.88rem}
html[data-theme=light] .v5-deeper{background:#edf3fc;border-color:#d4dfef}html[data-theme=light] .v5-deeper .value-card,html[data-theme=light] .v5-deeper .process-card,html[data-theme=light] .v5-deeper .faq-list details{background:#fff;border-color:#d4dfef;color:#14223b}html[data-theme=light] .v5-deeper .faq-list details summary{color:#14223b}
.portfolio-entry{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.8fr);align-items:center;gap:30px;overflow:hidden}.v5-portfolio-preview{grid-column:2;grid-row:1;position:relative;overflow:hidden;border:1px solid #2b4467;border-radius:10px;background:#0b1930;aspect-ratio:1.6}.v5-portfolio-preview img{display:block;width:100%;height:100%;object-fit:cover;object-position:top}.v5-portfolio-preview>span{position:absolute;bottom:0;left:0;right:0;padding:7px 10px;background:linear-gradient(transparent,rgba(5,13,25,.9));font-size:.65rem;color:#b5c9e7}.portfolio-entry>.portfolio-arrow{grid-column:1;grid-row:1;justify-self:end;align-self:end;position:relative}.v5-case-preview{padding-top:36px}.v5-case-preview img{display:block;width:100%;max-width:960px;margin-inline:auto;aspect-ratio:1.6;object-fit:cover;object-position:top;border:1px solid #334e75;border-radius:14px;box-shadow:0 24px 65px rgba(0,0,0,.2)}.v5-case-preview p{text-align:center;font-size:.75rem;color:#8297b4;margin:12px 0 0}.v5-case-preview+.section{padding-top:50px}html[data-theme=light] .v5-portfolio-preview,html[data-theme=light] .v5-case-preview img{border-color:#d0ddef;background:#e4ecf8}html[data-theme=light] .v5-case-preview p{color:#657792}
@media(max-width:700px){.portfolio-entry{grid-template-columns:1fr;gap:15px}.v5-portfolio-preview{grid-column:1;grid-row:auto}.portfolio-entry>.portfolio-arrow{grid-column:1;grid-row:auto}.v5-case-preview{padding-top:24px}}

html{color-scheme:dark}
html[data-theme=light]{color-scheme:light}

.v5-project-site-vitrine{--project-accent:#e7a85b}
.v5-project-site-vitrine .v5-project-icon{color:#f5b970;background:rgba(226,155,69,.12)}







.eh-case-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:25px}.eh-case-actions .button{display:inline-flex;align-items:center;gap:12px}

@media(max-width:700px){.eh-case-actions{flex-direction:column;align-items:stretch}.eh-case-actions .button{justify-content:center}}

.v5-device-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;max-width:960px;margin:20px auto 0}.v5-device-gallery img{display:block;width:100%;height:auto;border-radius:22px;border:1px solid #334e75;background:#0b1930;box-shadow:0 24px 65px rgba(0,0,0,.18)}.v5-case-preview img[src*="concentration-mobile"], .v5-project-image img[src*="concentration-mobile"]{object-position:center}.v5-case-preview img[src*="site-vitrine"], .v5-portfolio-preview img[src*="site-vitrine"], .v5-project-image img[src*="site-vitrine"]{object-position:center}html[data-theme=light] .v5-device-gallery img{border-color:#d0ddef;background:#e4ecf8}@media(max-width:900px){.v5-device-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:700px){.v5-device-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.v5-device-gallery img{border-radius:18px}}
.v53-portfolio-layout{display:grid;grid-template-columns:minmax(0,245px) minmax(0,1fr);gap:32px;align-items:start;min-width:0}
.v53-portfolio-section{overflow:hidden}.v53-portfolio-layout>.v5-section-intro{grid-column:1;grid-row:1/3;min-width:0}.v53-portfolio-layout>.v5-section-intro h2{font-size:clamp(1.65rem,2.3vw,2.4rem)}
.v53-carousel-controls{grid-column:2;grid-row:1;display:flex;justify-content:space-between;align-items:center;gap:12px;min-width:0}.v53-carousel-hint{font-size:.75rem;color:#91a5c0}.v53-carousel-buttons{display:flex;align-items:center;gap:10px}.v53-carousel-status{font-size:.75rem;color:#a9bbd7;min-width:42px;text-align:center;font-variant-numeric:tabular-nums}
.v53-carousel-button{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;border:1px solid #344e75;background:#152944;color:#e6efff;font-size:1.2rem;cursor:pointer;transition:background .2s,border-color .2s}.v53-carousel-button:hover:not(:disabled){background:#254674;border-color:#658ff0}.v53-carousel-button:disabled{opacity:.35;cursor:default}.v53-carousel-button:focus-visible,.v53-project-track:focus-visible{outline:2px solid #82a8ff;outline-offset:3px}
.v53-project-track{grid-column:2;grid-row:2;display:flex;gap:14px;min-width:0;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-padding-inline:2px;scrollbar-width:thin;scrollbar-color:#385980 transparent;overscroll-behavior-x:contain;padding:3px 2px 14px;align-items:stretch}
.v53-project-track>.v5-project-card{flex:0 0 clamp(225px,25vw,290px);scroll-snap-align:start;display:flex;min-width:0}.v53-project-track .v5-project-link{width:100%;display:flex;flex-direction:column}.v53-project-track .v5-project-head{align-items:flex-start;min-height:85px;padding:15px 14px 0;gap:12px}.v53-project-track .v5-project-head h3{font-size:.88rem;line-height:1.35;letter-spacing:-.02em;margin-bottom:6px;white-space:normal}.v53-project-track .v5-project-head p{font-size:.72rem;line-height:1.5}.v53-project-track .v5-project-icon{width:36px;height:36px}.v53-project-track .v5-project-tag{margin:12px 14px;font-size:.65rem;padding:5px 9px}.v53-project-track .v5-project-image{height:170px;margin:0 10px 12px;border:1px solid #2b4365;border-radius:8px;background:#0a1628}.v53-project-track .v5-project-image img{object-fit:cover;object-position:top center}.v53-project-track .v5-project-arrow{margin-top:auto;padding:0 14px 15px;font-size:.72rem;gap:12px}
.v53-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;max-width:960px;margin:24px auto 0}.v53-gallery figure,.v5-device-gallery figure{margin:0;min-width:0}.v53-gallery img{width:100%;height:auto;aspect-ratio:1.6;object-fit:cover;object-position:top;border-radius:12px;border:1px solid #334e75}.v53-gallery figcaption,.v5-device-gallery figcaption{text-align:center;color:#91a5c0;font-size:.78rem;margin-top:10px}.v53-gallery+.section{padding-top:40px}
.v5-device-gallery img{aspect-ratio:auto;object-fit:contain;max-width:100%}.v5-case-preview img[src*="concentration-mobile"]{object-fit:contain;background:#0b1628}.v53-portfolio-layout .v5-project-image img[src*="concentration-mobile"]{object-fit:contain;background:#0b1628}
html[data-theme=light] .v53-carousel-button{background:#fff;border-color:#d1def0;color:#24364f}html[data-theme=light] .v53-carousel-hint,html[data-theme=light] .v53-carousel-status{color:#63758e}html[data-theme=light] .v53-gallery figcaption{color:#63758e}
@media(max-width:1050px){.v53-portfolio-layout{grid-template-columns:1fr;gap:18px}.v53-portfolio-layout>.v5-section-intro{grid-column:1;grid-row:1}.v53-carousel-controls{grid-column:1;grid-row:2}.v53-project-track{grid-column:1;grid-row:3}.v53-project-track>.v5-project-card{flex-basis:clamp(230px,38vw,300px)}}
@media(max-width:700px){.v53-portfolio-layout{gap:16px}.v53-carousel-hint{font-size:.67rem}.v53-project-track>.v5-project-card{flex-basis:min(78vw,290px)}.v53-gallery{grid-template-columns:1fr}.v53-carousel-button{width:36px;height:36px}}
@media(prefers-reduced-motion:reduce){.v53-project-track{scroll-behavior:auto}.v53-carousel-button{transition:none}}


.v6-empty-image{height:100%;display:grid;place-items:center;color:#8fa9cd;background:#10243f;font-size:.8rem}.v6-empty{color:#a8bdd8;padding:20px}.v6-gallery-section{padding-bottom:10px}.v6-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}.v6-gallery-item{margin:0;min-width:0}.v6-gallery-item a{display:block;border:1px solid #2c4262;border-radius:14px;overflow:hidden;background:#0c1729}.v6-gallery-item img{display:block;width:100%;height:auto;max-height:780px;object-fit:contain}.v6-gallery-item figcaption{font-size:.83rem;color:#a9bdd8;margin:10px 3px 0}.v5-project-image .v6-empty-image{min-height:100px}.v5-project-image img{object-fit:cover}.v53-project-track{scrollbar-width:thin}@media(max-width:700px){.v6-gallery{grid-template-columns:1fr;gap:24px}}


/* V6.5.4 — a restrained, accessible automatic portfolio. */
.v53-portfolio-layout{grid-template-columns:minmax(0,210px) minmax(0,1fr);gap:28px}
.v53-portfolio-layout>.v5-section-intro h2{font-size:clamp(1.65rem,2.1vw,2.2rem)}
.v53-carousel-buttons{gap:8px}.v654-carousel-toggle{font-size:1rem;min-width:38px}
.v53-project-track>.v5-project-card{flex-basis:clamp(235px,24vw,300px)}
.v53-project-track .v5-project-image img{object-fit:contain;object-position:center;background:#0a1628}
@media(max-width:1050px){.v53-portfolio-layout{grid-template-columns:1fr;gap:18px}.v53-project-track>.v5-project-card{flex-basis:clamp(230px,38vw,300px)}}
@media(max-width:700px){.v53-carousel-controls{flex-wrap:wrap}.v53-carousel-hint{flex:1 1 100%}.v53-project-track>.v5-project-card{flex-basis:min(78vw,290px)}}
@media(prefers-reduced-motion:reduce){.v53-project-track{scroll-behavior:auto}.v53-carousel-button{transition:none}}

/* V6.6 conversion additions */
/* AlexDev V6.6 — conversion, confiance et accessibilité */
:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid #7fa6ff;outline-offset:3px}
.v66-process-section .section-heading{max-width:760px}.v66-process-intro{max-width:680px;color:rgba(235,243,255,.75);font-size:1.04rem;line-height:1.75;margin-top:14px}
.v66-service-cta{display:inline-flex!important;align-items:center;gap:8px;margin-top:18px;min-height:44px;font-size:.9rem;font-weight:700;color:#84a9ff!important;text-decoration:none}.v66-service-cta:hover{color:#fff!important}.v66-service-cta span{transition:transform .2s ease}.v66-service-cta:hover span{transform:translateX(3px)}
.v66-trust-section,.v66-service-outcomes{position:relative}.v66-trust-grid,.v66-outcome-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:42px}.v66-outcome-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.v66-trust-grid article,.v66-outcome-grid article{position:relative;padding:26px;border:1px solid rgba(100,145,220,.22);border-radius:20px;background:linear-gradient(145deg,rgba(20,42,70,.72),rgba(8,23,43,.82));box-shadow:0 18px 45px rgba(0,0,0,.12)}.v66-trust-grid article>span,.v66-outcome-grid article>span{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:11px;background:rgba(78,123,255,.13);color:#7ea6ff;font-size:.78rem;font-weight:800;margin-bottom:18px}.v66-trust-grid h3,.v66-outcome-grid h3{margin:0 0 9px;font-size:1.08rem}.v66-trust-grid p,.v66-outcome-grid p{margin:0;color:var(--text-muted,#8fa4bf);line-height:1.65}.v66-service-outcomes .section-heading{max-width:760px;margin-inline:auto}
.internal-page h1,.internal-page h2,.v5-hero h1{text-wrap:balance}.internal-page p,.v5-section p{text-wrap:pretty}
.button,.v5-outline-link,.v5-cta-button,.main-nav a,.v53-carousel-button{min-height:44px}.v5-theme-toggle,.menu-toggle{min-width:44px;min-height:44px}
@media(max-width:980px){.v66-trust-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.v66-outcome-grid{grid-template-columns:1fr}.v66-process-section .process-grid-five{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.v66-trust-grid{grid-template-columns:1fr}.v66-trust-grid,.v66-outcome-grid{margin-top:28px}.v66-trust-grid article,.v66-outcome-grid article{padding:22px}.v66-process-section .process-grid-five{grid-template-columns:1fr}.v5-service-card{padding-bottom:20px}.v66-service-cta{width:fit-content}.internal-hero{padding-top:105px}.internal-hero-inner{padding-bottom:28px}.cta-panel{gap:24px}.cta-panel .button{width:100%;justify-content:center}}
@media(prefers-reduced-motion:reduce){.v66-service-cta span{transition:none}}
/* Contextual service actions override the legacy circular-arrow rule. */
.v5-service-card>.v66-service-cta{position:absolute!important;left:20px!important;right:58px!important;bottom:15px!important;width:auto!important;height:auto!important;min-height:30px!important;display:flex!important;place-items:initial!important;border:0!important;border-radius:0!important;background:transparent!important;padding:0!important;line-height:1.35}.v5-service-card>.v66-service-cta:hover{background:transparent!important}.v5-service-card:has(.v66-service-cta){padding-bottom:62px;min-height:238px}
@media(max-width:700px){.v5-service-card>.v66-service-cta{left:19px!important;right:58px!important}.v5-service-card:has(.v66-service-cta){min-height:205px;padding-bottom:60px}}

/* V11/V12 — progressive UX, services and case studies */
:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid color-mix(in srgb,#8397ff 75%,transparent);outline-offset:3px}.site-header nav a[aria-current="page"]{color:var(--accent,#8ea0ff)}.v12-service-fit{overflow:hidden}.v12-fit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:28px}.v12-fit-grid article{padding:24px;border:1px solid rgba(135,153,190,.2);border-radius:18px;background:rgba(255,255,255,.025);transition:transform .25s ease,border-color .25s ease,background .25s ease}.v12-fit-grid article:hover{transform:translateY(-4px);border-color:rgba(130,149,255,.45);background:rgba(130,149,255,.05)}.v12-fit-grid strong{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:11px;background:rgba(112,130,255,.14);margin-bottom:14px}.v12-inline-faq{max-width:900px;margin:32px auto 0}.case-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:22px 0 30px}.case-metric{padding:20px;border:1px solid rgba(135,153,190,.22);border-radius:16px;background:rgba(255,255,255,.03);display:grid;gap:6px}.case-metric strong{font-size:clamp(1.35rem,3vw,2rem);line-height:1.1}.case-metric span{opacity:.74}.reveal{will-change:transform,opacity}.button,.v5-outline-link,.portfolio-entry,.v5-project-link{transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease,background .22s ease}.button:hover,.v5-outline-link:hover{transform:translateY(-2px)}@media(max-width:800px){.v12-fit-grid,.case-metrics{grid-template-columns:1fr}.v12-fit-grid article:hover{transform:none}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.reveal{will-change:auto}}

/* V14 — managed commercial content */
.v14-managed-block{position:relative}.v14-managed-block>.container>h2{max-width:760px}.v14-testimonial-grid,.v14-price-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:28px}.v14-testimonial,.v14-price-card{margin:0;padding:24px;border:1px solid rgba(135,153,190,.22);border-radius:18px;background:rgba(255,255,255,.03)}.v14-testimonial p{font-size:1.02rem;line-height:1.75;margin:0 0 18px}.v14-testimonial footer{display:grid;gap:3px}.v14-testimonial footer span,.v14-price-card>span{opacity:.7;font-size:.82rem}.v14-price-card{display:grid;gap:8px}.v14-price-card h3{margin:0}.v14-price-card strong{font-size:1.25rem}.landing-page .case-content{max-width:780px}.landing-page .case-content>p{line-height:1.85}.landing-page .button{margin-top:12px}
@media(max-width:850px){.v14-testimonial-grid,.v14-price-grid{grid-template-columns:1fr}}
