/* v11 — Apple design principles, expressed in VIRGIL's established palette. */
:root {
  --ui-radius: 24px;
  --ui-shadow: 0 10px 36px -18px #00000024, 0 1px 3px #00000006;
  --ui-text: #303030;
  --ui-ease: cubic-bezier(.2,.8,.2,1);
  --ui-gutter: 32px;
  --ui-width: 1160px;
}
html { background:#fff; }
body { background:#fff; font-optical-sizing:auto; }
body, p, li, label, input, textarea, button { letter-spacing:0; }
p { text-wrap:pretty; }
h1, h2 { letter-spacing:-.045em; text-wrap:balance; }
h3 { letter-spacing:-.025em; }
.container { width:min(var(--ui-width),calc(100% - var(--ui-gutter)*2)); }
.section-pad { padding-block:96px; }
:focus-visible { outline:2px solid #0b0c0a; outline-offset:5px; }
.button,.text-link,.menu-toggle,.languages-toggle,.main-navigation a,.language-list a {
  touch-action:manipulation;
  transition:transform 180ms var(--ui-ease), background-color 180ms ease, box-shadow 180ms ease;
}
.button { min-height:52px; padding:14px 28px; font-size:.9375rem; font-weight:800; letter-spacing:-.015em; }
.button:active,.text-link:active,.menu-toggle:active { transform:scale(.97); transition-duration:80ms; }
.text-link { background:#fff; color:var(--carbon); box-shadow:0 0 0 1px #0b0c0a14; }
@media(hover:hover) and (pointer:fine) {
  .button:hover { background:#b7ff22; transform:translateY(-1px); box-shadow:0 5px 16px -8px #0b0c0a55; }
  .text-link:hover { background:#f3ffdc; box-shadow:0 0 0 1px #dfedc8; }
}
/* A floating material layer, with a crisp solid accent for the primary action. */
.site-header { top:20px; width:min(var(--ui-width),calc(100% - var(--ui-gutter)*2)); }
.site-header .header-inner { min-height:70px; padding:10px 14px 10px 24px; background:rgba(11,12,10,.92); border:1px solid #ffffff14; box-shadow:0 10px 32px -16px #00000050,0 1px 2px #00000012; backdrop-filter:blur(24px); -webkit-backdrop-filter:blur(24px); }
.site-header .wordmark { font-size:1.5625rem; letter-spacing:-.055em; }
.site-header .main-navigation { gap:2px; }
.site-header .main-navigation a,.site-header .languages-toggle { min-height:44px; padding:10px 12px; font-size:.875rem; font-weight:600; letter-spacing:0; }
.site-header .header-cta { min-height:46px; padding:11px 22px; font-size:.8125rem; }
.site-header .main-navigation a:hover,.site-header .languages-toggle:hover { background:#ffffff12; }
.site-header .main-navigation a[aria-current=page] { color:#b7ff22; }
.site-header .language-navigation { padding:8px; border-radius:22px; background:#161616f5; border:1px solid #ffffff12; box-shadow:0 18px 48px -20px #00000070; backdrop-filter:blur(24px); -webkit-backdrop-filter:blur(24px); transform-origin:24px 0; }
.site-header .language-navigation a { padding:11px 14px; border-radius:14px; font-size:.875rem; }
.site-header .menu-toggle { min-height:44px; background:#ffffff10; }
/* Display type retains the brand, with room for optical shapes and long scripts. */
.home-page .hero { padding-top:calc(var(--hero-clearance,110px) + 64px); padding-bottom:96px; }
.home-page .hero-copy { max-width:1100px; }
.home-page #hero-title { font-size:clamp(2.625rem,4.9vw,4.25rem); letter-spacing:-.045em; line-height:1.1; }
.home-page .headline-last { max-width:1100px; margin-top:.12em; }
.home-page .human-statement { margin-top:28px; font-size:clamp(1.25rem,2.2vw,1.625rem); line-height:1.45; letter-spacing:-.025em; }
.home-page .hero-description { max-width:720px; margin:20px auto 28px; font-size:1.125rem; line-height:1.7; letter-spacing:0; color:#303030; }
.home-page .hero .primary-button { min-height:54px; padding-inline:32px; }
.home-page .language-strip { margin-top:44px; }
.home-page .language-strip h2.small-label { font-size:.875rem; letter-spacing:0; font-weight:600; }
.language-list { gap:10px; margin-top:16px; }
.language-list li { border-color:#0b0c0a12; background:#fff; font-size:.875rem; font-weight:650; letter-spacing:0; box-shadow:0 2px 5px #00000003; }
.language-list a { border-radius:inherit; }
.language-list li.is-current { background:#f3ffdc; border-color:#dfedc8; box-shadow:0 0 0 1px #dfedc844; }
.other-languages { margin-top:16px; font-size:.875rem; color:#303030; }
/* Services are open, readable columns rather than stacked containers. */
.home-page .service-section { margin-top:100px; }
.home-page .service-section h2 { font-size:clamp(1.875rem,3.3vw,2.75rem); letter-spacing:-.035em; }
.home-page .service-grid { gap:32px 40px; margin-top:44px; text-align:left; }
.home-page .service-grid li { padding:12px 0; }
.home-page .service-grid h3 { max-width:none; margin:0 0 12px; font-size:1.125rem; line-height:1.45; letter-spacing:-.02em; }
.home-page .service-grid p { max-width:none; margin:0; font-size:1rem; line-height:1.7; color:#303030; font-weight:500; }
.home-page .service-icon { width:56px; height:56px; margin:0 0 22px; background:#fff; box-shadow:0 2px 8px #0000000a,0 0 0 1px #00000008; }
.home-page .service-icon .icon { width:27px; height:27px; }
.home-page .service-section > .text-link { margin-top:36px; }
.home-page .use-cases { margin-top:80px; padding:0; border:0; border-radius:0; background:#fff; }
.home-page .use-cases h3 { font-size:1.25rem; font-weight:600; letter-spacing:-.02em; }
.home-page .use-cases ul { max-width:920px; margin:24px auto; gap:12px; }
.home-page .use-cases li { background:#fff; padding:10px 16px; border:0; box-shadow:0 0 0 1px #0000000e; font-size:.875rem; }
/* Compare by topic; a single shallow surface groups the comparison. */
.home-page .human-section { width:min(var(--ui-width),calc(100% - var(--ui-gutter)*2)); background:#fff; padding:48px; border:0; border-radius:32px; box-shadow:var(--ui-shadow),0 0 0 1px #00000007; margin-bottom:96px; }
.home-page .human-section > .container { width:100%; }
.home-page .comparison-section h2 { max-width:940px; font-size:clamp(2rem,3.7vw,3rem); letter-spacing:-.04em; }
.home-page .comparison-section .section-description { max-width:750px; margin-top:24px; font-size:1.125rem; font-weight:500; letter-spacing:0; line-height:1.65; }
.home-comparison { margin-top:36px; }
.home-comparison-head { padding-inline:20px; font-size:.8125rem; font-weight:700; letter-spacing:0; }
.home-compare-row { margin:0 0 10px; border:0; border-radius:18px; background:#fff; box-shadow:0 0 0 1px #0000000e; }
.home-compare-row summary { min-height:90px; padding:22px 20px; gap:20px; }
.home-compare-row summary:hover { background:#fff; }
.home-compare-topic { gap:12px; font-size:.9375rem; letter-spacing:-.015em; }
.home-compare-topic > .icon { width:24px; height:24px; }
.home-compare-quick { font-size:.9375rem; line-height:1.6; letter-spacing:0; }
.home-compare-pro { font-weight:750; }
.home-compare-toggle { width:28px; height:28px; background:#f3ffdc; }
.home-compare-toggle::before,.home-compare-toggle::after { left:8px; top:13px; }
.home-compare-detail { padding:8px 20px 26px; gap:32px; }
.home-compare-detail > div { background:#fff; padding:12px 0 0; border-radius:0; }
.home-compare-detail h3 { font-size:.875rem; letter-spacing:0; }
.home-compare-detail p { font-size:1rem; line-height:1.75; }
.home-compare-hint { font-size:.8125rem; letter-spacing:0; }
.home-page .comparison-summary { margin-top:32px; }
.home-page .comparison-summary > p { font-size:1rem; line-height:1.75; }
/* Three production groups and one clear delivery state. */
.home-page .process-section { background:#0c0c0c; padding-block:96px; }
.home-page .process-heading { margin-bottom:40px; gap:48px; }
.home-page .process-heading h2 { font-size:clamp(2rem,3.7vw,3rem); letter-spacing:-.04em; }
.home-page .process-heading .section-description { font-size:1.0625rem; line-height:1.7; letter-spacing:0; color:#f5f5f5; max-width:720px; }
.home-page .process-subtitle { font-size:1rem; line-height:1.6; font-weight:500; letter-spacing:0; }
.home-page .process-bento { gap:20px; }
.home-page .phase-panel { padding:24px; border:0; background:#161616; border-radius:28px; box-shadow:inset 0 0 0 1px #ffffff09; }
.home-page .phase-heading { margin:0 0 24px; }
.home-page .phase-tag { font-size:.8125rem; padding:7px 14px; line-height:1.5; }
.home-page .phase-cards { gap:16px; }
.home-page .process-section .process-card { padding:26px; gap:22px; border-radius:20px; background:#242424; box-shadow:inset 0 1px 0 #ffffff05; }
.home-page .process-section .stage-heading { gap:16px; }
.home-page .process-section .stage-heading h3 { font-size:1.0625rem; line-height:1.45; letter-spacing:-.02em; }
.home-page .process-section .stage-icon { width:48px; height:48px; background:#171717; color:#b7ff22; }
.home-page .process-section .process-card > p { font-size:.9375rem; line-height:1.75; letter-spacing:0; color:#f5f5f5; }
.home-page .process-section .step-number { min-width:32px; height:28px; font-size:.8125rem; padding:4px 8px; }
.home-page .process-section .success-card { padding:32px; border:0; box-shadow:inset 0 0 0 1px #ffffff16; }
.home-page .process-section .success-card h3 { font-size:1.625rem; letter-spacing:-.03em; }
.home-page .process-section .success-card .stage-icon { width:64px; height:64px; background:#b7ff22; color:#0b0c0a; }
.home-page .process-note { margin-top:24px; font-size:.875rem; line-height:1.65; color:#f5f5f5; letter-spacing:0; }
/* Quiet footer with a recognizable brand and generous touch targets. */
.site-footer { background:#0b0c0a; border:0; padding-block:64px 28px; }
.site-footer .footer-top { grid-template-columns:1.25fr 1fr auto; gap:48px; }
.site-footer .wordmark { font-size:1.75rem; letter-spacing:-.05em; }
.site-footer .footer-top p { max-width:340px; margin-top:20px; font-size:.9375rem; line-height:1.7; letter-spacing:0; }
.site-footer .footer-top nav { gap:4px; }
.site-footer .footer-top nav a,.site-footer .back-to-top { min-height:40px; font-size:.875rem; line-height:1.65; letter-spacing:0; }
.site-footer .footer-bottom { margin-top:56px; border:0; padding:0; font-size:.8125rem; letter-spacing:0; }
@container header-shell (max-width:68rem) {
  .site-header .header-inner { grid-template-columns:minmax(0,1fr) auto; padding:10px 12px 10px 22px; border-radius:32px; }
  .site-header .main-navigation { gap:4px; padding-top:12px; justify-content:flex-start; overflow-anchor:none; }
  .site-header .main-navigation > * { flex-shrink:0; }
  .site-header .main-navigation.is-open { max-height:calc(100svh - 112px); overflow-y:auto; overscroll-behavior:contain; padding-bottom:8px; }
  .site-header .main-navigation a,.site-header .languages-toggle { min-height:48px; padding:12px 16px; font-size:1rem; }
  .site-header .language-navigation { box-shadow:none; backdrop-filter:none; -webkit-backdrop-filter:none; background:#242424; margin:6px 0 8px; }
}
@media(max-width:959px) {
  .home-page .hero { padding-top:calc(var(--hero-clearance,100px) + 40px); }
  .home-page .service-grid { gap:32px; }
  .home-page .human-section { padding:32px; }
  .home-page .phase-panel { padding:24px; }
  .home-page .process-heading { gap:24px; }
}
@media(max-width:767px) {
  :root { --ui-gutter:20px; }
  .site-header { top:12px; }
  .site-header .header-inner { min-height:66px; padding:9px 12px 9px 18px; }
  .site-header .wordmark { font-size:clamp(1rem,4.5vw,1.5rem); }
  .section-pad { padding-block:64px; }
  .home-page .hero { padding-top:calc(var(--hero-clearance,100px) + 28px); padding-bottom:64px; }
  .home-page #hero-title { font-size:clamp(2rem,7.4vw,3.625rem); line-height:1.12; }
  .home-page .headline-last { max-width:540px; }
  .home-page .human-statement { max-width:460px; margin:26px auto 0; font-size:1.25rem; line-height:1.45; }
  .home-page .hero-description { font-size:1rem; max-width:520px; line-height:1.75; }
  .home-page .language-strip { margin-top:36px; }
  .language-list { gap:8px; }
  .language-list li { font-size:.8125rem; }
  .home-page .service-section { margin-top:64px; }
  .home-page .service-section h2 { text-align:left; max-width:none; font-size:2rem; }
  .home-page .service-grid { gap:30px; margin-top:32px; }
  .home-page .service-grid li { grid-template-columns:48px minmax(0,1fr); gap:12px 18px; padding:0; }
  .home-page .service-icon { width:48px; height:48px; margin:0; }
  .home-page .service-grid h3 { margin:0; font-size:1.0625rem; }
  .home-page .service-grid p { font-size:.9375rem; line-height:1.75; }
  .home-page .use-cases { margin-top:56px; }
  .home-page .use-cases h3 { font-size:1.125rem; }
  .home-page .use-cases ul { gap:10px; }
  .home-page .use-cases li { font-size:.8125rem; }
  .home-page .human-section { padding:28px 20px; border-radius:26px; margin-bottom:64px; }
  .home-page .comparison-section h2 { font-size:clamp(1.625rem,6vw,2.5rem); }
  .home-page .comparison-section .section-description { font-size:1rem; line-height:1.7; }
  .home-compare-row summary { padding:20px 16px; gap:16px; }
  .home-compare-detail { padding:0 16px 24px; gap:24px; }
  .home-compare-detail > div { padding-top:8px; }
  .home-compare-quick { font-size:.9375rem; }
  .home-page .process-section { padding-block:64px; }
  .home-page .process-heading { gap:20px; margin-bottom:32px; }
  .home-page .phase-panel { padding:18px; border-radius:24px; }
  .home-page .phase-heading { margin:0 0 20px; }
  .home-page .process-section .process-card { padding:22px; border-radius:18px; gap:20px; }
  .home-page .process-section .stage-heading h3 { font-size:1rem; }
  .home-page .process-section .success-card { padding:26px; }
  .home-page .process-section .success-card h3 { font-size:1.375rem; }
  .site-footer { padding-top:48px; }
  .site-footer .footer-top { grid-template-columns:1fr 1fr; gap:32px; }
  .site-footer .footer-top > div { grid-column:1/-1; }
  .site-footer .footer-bottom { margin-top:40px; }
}
@media(max-width:399px) {
  :root { --ui-gutter:16px; }
  .site-header .header-inner { padding-left:16px; }
  .home-page .human-section { padding:24px 16px; }
  .home-page .phase-panel { padding:12px; }
  .home-page .process-section .process-card { padding:20px; }
  .home-page .process-section .stage-heading { gap:12px; }
  .home-page .process-section .stage-icon { width:40px; height:40px; }
  .home-page .process-section .success-card .stage-icon { width:56px; height:56px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .button,.text-link,.menu-toggle,.languages-toggle,.main-navigation a,.language-list a { transition:background-color 120ms ease; transform:none; }
}
@media(prefers-reduced-transparency:reduce) {
  .site-header .header-inner,.site-header .language-navigation { background:#0b0c0a; backdrop-filter:none; -webkit-backdrop-filter:none; }
}
@media(prefers-contrast:more) {
  .site-header .header-inner,.site-header .language-navigation { background:#0b0c0a; border-color:#fff; backdrop-filter:none; }
  .home-page .human-section,.home-compare-row,.language-list li { border:1px solid #0b0c0a; }
  .home-page .process-section .process-card { border:1px solid #fff; }
}
