/* ============================================================
   NF COSMETICS GMBH — DESIGN SYSTEM v3
   ============================================================ */

*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

:root {
  --bg-base:        #030705;
  --bg-mid:         #071209;
  --bg-surface:     #0a1a0d;

  --glass-bg:       rgba(255, 255, 255, 0.022);
  --glass-border:   rgba(255, 255, 255, 0.07);

  --silver:         linear-gradient(135deg, #96a4b6 0%, #d8e2ee 30%, #eef3f8 50%, #ccd6e4 70%, #a0afc2 100%);
  --silver-flat:    #c8d4e0;
  --silver-light:   #eaf0f6;
  --silver-dim:     #8a9cb0;

  --card-bg-from:   rgba(18,28,20,0.98);
  --card-bg-to:     rgba(7,14,9,1);
  --card-border:    rgba(188, 200, 214, 0.11);
  --card-border-hi: rgba(210, 225, 240, 0.22);

  --glow-green:     rgba(46, 150, 76, 0.09);
  --glow-green-md:  rgba(46, 150, 76, 0.18);

  --text-primary:   #f0f4f8;
  --text-secondary: #b0bec8;
  --text-muted:     #607080;

  --font:           -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
  --transition:     200ms ease;
  --radius:         2px;
  --card-radius:    8px;
  --section-gap:    180px;
  --container-max:  1120px;
  --container-pad:  clamp(24px, 5vw, 80px);
}

html {
  scroll-behavior: smooth;
  font-size: 16px;
}

body {
  background-color: #030705;
  background-image:
    radial-gradient(ellipse at 50% -8%, rgba(46, 150, 76, 0.18) 0%, transparent 55%),
    radial-gradient(ellipse at 4% 48%,  rgba(36, 120, 60, 0.09) 0%, transparent 40%),
    radial-gradient(ellipse at 96% 74%, rgba(36, 120, 60, 0.07) 0%, transparent 40%);
  color: #f0f4f8;
  font-family: var(--font);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

::-webkit-scrollbar { width: 4px; }
::-webkit-scrollbar-track { background: #030705; }
::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.09); border-radius: 2px; }

::selection { background: rgba(46,150,76,0.22); color: #eaf0f6; }

.container {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 var(--container-pad);
}

.section {
  padding: var(--section-gap) 0;
  position: relative;
}

/* ── TYPOGRAPHY ── */

.section-label {
  display: inline-block;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: #607080;
  margin-bottom: 22px;
}

.section-headline {
  font-size: clamp(30px, 4vw, 54px);
  font-weight: 300;
  letter-spacing: -0.028em;
  line-height: 1.12;
  color: #f0f4f8;
  margin-bottom: 30px;
}

.section-text {
  font-size: 17px;
  color: #b0bec8;
  line-height: 1.84;
  max-width: 540px;
}

/* ── BUTTONS ── */

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 17px 44px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  border: none;
  cursor: pointer;
  transition: box-shadow var(--transition), transform var(--transition);
  border-radius: var(--radius);
  outline: none;
  white-space: nowrap;
}

.btn:focus-visible {
  outline: 1px solid rgba(255,255,255,0.4);
  outline-offset: 3px;
}

.btn-primary {
  background: linear-gradient(135deg, #96a4b6 0%, #d8e2ee 30%, #eef3f8 50%, #ccd6e4 70%, #a0afc2 100%);
  color: #040806;
  position: relative;
  overflow: hidden;
}

.btn-primary::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,0);
  transition: background var(--transition);
}

.btn-primary:hover::after { background: rgba(255,255,255,0.12); }

.btn-primary:hover {
  box-shadow: 0 0 52px rgba(180, 200, 220, 0.3), 0 6px 24px rgba(0,0,0,0.36);
  transform: translateY(-2px);
}

/* ============================================================
   HEADER
   ============================================================ */

.header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 100;
  background: transparent;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-bottom: 1px solid transparent;
  transition: background var(--transition), border-color var(--transition);
}

.header-inner {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 var(--container-pad);
  height: 70px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
}

.header-spacer { /* left balancer */ }

/* ── BACK LINK (blog, article pages) ── */

.back-link {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #607080;
  text-decoration: none;
  transition: color var(--transition);
  display: flex;
  align-items: center;
  justify-self: start;
  white-space: nowrap;
}

.back-link:hover { color: #c8d4e0; }

.back-link::before {
  content: '←';
  margin-right: 7px;
  font-size: 12px;
  opacity: 0.7;
  transition: opacity var(--transition);
}

.back-link:hover::before { opacity: 1; }

.logo-link {
  display: flex;
  justify-content: center;
  align-items: center;
  text-decoration: none;
  opacity: 0.92;
  transition: opacity var(--transition);
}

.logo-link:hover { opacity: 1; }

.header-logo {
  height: 60px;
  width: 60px;
  display: block;
  object-fit: contain;
}

.lang-switch {
  display: flex;
  align-items: center;
  gap: 10px;
  justify-self: end;
}

.lang-btn {
  background: none;
  border: none;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #a0b4c8;
  cursor: pointer;
  padding: 6px 6px;
  transition: color var(--transition);
  text-decoration: none;
  display: inline-block;
}

.lang-btn:hover  { color: #f0f4f8; }
.lang-btn.active { color: #f0f4f8; }

.lang-divider {
  color: #607080;
  font-size: 11px;
  opacity: 0.45;
}

/* ============================================================
   HERO
   ============================================================ */

.hero {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 160px var(--container-pad) 110px;
  position: relative;
  overflow: hidden;
}

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

.hero-label {
  display: inline-block;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.42em;
  text-transform: uppercase;
  background: linear-gradient(135deg, #96a4b6 0%, #d8e2ee 30%, #eef3f8 50%, #ccd6e4 70%, #a0afc2 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin-bottom: 40px;
  opacity: 0.88;
}

.hero-headline {
  font-size: clamp(42px, 6.8vw, 82px);
  font-weight: 300;
  letter-spacing: -0.038em;
  line-height: 1.06;
  color: #f0f4f8;
  margin-bottom: 34px;
}

.hero-subline {
  font-size: clamp(17px, 2.2vw, 21px);
  color: #b0bec8;
  line-height: 1.72;
  margin-bottom: 60px;
  max-width: 520px;
  margin-left: auto;
  margin-right: auto;
}

.hero-actions {
  display: flex;
  gap: 16px;
  justify-content: center;
}

.hero-glow {
  position: absolute;
  top: -20%;
  left: 50%;
  transform: translateX(-50%);
  width: 1100px;
  height: 1100px;
  background: radial-gradient(circle, rgba(46,150,76,0.12) 0%, transparent 62%);
  pointer-events: none;
  z-index: 1;
}

.hero-art {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  overflow: hidden;
}

.hero-art-layer1,
.hero-art-layer2 {
  position: absolute;
  inset: 0;
  will-change: transform;
}

.hero-art-layer1 svg,
.hero-art-layer2 svg {
  width: 100%;
  height: 100%;
  display: block;
}

/* ── HERO HELIX — CSS 3D orbital rings around the central axis ── */

.hero-helix {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  will-change: transform;
  /* Perspective context: slight look-down angle for dimensional depth */
  perspective: 960px;
  perspective-origin: 50% 42%;
}

.helix-ring {
  position: absolute;
  border-radius: 50%;
  left: 50%;
  will-change: transform;
}

/* Ring A — medium, green-tinted, anchors upper helix arc */
.helix-ring--a {
  width: 780px; height: 780px;
  margin-left: -390px;
  top: 3%;
  border: 1px solid rgba(56, 148, 80, 0.22);
  animation: helix-spin 30s linear infinite;
}

/* Ring B — smaller, silver-blue, middle orbital layer */
.helix-ring--b {
  width: 500px; height: 500px;
  margin-left: -250px;
  top: 26%;
  border: 1px solid rgba(148, 176, 196, 0.16);
  animation: helix-spin 30s linear infinite;
  animation-delay: -10s;
}

/* Ring C — largest, atmospheric outer sweep */
.helix-ring--c {
  width: 1000px; height: 1000px;
  margin-left: -500px;
  top: 13%;
  border: 1px solid rgba(40, 106, 60, 0.12);
  animation: helix-spin 38s linear infinite;
  animation-delay: -19s;
}

@keyframes helix-spin {
  from { transform: rotateX(75deg) rotateZ(0deg); }
  to   { transform: rotateX(75deg) rotateZ(360deg); }
}

@media (prefers-reduced-motion: reduce) {
  .helix-ring { animation-duration: 120s; }
}

/* ── HERO: seamless bottom fade into next section (all viewports) ── */

.hero::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 420px;
  background: linear-gradient(to bottom,
    transparent 0%,
    rgba(3, 7, 5, 0.10) 10%,
    rgba(3, 7, 5, 0.38) 30%,
    rgba(3, 7, 5, 0.70) 52%,
    rgba(3, 7, 5, 0.88) 70%,
    rgba(3, 7, 5, 0.96) 86%,
    rgba(3, 7, 5, 0.97) 100%);
  z-index: 1;
  pointer-events: none;
}

/* ── CORE: atmospheric bridge — continues the dark fade from hero ── */

.core::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 150px;
  background: linear-gradient(to bottom,
    rgba(3, 7, 5, 0.97) 0%,
    rgba(3, 7, 5, 0.68) 38%,
    rgba(3, 7, 5, 0.28) 70%,
    transparent 100%);
  pointer-events: none;
  z-index: -1;
}

/* ============================================================
   CORE
   ============================================================ */

.core-list {
  list-style: none;
  margin-top: 52px;
  display: flex;
  flex-direction: column;
  gap: 22px;
}

.core-item {
  display: flex;
  align-items: center;
  gap: 20px;
  font-size: 16px;
  color: #b0bec8;
  letter-spacing: 0.01em;
  line-height: 1.6;
}

.core-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #c8d4e0;
  flex-shrink: 0;
  opacity: 0.5;
}

/* ── SECTION DIVIDER ── */

.section-divider {
  height: 1px;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(188, 200, 214, 0.09) 20%,
    rgba(188, 200, 214, 0.2) 50%,
    rgba(188, 200, 214, 0.09) 80%,
    transparent 100%);
  margin: 0 var(--container-pad);
}

/* ── STATEMENT BAND ── */

.statement {
  padding: 130px 0;
  position: relative;
  overflow: hidden;
  background: linear-gradient(180deg, transparent 0%, rgba(10,26,13,0.65) 40%, rgba(10,26,13,0.65) 60%, transparent 100%);
}

.statement-inner {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 var(--container-pad);
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  gap: 40px;
  align-items: center;
  position: relative;
}

.statement-text {
  font-size: clamp(23px, 3.2vw, 40px);
  font-weight: 300;
  letter-spacing: -0.022em;
  line-height: 1.28;
  color: #f0f4f8;
  position: relative;
  z-index: 2;
}

.statement-text em {
  font-style: normal;
  background: linear-gradient(135deg, #96a4b6 0%, #d8e2ee 30%, #eef3f8 50%, #ccd6e4 70%, #a0afc2 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.statement-visual {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  color: #a8bccf;
  opacity: 0.82;
  position: relative;
  z-index: 1;
  margin-left: -20px; /* subtle bleed into gap */
}

.statement-visual svg {
  width: clamp(360px, 112%, 600px);
  height: auto;
}

/* ============================================================
   CAPABILITIES — Premium elevated silver cards
   ============================================================ */

.capabilities {
  background: linear-gradient(180deg, transparent 0%, rgba(10,26,13,0.55) 50%, transparent 100%);
}

.cap-grid {
  margin-top: 68px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

/* Premium card base — elevated metallic dark surface */
.cap-card {
  background: linear-gradient(150deg, rgba(30,42,32,0.97) 0%, rgba(16,24,18,0.98) 50%, rgba(9,15,11,1) 100%);
  border: 1px solid rgba(200, 216, 230, 0.2);
  border-radius: 8px;
  padding: 44px 36px;
  position: relative;
  overflow: hidden;
  cursor: default;
  will-change: transform;
  box-shadow:
    0 0 0 1px rgba(255,255,255,0.05) inset,
    0 1px 0 rgba(255,255,255,0.09) inset,
    0 4px 20px rgba(0,0,0,0.42),
    0 14px 50px rgba(0,0,0,0.26);
  transition:
    box-shadow   0.4s cubic-bezier(0.25,0.46,0.45,0.94),
    border-color 0.4s cubic-bezier(0.25,0.46,0.45,0.94);
  background-size: cover;
  background-position: center;
}

/* Top specular highlight — silver edge catching light */
.cap-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 8%;
  right: 8%;
  height: 1px;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(218, 234, 248, 0.6) 35%,
    rgba(232, 246, 255, 0.78) 50%,
    rgba(218, 234, 248, 0.6) 65%,
    transparent 100%);
  pointer-events: none;
}

/* Cursor / touch spotlight */
.cap-card::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(
    circle 110px at var(--mouse-x, 50%) var(--mouse-y, -10%),
    rgba(205, 226, 246, 0.11) 0%,
    rgba(188, 214, 238, 0.04) 55%,
    transparent 75%
  );
  opacity: 0;
  transition: opacity 0.35s ease;
  pointer-events: none;
  border-radius: 8px;
}

/* Per-card SVG texture backgrounds */
.cap-card--web {
  background-image:
    linear-gradient(150deg, rgba(30,42,32,0.97) 0%, rgba(16,24,18,0.98) 50%, rgba(9,15,11,1) 100%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='240'%3E%3Crect x='40' y='45' width='240' height='165' rx='2' stroke='rgba(58,150,80,0.35)' stroke-width='0.7' fill='none'/%3E%3Crect x='40' y='45' width='240' height='22' fill='rgba(58,150,80,0.08)'/%3E%3Ccircle cx='58' cy='56' r='4' stroke='rgba(140,160,180,0.25)' stroke-width='0.6' fill='none'/%3E%3Ccircle cx='71' cy='56' r='4' stroke='rgba(140,160,180,0.25)' stroke-width='0.6' fill='none'/%3E%3Ccircle cx='84' cy='56' r='4' stroke='rgba(140,160,180,0.25)' stroke-width='0.6' fill='none'/%3E%3Cline x1='60' y1='92' x2='200' y2='92' stroke='rgba(140,160,180,0.18)' stroke-width='0.6'/%3E%3Cline x1='60' y1='108' x2='240' y2='108' stroke='rgba(140,160,180,0.14)' stroke-width='0.6'/%3E%3Cline x1='60' y1='124' x2='180' y2='124' stroke='rgba(140,160,180,0.12)' stroke-width='0.6'/%3E%3C/svg%3E");
}

.cap-card--brand {
  background-image:
    linear-gradient(150deg, rgba(30,42,32,0.97) 0%, rgba(16,24,18,0.98) 50%, rgba(9,15,11,1) 100%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='240'%3E%3Ccircle cx='160' cy='120' r='90' stroke='rgba(58,150,80,0.25)' stroke-width='0.7' fill='none'/%3E%3Ccircle cx='160' cy='120' r='60' stroke='rgba(140,160,180,0.16)' stroke-width='0.6' fill='none'/%3E%3Ccircle cx='160' cy='120' r='30' stroke='rgba(140,160,180,0.14)' stroke-width='0.6' fill='none'/%3E%3Cline x1='160' y1='30' x2='160' y2='210' stroke='rgba(140,160,180,0.08)' stroke-width='0.5'/%3E%3Cline x1='70' y1='120' x2='250' y2='120' stroke='rgba(140,160,180,0.08)' stroke-width='0.5'/%3E%3C/svg%3E");
}

.cap-card--product {
  background-image:
    linear-gradient(150deg, rgba(30,42,32,0.97) 0%, rgba(16,24,18,0.98) 50%, rgba(9,15,11,1) 100%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='240'%3E%3Cpolygon points='160,40 240,88 240,152 160,200 80,152 80,88' stroke='rgba(58,150,80,0.32)' stroke-width='0.7' fill='none'/%3E%3Cline x1='160' y1='40' x2='160' y2='200' stroke='rgba(140,160,180,0.1)' stroke-width='0.5'/%3E%3Cline x1='80' y1='88' x2='240' y2='88' stroke='rgba(140,160,180,0.1)' stroke-width='0.5'/%3E%3Cline x1='80' y1='152' x2='240' y2='152' stroke='rgba(140,160,180,0.1)' stroke-width='0.5'/%3E%3Ccircle cx='160' cy='120' r='20' stroke='rgba(140,160,180,0.15)' stroke-width='0.6' fill='none'/%3E%3C/svg%3E");
}

.cap-card--app {
  background-image:
    linear-gradient(150deg, rgba(30,42,32,0.97) 0%, rgba(16,24,18,0.98) 50%, rgba(9,15,11,1) 100%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='240'%3E%3Crect x='115' y='20' width='90' height='165' rx='10' stroke='rgba(58,150,80,0.35)' stroke-width='0.7' fill='none'/%3E%3Cline x1='135' y1='36' x2='185' y2='36' stroke='rgba(140,160,180,0.22)' stroke-width='0.7' stroke-linecap='round'/%3E%3Cline x1='125' y1='70' x2='195' y2='70' stroke='rgba(140,160,180,0.16)' stroke-width='0.5'/%3E%3Cline x1='125' y1='86' x2='195' y2='86' stroke='rgba(140,160,180,0.14)' stroke-width='0.5'/%3E%3Cline x1='125' y1='102' x2='170' y2='102' stroke='rgba(140,160,180,0.12)' stroke-width='0.5'/%3E%3Ccircle cx='160' cy='165' r='6' stroke='rgba(140,160,180,0.18)' stroke-width='0.6' fill='none'/%3E%3C/svg%3E");
}

.cap-card--marketing {
  background-image:
    linear-gradient(150deg, rgba(30,42,32,0.97) 0%, rgba(16,24,18,0.98) 50%, rgba(9,15,11,1) 100%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='240'%3E%3Cline x1='50' y1='190' x2='270' y2='190' stroke='rgba(140,160,180,0.18)' stroke-width='0.7'/%3E%3Cline x1='50' y1='190' x2='50' y2='50' stroke='rgba(140,160,180,0.18)' stroke-width='0.7'/%3E%3Cpolyline points='50,170 90,154 130,138 170,110 210,84 250,58' stroke='rgba(58,150,80,0.4)' stroke-width='1' fill='none' stroke-linejoin='round'/%3E%3Ccircle cx='90' cy='154' r='3' fill='rgba(58,150,80,0.35)'/%3E%3Ccircle cx='130' cy='138' r='3' fill='rgba(58,150,80,0.35)'/%3E%3Ccircle cx='170' cy='110' r='3' fill='rgba(58,150,80,0.35)'/%3E%3Ccircle cx='210' cy='84' r='3' fill='rgba(58,150,80,0.35)'/%3E%3Ccircle cx='250' cy='58' r='3' fill='rgba(58,150,80,0.35)'/%3E%3C/svg%3E");
}

.cap-card--infra {
  background-image:
    linear-gradient(150deg, rgba(30,42,32,0.97) 0%, rgba(16,24,18,0.98) 50%, rgba(9,15,11,1) 100%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='240'%3E%3Ccircle cx='160' cy='60' r='14' stroke='rgba(58,150,80,0.4)' stroke-width='0.7' fill='none'/%3E%3Ccircle cx='80' cy='175' r='14' stroke='rgba(140,160,180,0.28)' stroke-width='0.7' fill='none'/%3E%3Ccircle cx='240' cy='175' r='14' stroke='rgba(140,160,180,0.28)' stroke-width='0.7' fill='none'/%3E%3Cline x1='160' y1='74' x2='90' y2='161' stroke='rgba(140,160,180,0.15)' stroke-width='0.6'/%3E%3Cline x1='160' y1='74' x2='230' y2='161' stroke='rgba(140,160,180,0.15)' stroke-width='0.6'/%3E%3Cline x1='94' y1='175' x2='226' y2='175' stroke='rgba(140,160,180,0.12)' stroke-width='0.6'/%3E%3Ccircle cx='160' cy='117' r='5' fill='rgba(58,150,80,0.22)'/%3E%3C/svg%3E");
}

.cap-card:hover {
  border-color: rgba(210, 228, 244, 0.32);
  box-shadow:
    0 0 0 1px rgba(255,255,255,0.07) inset,
    0 1px 0 rgba(255,255,255,0.12) inset,
    0 8px 32px rgba(0,0,0,0.52),
    0 20px 64px rgba(0,0,0,0.32),
    0 0 44px rgba(46,150,76,0.09);
}

.cap-card:hover::after,
.cap-card.is-touching::after { opacity: 1; }

.cap-icon {
  display: block;
  margin-bottom: 24px;
  filter: drop-shadow(0 0 10px rgba(188, 200, 220, 0.2));
}

.cap-title {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #f0f4f8;
  margin-bottom: 13px;
}

.cap-desc {
  font-size: 14px;
  color: #b0bec8;
  line-height: 1.76;
}

/* ============================================================
   APPROACH
   ============================================================ */

.approach {
  background: linear-gradient(180deg, transparent 0%, rgba(7,18,9,0.75) 40%, rgba(7,18,9,0.75) 60%, transparent 100%);
}

.approach-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 110px;
  align-items: start;
}

.approach-pillars {
  display: flex;
  flex-direction: column;
  padding-top: 8px;
}

.pillar {
  display: grid;
  grid-template-columns: 40px 1fr;
  gap: 0 26px;
  padding: 38px 0;
  border-bottom: 1px solid rgba(255,255,255,0.07);
  align-items: start;
}

.pillar:first-child { border-top: 1px solid rgba(255,255,255,0.07); }

.pillar-num {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.16em;
  color: #607080;
  opacity: 0.65;
  padding-top: 3px;
}

.pillar-content {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.pillar-title {
  font-size: 18px;
  font-weight: 400;
  color: #f0f4f8;
  letter-spacing: 0.005em;
  line-height: 1.4;
}

.pillar-desc {
  font-size: 13px;
  color: #607080;
  line-height: 1.78;
  letter-spacing: 0.01em;
  max-width: 380px;
}

/* ============================================================
   PROCESS — Horizontal / Vertical Timeline
   ============================================================ */

.process {
  background: linear-gradient(180deg, transparent 0%, rgba(3,7,5,0.75) 50%, transparent 100%);
}

.timeline {
  margin-top: 76px;
}

/* Desktop: 4-column horizontal grid */
.timeline-steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  position: relative;
}

/* Horizontal connecting line through node centers */
.timeline-steps::before {
  content: '';
  position: absolute;
  top: 63px;
  left: 12.5%;
  right: 12.5%;
  height: 1px;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(188, 200, 214, 0.16) 10%,
    rgba(188, 200, 214, 0.28) 50%,
    rgba(188, 200, 214, 0.16) 90%,
    transparent 100%);
  z-index: 0;
  pointer-events: none;
}

.timeline-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0 24px;
  text-align: center;
}

.timeline-marker {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 32px;
  position: relative;
  z-index: 1;
}

.timeline-num {
  display: block;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.2em;
  color: #c0d2e0;
  margin-bottom: 16px;
  opacity: 1;
  transition: color 0.9s ease;
}

.timeline-node {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid rgba(188, 200, 214, 0.22);
  background: linear-gradient(145deg, rgba(22,34,24,0.96), rgba(10,18,12,0.99));
  box-shadow:
    0 2px 14px rgba(0,0,0,0.5),
    0 0 0 6px rgba(188,200,214,0.04),
    0 0 0 1px rgba(255,255,255,0.04) inset;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  transition: border-color 0.6s ease, box-shadow 0.6s ease;
}

.timeline-node::before {
  content: '';
  position: absolute;
  width: 26px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(218,234,248,0.5), transparent);
  top: 0;
  left: 50%;
  transform: translateX(-50%);
}

.timeline-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: linear-gradient(135deg, #bcc8d6, #eef3f8);
  opacity: 0.75;
  box-shadow: 0 0 10px rgba(188,200,214,0.35);
  transition: opacity 0.6s ease, box-shadow 0.6s ease;
}

.timeline-body { text-align: center; }

.step-title {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #f0f4f8;
  margin-bottom: 14px;
}

.step-desc {
  font-size: 15px;
  color: #b8c8d4;
  line-height: 1.82;
}

/* ── Timeline scroll activation ── */

.timeline--scroll-active .timeline-step {
  opacity: 0.25;
  transform: translateY(14px);
  transition: opacity 0.9s ease, transform 0.9s ease;
}

/* Stagger: desktop horizontal / all layouts */
.timeline--scroll-active .timeline-step:nth-child(1) { transition-delay: 0s; }
.timeline--scroll-active .timeline-step:nth-child(2) { transition-delay: 0.18s; }
.timeline--scroll-active .timeline-step:nth-child(3) { transition-delay: 0.36s; }
.timeline--scroll-active .timeline-step:nth-child(4) { transition-delay: 0.54s; }

.timeline--scroll-active .timeline-step.is-active {
  opacity: 1;
  transform: translateY(0);
}

.timeline-step.is-active .timeline-num {
  color: #d4e4f0;
  opacity: 1;
}

.timeline-step.is-active .step-title {
  color: #ffffff;
}

.timeline-step.is-active .step-desc {
  color: #ccd8e2;
}

.timeline-step.is-active .timeline-node {
  border-color: rgba(188, 200, 214, 0.52);
  box-shadow:
    0 2px 14px rgba(0,0,0,0.5),
    0 0 0 6px rgba(188,200,214,0.10),
    0 0 0 1px rgba(255,255,255,0.07) inset,
    0 0 28px rgba(188,200,214,0.25);
}

.timeline-step.is-active .timeline-dot {
  opacity: 1;
  box-shadow: 0 0 20px rgba(188,200,214,0.65);
}

/* ============================================================
   FIELDS — Same premium card language as capabilities
   ============================================================ */

.fields {
  background: linear-gradient(180deg, transparent 0%, rgba(10,26,13,0.45) 50%, transparent 100%);
}

.fields-grid {
  margin-top: 68px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.field-card {
  background: linear-gradient(150deg, rgba(30,42,32,0.97) 0%, rgba(16,24,18,0.98) 50%, rgba(9,15,11,1) 100%);
  border: 1px solid rgba(200, 216, 230, 0.2);
  border-radius: 8px;
  padding: 52px 36px;
  position: relative;
  overflow: hidden;
  cursor: default;
  will-change: transform;
  box-shadow:
    0 0 0 1px rgba(255,255,255,0.05) inset,
    0 1px 0 rgba(255,255,255,0.09) inset,
    0 4px 20px rgba(0,0,0,0.42),
    0 14px 50px rgba(0,0,0,0.26);
  transition:
    box-shadow   0.4s cubic-bezier(0.25,0.46,0.45,0.94),
    border-color 0.4s cubic-bezier(0.25,0.46,0.45,0.94);
  background-size: cover;
  background-position: center;
}

/* Top specular highlight */
.field-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 8%;
  right: 8%;
  height: 1px;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(218, 234, 248, 0.6) 35%,
    rgba(232, 246, 255, 0.78) 50%,
    rgba(218, 234, 248, 0.6) 65%,
    transparent 100%);
  pointer-events: none;
}

/* Cursor / touch spotlight */
.field-card::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(
    circle 110px at var(--mouse-x, 50%) var(--mouse-y, -10%),
    rgba(205, 226, 246, 0.11) 0%,
    rgba(188, 214, 238, 0.04) 55%,
    transparent 75%
  );
  opacity: 0;
  transition: opacity 0.35s ease;
  pointer-events: none;
  border-radius: 8px;
}

.field-card--beauty {
  background-image:
    linear-gradient(150deg, rgba(30,42,32,0.97) 0%, rgba(16,24,18,0.98) 50%, rgba(9,15,11,1) 100%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='320'%3E%3Ccircle cx='200' cy='160' r='130' stroke='rgba(58,150,80,0.18)' stroke-width='0.7' fill='none'/%3E%3Ccircle cx='200' cy='160' r='90' stroke='rgba(140,160,180,0.12)' stroke-width='0.6' fill='none'/%3E%3Ccircle cx='200' cy='160' r='50' stroke='rgba(140,160,180,0.1)' stroke-width='0.6' fill='none'/%3E%3Ccircle cx='200' cy='160' r='160' stroke='rgba(58,150,80,0.08)' stroke-width='0.5' fill='none'/%3E%3C/svg%3E");
}

.field-card--consumer {
  background-image:
    linear-gradient(150deg, rgba(30,42,32,0.97) 0%, rgba(16,24,18,0.98) 50%, rgba(9,15,11,1) 100%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='320'%3E%3Crect x='130' y='50' width='140' height='220' rx='2' stroke='rgba(58,150,80,0.28)' stroke-width='0.7' fill='none'/%3E%3Cline x1='130' y1='90' x2='270' y2='90' stroke='rgba(140,160,180,0.16)' stroke-width='0.5'/%3E%3Cline x1='155' y1='130' x2='245' y2='130' stroke='rgba(140,160,180,0.14)' stroke-width='0.5'/%3E%3Cline x1='155' y1='152' x2='245' y2='152' stroke='rgba(140,160,180,0.12)' stroke-width='0.5'/%3E%3Cline x1='155' y1='174' x2='220' y2='174' stroke='rgba(140,160,180,0.12)' stroke-width='0.5'/%3E%3C/svg%3E");
}

.field-card--digital {
  background-image:
    linear-gradient(150deg, rgba(30,42,32,0.97) 0%, rgba(16,24,18,0.98) 50%, rgba(9,15,11,1) 100%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='320'%3E%3Cline x1='0' y1='80' x2='400' y2='80' stroke='rgba(58,150,80,0.12)' stroke-width='0.5'/%3E%3Cline x1='0' y1='160' x2='400' y2='160' stroke='rgba(58,150,80,0.12)' stroke-width='0.5'/%3E%3Cline x1='0' y1='240' x2='400' y2='240' stroke='rgba(58,150,80,0.1)' stroke-width='0.5'/%3E%3Cline x1='80' y1='0' x2='80' y2='320' stroke='rgba(58,150,80,0.1)' stroke-width='0.5'/%3E%3Cline x1='160' y1='0' x2='160' y2='320' stroke='rgba(58,150,80,0.12)' stroke-width='0.5'/%3E%3Cline x1='240' y1='0' x2='240' y2='320' stroke='rgba(58,150,80,0.1)' stroke-width='0.5'/%3E%3Cline x1='320' y1='0' x2='320' y2='320' stroke='rgba(58,150,80,0.1)' stroke-width='0.5'/%3E%3Ccircle cx='160' cy='160' r='10' stroke='rgba(58,150,80,0.32)' stroke-width='0.7' fill='none'/%3E%3Ccircle cx='80' cy='80' r='4' fill='rgba(140,160,180,0.18)'/%3E%3Ccircle cx='240' cy='80' r='4' fill='rgba(140,160,180,0.18)'/%3E%3Ccircle cx='80' cy='240' r='4' fill='rgba(140,160,180,0.18)'/%3E%3Ccircle cx='240' cy='240' r='4' fill='rgba(140,160,180,0.18)'/%3E%3C/svg%3E");
}

.field-card:hover {
  border-color: rgba(210, 228, 244, 0.32);
  box-shadow:
    0 0 0 1px rgba(255,255,255,0.07) inset,
    0 1px 0 rgba(255,255,255,0.12) inset,
    0 8px 32px rgba(0,0,0,0.52),
    0 20px 64px rgba(0,0,0,0.32),
    0 0 44px rgba(46,150,76,0.09);
}

.field-card:hover::after,
.field-card.is-touching::after { opacity: 1; }

.field-num {
  display: block;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.18em;
  color: #607080;
  margin-bottom: 22px;
  opacity: 0.65;
}

.field-title {
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: #f0f4f8;
  margin-bottom: 16px;
}

.field-desc {
  font-size: 14px;
  color: #b0bec8;
  line-height: 1.82;
}

/* ============================================================
   CONTACT
   ============================================================ */

.contact-inner {
  display: grid;
  grid-template-columns: 1fr 1.5fr;
  gap: 110px;
  align-items: start;
}

.contact-header .section-text { margin-top: 8px; }

.contact-form {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}

.form-group {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.form-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #607080;
}

.form-input {
  background: rgba(255,255,255,0.025);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: var(--radius);
  padding: 15px 20px;
  font-size: 15px;
  color: #f0f4f8;
  font-family: var(--font);
  outline: none;
  transition: border-color var(--transition), background var(--transition);
  width: 100%;
}

.form-input::placeholder {
  color: #607080;
  opacity: 0.4;
}

.form-input:focus {
  border-color: rgba(188,200,214,0.3);
  background: rgba(255,255,255,0.038);
}

.form-textarea {
  resize: vertical;
  min-height: 150px;
}

.form-honeypot { display: none !important; }

.form-success {
  font-size: 13px;
  color: rgba(80, 210, 115, 0.92);
  letter-spacing: 0.05em;
  line-height: 1.55;
  margin-top: 4px;
}

.form-error {
  color: rgba(255, 100, 80, 0.9);
}

.hidden { display: none !important; }

/* ============================================================
   FOOTER
   ============================================================ */

.footer {
  border-top: 1px solid rgba(255,255,255,0.07);
  padding: 52px 0;
}

.footer-inner {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 var(--container-pad);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
}

.footer-links {
  display: flex;
  align-items: center;
  gap: 36px;
  flex-wrap: wrap;
}

.footer-link {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #607080;
  cursor: pointer;
  transition: color var(--transition);
  text-decoration: none;
  display: inline-block;
  background: none;
  border: none;
  padding: 0;
}

.footer-link:hover { color: #c8d4e0; }

.footer-copy {
  font-size: 10px;
  color: #607080;
  letter-spacing: 0.09em;
  opacity: 0.5;
}

/* ============================================================
   BLOG CARDS — shared by blog.html and homepage insights section
   ============================================================ */

.blog-grid {
  margin-top: 68px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.insights-grid {
  margin-top: 68px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.blog-card {
  background: linear-gradient(150deg, rgba(30,42,32,0.97) 0%, rgba(16,24,18,0.98) 50%, rgba(9,15,11,1) 100%);
  border: 1px solid rgba(200, 216, 230, 0.2);
  border-radius: 8px;
  padding: 40px 34px 36px;
  position: relative;
  overflow: hidden;
  cursor: default;
  will-change: transform;
  display: flex;
  flex-direction: column;
  box-shadow:
    0 0 0 1px rgba(255,255,255,0.05) inset,
    0 1px 0 rgba(255,255,255,0.09) inset,
    0 4px 20px rgba(0,0,0,0.42),
    0 14px 50px rgba(0,0,0,0.26);
  transition:
    box-shadow   0.4s cubic-bezier(0.25,0.46,0.45,0.94),
    border-color 0.4s cubic-bezier(0.25,0.46,0.45,0.94);
}

/* Top specular highlight */
.blog-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 8%;
  right: 8%;
  height: 1px;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(218, 234, 248, 0.6) 35%,
    rgba(232, 246, 255, 0.78) 50%,
    rgba(218, 234, 248, 0.6) 65%,
    transparent 100%);
  pointer-events: none;
}

/* Spotlight */
.blog-card::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(
    circle 110px at var(--mouse-x, 50%) var(--mouse-y, -10%),
    rgba(205, 226, 246, 0.11) 0%,
    rgba(188, 214, 238, 0.04) 55%,
    transparent 75%
  );
  opacity: 0;
  transition: opacity 0.35s ease;
  pointer-events: none;
  border-radius: 8px;
}

.blog-card:hover {
  border-color: rgba(210, 228, 244, 0.32);
  box-shadow:
    0 0 0 1px rgba(255,255,255,0.07) inset,
    0 1px 0 rgba(255,255,255,0.12) inset,
    0 8px 32px rgba(0,0,0,0.52),
    0 20px 64px rgba(0,0,0,0.32),
    0 0 44px rgba(46,150,76,0.09);
}

.blog-card:hover::after,
.blog-card.is-touching::after { opacity: 1; }

.blog-card-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 22px;
}

.blog-card-cat {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #8a9cb0;
  background: rgba(188,200,214,0.07);
  border: 1px solid rgba(188,200,214,0.13);
  padding: 4px 9px;
  border-radius: 2px;
}

.blog-card-date {
  font-size: 11px;
  color: #607080;
  letter-spacing: 0.04em;
}

.blog-card-title {
  font-size: 16px;
  font-weight: 500;
  letter-spacing: -0.012em;
  line-height: 1.42;
  color: #f0f4f8;
  margin-bottom: 16px;
}

.blog-card-excerpt {
  font-size: 13px;
  color: #8a9cb0;
  line-height: 1.78;
  margin-bottom: 32px;
  flex-grow: 1;
}

.blog-card-read {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #8a9cb0;
  text-decoration: none;
  transition: color var(--transition);
  margin-top: auto;
}

.blog-card:hover .blog-card-read {
  color: #c8d4e0;
}

.blog-card-arrow {
  display: inline-block;
  transition: transform var(--transition);
}

.blog-card:hover .blog-card-arrow {
  transform: translateX(5px);
}

/* ── INSIGHTS CTA ── */

.insights-cta-wrap {
  margin-top: 52px;
}

.insights-cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #8a9cb0;
  text-decoration: none;
  transition: color var(--transition);
}

.insights-cta:hover { color: #c8d4e0; }

.insights-cta::after {
  content: '→';
  display: inline-block;
  transition: transform var(--transition);
}

.insights-cta:hover::after { transform: translateX(5px); }

/* ── INSIGHTS SLIDER (homepage) ── */

.insights-slider-outer {
  margin-top: 68px;
  position: relative;
}

.insights-slider-outer::after {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 100px;
  background: linear-gradient(to left, #030705 0%, transparent 100%);
  pointer-events: none;
  z-index: 2;
}

.insights-track-wrap {
  overflow: hidden;
  cursor: grab;
  -webkit-user-select: none;
  user-select: none;
}

.insights-track-wrap.is-dragging {
  cursor: grabbing;
}

.insights-track {
  display: flex;
  gap: 20px;
  will-change: transform;
}

.insights-track .blog-card {
  flex: 0 0 320px;
  width: 320px;
  cursor: pointer;
}

/* ── BLOG PAGE HERO ── */

.blog-hero {
  padding-top: calc(70px + 52px);
  padding-bottom: 24px;
}

/* ── BLOG FEATURED SECTION ── */

.blog-featured-section {
  padding-top: 56px;
  padding-bottom: 48px;
}

.blog-featured-label {
  display: block;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(200, 220, 210, 0.5);
  margin-bottom: 28px;
}

.blog-grid--featured {
  margin-top: 0;
  gap: 28px;
}

.blog-grid--featured .blog-card {
  padding: 46px 38px 42px;
}

/* Reduce top gap on the blog articles grid section */
#articles.section {
  padding-top: 72px;
}

#articles .blog-grid {
  margin-top: 0;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */

@media (max-width: 960px) {
  :root { --section-gap: 130px; }

  .cap-grid,
  .blog-grid,
  .insights-grid { grid-template-columns: repeat(2, 1fr); }
  .insights-track .blog-card { flex: 0 0 280px; width: 280px; }

  .approach-inner {
    grid-template-columns: 1fr;
    gap: 60px;
  }

  /* Timeline: switch to vertical */
  .timeline-steps {
    grid-template-columns: 1fr;
  }

  .timeline-steps::before {
    top:    0;
    bottom: 0;
    left:   22px;
    right:  auto;
    width:  1px;
    height: auto;
    background: linear-gradient(180deg,
      transparent 0%,
      rgba(188,200,214,0.18) 10%,
      rgba(188,200,214,0.25) 50%,
      rgba(188,200,214,0.18) 90%,
      transparent 100%);
  }

  .timeline-step {
    flex-direction: row;
    align-items: flex-start;
    text-align: left;
    padding: 0 0 52px 0;
    gap: 28px;
  }

  .timeline-step:last-child { padding-bottom: 0; }

  .timeline-marker {
    flex-direction: column;
    align-items: center;
    flex-shrink: 0;
    margin-bottom: 0;
    width: 44px;
  }

  .timeline-num { margin-bottom: 8px; }

  .timeline-body {
    text-align: left;
    padding-top: 10px;
  }

  .contact-inner {
    grid-template-columns: 1fr;
    gap: 60px;
  }

  .statement-inner {
    grid-template-columns: 1fr;
    gap: 44px;
    position: static;
  }

  .statement-visual {
    justify-content: center;
    margin-left: 0;       /* reset desktop bleed */
    opacity: 0.72;
  }

  .statement-text { position: static; z-index: auto; }

  .statement-visual svg { width: clamp(280px, 80%, 440px); }
}

@media (max-width: 640px) {
  :root {
    --section-gap: 90px;
    --container-pad: 24px;
  }

  .cap-grid,
  .blog-grid,
  .insights-grid { grid-template-columns: 1fr; }

  .insights-slider-outer::after { width: 60px; }
  .insights-track .blog-card { flex: 0 0 260px; width: 260px; }
  .fields-grid { grid-template-columns: 1fr; gap: 16px; }

  .form-row { grid-template-columns: 1fr; }

  /* Footer — fully centered on mobile */
  .footer-inner {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 28px;
  }

  .footer-links {
    justify-content: center;
    gap: 28px;
  }

  /* Hero */
  .hero-actions { flex-direction: column; align-items: center; }

  .hero-headline { font-size: clamp(36px, 9vw, 56px); }

  .hero-subline { font-size: 16px; }

  /* Buttons: visually dominant */
  .btn {
    width: 100%;
    max-width: 320px;
  }

  /* Section text: unconstrained, full-width legibility */
  .section-text { max-width: 100%; }

  /* Section kicker labels: centered on mobile (override inline-block) */
  .section-label {
    display: block;
    text-align: center;
  }

  /* Core section: centered balance */
  .core-list { align-items: center; }
  .core .section-label,
  .core .section-headline,
  .core .section-text { text-align: center; }

  /* Fields section: centered on single column */
  .fields .section-label,
  .fields .section-headline { text-align: center; }

  /* Statement text: centered when visual is below */
  .statement-text { text-align: center; }

  /* Statement: natural stacked layout — visual sits below text on mobile */
  .statement-inner {
    position: static;
    overflow: visible;
  }

  .statement-visual {
    position: static;
    justify-content: center;
    align-items: center;
    opacity: 0.58;
    pointer-events: auto;
    z-index: auto;
    margin-left: 0;
  }

  .statement-visual svg {
    width: clamp(220px, 72%, 340px);
    height: auto;
    margin-left: 0;
  }

  .statement-text {
    position: static;
    z-index: auto;
    padding: 0;
  }

  /* Pillar desc: no max-width constraint */
  .pillar-desc { max-width: 100%; }

  /* Contact header: full-width + centered on mobile */
  .contact-header .section-text { max-width: 100%; }
  .contact-header .section-label,
  .contact-header .section-headline,
  .contact-header .section-text { text-align: center; }

  /* Capabilities section: centered */
  .capabilities .section-label,
  .capabilities .section-headline,
  .capabilities .section-text { text-align: center; }

  /* Process section: centered */
  .process .section-label,
  .process .section-headline,
  .process .section-text { text-align: center; }

  /* Insights section: centered */
  .insights .section-label,
  .insights .section-headline,
  .insights .section-text { text-align: center; }

  /* Blog hero: centered */
  .blog-hero .section-label,
  .blog-hero .section-headline,
  .blog-hero .section-text { text-align: center; }

  /* Approach section: centered */
  .approach .section-label,
  .approach .section-headline,
  .approach .section-text { text-align: center; }

  /* Helix rings: scaled for mobile viewport */
  .hero-helix {
    perspective: 680px;
    perspective-origin: 50% 40%;
  }

  .helix-ring--a {
    width: 94vw; height: 94vw;
    margin-left: -47vw;
    top: 6%;
    border-color: rgba(56, 148, 80, 0.26);
  }

  .helix-ring--b {
    width: 60vw; height: 60vw;
    margin-left: -30vw;
    top: 28%;
    border-color: rgba(148, 176, 196, 0.20);
  }

  .helix-ring--c {
    width: 120vw; height: 120vw;
    margin-left: -60vw;
    top: 17%;
    border-color: rgba(40, 106, 60, 0.14);
  }


}
