:root {
  color-scheme: light;
  --ink: #171a1e;
  --ink-soft: #3f444a;
  --muted: #616870;
  --line: #dce0e4;
  --white: #fff;
  --shell: min(1320px, calc(100% - clamp(36px, 7vw, 112px)));
  --heading: "Space Grotesk", "Segoe UI", sans-serif;
  --body: "DM Sans", "Segoe UI", sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: #fff; font-family: var(--body); }
button, a { -webkit-tap-highlight-color: transparent; }
button { font: inherit; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
section[id] { scroll-margin-top: 90px; }
::selection { background: #cbd0d6; color: #111; }
.shell { width: var(--shell); margin-inline: auto; }
.skip-link { position: fixed; z-index: 200; top: -80px; left: 12px; padding: 12px 16px; border-radius: 12px; background: #111; color: #fff; }
.skip-link:focus { top: 12px; }
:focus-visible { outline: 3px solid #505863; outline-offset: 4px; }

.site-header { position: sticky; z-index: 50; top: 0; background: linear-gradient(112deg, rgba(255,255,255,.94), rgba(245,246,248,.84) 62%, rgba(224,227,231,.84)); border-bottom: 1px solid rgba(201,207,214,.72); backdrop-filter: blur(22px); }
.header-shell { min-height: 82px; display: flex; align-items: center; gap: 4vw; }
.wordmark { display: inline-flex; align-items: center; flex: none; width: 190px; line-height: 0; }
.wordmark-image { display: block; width: 100%; height: auto; transform: translateY(3px); }
.site-nav { display: flex; align-items: center; gap: clamp(24px, 3vw, 48px); margin-left: auto; }
.site-nav a { color: #3d4249; font-size: .94rem; font-weight: 600; white-space: nowrap; transition: color .2s ease; }
.site-nav a:hover, .footer-inner a:hover { color: #000; }
.site-nav .mobile-whatsapp { display: none; }
.language-switch { display: inline-flex; align-items: center; gap: 2px; flex: none; padding: 3px; border: 1px solid #c9ced4; border-radius: 999px; background: linear-gradient(125deg,#fff,#e4e7ea); box-shadow: inset 0 1px 2px rgba(44,50,56,.07); }
.language-switch a { display: grid; place-items: center; min-width: 34px; min-height: 30px; border-radius: 999px; color: #58616a; font-size: .67rem; font-weight: 700; letter-spacing: .04em; transition: background .2s ease, color .2s ease; }
.language-switch a:hover { color: #11151a; }
.language-switch a[aria-current="page"] { background: linear-gradient(130deg,#565e68,#262b31); color: #fff; box-shadow: 0 3px 8px rgba(26,32,38,.18); }
.header-contact { display: inline-flex; align-items: center; justify-content: space-between; gap: 28px; min-height: 42px; margin-left: 2vw; padding: 0 6px 0 19px; border: 1px solid #454b53; border-radius: 999px; background: linear-gradient(135deg,#333940,#16191d); box-shadow: 0 8px 20px rgba(30,33,39,.12); color: #fff; font-size: .88rem; font-weight: 700; transition: transform .2s ease, box-shadow .2s ease; }
.header-contact:hover { transform: translateY(-2px); box-shadow: 0 13px 26px rgba(30,33,39,.19); }
.link-arrow { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: linear-gradient(140deg,#f9fafb,#c7ccd2); color: #20242a; font-size: 1.2rem; font-weight: 400; }
.menu-toggle { display: none; }

.hero { position: relative; min-height: min(820px, calc(100svh - 82px)); overflow: hidden; background: linear-gradient(125deg,#fff 12%,#eff1f3 66%,#cdd2d8 100%); }
.hero-art { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(255,255,255,.96) 0%, rgba(255,255,255,.81) 30%, rgba(255,255,255,.14) 66%, transparent 100%), url("./assets/hero-silver.png") center right / cover no-repeat; }
.hero-inner { position: relative; z-index: 1; display: flex; flex-direction: column; min-height: min(820px, calc(100svh - 82px)); }
.hero-copy { width: min(740px, 66%); padding-block: clamp(100px, 14vh, 150px) 80px; }
.eyebrow { display: flex; align-items: center; gap: 10px; margin: 0 0 30px; color: #41464e; font-size: .77rem; line-height: 1.4; font-weight: 700; letter-spacing: .19em; text-transform: uppercase; }
.eyebrow-line { display: inline-block; width: 32px; height: 1px; flex: none; background: currentColor; }
.eyebrow-slash { color: #969ca4; padding-inline: 2px; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: var(--heading); }
.hero h1 { margin-bottom: 29px; font-size: clamp(4.3rem, 6.5vw, 7rem); line-height: .99; letter-spacing: -.077em; font-weight: 600; text-wrap: balance; }
.hero h1 em, .section-heading h2 em, .about-section h2 em { font-style: normal; font-weight: 400; background: linear-gradient(102deg,#434a52 8%,#8f969d 80%,#c8ccd1); color: transparent; background-clip: text; -webkit-background-clip: text; }
.hero-lead { max-width: 545px; margin-bottom: 33px; color: #515861; font-size: clamp(1.06rem, 1.35vw, 1.2rem); line-height: 1.68; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 20px 28px; }
.image-button { display: inline-flex; align-items: center; gap: 14px; min-height: 61px; padding: 6px 7px 6px 8px; border-radius: 999px; font-size: .91rem; font-weight: 700; transition: transform .22s ease, box-shadow .22s ease; }
.image-button:hover { transform: translateY(-3px); }
.image-button--dark { color: #fff; background: linear-gradient(115deg,#484f58 0%,#1c2025 75%); box-shadow: 0 15px 32px rgba(25,29,34,.2); }
.image-button--dark:hover { box-shadow: 0 19px 38px rgba(25,29,34,.28); }
.image-button__preview { width: 47px; height: 47px; border-radius: 50%; flex: none; overflow: hidden; border: 2px solid rgba(255,255,255,.45); background: #dce0e4; }
.image-button__preview img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; filter: grayscale(1); }
.image-button__arrow { display: grid; place-items: center; width: 45px; height: 45px; margin-left: 20px; border-radius: 50%; flex: none; background: linear-gradient(145deg,#fff,#cfd3d8); color: #24292f; font-size: 1.35rem; font-weight: 400; }
.text-link { display: inline-flex; align-items: center; gap: 13px; padding: 12px 2px; border-bottom: 1px solid #757c84; font-size: .94rem; font-weight: 700; }
.text-link span { font-size: 1.2rem; transition: transform .2s ease; }
.text-link:hover span { transform: translate(2px,-2px); }
.hero-bottom { display: flex; justify-content: flex-start; gap: clamp(28px, 5vw, 75px); margin-top: auto; padding: 24px 0 30px; border-top: 1px solid rgba(81,88,97,.25); color: #535b64; font-size: .71rem; line-height: 1.4; font-weight: 700; text-transform: uppercase; letter-spacing: .16em; }

.section-pad { padding-block: clamp(90px, 10vw, 150px); }
.work-section { background: linear-gradient(145deg,#fdfdfd 0%,#f5f6f7 52%,#e7e9ec 100%); }
.section-topline { display: flex; justify-content: space-between; padding-bottom: 22px; border-bottom: 1px solid #cbd0d6; color: #626971; font-size: .72rem; line-height: 1.4; font-weight: 700; text-transform: uppercase; letter-spacing: .2em; }
.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 50px; margin: 40px 0 54px; }
.section-heading h2, .about-section h2 { margin: 0; font-size: clamp(3.4rem, 5.5vw, 6rem); line-height: 1.03; letter-spacing: -.075em; font-weight: 600; }
.section-heading p { max-width: 345px; margin: 0 0 7px; color: var(--muted); font-size: 1.04rem; line-height: 1.65; }
.project-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 22px; }
.project-card { display: flex; flex-direction: column; min-width: 0; overflow: hidden; border: 1px solid #d3d7dc; border-radius: 24px; background: linear-gradient(153deg,#fff 0%,#f8f8f9 48%,#edeff1 100%); box-shadow: 0 18px 36px rgba(77,85,95,.07); transition: transform .25s ease, box-shadow .25s ease; }
.project-card:hover { transform: translateY(-5px); box-shadow: 0 26px 48px rgba(77,85,95,.12); }
.project-card__visual { position: relative; display: flex; align-items: center; justify-content: center; height: clamp(290px, 26vw, 360px); overflow: hidden; border-bottom: 1px solid #d9dde1; }
.project-card__visual--dual { background: radial-gradient(circle at 52% 35%, #f9fafb 4%,#d9dde1 48%,#b0b6be 100%); }
.project-card__visual--fit { background: linear-gradient(130deg,#f9fafb,#b8bec5); }
.project-card__visual--media { background: linear-gradient(130deg,#fff,#c2c8ce); }
.project-card__visual--powerbi { background: linear-gradient(130deg,#fff,#bfc6cd); }
.project-card--powerbi .project-cover { object-position: center 55%; filter: none; }
.project-cover { width: 100%; height: 100%; object-fit: cover; object-position: 70% center; filter: grayscale(1); transition: transform .5s ease; }
.project-card:hover .project-cover { transform: scale(1.05); }
.project-visual-label { position: absolute; z-index: 3; top: 20px; left: 22px; padding: 8px 10px; border: 1px solid rgba(96,103,111,.25); border-radius: 999px; background: rgba(255,255,255,.55); backdrop-filter: blur(10px); color: #515862; font-size: .62rem; letter-spacing: .16em; font-weight: 700; }
.project-visual-word { position: absolute; z-index: 2; bottom: -18px; left: 12px; color: rgba(58,65,74,.11); font: 700 clamp(5rem, 8vw, 9rem)/1 var(--heading); letter-spacing: -.08em; white-space: nowrap; pointer-events: none; }
.device-frame { position: relative; z-index: 2; width: min(47%, 182px); height: 310px; padding: 6px; overflow: hidden; border: 5px solid #25282d; border-radius: 29px; background: #fff; box-shadow: 18px 24px 32px rgba(35,40,48,.25), inset 0 0 0 1px #fff; transform: rotate(-6deg) translateY(28px); transition: transform .35s ease; }
.project-card:hover .device-frame { transform: rotate(-3deg) translateY(22px); }
.device-frame::before { content: ""; position: absolute; z-index: 1; top: 5px; left: 50%; width: 38%; height: 11px; transform: translateX(-50%); border-radius: 0 0 12px 12px; background: #25282d; }
.device-frame img { width: 100%; height: 100%; object-fit: cover; object-position: top center; border-radius: 17px; filter: grayscale(1); }
.project-card__body { display: flex; flex: 1; flex-direction: column; padding: 25px; }
.project-card__meta { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 17px; color: #687079; font-size: .67rem; line-height: 1.4; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; }
.project-card h3 { margin-bottom: 12px; font-size: clamp(1.75rem, 2.2vw, 2.15rem); line-height: 1.1; font-weight: 600; letter-spacing: -.055em; }
.project-card h3.project-logo-heading { width: 100%; line-height: 0; }
.project-card h3.project-logo-heading { max-width: 420px; }
.project-title-logo { display: block; width: 100%; height: auto; aspect-ratio: 2172 / 680; object-fit: cover; object-position: 50% 85%; }
.project-card--fit .project-title-logo, .project-dialog[data-project="fit"] .project-title-logo,
.project-card--media .project-title-logo, .project-dialog[data-project="media"] .project-title-logo { aspect-ratio: 2172 / 820; object-fit: contain; }
.project-subname { display: block; margin-top: 4px; color: #69717a; font-family: var(--body); font-size: .84rem; line-height: 1.4; font-weight: 500; letter-spacing: normal; }
.project-bi-heading { margin-bottom: 17px !important; color: #22272c; font-size: clamp(2.4rem, 4vw, 3.6rem) !important; letter-spacing: -.07em !important; }
.project-bi-heading span { display: block; margin-top: 6px; color: #687079; font-family: var(--body); font-size: .84rem; font-weight: 700; line-height: 1.4; letter-spacing: .1em; text-transform: uppercase; }
.project-card p { max-width: 470px; min-height: 76px; margin-bottom: 24px; color: #5f6670; font-size: 1rem; line-height: 1.58; }
.project-button { display: flex; align-items: center; gap: 11px; width: 100%; max-width: 470px; min-height: 57px; margin-top: auto; padding: 6px 7px; border: 1px solid #d0d5da; border-radius: 999px; background: linear-gradient(112deg,#fff,#e5e8eb 100%); color: #24282e; text-align: left; font-size: .89rem; font-weight: 700; cursor: pointer; transition: background .2s ease, box-shadow .2s ease; }
.project-button:hover { background: linear-gradient(112deg,#f6f7f8,#d7dce1); box-shadow: 0 8px 18px rgba(47,53,61,.1); }
.project-button__image { width: 43px; height: 43px; flex: none; overflow: hidden; border-radius: 50%; background: #cbd0d5; }
.project-button__image img { width: 100%; height: 100%; object-fit: cover; object-position: center 25%; filter: grayscale(1); }
.project-button__arrow { display: grid; place-items: center; width: 41px; height: 41px; margin-left: auto; border-radius: 50%; background: linear-gradient(135deg,#505761,#171b1f); color: #fff; font-size: 1.18rem; font-weight: 400; }

.services-section { position: relative; overflow: hidden; color: #fff; background: linear-gradient(125deg,#1b1e23 0%,#30363d 50%,#68717a 100%); }
.services-section::before { content: ""; position: absolute; inset: 0; background: url("./assets/hero-silver.png") center right / cover no-repeat; opacity: .12; mix-blend-mode: screen; mask-image: linear-gradient(90deg,transparent 22%,black 85%); pointer-events: none; }
.services-shell { position: relative; z-index: 1; }
.services-topline { border-color: rgba(230,234,238,.3); color: #c8d0d8; }
.services-intro { display: grid; grid-template-columns: 1.15fr .85fr; align-items: end; gap: clamp(50px, 8vw, 135px); margin: 54px 0 75px; }
.services-section h2 { max-width: 760px; margin: 0; font-size: clamp(3.5rem, 5.5vw, 6.3rem); line-height: 1.02; letter-spacing: -.075em; font-weight: 600; }
.services-section h2 em { font-style: normal; font-weight: 400; background: linear-gradient(105deg,#e0e4e8,#aab3bc 78%); color: transparent; background-clip: text; -webkit-background-clip: text; }
.services-copy { padding-bottom: 9px; }
.services-copy > p { max-width: 525px; margin-bottom: 29px; color: #d7dce1; font-size: clamp(1.06rem, 1.45vw, 1.25rem); line-height: 1.7; }
.services-cta { display: flex; width: min(100%, 360px); }
.services-cta .image-button__preview img { object-position: 70% center; }
.services-cta .image-button__arrow { margin-left: auto; }
.capabilities-heading { display: flex; align-items: end; justify-content: space-between; gap: 35px; margin-bottom: 26px; padding-top: 35px; border-top: 1px solid rgba(230,234,238,.27); }
.capabilities-heading h3 { max-width: 690px; margin: 0; font-size: clamp(2.4rem, 3.5vw, 4rem); line-height: 1.08; letter-spacing: -.06em; font-weight: 500; }
.capabilities-heading p { max-width: 360px; margin: 0 0 4px; color: #cbd2d9; font-size: .97rem; line-height: 1.55; }
.capability-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; }
.capability-card { display: flex; flex-direction: column; min-width: 0; min-height: 300px; padding: 24px; border: 1px solid rgba(255,255,255,.42); border-radius: 22px; background: linear-gradient(145deg,#fff 0%,#e8ebee 53%,#ccd2d8 100%); box-shadow: 0 14px 30px rgba(10,13,17,.13); color: #20242a; transition: transform .25s ease, box-shadow .25s ease; }
.capability-card:nth-child(even) { background: linear-gradient(145deg,#f6f7f8 0%,#dfe3e7 55%,#bfc6ce 100%); }
.capability-card:hover { transform: translateY(-4px); box-shadow: 0 20px 35px rgba(10,13,17,.19); }
.capability-card__top { display: flex; align-items: center; justify-content: space-between; color: #68717a; font-size: .65rem; line-height: 1; font-weight: 700; letter-spacing: .16em; }
.capability-card__mark { width: 28px; height: 28px; border: 1px solid rgba(91,100,109,.18); border-radius: 50%; background: radial-gradient(circle at 32% 28%,#fff,#b5bec7 54%,#6e7883); box-shadow: 3px 5px 10px rgba(47,54,61,.17); }
.capability-card h4 { margin: 57px 0 13px; font: 600 clamp(1.5rem, 2vw, 1.9rem)/1.1 var(--heading); letter-spacing: -.052em; }
.capability-card p { margin: 0; color: #525b65; font-size: .96rem; line-height: 1.55; }
.tools-rail { display: flex; align-items: start; gap: 26px; margin: 21px 0 80px; padding: 23px 25px; border: 1px solid rgba(229,234,239,.22); border-radius: 19px; background: linear-gradient(110deg,rgba(255,255,255,.08),rgba(255,255,255,.025)); }
.tools-rail__label { flex: none; min-width: 120px; margin: 0; padding-top: 10px; color: #c3cbd3; font-size: .7rem; line-height: 1.3; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.tools-rail__items { display: flex; flex-wrap: wrap; gap: 8px; }
.tools-rail__items span { padding: 8px 12px; border: 1px solid rgba(224,229,234,.28); border-radius: 999px; background: rgba(255,255,255,.065); color: #ecf0f3; font-size: .74rem; line-height: 1.2; font-weight: 600; white-space: nowrap; }
.services-process-heading { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 23px; padding-bottom: 21px; border-bottom: 1px solid rgba(230,234,238,.29); }
.services-process-heading h3 { margin: 0; font-size: clamp(2.4rem, 3.4vw, 3.9rem); line-height: 1.05; letter-spacing: -.06em; font-weight: 500; }
.services-process-heading span { padding-bottom: 5px; color: #c4ccd4; font-size: .7rem; font-weight: 700; letter-spacing: .16em; }
.services-steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 17px; }
.services-step { min-width: 0; min-height: 245px; padding: 28px 29px; border: 1px solid rgba(226,231,236,.28); border-radius: 22px; background: linear-gradient(145deg,rgba(255,255,255,.13),rgba(255,255,255,.035)); box-shadow: inset 0 1px 0 rgba(255,255,255,.11); backdrop-filter: blur(12px); }
.services-step__number { display: block; margin-bottom: 45px; color: #b8c0c9; font-size: .7rem; font-weight: 700; letter-spacing: .18em; }
.services-step h4 { margin: 0 0 14px; font: 500 clamp(1.38rem, 2vw, 1.8rem)/1.12 var(--heading); letter-spacing: -.045em; }
.services-step p { max-width: 340px; margin: 0; color: #d5dbe1; font-size: .99rem; line-height: 1.6; }

.about-section { border-top: 1px solid #dfe2e5; background: radial-gradient(circle at 16% 16%,#fff 0%,#f2f3f5 44%,#dfe2e6 100%); }
.about-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(50px, 9vw, 155px); }
.eyebrow--subtle { margin-bottom: 32px; }
.about-section h2 { max-width: 720px; }
.about-copy { padding-top: 58px; }
.about-copy > p { max-width: 530px; margin-bottom: 50px; color: #515962; font-size: clamp(1.08rem, 1.5vw, 1.28rem); line-height: 1.72; }
.about-points { border-top: 1px solid #bfc5cb; }
.about-points div { display: flex; align-items: center; gap: 28px; padding: 21px 0; border-bottom: 1px solid #bfc5cb; }
.about-points span { color: #858c95; font-size: .7rem; font-weight: 700; letter-spacing: .08em; }
.about-points strong { font: 500 1.06rem/1.35 var(--heading); letter-spacing: -.02em; }

.contact-section { position: relative; overflow: hidden; color: #fff; background: linear-gradient(127deg,#171a1f 0%,#30363d 46%,#747b84 100%); }
.contact-section::before { content: ""; position: absolute; inset: -30% -10% -10% 36%; background: radial-gradient(ellipse at 70% 52%,rgba(248,249,250,.2),transparent 40%), radial-gradient(ellipse at 30% 70%,rgba(207,213,219,.12),transparent 44%); transform: rotate(-8deg); pointer-events: none; }
.contact-inner { position: relative; z-index: 1; }
.eyebrow--light { color: #c7ccd2; }
.contact-section h2 { max-width: 920px; margin-bottom: 23px; font-size: clamp(3.7rem, 7vw, 7.2rem); line-height: 1; font-weight: 500; letter-spacing: -.075em; }
.contact-section h2 em { color: #b6bdc5; font-style: normal; font-weight: 400; }
.contact-section p:not(.eyebrow) { max-width: 480px; margin-bottom: 33px; color: #d7dce1; font-size: 1.1rem; line-height: 1.65; }
.image-button--light { color: #1f2328; background: linear-gradient(120deg,#fff,#dce0e4); box-shadow: 0 15px 30px rgba(10,13,17,.17); }
.image-button--light:hover { box-shadow: 0 19px 36px rgba(10,13,17,.25); }
.image-button--light .image-button__preview { border-color: #fff; }
.image-button--light .image-button__arrow { background: linear-gradient(135deg,#5a626c,#20252b); color: #fff; }
.site-footer { background: linear-gradient(116deg,#fff,#e9ebee); border-top: 1px solid #d6dade; }
.footer-inner { display: grid; grid-template-columns: 1fr 1fr 1fr auto; align-items: center; gap: 25px; min-height: 120px; color: #646b73; font-size: .85rem; }
.wordmark--footer { width: 184px; }
.footer-inner > div { display: flex; flex-wrap: wrap; gap: 12px 22px; padding-block: 16px; }
.footer-inner a:not(.wordmark) { font-weight: 600; }

.project-dialog { width: min(830px, calc(100% - 32px)); max-height: min(700px, calc(100dvh - 32px)); padding: 0; overflow: auto; border: 1px solid #d1d6dc; border-radius: 26px; background: #fff; box-shadow: 0 28px 75px rgba(10,14,20,.32); }
.project-dialog::backdrop { background: rgba(28,33,39,.6); backdrop-filter: blur(8px); }
.project-dialog[open] { display: grid; grid-template-columns: 44% 56%; }
.project-dialog[data-project="powerbi"] { width: min(1080px, calc(100% - 32px)); max-height: calc(100dvh - 32px); }
.project-dialog[data-project="powerbi"][open] { grid-template-columns: 35% 65%; }
.dialog-close { position: absolute; z-index: 5; top: 16px; right: 17px; width: 39px; height: 39px; border: 1px solid #cfd4d9; border-radius: 50%; background: linear-gradient(135deg,#fff,#e3e6e9); color: #20252a; font-size: 1.6rem; line-height: 1; cursor: pointer; }
.dialog-visual { min-height: 440px; background: linear-gradient(130deg,#f9fafb,#c4cad0); }
.dialog-visual img { width: 100%; height: 100%; min-height: 440px; object-fit: cover; object-position: 70% center; filter: grayscale(1); }
.project-dialog[data-project="dual"] .dialog-visual img { object-fit: contain; object-position: center; padding: 23px; }
.project-dialog[data-project="powerbi"] .dialog-visual, .project-dialog[data-project="powerbi"] .dialog-visual img { min-height: 360px; }
.project-dialog[data-project="powerbi"] .dialog-visual img { filter: none; }
.dialog-content { display: flex; flex-direction: column; align-items: start; padding: 75px 48px 45px; }
.dialog-kicker { margin-bottom: 15px; color: #757d86; font-size: .7rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.dialog-content h2 { margin-bottom: 20px; font-size: clamp(2.6rem, 4vw, 4.2rem); line-height: 1.02; letter-spacing: -.075em; }
.dialog-content h2.project-logo-heading { width: min(100%, 380px); line-height: 0; }
.dialog-content > p:not(.dialog-kicker) { color: #545c65; font-size: 1.04rem; line-height: 1.68; }
.dialog-content .dialog-status { margin-top: 6px; font-size: .87rem !important; font-weight: 700; }
.dialog-privacy { margin: 0 0 24px; color: var(--muted); font-size: .85rem; text-decoration: underline; text-underline-offset: 4px; }
.dialog-action { display: inline-flex; align-items: center; gap: 28px; margin-top: auto; padding: 13px 18px; border-radius: 999px; background: linear-gradient(120deg,#40474f,#171b20); color: #fff; font-size: .9rem; font-weight: 700; }
.dialog-action span { font-size: 1.3rem; font-weight: 400; }
.dialog-report { grid-column: 1 / -1; padding: 0 32px 32px; }
.dialog-report[hidden], .dialog-report__intro[hidden], .dialog-report__frame[hidden] { display: none; }
.dialog-report__intro { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 22px 26px; border: 1px solid #cfd5db; border-radius: 18px; background: linear-gradient(130deg,#f8f9fa,#e4e8ec); }
.dialog-report__intro h3 { margin: 0 0 7px; font-size: 1.3rem; letter-spacing: -.04em; }
.dialog-report__intro p { max-width: 600px; margin: 0; color: #58616a; font-size: .87rem; line-height: 1.6; }
.dialog-report__load { display: inline-flex; align-items: center; justify-content: space-between; gap: 22px; min-height: 49px; padding: 11px 17px; border: 0; border-radius: 999px; background: linear-gradient(125deg,#454d56,#1b2025); color: #fff; font-size: .87rem; font-weight: 700; white-space: nowrap; cursor: pointer; }
.dialog-report__frame { overflow: hidden; border: 1px solid #cbd2d9; border-radius: 18px; background: #e8ebee; }
.dialog-report__frame iframe { display: block; width: 100%; height: clamp(400px, 55vw, 640px); border: 0; }

.privacy-page { background: #f5f6f7; }
.privacy-hero { padding: 34px 0 0; background: radial-gradient(ellipse at 95% 0%,rgba(181,188,197,.5),transparent 58%), linear-gradient(125deg,#fff 10%,#f3f4f5 65%,#dce0e4); border-bottom: 1px solid var(--line); }
.privacy-back { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; margin-bottom: 40px; color: var(--muted); font-size: .86rem; font-weight: 600; }
.privacy-back:hover { color: var(--ink); }
.privacy-hero .eyebrow { margin-bottom: 20px; }
.privacy-hero h1 { margin-bottom: 15px; font-size: clamp(2.8rem, 5.7vw, 5.6rem); font-weight: 500; line-height: 1.08; letter-spacing: -.065em; overflow-wrap: anywhere; }
.privacy-subtitle { margin-bottom: 18px; color: #59616b; font: 500 clamp(1.35rem,2.4vw,2rem)/1.3 var(--heading); letter-spacing: -.03em; }
.privacy-intro { max-width: 700px; margin-bottom: 24px; color: var(--muted); font-size: 1.05rem; line-height: 1.75; }
.privacy-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 20px; color: var(--muted); font-size: .79rem; }
.privacy-draft-label { padding: 7px 12px; border: 1px solid #bdc4cc; border-radius: 999px; background: linear-gradient(125deg,#fff,#e4e7ea); color: #414b55; font-weight: 600; }
.privacy-nav { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 40px; padding-bottom: 24px; }
.privacy-nav a { display: flex; align-items: center; min-height: 44px; padding: 11px 19px; border: 1px solid #ccd2d8; border-radius: 999px; background: rgba(255,255,255,.55); font-size: .85rem; font-weight: 600; transition: background .2s ease; }
.privacy-nav a:hover { background: #fff; }
.privacy-nav a[aria-current="page"] { border-color: #343b44; color: #fff; background: linear-gradient(125deg,#515a64,#21262d); box-shadow: 0 5px 12px rgba(30,36,44,.13); }
.privacy-layout { display: grid; grid-template-columns: minmax(210px,260px) minmax(0,1fr); align-items: start; gap: clamp(30px,5vw,72px); padding-block: 60px 100px; }
.privacy-sidebar { position: sticky; top: 110px; }
.privacy-toc > p { color: #747c85; font-size: .7rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.privacy-toc a { display: flex; align-items: baseline; gap: 13px; padding: 12px 0; border-bottom: 1px solid var(--line); color: #4a535d; font-size: .86rem; line-height: 1.5; }
.privacy-toc a:hover { color: #000; }
.privacy-toc a span { flex: none; color: #808890; font-size: .68rem; }
.privacy-contact { margin-top: 30px; padding: 24px 20px; border: 1px solid #d0d6dc; border-radius: 18px; background: linear-gradient(145deg,#fff,#e7eaed); }
.privacy-contact h2 { margin: 0 0 12px; font-size: 1.15rem; font-weight: 500; letter-spacing: -.03em; }
.privacy-contact p { margin-bottom: 18px; color: var(--muted); font-size: .86rem; line-height: 1.65; }
.privacy-contact a { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 8px; min-height: 32px; font-size: .86rem; font-weight: 600; overflow-wrap: anywhere; text-decoration: underline; text-underline-offset: 4px; }
.privacy-article { min-width: 0; overflow-wrap: anywhere; border: 1px solid #d9dee3; border-radius: 24px; background: #fff; box-shadow: 0 16px 45px rgba(56,65,76,.04); padding: clamp(24px,4vw,52px); }
.privacy-draft-note { padding: 20px 24px; margin-bottom: 38px; border-left: 2px solid #848d97; border-radius: 0 12px 12px 0; background: linear-gradient(110deg,#eceff2,#f8f9fa); }
.privacy-draft-note p { margin: 0; color: #545d67; font-size: .88rem; line-height: 1.75; }
.privacy-draft-note .privacy-product-note { margin-top: 10px; }
.privacy-section { display: grid; grid-template-columns: 24px minmax(0,1fr); gap: 18px; padding-block: 30px; border-bottom: 1px solid #e4e7eb; }
.privacy-section:first-of-type { padding-top: 0; }
.privacy-section:last-child { border: 0; padding-bottom: 0; }
.privacy-section__number { padding-top: 8px; color: #89919a; font-size: .68rem; font-weight: 600; }
.privacy-section h2 { margin-bottom: 17px; font-size: clamp(1.35rem,2vw,1.7rem); line-height: 1.3; font-weight: 500; letter-spacing: -.035em; }
.privacy-section p { max-width: 68ch; margin-bottom: 15px; color: #555e68; font-size: .97rem; line-height: 1.85; }
.privacy-section p:last-child { margin-bottom: 0; }

@media (max-width: 900px) {
  .privacy-layout { grid-template-columns: 1fr; gap: 30px; padding-block: 36px 65px; }
  .privacy-sidebar { position: static; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 28px; align-items: start; }
  .privacy-contact { margin-top: 0; }
}

@media (max-width: 540px) {
  .privacy-hero { padding-top: 18px; }
  .privacy-back { margin-bottom: 26px; }
  .privacy-hero h1 { font-size: clamp(2.65rem,11vw,4rem); }
  .privacy-intro { font-size: 1rem; }
  .privacy-nav { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: 28px; }
  .privacy-nav a { justify-content: center; padding: 11px 10px; text-align: center; border-radius: 14px; font-size: .79rem; }
  .privacy-sidebar { grid-template-columns: 1fr; gap: 22px; }
  .privacy-article { padding: 24px 20px; border-radius: 20px; }
  .privacy-draft-note { padding: 16px; margin-bottom: 28px; }
  .privacy-section { grid-template-columns: 1fr; gap: 8px; }
  .privacy-section__number { padding-top: 0; }
}

@media (max-width: 1100px) {
  .hero h1 { font-size: clamp(4rem, 7.4vw, 6rem); }
  .hero-copy { width: min(700px, 72%); }
  .project-grid { gap: 14px; }
  .project-card__body { padding: 20px; }
  .project-card__meta { flex-wrap: wrap; }
  .capability-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .capability-card { min-height: 250px; }
  .capability-card h4 { margin-top: 45px; }
  .footer-inner { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 1050px) {
  .header-shell { min-height: 72px; }
  .header-shell .wordmark { width: 174px; }
  .header-contact { display: none; }
  .language-switch { margin-left: 0; }
  .menu-toggle { display: flex; flex-direction: column; justify-content: center; gap: 6px; width: 42px; height: 42px; margin-left: auto; padding: 11px; border: 1px solid #bfc5cb; border-radius: 50%; background: linear-gradient(135deg,#fff,#e4e7ea); cursor: pointer; }
  .menu-toggle span { display: block; width: 100%; height: 2px; background: #24292f; transition: transform .2s ease; }
  .site-header.is-open .menu-toggle span:first-child { transform: translateY(4px) rotate(45deg); }
  .site-header.is-open .menu-toggle span:last-child { transform: translateY(-4px) rotate(-45deg); }
  .site-nav { position: absolute; top: 72px; left: 0; right: 0; display: flex; flex-direction: column; align-items: stretch; gap: 0; margin: 0; padding: 10px max(18px, calc((100% - var(--shell))/2)) 20px; border-bottom: 1px solid #cbd0d5; background: linear-gradient(135deg,#fff,#e8eaed); box-shadow: 0 18px 22px rgba(50,58,66,.1); opacity: 0; visibility: hidden; transform: translateY(-10px); pointer-events: none; transition: opacity .2s ease, transform .2s ease, visibility .2s ease; }
  .site-header.is-open .site-nav { opacity: 1; visibility: visible; transform: translateY(0); pointer-events: auto; }
  .site-nav a { padding: 14px 0; border-bottom: 1px solid #d8dce0; font-size: 1rem; }
  .site-nav .mobile-whatsapp { display: flex; align-items: center; justify-content: space-between; margin-top: 16px; padding: 13px 18px; border: 0; border-radius: 999px; background: linear-gradient(120deg,#454c54,#171b20); box-shadow: 0 9px 18px rgba(22,26,30,.13); color: #fff; }
  .site-nav .mobile-whatsapp:hover { color: #fff; }
  .site-nav .mobile-whatsapp span:last-child { font-size: 1.3rem; line-height: 1; }
}

@media (max-width: 760px) {
  .services-intro { grid-template-columns: 1fr; align-items: start; gap: 28px; margin: 38px 0 56px; }
  .services-section h2 { max-width: 680px; font-size: clamp(3.4rem, 8.5vw, 5rem); }
  .services-copy { padding: 0; }
  .capabilities-heading { align-items: start; flex-direction: column; gap: 15px; }
  .capabilities-heading p { max-width: 520px; }
  .tools-rail { flex-direction: column; gap: 14px; margin-bottom: 65px; }
  .tools-rail__label { padding: 0; }
  .services-steps { grid-template-columns: 1fr; }
  .services-step { min-height: 0; }
  .services-step__number { margin-bottom: 28px; }
  .hero, .hero-inner { min-height: 780px; }
  .hero-art { top: auto; bottom: 45px; height: 330px; background: linear-gradient(0deg,rgba(255,255,255,.05),rgba(255,255,255,.5)),url("./assets/hero-silver.png") 66% center / cover no-repeat; mask-image: linear-gradient(to bottom,transparent,black 20%,black 80%,transparent); }
  .hero-copy { width: min(640px,100%); padding-top: 76px; padding-bottom: 240px; }
  .hero h1 { max-width: 600px; font-size: clamp(3.8rem, 9vw, 5.6rem); }
  .hero-lead { max-width: 570px; }
  .hero-bottom { position: relative; z-index: 2; gap: 20px; justify-content: space-between; flex-wrap: wrap; }
  .section-heading { align-items: start; flex-direction: column; gap: 23px; }
  .project-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
  .about-grid { grid-template-columns: 1fr; gap: 15px; }
  .about-copy { padding-top: 0; }
  .about-copy > p { margin-bottom: 32px; }
}

@media (max-width: 540px) {
  :root { --shell: calc(100% - 36px); }
  .header-shell { gap: 2px; }
  .header-shell .wordmark { width: clamp(106px, 34vw, 136px); }
  .wordmark--footer { width: 128px; }
  .language-switch { padding: 2px; }
  .language-switch a { min-width: 40px; min-height: 40px; font-size: .65rem; }
  .menu-toggle { width: 40px; height: 40px; }
  .hero, .hero-inner { min-height: 800px; }
  .hero-copy { padding-top: 62px; padding-bottom: 220px; }
  .hero h1 { font-size: clamp(3.45rem, 13vw, 4.8rem); letter-spacing: -.08em; }
  .eyebrow { gap: 8px; font-size: .67rem; letter-spacing: .11em; }
  .eyebrow-line { width: 20px; }
  .hero-lead { font-size: 1rem; line-height: 1.6; }
  .hero-actions { gap: 12px 22px; }
  .image-button { min-height: 56px; font-size: .84rem; }
  .image-button__preview { width: 43px; height: 43px; }
  .image-button__arrow { width: 42px; height: 42px; margin-left: 9px; }
  .text-link { font-size: .85rem; }
  .hero-art { bottom: 48px; height: 250px; background-position: 74% center; }
  .hero-bottom { gap: 9px; padding: 16px 0 23px; font-size: .59rem; letter-spacing: .08em; }
  .section-pad { padding-block: 76px; }
  .section-heading { margin: 31px 0 36px; }
  .section-heading h2, .about-section h2 { font-size: clamp(3.15rem, 13vw, 4.5rem); }
  .section-heading p { font-size: 1rem; }
  .project-grid { grid-template-columns: 1fr; }
  .project-card__visual { height: 320px; }
  .project-card__body { padding: 22px; }
  .project-card p { min-height: 0; }
  .services-section h2 { font-size: clamp(3.15rem, 11.5vw, 4.3rem); }
  .services-copy > p { font-size: 1.04rem; }
  .capabilities-heading h3 { font-size: clamp(2.35rem, 10vw, 3.2rem); }
  .capability-grid { grid-template-columns: 1fr; }
  .capability-card { min-height: 225px; }
  .capability-card h4 { margin-top: 38px; }
  .tools-rail { padding: 21px; }
  .services-process-heading h3 { font-size: 2.55rem; }
  .services-step { padding: 24px; }
  .about-copy > p { font-size: 1.04rem; }
  .contact-section h2 { font-size: clamp(3.6rem, 14vw, 5.2rem); }
  .footer-inner { grid-template-columns: 1fr 1fr; gap: 20px; padding-block: 32px; }
  .footer-inner > span:nth-child(2) { display: none; }
  .footer-inner > div { grid-column: span 2; order: 3; }
  .footer-inner > span:last-child { text-align: right; }
  .project-dialog[open] { display: block; }
  .project-dialog[data-project="powerbi"][open] { display: block; }
  .dialog-visual, .dialog-visual img { height: 260px; min-height: 260px; }
  .project-dialog[data-project="powerbi"] .dialog-visual, .project-dialog[data-project="powerbi"] .dialog-visual img { height: 210px; min-height: 210px; }
  .dialog-content { padding: 34px 25px 28px; }
  .dialog-action { margin-top: 14px; }
  .dialog-report { padding: 0 18px 20px; }
  .dialog-report__intro { align-items: stretch; flex-direction: column; padding: 18px; }
  .dialog-report__load { justify-content: space-between; white-space: normal; }
  .dialog-report__frame iframe { height: 430px; }
}

@media (max-width: 380px) {
  .header-shell .wordmark { width: clamp(88px, 31vw, 118px); }
  .language-switch a { min-width: 34px; min-height: 38px; }
}

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