:root {
  --font-body: Arial, Helvetica, sans-serif;
  --background: 0 0% 97%;
  --foreground: 0 0% 16%;
  --card: 0 0% 100%;
  --primary: 270 58% 63%;
  --primary-deep: 258 56% 52%;
  --muted: 0 0% 95%;
  --muted-foreground: 0 0% 50%;
  --border: 240 2% 85%;
  --surface-dark: 0 0% 16%;
  --header-h: 84px;
  --hero-gap: clamp(1.15rem, 3vw, 1.75rem);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: var(--font-body); background: hsl(var(--background)); color: hsl(var(--foreground)); overflow-x: hidden; }

.skip-link {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.skip-link:focus {
  position: fixed;
  left: max(1rem, env(safe-area-inset-left, 0px));
  top: max(1rem, env(safe-area-inset-top, 0px));
  z-index: 10001;
  width: auto;
  height: auto;
  margin: 0;
  padding: 0.65rem 1.1rem;
  overflow: visible;
  clip: auto;
  white-space: normal;
  font-weight: 700;
  font-size: 0.85rem;
  color: hsl(var(--primary-deep));
  background: hsl(0 0% 100%);
  border: 2px solid hsl(var(--primary));
  border-radius: 10px;
  box-shadow: 0 12px 40px -16px hsla(var(--primary-deep), 0.45);
  text-decoration: none;
}

/* Page preloader */
.page-preloader {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  background: radial-gradient(140% 100% at 50% 0%, #ffffff 0%, #f5f1fb 55%, #ece4fb 100%);
  transition: opacity .6s ease, visibility .6s ease;
}
.page-preloader::before,
.page-preloader::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  opacity: .55;
  pointer-events: none;
}
.page-preloader::before {
  width: 360px; height: 360px;
  left: 18%; top: 20%;
  background: radial-gradient(circle, hsla(var(--primary), .55), transparent 70%);
  animation: preloaderFloat 8s ease-in-out infinite;
}
.page-preloader::after {
  width: 420px; height: 420px;
  right: 10%; bottom: 10%;
  background: radial-gradient(circle, hsla(var(--primary-deep), .5), transparent 70%);
  animation: preloaderFloat 9s ease-in-out -3s infinite reverse;
}
@keyframes preloaderFloat {
  0%, 100% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(-30px, 20px) scale(1.08); }
}
.page-preloader__inner {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .8rem;
}
.page-preloader__logo {
  display: block;
  height: 3rem;
  width: auto;
  max-width: min(88vw, 280px);
  object-fit: contain;
  animation: preloaderLogo .9s cubic-bezier(.2,.8,.25,1) both;
}
@keyframes preloaderLogo {
  from { opacity: 0; transform: translateY(18px) scale(.92); }
  to { opacity: 1; transform: none; }
}
.page-preloader__label {
  font-size: .78rem;
  letter-spacing: .3em;
  font-weight: 700;
  color: hsl(var(--primary-deep));
  text-transform: uppercase;
  opacity: 0;
  animation: preloaderLabel .7s ease .2s forwards;
}
@keyframes preloaderLabel { to { opacity: 1; } }
.page-preloader__bar {
  position: relative;
  width: 180px;
  height: 3px;
  border-radius: 3px;
  background: hsla(var(--primary), .15);
  overflow: hidden;
  margin-top: .6rem;
}
.page-preloader__bar-fill {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(90deg, hsl(var(--primary)), hsl(var(--primary-deep)));
  transform-origin: left center;
  animation: preloaderBar 1.6s cubic-bezier(.6,.05,.2,1) infinite;
}
@keyframes preloaderBar {
  0% { transform: translateX(-100%) scaleX(.4); }
  50% { transform: translateX(0) scaleX(.9); }
  100% { transform: translateX(110%) scaleX(.4); }
}
.page-preloader.is-hidden {
  opacity: 0;
  visibility: hidden;
}

/* Scroll progress bar */
.scroll-progress {
  position: fixed;
  top: 0; left: 0; right: 0;
  height: 3px;
  z-index: 80;
  pointer-events: none;
  background: transparent;
}
.scroll-progress__bar {
  display: block;
  height: 100%;
  width: 0;
  background: linear-gradient(90deg, hsl(var(--primary)), hsl(var(--primary-deep)));
  box-shadow: 0 0 12px hsla(var(--primary), .6);
  transition: width .12s linear;
}

/* Generic reveal-on-scroll */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .85s cubic-bezier(.2,.8,.25,1), transform .85s cubic-bezier(.2,.8,.25,1);
  will-change: opacity, transform;
}
.reveal.is-visible { opacity: 1; transform: none; }
.reveal[data-reveal="left"] { transform: translateX(-36px); }
.reveal[data-reveal="right"] { transform: translateX(36px); }
.reveal[data-reveal="scale"] { transform: scale(.94); }
.reveal.is-visible[data-reveal="left"],
.reveal.is-visible[data-reveal="right"] { transform: translateX(0); }
.reveal.is-visible[data-reveal="scale"] { transform: scale(1); }

/* Magnetic button sheen */
.btn { position: relative; overflow: hidden; isolation: isolate; }
.btn::before {
  content: "";
  position: absolute;
  top: 0; left: -120%;
  width: 60%;
  height: 100%;
  background: linear-gradient(100deg, transparent, hsla(0,0%,100%,.35), transparent);
  transform: skewX(-20deg);
  transition: left .7s cubic-bezier(.2,.8,.25,1);
  pointer-events: none;
  z-index: -1;
}
.btn:hover::before { left: 160%; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .page-preloader, .page-preloader::before, .page-preloader::after,
  .page-preloader__logo, .page-preloader__label, .page-preloader__bar-fill { animation: none !important; }
  .reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
  .btn::before { display: none; }
}
a { color: inherit; text-decoration: none; }
button, input { font: inherit; color: inherit; }
.container {
  width: 100%;
  margin: 0 auto;
  max-width: 1320px;
  padding-left: max(15px, env(safe-area-inset-left, 0px));
  padding-right: max(15px, env(safe-area-inset-right, 0px));
}

.site-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 60;
  background: transparent;
  border-bottom: 1px solid transparent;
  transition: box-shadow .3s ease;
  transform: translateY(-110%);
  animation: headerDrop .7s cubic-bezier(.2,.8,.25,1) .15s forwards;
}
@keyframes headerDrop { to { transform: translateY(0); } }
.site-header.scrolled { background: transparent; box-shadow: none; border-bottom-color: transparent; }
.header-inner {
  display: flex;
  align-items: center;
  gap: clamp(.5rem, 2vw, 1rem);
  min-height: var(--header-h);
  transition: min-height .3s ease;
}
.site-header.scrolled .header-inner { min-height: calc(var(--header-h) - 16px); }
.logo-link {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  position: relative;
  flex: 0 1 auto;
  min-width: 0;
  transition: transform .25s ease;
}
.header-actions {
  flex: 0 0 auto;
  margin-left: auto;
}
.logo-link:hover { transform: translateY(-1px); }
.logo-img {
  display: block;
  height: 2.65rem;
  width: auto;
  max-width: min(280px, 48vw);
  object-fit: contain;
  transition: filter .25s ease, opacity .25s ease;
}
.logo-link:hover .logo-img {
  filter: drop-shadow(0 8px 16px hsla(var(--primary-deep), .35));
}

.desktop-nav {
  position: relative;
  display: flex;
  align-items: center;
  gap: .25rem;
  margin-left: auto;
  padding: 6px 8px;
  min-height: 48px;
  font-size: .92rem;
  color: hsla(var(--foreground), .72);
  background: hsla(0, 0%, 100%, .78);
  border: 1px solid hsla(var(--primary), .14);
  border-radius: 999px;
  box-shadow: 0 12px 30px -18px hsla(var(--primary-deep), .35), inset 0 1px 0 hsla(0, 0%, 100%, .7);
  backdrop-filter: blur(14px) saturate(150%);
  -webkit-backdrop-filter: blur(14px) saturate(150%);
}
.desktop-nav a {
  position: relative;
  padding: .55rem .95rem;
  border-radius: 999px;
  font-weight: 500;
  text-decoration: none;
  color: inherit;
  transition: color .25s ease, background .25s ease;
  z-index: 1;
}
.desktop-nav a::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: .25rem;
  width: 0;
  height: 2px;
  background: hsl(var(--primary));
  border-radius: 2px;
  transition: width .3s ease, left .3s ease;
}
.desktop-nav a:hover { color: hsl(var(--primary-deep)); }
.desktop-nav a:hover::after { width: 18px; left: calc(50% - 9px); }
.desktop-nav a.is-active {
  color: hsl(var(--primary-deep));
  font-weight: 600;
}
.desktop-nav a.is-active::after { width: 22px; left: calc(50% - 11px); }
.nav-indicator {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 0;
  background: hsla(var(--primary), .08);
  border-radius: 999px;
  transition: width .35s cubic-bezier(.2,.8,.25,1), transform .35s cubic-bezier(.2,.8,.25,1), opacity .3s ease;
  opacity: 0;
  pointer-events: none;
  z-index: 0;
}
.desktop-nav:hover .nav-indicator,
.desktop-nav:focus-within .nav-indicator { opacity: 1; }

.header-actions { display: flex; align-items: center; gap: clamp(.4rem, 1.5vw, .75rem); }

.lang-switch {
  position: relative;
  display: inline-flex;
  align-items: stretch;
  padding: 5px;
  min-height: 48px;
  background: hsla(0, 0%, 100%, .78);
  border: 1px solid hsla(var(--primary), .14);
  border-radius: 999px;
  overflow: hidden;
  box-shadow: 0 12px 30px -18px hsla(var(--primary-deep), .35), inset 0 1px 0 hsla(0, 0%, 100%, .7);
  backdrop-filter: blur(14px) saturate(150%);
  -webkit-backdrop-filter: blur(14px) saturate(150%);
}

.header-actions .btn {
  border-radius: 999px;
  padding: .7rem 1.25rem;
  box-shadow: 0 14px 32px -16px hsla(var(--primary-deep), .55);
  white-space: nowrap;
}
.mobile-nav__cta {
  white-space: nowrap;
}
.header-actions .btn:hover { box-shadow: 0 18px 36px -16px hsla(var(--primary-deep), .65); }
.lang-switch__option {
  position: relative;
  z-index: 1;
  border: 0;
  background: transparent;
  padding: .4rem .75rem;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .08em;
  color: hsl(var(--primary-deep));
  cursor: pointer;
  border-radius: 999px;
  transition: color .25s ease;
  min-width: 2.2rem;
}
.lang-switch__option.is-active { color: #fff; }
.lang-switch__thumb {
  position: absolute;
  top: 5px;
  bottom: 5px;
  left: 5px;
  width: calc(50% - 5px);
  background: linear-gradient(135deg, hsl(var(--primary)), hsl(var(--primary-deep)));
  border-radius: 999px;
  box-shadow: 0 4px 12px -4px hsla(var(--primary-deep), .55);
  transition: transform .35s cubic-bezier(.2,.8,.25,1);
}
.lang-switch[data-active="tr"] .lang-switch__thumb { transform: translateX(100%); }

.mobile-lang-toggle { border: 0; background: transparent; cursor: pointer; font-weight: 700; letter-spacing: .08em; color: hsl(var(--primary-deep)); }

@media (prefers-reduced-motion: reduce) {
  .site-header { animation: none; transform: none; }
  .lang-switch__thumb,
  .nav-indicator,
  .desktop-nav a::after { transition: none; }
}

.btn { display: inline-flex; justify-content: center; align-items: center; border: 1px solid transparent; border-radius: .4rem; cursor: pointer; font-weight: 700; transition: .2s ease; }
.btn:hover { transform: translateY(-1px); }
.btn-primary { background: hsl(var(--primary)); color: #fff; box-shadow: 0 8px 24px -14px hsla(var(--primary-deep), .9); }
.btn-primary:hover { background: hsl(var(--primary-deep)); }
.btn-secondary { background: hsla(var(--primary), .08); color: hsl(var(--primary-deep)); border-color: hsla(var(--primary), .5); }
.btn-sm { padding: .72rem 1.15rem; }
.btn-lg { padding: 1rem 1.6rem; }

main { padding-top: var(--header-h); }
.hero { position: relative; display: flex; align-items: center; padding: clamp(2.5rem, 6vw, 5rem) 0 clamp(3rem, 7vw, 6rem); overflow: hidden; }
.section-padding { padding: 7.5rem 0; }
.section-padding-sm { padding: 3rem 0; }
.section-muted { background: hsl(220, 16%, 97.5%); }
.section-white { background: #ffffff; }
.section-eyebrow { margin: 0 0 .8rem; font-size: .75rem; font-weight: 700; letter-spacing: .18em; color: hsl(var(--primary)); text-transform: uppercase; }
.section-title { margin: 0 0 1rem; max-width: 42rem; font-size: clamp(1.8rem, 4vw, 3rem); line-height: 1.05; letter-spacing: -.02em; }
/* Hero: mobile-first — заголовок → фото → кнопки */
.hero-grid {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--hero-gap);
}
.hero-main {
  order: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  min-width: 0;
}
.hero-visual {
  order: 2;
  position: relative;
  width: 100%;
  max-width: 40rem;
  margin-inline: auto;
  display: flex;
  justify-content: center;
  align-items: center;
}
.hero-actions {
  order: 3;
  margin-top: 0;
  display: flex;
  flex-wrap: wrap;
  gap: .9rem;
  width: 100%;
}
.hero-title { margin: 0 0 1.5rem; font-size: clamp(2.3rem, 7vw, 5rem); line-height: .94; letter-spacing: -.03em; }
.hero-subtitle { margin: 0; color: hsl(var(--muted-foreground)); line-height: 1.7; max-width: 46rem; }
.detail-list { margin: 1rem 0 0; padding-left: 1.1rem; color: hsl(var(--muted-foreground)); line-height: 1.65; }
.detail-list li { margin-bottom: .45rem; }
.detail-list.compact { margin-top: .4rem; font-size: .88rem; }
.hero-visual__photo {
  position: relative;
  width: 100%;
  max-width: 100%;
  height: auto;
  flex: none;
  aspect-ratio: 1 / 1;
  border-radius: 24px;
  overflow: hidden;
  background: linear-gradient(160deg, hsla(var(--primary), .18), hsla(var(--primary-deep), .08));
  box-shadow: 0 40px 80px -40px hsla(var(--primary-deep), .45);
  isolation: isolate;
}
.hero-visual__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
  transition: transform 1.2s ease;
}
.hero-visual:hover .hero-visual__photo img { transform: scale(1.03); }
.hero-visual__accent {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  z-index: -1;
}
.hero-visual__accent--top {
  width: 48%;
  aspect-ratio: 1;
  top: -8%;
  right: -8%;
  background: radial-gradient(circle, hsla(var(--primary), .35), transparent 65%);
}
.hero-visual__accent--bottom {
  width: 40%;
  aspect-ratio: 1;
  bottom: -8%;
  left: -8%;
  background: radial-gradient(circle, hsla(var(--primary-deep), .28), transparent 65%);
}

/* Планшет / мобильный стек: всё по центру, фото без смещения */
@media (max-width: 1200px) {
  .hero-grid {
    align-items: center;
  }
  .hero-main {
    align-items: center;
    text-align: center;
    width: 100%;
  }
  .hero-eyebrow {
    justify-content: center;
  }
  .hero-subtitle {
    margin-inline: auto;
  }
  .hero-visual {
    width: 100%;
    max-width: min(100%, 32rem);
    margin-inline: auto;
    align-self: center;
    justify-content: center;
    overflow: visible;
  }
  .hero-visual__photo {
    aspect-ratio: 1 / 1;
    max-height: none;
    width: 100%;
    margin-inline: auto;
  }
  .hero-visual__photo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center center;
  }
  .hero-actions {
    justify-content: center;
  }
  .hero-visual:hover .hero-visual__photo img { transform: none; }
  .hero-visual__accent--top {
    width: 40%;
    top: -5%;
    left: 50%;
    right: auto;
    transform: translateX(30%);
  }
  .hero-visual__accent--bottom {
    width: 34%;
    bottom: -5%;
    left: 50%;
    right: auto;
    transform: translateX(-70%);
  }
  .hero-visual__frame { inset: -6px; border-radius: 22px; }
  .hero-title--editorial {
    align-items: center;
    text-align: center;
  }
  .hero-title__word--outline {
    padding-left: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero-visual__photo img { transition: none; }
}

/* Hero background decoration */
.hero-bg { position: absolute; inset: 0; pointer-events: none; overflow: hidden; z-index: 0; }
.hero-bg__blob {
  position: absolute;
  border-radius: 50%;
  filter: blur(70px);
  opacity: .55;
  will-change: transform;
}
.hero-bg__blob--a {
  width: 34rem; height: 34rem;
  top: -12rem; left: -10rem;
  background: radial-gradient(circle, hsla(var(--primary), .5), transparent 70%);
  animation: heroBlobFloat 14s ease-in-out infinite;
}
.hero-bg__blob--b {
  width: 28rem; height: 28rem;
  bottom: -10rem; right: -8rem;
  background: radial-gradient(circle, hsla(var(--primary-deep), .45), transparent 70%);
  animation: heroBlobFloat 18s ease-in-out infinite reverse;
}
.hero-bg__blob--c {
  width: 20rem; height: 20rem;
  top: 40%; left: 48%;
  background: radial-gradient(circle, hsla(270, 90%, 75%, .35), transparent 70%);
  opacity: .4;
  animation: heroBlobFloat 22s ease-in-out infinite;
  animation-delay: -6s;
}
.hero-bg__grid {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(to right, hsla(var(--primary), .06) 1px, transparent 1px),
    linear-gradient(to bottom, hsla(var(--primary), .06) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(ellipse 80% 65% at 50% 45%, #000 40%, transparent 80%);
  -webkit-mask-image: radial-gradient(ellipse 80% 65% at 50% 45%, #000 40%, transparent 80%);
  opacity: .9;
}
@keyframes heroBlobFloat {
  0%,100% { transform: translate(0,0) scale(1); }
  33%     { transform: translate(3%,2%) scale(1.05); }
  66%     { transform: translate(-2%,4%) scale(.97); }
}

/* Hero content polish */
.hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .7rem;
  margin: 0 0 1rem;
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .22em;
  color: hsl(var(--primary-deep));
  text-transform: uppercase;
}
.hero-eyebrow__bar {
  display: inline-block;
  width: 28px;
  height: 2px;
  background: linear-gradient(90deg, hsl(var(--primary)), hsl(var(--primary-deep)));
  border-radius: 2px;
}

/* Stats band */
.hero-stats {
  list-style: none;
  margin: 2rem 0 0;
  padding: 1rem 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 2.4rem;
  border-top: 1px solid hsla(var(--primary), .14);
  max-width: 38rem;
}
.hero-stat {
  display: flex;
  flex-direction: column;
  gap: .15rem;
  position: relative;
}
.hero-stat__value {
  font-size: clamp(1.6rem, 2.4vw, 2rem);
  font-weight: 800;
  line-height: 1;
  color: hsl(var(--primary-deep));
  background: linear-gradient(135deg, hsl(var(--primary)), hsl(var(--primary-deep)));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  letter-spacing: -.02em;
}
.hero-stat__label {
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: hsl(var(--muted-foreground));
}

/* Frame accent ring on photo */
.hero-visual__frame {
  position: absolute;
  inset: -10px;
  border-radius: 28px;
  border: 1px solid hsla(var(--primary), .28);
  pointer-events: none;
  opacity: 0;
  transform: scale(1.02);
  transition: opacity .6s ease, transform .6s ease;
}
.hero-visual:hover .hero-visual__frame { opacity: 1; transform: scale(1); }

/* Entrance cascade */
.hero .hero-eyebrow,
.hero .hero-title,
.hero .hero-subtitle,
.hero .hero-actions,
.hero .hero-stats,
.hero .hero-visual__photo {
  opacity: 0;
  transform: translateY(18px);
  animation: heroRise .8s cubic-bezier(.2,.8,.2,1) forwards;
}
.hero .hero-eyebrow      { animation-delay: .05s; }
.hero .hero-title        { animation-delay: .12s; }
.hero .hero-subtitle     { animation-delay: .52s; }
.hero .hero-visual__photo{ animation-delay: .62s; transform: translateY(22px) scale(.98); }
.hero .hero-actions      { animation-delay: .74s; }
.hero .hero-stats        { animation-delay: .86s; }
@keyframes heroRise {
  to { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-bg__blob { animation: none !important; }
  .hero .hero-eyebrow,
  .hero .hero-title,
  .hero .hero-subtitle,
  .hero .hero-actions,
  .hero .hero-stats,
  .hero .hero-visual__photo { animation: none !important; opacity: 1 !important; transform: none !important; }
}

@media (max-width: 1200px) {
  .hero-stats { gap: 1.8rem; }
}
@media (max-width: 640px) {
  .hero-stats { gap: 1.2rem 1.6rem; }
  .hero-stat__value { font-size: 1.5rem; }
}

.about-section { background: hsla(270, 58%, 97%, 1); overflow: hidden; }
.about-grid {
  display: grid;
  grid-template-columns: 1fr 1.05fr;
  gap: 3rem;
  align-items: center;
}
.about-grid > .about-visual {
  justify-self: center;
  align-self: center;
}
.about-copy { max-width: 44rem; }
.about-copy .section-eyebrow { margin-bottom: .5rem; }
.about-copy .section-title { margin: 0 0 1.25rem; }
.about-lead + .about-pillars { margin-top: 0; }
.about-lead {
  font-size: 1.125rem;
  line-height: 1.6;
  color: hsl(var(--foreground));
  margin: 0 0 1.75rem;
  padding-left: 1rem;
  border-left: 3px solid hsl(var(--primary));
}
.about-pillars {
  list-style: none;
  padding: 0;
  margin: 0 0 1rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
.about-pillar {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto;
  column-gap: .9rem;
  row-gap: .35rem;
  align-items: center;
  padding: 1.1rem 1.1rem 1.1rem 1rem;
  background: #fff;
  border: 1px solid hsla(var(--primary), .12);
  border-radius: 14px;
  box-shadow: 0 1px 2px hsla(var(--primary-deep), .04);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.about-pillar:hover {
  transform: translateY(-2px);
  border-color: hsla(var(--primary), .35);
  box-shadow: 0 12px 30px -16px hsla(var(--primary-deep), .35);
}
.about-pillar__num {
  grid-column: 1;
  grid-row: 1;
  align-self: center;
  font-size: 1.15rem;
  font-weight: 800;
  letter-spacing: .02em;
  color: #fff;
  background: linear-gradient(135deg, hsl(var(--primary)), hsl(var(--primary-deep)));
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 10px 22px -10px hsla(var(--primary-deep), .55), inset 0 0 0 1px hsla(0, 0%, 100%, .25);
  position: relative;
}
.about-pillar__num::after {
  content: "";
  position: absolute;
  inset: 4px;
  border-radius: 50%;
  background: radial-gradient(circle at 30% 25%, hsla(0, 0%, 100%, .35), transparent 55%);
  pointer-events: none;
}
.about-pillar__body {
  display: contents;
  min-width: 0;
}
.about-pillar__title {
  grid-column: 2;
  grid-row: 1;
  align-self: center;
  font-size: 1.05rem;
  font-weight: 700;
  color: hsl(var(--foreground));
  margin: 0;
  line-height: 1.25;
  text-wrap: balance;
}
.about-pillar__desc {
  grid-column: 2;
  grid-row: 2;
  align-self: start;
  font-size: .9rem;
  line-height: 1.5;
  color: hsl(var(--muted-foreground));
  margin: 0;
  text-wrap: pretty;
  hyphens: none;
}
.about-final {
  font-size: 1.05rem;
  line-height: 1.6;
  font-weight: 500;
  color: hsl(var(--foreground));
  padding: 0;
  background: none;
  border-radius: 0;
  margin: 0;
  text-align: left;
}

@media (max-width: 768px) {
  .about-pillars {
    grid-template-columns: 1fr;
    grid-auto-rows: 1fr;
  }
  .about-pillar { min-height: 9.5rem; }
  .about-lead { font-size: 1rem; }
  .about-final { font-size: 1rem; padding: 0; }
}
.about-visual {
  position: relative;
  aspect-ratio: 1 / 1;
  width: 100%;
  max-width: 44rem;
  margin: 0 auto;
}
.about-circle {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  overflow: hidden;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  box-shadow: 0 18px 40px -20px hsla(var(--primary-deep), .35);
  opacity: 0;
  transform: scale(.85) rotate(-8deg);
  transition: opacity 1s ease, transform 1.1s cubic-bezier(.2,.7,.2,1);
  animation: about-circle-float 8s ease-in-out infinite 1.2s;
}
.about-visual.is-visible .about-circle {
  opacity: 1;
  transform: scale(1) rotate(0);
}
.about-tile {
  position: relative;
  overflow: hidden;
  opacity: 0;
  transform: scale(.6);
  transition: opacity .7s ease, transform .8s cubic-bezier(.2,.7,.2,1);
}
.about-visual.is-visible .tile-tl { opacity: 1; transform: scale(1); transition-delay: .35s; }
.about-visual.is-visible .tile-tr { opacity: 1; transform: scale(1); transition-delay: .5s; }
.about-visual.is-visible .tile-bl { opacity: 1; transform: scale(1); transition-delay: .65s; }
.about-visual.is-visible .tile-br { opacity: 1; transform: scale(1); transition-delay: .8s; }
.about-tile--photo { background: hsl(var(--muted)); }
.about-tile--solid {
  background: linear-gradient(135deg, hsl(var(--primary)) 0%, hsl(var(--primary-deep)) 100%);
}
.about-tile--photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .8s ease;
}
.about-circle:hover .about-tile--photo img { transform: scale(1.05); }
.about-tile--photo.tile-tr img {
  object-position: center center;
  transform: none;
}
.about-circle:hover .about-tile--photo.tile-tr img {
  transform: scale(1.05);
}
.tile-tl { border-top-left-radius: 100% 100%; }
.tile-tr { border-top-right-radius: 100% 100%; }
.tile-bl { border-bottom-left-radius: 100% 100%; }
.tile-br { border-bottom-right-radius: 100% 100%; }
.about-circle-center {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 14%;
  height: 14%;
  border-radius: 50%;
  background: #fff;
  transform: translate(-50%, -50%);
  box-shadow: 0 0 0 8px hsla(0, 0%, 100%, .85);
  opacity: 0;
  transition: opacity .6s ease 1s;
}
.about-visual.is-visible .about-circle-center { opacity: 1; }

@keyframes about-circle-float {
  0%, 100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-6px) rotate(.6deg); }
}

@media (max-width: 992px) {
  .about-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
    justify-items: stretch;
  }
  .about-copy {
    max-width: none;
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .about-circle,
  .about-tile,
  .about-circle-center { animation: none; transition: none; opacity: 1; transform: none; }
}

.capabilities-grid,.process-grid { display: grid; gap: 1rem; }
.capabilities-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }

.capability-card {
  position: relative;
  min-height: 15rem;
  padding: 1.8rem;
  background: #fff;
  border: 1px solid hsla(var(--primary), .1);
  border-radius: 16px;
  overflow: hidden;
  isolation: isolate;
  cursor: pointer;
  transition: transform .35s cubic-bezier(.2,.8,.25,1), box-shadow .35s ease, border-color .35s ease;
}
.capability-card:hover,
.capability-card:focus-within {
  transform: translateY(-4px);
  border-color: transparent;
  box-shadow: 0 30px 60px -30px hsla(var(--primary-deep), .5);
}
.capability-card__media {
  position: absolute;
  inset: 0;
  z-index: 0;
  border-radius: inherit;
  opacity: 0;
  transform: scale(1.04);
  transition: opacity .5s ease, transform .8s cubic-bezier(.2,.7,.2,1);
  background:
    url("images/capability-icon-hr.svg") right 6% top 3% / 46% auto no-repeat,
    radial-gradient(circle at 80% 20%, hsla(285, 95%, 78%, .55), transparent 42%),
    radial-gradient(circle at 15% 85%, hsla(258, 85%, 62%, .55), transparent 45%),
    radial-gradient(circle at 55% 55%, hsla(275, 70%, 55%, .35), transparent 60%),
    linear-gradient(135deg, hsl(270, 70%, 55%) 0%, hsl(262, 60%, 42%) 55%, hsl(258, 56%, 32%) 100%);
}
.capability-card__media::before,
.capability-card__media::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  filter: blur(22px);
  opacity: .55;
  pointer-events: none;
  mix-blend-mode: screen;
}
.capability-card__media::before {
  width: 55%;
  height: 55%;
  top: -12%;
  right: -10%;
  background: radial-gradient(circle, hsla(295, 100%, 82%, .9), transparent 65%);
}
.capability-card__media::after {
  width: 60%;
  height: 60%;
  bottom: -18%;
  left: -12%;
  background: radial-gradient(circle, hsla(255, 95%, 72%, .9), transparent 65%);
}
.capability-card[data-vertical="mrkt"] .capability-card__media {
  background:
    url("images/capability-icon-mrkt.svg") right 4% top -4% / 42% auto no-repeat,
    radial-gradient(circle at 25% 25%, hsla(295, 95%, 78%, .55), transparent 45%),
    radial-gradient(circle at 80% 75%, hsla(250, 85%, 60%, .55), transparent 45%),
    radial-gradient(circle at 60% 40%, hsla(275, 70%, 55%, .35), transparent 60%),
    linear-gradient(150deg, hsl(278, 70%, 55%) 0%, hsl(260, 60%, 40%) 60%, hsl(252, 55%, 28%) 100%);
}
.capability-card[data-vertical="tech"] .capability-card__media {
  background:
    url("images/capability-icon-tech.svg") right 4% top -4% / 42% auto no-repeat,
    radial-gradient(circle at 70% 30%, hsla(270, 95%, 80%, .55), transparent 42%),
    radial-gradient(circle at 20% 80%, hsla(248, 85%, 55%, .55), transparent 45%),
    radial-gradient(circle at 50% 55%, hsla(262, 70%, 50%, .35), transparent 60%),
    linear-gradient(125deg, hsl(265, 65%, 50%) 0%, hsl(258, 58%, 38%) 55%, hsl(250, 55%, 25%) 100%);
}
.capability-card[data-vertical="fin"] .capability-card__media {
  background:
    url("images/capability-icon-fin.svg") right 4% top 2% / 44% auto no-repeat,
    radial-gradient(circle at 50% 15%, hsla(285, 95%, 80%, .55), transparent 45%),
    radial-gradient(circle at 20% 85%, hsla(260, 85%, 58%, .55), transparent 45%),
    radial-gradient(circle at 80% 70%, hsla(278, 75%, 55%, .4), transparent 55%),
    linear-gradient(140deg, hsl(272, 72%, 58%) 0%, hsl(262, 60%, 42%) 55%, hsl(256, 56%, 30%) 100%);
}
.capability-card[data-vertical="mrkt"] .capability-card__media::before { background: radial-gradient(circle, hsla(300, 100%, 82%, .9), transparent 65%); }
.capability-card[data-vertical="tech"] .capability-card__media::after  { background: radial-gradient(circle, hsla(245, 100%, 75%, .9), transparent 65%); }
.capability-card[data-vertical="fin"]  .capability-card__media::before { background: radial-gradient(circle, hsla(288, 100%, 85%, .9), transparent 65%); }

.capability-card:hover .capability-card__media,
.capability-card:focus-within .capability-card__media {
  opacity: 1;
  transform: scale(1);
}
.capability-card__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: radial-gradient(circle at 50% 110%, hsla(258, 56%, 18%, .45), transparent 65%);
  opacity: 0;
  transition: opacity .45s ease;
}
.capability-card:hover .capability-card__overlay,
.capability-card:focus-within .capability-card__overlay { opacity: 1; }
.capability-card__content {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: inherit;
  transition: color .35s ease;
}
.capability-card:hover .capability-card__content,
.capability-card:focus-within .capability-card__content { color: #fff; }

.capability-tag {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  margin-bottom: 1rem;
  padding: .4rem .75rem;
  background: hsla(var(--primary), .1);
  border-radius: 999px;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: hsl(var(--primary-deep));
  width: fit-content;
  transition: background .35s ease, color .35s ease, backdrop-filter .35s ease;
}
.capability-tag__dot {
  width: .45rem;
  height: .45rem;
  border-radius: 50%;
  background: hsl(var(--primary));
  box-shadow: 0 0 0 3px hsla(var(--primary), .2);
  transition: background .35s ease, box-shadow .35s ease;
}
.capability-card:hover .capability-tag,
.capability-card:focus-within .capability-tag {
  background: hsla(0,0%,100%,.18);
  color: #fff;
  backdrop-filter: blur(8px);
}
.capability-card:hover .capability-tag__dot,
.capability-card:focus-within .capability-tag__dot {
  background: #fff;
  box-shadow: 0 0 0 3px hsla(0,0%,100%,.3);
}

.capability-card .detail-list {
  list-style: none;
  counter-reset: cap-item;
  padding: 0;
  margin: 0;
  background: hsla(var(--primary), .06);
  border: 1px solid hsla(var(--primary), .1);
  border-radius: 12px;
  overflow: hidden;
  transition: background .35s ease, border-color .35s ease, backdrop-filter .35s ease;
}
.capability-card .detail-list li {
  counter-increment: cap-item;
  position: relative;
  display: flex;
  gap: .7rem;
  padding: .65rem .85rem .65rem .7rem;
  font-size: .86rem;
  line-height: 1.45;
  color: hsl(var(--foreground));
  border-top: 1px solid hsla(var(--primary), .08);
  transition: color .35s ease, border-color .35s ease;
  text-wrap: pretty;
  hyphens: none;
}
.capability-card .detail-list li:first-child { border-top: 0; }
.capability-card .detail-list li::before {
  content: counter(cap-item, decimal-leading-zero);
  flex: 0 0 auto;
  width: 1.55rem;
  height: 1.55rem;
  border-radius: 6px;
  background: hsla(var(--primary), .15);
  color: hsl(var(--primary-deep));
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .05em;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background .35s ease, color .35s ease;
}
.capability-card:hover .detail-list,
.capability-card:focus-within .detail-list {
  background: hsla(0,0%,100%,.12);
  border-color: hsla(0,0%,100%,.22);
  backdrop-filter: blur(6px);
}
.capability-card:hover .detail-list li,
.capability-card:focus-within .detail-list li {
  color: #fff;
  border-top-color: hsla(0,0%,100%,.16);
}
.capability-card:hover .detail-list li::before,
.capability-card:focus-within .detail-list li::before {
  background: hsla(0,0%,100%,.22);
  color: #fff;
}

.capability-cta {
  position: relative;
  z-index: 1;
  border: 0;
  min-height: 10.5rem;
  border-radius: 16px;
  background: linear-gradient(135deg, hsl(var(--primary-deep)), hsl(var(--primary)));
  color: #fff;
  font-weight: 700;
  letter-spacing: .03em;
  text-align: left;
  padding: 1.8rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: flex-start;
  cursor: pointer;
  overflow: hidden;
  isolation: isolate;
  transition: transform .35s cubic-bezier(.2,.8,.25,1), box-shadow .35s ease;
}
.capability-cta::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: radial-gradient(circle at 80% 20%, hsla(0,0%,100%,.28), transparent 55%);
  opacity: 0;
  transition: opacity .4s ease;
}
.capability-cta:hover {
  transform: translateY(-4px);
  box-shadow: 0 30px 60px -25px hsla(var(--primary-deep), .55);
}
.capability-cta:hover::before { opacity: 1; }
.capability-cta__label {
  font-size: 1.1rem;
  line-height: 1.3;
  max-width: 14ch;
}
.capability-cta__arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 50%;
  background: hsla(0,0%,100%,.18);
  color: #fff;
  transition: transform .35s cubic-bezier(.2,.8,.25,1), background .35s ease;
}
.capability-cta:hover .capability-cta__arrow {
  background: #fff;
  color: hsl(var(--primary-deep));
  transform: translateX(6px);
}

@media (prefers-reduced-motion: reduce) {
  .capability-card,
  .capability-card__media,
  .capability-card__overlay,
  .capability-tag,
  .capability-cta,
  .capability-cta__arrow { transition: none; }
}

.process-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.process-card { background: hsl(var(--card)); padding: 1.5rem; }
.process-card h3 { margin: 0; font-size: 1.04rem; line-height: 1.45; }
.presence-block {
  display: grid;
  grid-template-columns: 1.45fr .95fr;
  gap: 1.25rem;
  align-items: stretch;
}
.presence-map-card {
  position: relative;
  background: #f4f1fb;
  border: 1px solid hsla(var(--primary), .14);
  border-radius: 18px;
  padding: .75rem .75rem .6rem;
  overflow: hidden;
  box-shadow: 0 20px 40px -30px hsla(var(--primary-deep), .35);
}
.presence-svg {
  position: relative;
  width: 100%;
  height: auto;
  aspect-ratio: 1024/572;
  display: block;
  border-radius: 12px;
  overflow: hidden;
  z-index: 1;
}
.presence-svg__map {
  opacity: .92;
}

/* connection lines */
.presence-svg__link {
  stroke: hsla(var(--primary), .55);
  stroke-width: 1.3;
  stroke-dasharray: 4 6;
  stroke-dashoffset: 0;
  opacity: 0;
  animation: presenceLinkIn .9s ease forwards, presenceDashFlow 8s linear infinite;
  animation-delay: calc(.15s * var(--i, 0)), calc(.15s * var(--i, 0));
  transition: stroke .4s ease, opacity .4s ease, stroke-width .4s ease;
}
.presence-svg__link[data-region="west"]     { --i: 1; }
.presence-svg__link[data-region="north"]    { --i: 2; }
.presence-svg__link[data-region="central"]  { --i: 3; }
.presence-svg__link[data-region="south"]    { --i: 4; }
@keyframes presenceLinkIn { to { opacity: 1; } }
@keyframes presenceDashFlow { to { stroke-dashoffset: -120; } }

/* city dots */
.presence-svg__dot {
  opacity: 0;
  animation: presenceDotIn .5s ease forwards;
  animation-delay: calc(.05s * var(--di, 0) + .5s);
  transition: transform .35s ease, filter .35s ease;
}
.presence-svg__dot[data-region="west"]    { --di: 1; }
.presence-svg__dot[data-region="north"]   { --di: 2; }
.presence-svg__dot[data-region="central"] { --di: 3; }
.presence-svg__dot[data-region="south"]   { --di: 4; }
@keyframes presenceDotIn { to { opacity: 1; } }

.presence-svg__dot-core {
  fill: #f5b93d;
  stroke: #fff;
  stroke-width: 2;
  filter: drop-shadow(0 2px 4px hsla(var(--primary-deep), .35));
  transition: r .35s ease, fill .35s ease;
}
.presence-svg__dot-ring {
  fill: none;
  stroke: #f5b93d;
  stroke-width: 2;
  transform-origin: center;
  transform-box: fill-box;
  animation: presenceDotRing 2.6s ease-out infinite;
  animation-delay: calc(.25s * var(--di, 0));
  transition: r .35s ease, stroke-width .35s ease;
}
@keyframes presenceDotRing {
  0%   { transform: scale(1);   opacity: .75; }
  80%  { transform: scale(2.6); opacity: 0; }
  100% { transform: scale(2.6); opacity: 0; }
}
.presence-svg__dot-label {
  font-size: 11px;
  font-weight: 700;
  fill: hsl(var(--primary-deep));
  opacity: 0;
  transition: opacity .3s ease;
  pointer-events: none;
}
.presence-svg__dot:hover .presence-svg__dot-label { opacity: 1; }

/* Istanbul hub */
.presence-svg__hub-core {
  fill: hsl(var(--primary));
  stroke: #fff;
  stroke-width: 3;
  filter: drop-shadow(0 4px 10px hsla(var(--primary-deep), .55));
}
.presence-svg__hub-wave {
  fill: none;
  stroke: hsl(var(--primary));
  stroke-width: 2;
  transform-origin: center;
  transform-box: fill-box;
  animation: presenceHubWave 2.8s ease-out infinite;
}
.presence-svg__hub-wave--2 { animation-delay: 1.4s; }
@keyframes presenceHubWave {
  0%   { transform: scale(1);   opacity: .7; }
  90%  { transform: scale(3.6); opacity: 0; }
  100% { transform: scale(3.6); opacity: 0; }
}
.presence-svg__hub-label {
  font-size: 12px;
  font-weight: 800;
  fill: hsl(var(--primary-deep));
  letter-spacing: .02em;
}

/* travelling pulse dots injected by JS */
.presence-pulse {
  r: 2.6;
  fill: hsl(var(--primary));
  filter: drop-shadow(0 0 4px hsla(var(--primary), .8));
}

/* highlight states */
.presence-block[data-highlight] .presence-svg__link { stroke: hsla(var(--primary), .22); }
.presence-block[data-highlight] .presence-svg__dot  { filter: grayscale(.6); opacity: .35; }

.presence-block[data-highlight="west"]    .presence-svg__link[data-region="west"],
.presence-block[data-highlight="central"] .presence-svg__link[data-region="central"],
.presence-block[data-highlight="north"]   .presence-svg__link[data-region="north"],
.presence-block[data-highlight="south"]   .presence-svg__link[data-region="south"] {
  stroke: hsl(var(--primary));
  stroke-width: 2;
}
.presence-block[data-highlight="west"]    .presence-svg__dot[data-region="west"],
.presence-block[data-highlight="central"] .presence-svg__dot[data-region="central"],
.presence-block[data-highlight="north"]   .presence-svg__dot[data-region="north"],
.presence-block[data-highlight="south"]   .presence-svg__dot[data-region="south"] {
  opacity: 1;
  filter: none;
}
.presence-block[data-highlight="west"]    .presence-svg__dot[data-region="west"]    .presence-svg__dot-core,
.presence-block[data-highlight="central"] .presence-svg__dot[data-region="central"] .presence-svg__dot-core,
.presence-block[data-highlight="north"]   .presence-svg__dot[data-region="north"]   .presence-svg__dot-core,
.presence-block[data-highlight="south"]   .presence-svg__dot[data-region="south"]   .presence-svg__dot-core {
  r: 9;
  stroke-width: 2.5;
  filter: drop-shadow(0 3px 6px hsla(var(--primary-deep), .45));
}
.presence-block[data-highlight="west"]    .presence-svg__dot[data-region="west"]    .presence-svg__dot-ring,
.presence-block[data-highlight="central"] .presence-svg__dot[data-region="central"] .presence-svg__dot-ring,
.presence-block[data-highlight="north"]   .presence-svg__dot[data-region="north"]   .presence-svg__dot-ring,
.presence-block[data-highlight="south"]   .presence-svg__dot[data-region="south"]   .presence-svg__dot-ring {
  r: 9;
  stroke-width: 2.5;
}
.presence-block[data-highlight="west"]    .presence-svg__dot[data-region="west"] .presence-svg__dot-label,
.presence-block[data-highlight="central"] .presence-svg__dot[data-region="central"] .presence-svg__dot-label,
.presence-block[data-highlight="north"]   .presence-svg__dot[data-region="north"] .presence-svg__dot-label,
.presence-block[data-highlight="south"]   .presence-svg__dot[data-region="south"] .presence-svg__dot-label {
  opacity: 1;
}

/* legend */
.presence-legend {
  position: relative;
  z-index: 2;
  display: flex;
  flex-wrap: wrap;
  gap: 1.2rem;
  padding: .75rem .3rem 0;
  font-size: .82rem;
  color: hsl(var(--muted-foreground));
}
.presence-legend__item { display: inline-flex; align-items: center; gap: .5rem; }
.presence-legend__dot { width: 10px; height: 10px; border-radius: 50%; box-shadow: 0 0 0 2px #fff; }
.presence-legend__dot--hub { background: hsl(var(--primary)); }
.presence-legend__dot--city { background: #f5b93d; }

/* regional cards */
.presence-regions {
  display: flex;
  flex-direction: column;
  gap: .65rem;
  height: 100%;
}
.presence-region {
  position: relative;
  background: hsl(var(--card));
  border: 1px solid hsl(var(--border));
  border-radius: 14px;
  padding: .95rem 1.05rem 1rem;
  cursor: pointer;
  transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease, background .3s ease;
  overflow: hidden;
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.presence-region::before {
  content: "";
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 3px;
  background: linear-gradient(180deg, hsl(var(--primary)), hsl(var(--primary-deep)));
  transform: scaleY(.3);
  transform-origin: top;
  transition: transform .4s ease;
}
.presence-region:hover,
.presence-region:focus-within {
  border-color: hsla(var(--primary), .35);
  box-shadow: 0 14px 30px -24px hsla(var(--primary-deep), .55);
  transform: translateY(-2px);
}
.presence-region:hover::before,
.presence-region:focus-within::before { transform: scaleY(1); }

.presence-region__header {
  display: flex;
  align-items: center;
  gap: .7rem;
  margin-bottom: .55rem;
}
.presence-region__num {
  flex: 0 0 auto;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 8px;
  background: hsla(var(--primary), .12);
  color: hsl(var(--primary-deep));
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .06em;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.presence-region__name {
  margin: 0;
  font-size: 1rem;
  line-height: 1.3;
  font-weight: 700;
  color: hsl(var(--foreground));
  flex: 1;
}
.presence-region__countries {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
}
.presence-region__countries li {
  font-size: .78rem;
  font-weight: 600;
  color: hsl(var(--foreground));
  background: hsla(var(--primary), .06);
  border: 1px solid hsla(var(--primary), .12);
  border-radius: 999px;
  padding: .25rem .65rem;
  transition: background .3s ease, color .3s ease, border-color .3s ease;
}
.presence-region:hover .presence-region__countries li,
.presence-region:focus-within .presence-region__countries li {
  background: hsla(var(--primary), .12);
  border-color: hsla(var(--primary), .3);
  color: hsl(var(--primary-deep));
}

@media (prefers-reduced-motion: reduce) {
  .presence-svg__link,
  .presence-svg__dot,
  .presence-svg__dot-ring,
  .presence-svg__hub-wave { animation: none !important; }
  .presence-svg__link,
  .presence-svg__dot { opacity: 1 !important; }
}

/* Insights slider */
.insights-slider {
  position: relative;
  --cards-per-view: 3;
  --card-gap: 1.25rem;
}
.insights-slider__viewport {
  overflow: visible;
  margin: 0 -.3rem;
  padding: 0 .3rem 1.5rem;
}
.insights-slider__track {
  list-style: none;
  margin: 0;
  padding: .75rem .15rem 0;
  display: flex;
  gap: var(--card-gap);
  scroll-snap-type: x mandatory;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -ms-overflow-style: none;
  cursor: grab;
  user-select: none;
  -webkit-user-select: none;
}
.insights-slider__track::-webkit-scrollbar { display: none; }
.insights-slider__track:active { cursor: grabbing; }
.insights-slider.is-dragging .insights-slider__track { scroll-behavior: auto; }

.insight-card {
  position: relative;
  flex: 0 0 calc((100% - var(--card-gap) * (var(--cards-per-view) - 1)) / var(--cards-per-view));
  scroll-snap-align: start;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .7s ease, transform .45s cubic-bezier(.2,.8,.2,1);
}
.insights-slider.is-visible .insight-card { opacity: 1; transform: none; }
.insights-slider.is-visible .insight-card:hover,
.insights-slider.is-visible .insight-card:focus-within {
  z-index: 2;
  transform: translateY(-6px);
}
.insights-slider.is-visible .insight-card:nth-child(1) { transition-delay: .05s; }
.insights-slider.is-visible .insight-card:nth-child(2) { transition-delay: .15s; }
.insights-slider.is-visible .insight-card:nth-child(3) { transition-delay: .25s; }

.insight-card article {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  background: hsl(var(--card));
  border: 1px solid hsl(var(--border));
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 2px 0 hsla(var(--primary), .04);
  transition: transform .45s cubic-bezier(.2,.8,.2,1), box-shadow .45s ease, border-color .45s ease;
  cursor: pointer;
}
.insight-card:hover article,
.insight-card:focus-within article {
  border-color: hsla(var(--primary), .35);
  box-shadow: 0 28px 46px -30px hsla(var(--primary-deep), .5);
}

.insight-card__media {
  position: relative;
  width: 100%;
  aspect-ratio: 16/10;
  overflow: hidden;
  background: hsla(var(--primary), .06);
}
.insight-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
  transform: scale(1.06);
  transition: transform .8s cubic-bezier(.2,.8,.2,1), filter .5s ease;
}
.insight-card:hover .insight-card__media img,
.insight-card:focus-within .insight-card__media img {
  transform: scale(1.1);
}
.insight-card__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 50%, hsla(var(--primary-deep), .28) 100%);
  pointer-events: none;
  opacity: .85;
  transition: opacity .4s ease;
}
.insight-card:hover .insight-card__media::after { opacity: 1; }

.insight-card__tag {
  position: absolute;
  top: .8rem;
  left: .8rem;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .35rem .7rem .35rem .55rem;
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: hsl(var(--primary-deep));
  background: hsla(0, 0%, 100%, .92);
  backdrop-filter: blur(8px);
  border-radius: 999px;
  border: 1px solid hsla(var(--primary), .18);
  box-shadow: 0 6px 16px -10px hsla(var(--primary-deep), .4);
}
.insight-card__tag-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: hsl(var(--primary));
  box-shadow: 0 0 0 3px hsla(var(--primary), .22);
  animation: insightTagPulse 2.4s ease-in-out infinite;
}
.insight-card__tag--pdf {
  color: #fff;
  background: linear-gradient(135deg, hsl(var(--primary)), hsl(var(--primary-deep)));
  border-color: transparent;
}
.insight-card__tag--pdf svg { stroke-width: 2.2; }
@keyframes insightTagPulse {
  0%,100% { box-shadow: 0 0 0 3px hsla(var(--primary), .22); }
  50%     { box-shadow: 0 0 0 6px hsla(var(--primary), .08); }
}

.insight-card__body {
  display: flex;
  flex-direction: column;
  gap: .6rem;
  padding: 1rem 1.1rem 1.15rem;
  flex: 1;
}
.insight-card__meta {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: hsl(var(--muted-foreground));
}
.insight-card__dot-sep {
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: hsla(var(--primary), .45);
}
.insight-card__title {
  margin: 0;
  font-size: 1.02rem;
  line-height: 1.38;
  font-weight: 700;
  color: hsl(var(--foreground));
  transition: color .3s ease;
}
.insight-card:hover .insight-card__title,
.insight-card:focus-within .insight-card__title { color: hsl(var(--primary-deep)); }

.insight-card__cta {
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  font-size: .82rem;
  font-weight: 700;
  color: hsl(var(--primary));
  transition: color .3s ease, gap .3s ease;
}
.insight-card__cta svg {
  transition: transform .4s cubic-bezier(.2,.8,.2,1);
}
.insight-card:hover .insight-card__cta { color: hsl(var(--primary-deep)); gap: .6rem; }
.insight-card:hover .insight-card__cta svg { transform: translateX(4px); }

/* nav controls */
.insights-slider__nav {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-top: .5rem;
}
.insights-slider__btn {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid hsla(var(--primary), .24);
  background: hsl(var(--card));
  color: hsl(var(--primary-deep));
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background .3s ease, color .3s ease, transform .3s ease, border-color .3s ease, opacity .3s ease;
  flex: 0 0 auto;
}
.insights-slider__btn:hover,
.insights-slider__btn:focus-visible {
  background: linear-gradient(135deg, hsl(var(--primary)), hsl(var(--primary-deep)));
  color: #fff;
  border-color: transparent;
  transform: translateY(-2px);
  outline: none;
}
.insights-slider__btn:disabled {
  opacity: 1;
  cursor: not-allowed;
  transform: none;
}

.insights-slider__dots {
  display: flex;
  align-items: center;
  gap: .45rem;
  flex: 1 1 auto;
}
.insights-slider__dot {
  appearance: none;
  border: none;
  background: hsla(var(--primary), .2);
  width: 22px;
  height: 6px;
  border-radius: 999px;
  padding: 0;
  cursor: pointer;
  transition: background .3s ease, width .35s cubic-bezier(.2,.8,.2,1);
}
.insights-slider__dot:hover { background: hsla(var(--primary), .4); }
.insights-slider__dot.is-active {
  background: linear-gradient(90deg, hsl(var(--primary)), hsl(var(--primary-deep)));
  width: 44px;
}

.insights-slider__progress {
  position: relative;
  flex: 0 0 96px;
  height: 3px;
  background: hsla(var(--primary), .12);
  border-radius: 999px;
  overflow: hidden;
}
.insights-slider__progress-bar {
  position: absolute;
  inset: 0;
  width: 0;
  background: linear-gradient(90deg, hsl(var(--primary)), hsl(var(--primary-deep)));
  border-radius: 999px;
  transition: width .12s linear;
}
.insights-slider.is-paused .insights-slider__progress-bar { background: hsla(var(--primary), .35); }
.insights-slider.no-autoplay .insights-slider__progress { display: none; }

@media (max-width: 1024px) {
  .insights-slider { --cards-per-view: 2; }
}
@media (max-width: 640px) {
  .insights-slider { --cards-per-view: 1; --card-gap: 1rem; }
  .insights-slider__progress { flex-basis: 64px; }
}

@media (prefers-reduced-motion: reduce) {
  .insight-card,
  .insight-card article,
  .insight-card__media img,
  .insight-card__tag-dot { transition: none !important; animation: none !important; }
  .insight-card { opacity: 1 !important; transform: none !important; }
}

.image-placeholder { display: flex; align-items: center; justify-content: center; padding: 1rem; background: repeating-linear-gradient(-45deg,hsla(var(--primary),.08),hsla(var(--primary),.08) 10px,transparent 10px,transparent 20px); text-align: center; }
.image-placeholder span { color: hsl(var(--muted-foreground)); font-size: .82rem; font-weight: 600; }
.image-placeholder-large { min-height: 22rem; border: 1px solid hsl(var(--border)); }
.image-hero { width: 100%; height: 100%; min-height: 22rem; object-fit: cover; display: block; }

/* Contact section */
.contact-section {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 3.5rem;
  align-items: stretch;
}
.contact-info {
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
  min-width: 0;
}
.contact-info .section-title {
  max-width: none;
  margin-bottom: 0.35rem;
}
.contact-intro {
  margin: 0 0 0.5rem;
  font-size: 1.02rem;
  line-height: 1.6;
  color: hsl(var(--muted-foreground));
  max-width: none;
}

.contact-methods {
  list-style: none;
  margin: .2rem 0 .4rem;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: .65rem;
}
.contact-method {
  opacity: 0;
  transform: translateX(-14px);
  transition: opacity .6s ease, transform .6s ease;
}
.reveal.is-visible .contact-method,
.contact-section.is-visible .contact-method { opacity: 1; transform: none; }
.contact-section.is-visible .contact-method:nth-child(1) { transition-delay: .05s; }
.contact-section.is-visible .contact-method:nth-child(2) { transition-delay: .15s; }
.contact-section.is-visible .contact-method:nth-child(3) { transition-delay: .25s; }

.contact-method__link {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 1rem;
  padding: .85rem 1rem .85rem .9rem;
  background: hsl(var(--card));
  border: 1px solid hsl(var(--border));
  border-radius: 14px;
  color: inherit;
  text-decoration: none;
  transition: transform .35s cubic-bezier(.2,.8,.2,1), border-color .35s ease, box-shadow .35s ease, background .35s ease;
  overflow: hidden;
}
.contact-method__link::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, hsla(var(--primary), .08), hsla(var(--primary), 0) 55%);
  opacity: 0;
  transition: opacity .35s ease;
  pointer-events: none;
}
.contact-method__link:hover,
.contact-method__link:focus-visible {
  transform: translateY(-2px);
  border-color: hsla(var(--primary), .38);
  box-shadow: 0 22px 40px -28px hsla(var(--primary-deep), .55);
  outline: none;
}
.contact-method__link:hover::before,
.contact-method__link:focus-visible::before { opacity: 1; }

.contact-method__icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  transition: transform .35s ease;
}
.contact-method__link:hover .contact-method__icon { transform: scale(1.06) rotate(-2deg); }

.contact-method__icon--whatsapp {
  background: linear-gradient(135deg, #25D366, #128C7E);
  color: #fff;
  box-shadow: 0 10px 20px -12px rgba(18,140,126,.6);
}
.contact-method__icon--phone {
  background: linear-gradient(135deg, hsl(var(--primary)), hsl(var(--primary-deep)));
  color: #fff;
  box-shadow: 0 10px 20px -12px hsla(var(--primary-deep), .6);
}
.contact-method__icon--mail {
  background: linear-gradient(135deg, hsl(var(--primary)), hsl(var(--primary-deep)));
  color: #fff;
  box-shadow: 0 10px 20px -12px hsla(var(--primary-deep), .6);
}

.contact-method__body {
  display: flex;
  flex-direction: column;
  gap: .15rem;
  min-width: 0;
}
.contact-method__label {
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: hsl(var(--muted-foreground));
}
.contact-method__value {
  font-size: 1rem;
  font-weight: 700;
  color: hsl(var(--foreground));
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.contact-method__arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  color: hsl(var(--primary));
  background: hsla(var(--primary), .08);
  flex: 0 0 auto;
  transition: background .35s ease, color .35s ease, transform .35s ease;
}
.contact-method__link:hover .contact-method__arrow,
.contact-method__link:focus-visible .contact-method__arrow {
  background: hsl(var(--primary));
  color: #fff;
  transform: translateX(4px);
}

.contact-cta-row {
  display: flex;
  margin-top: .4rem;
}
.contact-cta-row .btn {
  width: 100%;
  justify-content: center;
}

/* Visual column */
.contact-visual {
  position: relative;
  display: flex;
  align-self: stretch;
  min-width: 0;
  min-height: 0;
}
.contact-photo {
  position: relative;
  flex: 1;
  width: 100%;
  height: 100%;
  min-height: 100%;
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 40px 60px -40px hsla(var(--primary-deep), .55);
  background: hsl(var(--card));
  isolation: isolate;
}
.contact-photo img {
  width: 100%;
  height: 100%;
  min-height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
  transform: scale(1.08);
  transform-origin: center center;
  transition: transform 1.4s cubic-bezier(.2,.8,.2,1);
}
.contact-visual:hover .contact-photo img {
  transform: scale(1.14);
}
.contact-photo__accent {
  position: absolute;
  inset: auto -20% -40% auto;
  width: 65%;
  height: 65%;
  background: radial-gradient(circle, hsla(var(--primary), .35), transparent 70%);
  pointer-events: none;
  z-index: -1;
  filter: blur(24px);
}

@media (prefers-reduced-motion: reduce) {
  .contact-method { animation: none !important; transition: none !important; opacity: 1 !important; transform: none !important; }
  .contact-photo img {
    animation: none !important;
    transition: none !important;
    transform: scale(1.08);
  }
}

.site-footer { background: hsl(var(--surface-dark)); color: #f3f3f3; padding: 1.8rem 0; }
.footer-bottom { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; }
.footer-brand {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  margin: 0;
}
.footer-logo-link {
  display: inline-flex;
  align-items: center;
  line-height: 0;
  text-decoration: none;
}
.footer-logo-link:focus-visible {
  outline: 2px solid hsl(var(--primary));
  outline-offset: 3px;
  border-radius: 4px;
}
.footer-logo {
  display: block;
  height: 2.15rem;
  width: auto;
  max-width: min(280px, 58vw);
}
.footer-links { display: flex; gap: 1.2rem; color: hsla(0,0%,100%,.75); font-size: .88rem; }

.popup { position: fixed; inset: 0; z-index: 120; display: none; }
.popup.active { display: block; }
.popup__overlay { position: absolute; inset: 0; background: rgba(16,16,16,.62); backdrop-filter: blur(2px); }
.popup__dialog { position: relative; z-index: 1; width: min(560px,calc(100% - 2rem)); margin: 5vh auto; padding: 1.3rem; border: 1px solid hsl(var(--border)); background: hsl(var(--card)); border-radius: .5rem; }
.popup__title { margin: 0 0 1rem; font-size: 1.3rem; }
.popup__close { position: absolute; right: .45rem; top: .2rem; border: 0; background: transparent; cursor: pointer; font-size: 1.9rem; line-height: 1; }
.popup__form { display: grid; gap: .75rem; }
.popup__form input { border: 1px solid hsl(var(--border)); background: hsl(var(--card)); padding: .85rem .95rem; border-radius: .35rem; }
.popup__form input:focus { outline: none; border-color: hsl(var(--primary)); box-shadow: 0 0 0 1px hsla(var(--primary), .25); }
.popup__check { display: flex; gap: .65rem; align-items: flex-start; color: hsl(var(--muted-foreground)); font-size: .81rem; line-height: 1.5; }
.popup__check a { text-decoration: underline; }

/* =========================================================
   Layout breakpoints: 1920, 1200, 1024, 992, 768, 480, 320px
   ========================================================= */

/* Desktop hero + wide container */
@media (min-width: 1201px) {
  .hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    grid-template-rows: auto auto;
    grid-template-areas:
      "copy photo"
      "actions photo";
    align-items: stretch;
    gap: 1.25rem clamp(1.5rem, 3vw, 2.25rem);
    min-height: clamp(420px, 52vh, 640px);
  }
  .hero-main {
    order: unset;
    grid-area: copy;
    align-self: end;
  }
  .hero-visual {
    order: unset;
    grid-area: photo;
    grid-row: 1 / -1;
    max-width: none;
    margin-inline: 0;
    align-self: stretch;
    min-height: 0;
  }
  .hero-actions {
    order: unset;
    grid-area: actions;
    align-self: start;
    margin-top: 1.1rem;
    width: auto;
  }
  .hero-visual__photo {
    height: 100%;
    min-height: clamp(320px, 48vh, 560px);
    max-height: none;
    aspect-ratio: auto;
  }
  .hero-visual__photo img {
    height: 100%;
    object-fit: cover;
    object-position: center center;
  }
}

@media (max-width: 1920px) {
  .container { max-width: 1320px; }
}
@media (max-width: 1200px) {
  .container { max-width: 1040px; }
  .contact-section { grid-template-columns: 1fr; gap: 2.5rem; }
  .about-grid {
    grid-template-columns: 1fr;
    gap: 2.5rem;
    justify-items: stretch;
  }
  .about-copy {
    max-width: none;
    width: 100%;
  }
  .about-visual {
    width: 100%;
    max-width: min(100%, 28rem);
    margin-inline: auto;
    justify-self: center;
  }
}
@media (max-width: 1024px) {
  .desktop-nav { display: none; }
  .capabilities-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero-visual { max-width: min(100%, 30rem); }
}
@media (max-width: 992px) {
  .presence-block { grid-template-columns: 1fr; }
  .section-padding { padding: 5.5rem 0; }
}
@media (max-width: 768px) {
  :root { --hero-gap: 1.35rem; }
  .section-padding { padding: 4.5rem 0; }
  .capabilities-grid,
  .process-grid { grid-template-columns: 1fr; }
  .header-cta { display: none; }
  .hero-visual { max-width: min(100%, 26rem); }
  .hero-actions {
    flex-direction: column;
    align-items: stretch;
  }
  .hero-actions .btn { width: 100%; justify-content: center; }
}
@media (max-width: 480px) {
  :root {
    --header-h: 72px;
    --hero-gap: 1.15rem;
  }
  .section-padding { padding: 3rem 0; }
  .article-page {
    --article-header-offset: var(--header-h);
    padding-top: calc(var(--article-header-offset) + 0.5rem);
  }
  .hero-visual { max-width: min(100%, 22rem); }
  .hero-visual__photo {
    aspect-ratio: 1 / 1;
    border-radius: 20px;
  }
  .hero-title--editorial { font-size: clamp(2.35rem, 11vw, 3.25rem); }
}
@media (max-width: 320px) {
  :root { --header-h: 64px; }
  .btn { width: 100%; }
  .hero-title--editorial { font-size: clamp(2rem, 12vw, 2.75rem); }
  .hero-title__word--outline { -webkit-text-stroke-width: 1.5px; }
  .hero-visual__photo { border-radius: 16px; }
}

/* =========================================================
   Mobile navigation (hamburger + slide panel)
   ========================================================= */
.mobile-nav-toggle {
  display: none;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid hsla(var(--primary), .16);
  background: hsla(0, 0%, 100%, .82);
  border-radius: 12px;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 5px;
  backdrop-filter: blur(10px) saturate(150%);
  -webkit-backdrop-filter: blur(10px) saturate(150%);
  transition: background .25s ease, border-color .25s ease;
}
.mobile-nav-toggle__bar {
  display: block;
  width: 20px;
  height: 2px;
  background: hsl(var(--primary-deep));
  border-radius: 2px;
  transition: transform .3s ease, opacity .3s ease;
  transform-origin: center;
}
.mobile-nav-toggle[aria-expanded="true"] .mobile-nav-toggle__bar:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.mobile-nav-toggle[aria-expanded="true"] .mobile-nav-toggle__bar:nth-child(2) { opacity: 0; }
.mobile-nav-toggle[aria-expanded="true"] .mobile-nav-toggle__bar:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.mobile-nav {
  position: absolute;
  top: 100%;
  left: 1rem;
  right: 1rem;
  display: none;
  flex-direction: column;
  gap: .25rem;
  margin-top: .5rem;
  padding: .75rem;
  background: hsla(0, 0%, 100%, .96);
  border: 1px solid hsla(var(--primary), .16);
  border-radius: 18px;
  box-shadow: 0 20px 40px -20px hsla(var(--primary-deep), .35);
  backdrop-filter: blur(16px) saturate(160%);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  opacity: 0;
  transform: translateY(-8px);
  transition: opacity .25s ease, transform .25s ease;
  z-index: 61;
}
.mobile-nav.is-open {
  display: flex;
  opacity: 1;
  transform: translateY(0);
}
.mobile-nav a {
  padding: .85rem 1rem;
  font-size: 1rem;
  font-weight: 600;
  color: hsl(var(--foreground));
  border-radius: 10px;
  transition: background .2s ease, color .2s ease;
}
.mobile-nav a:hover,
.mobile-nav a.is-active {
  background: hsla(var(--primary), .1);
  color: hsl(var(--primary-deep));
}
.mobile-nav__cta { margin-top: .5rem; width: 100%; justify-content: center; }

body.nav-open { overflow: hidden; }

@media (max-width: 1024px) {
  .mobile-nav-toggle { display: inline-flex; }
}

/* Header: tablet / mobile */
@media (max-width: 1024px) {
  .header-actions .btn.header-cta {
    padding: .62rem 1rem;
    font-size: .82rem;
  }
}
@media (max-width: 768px) {
  .lang-switch { min-height: 42px; padding: 4px; }
  .lang-switch__option { padding: .35rem .6rem; min-width: 1.9rem; font-size: .74rem; }
  .mobile-nav-toggle { width: 42px; height: 42px; }
  .logo-img { height: 2.2rem; max-width: 46vw; }
  .mobile-nav {
    left: max(15px, env(safe-area-inset-left, 0px));
    right: max(15px, env(safe-area-inset-right, 0px));
  }
}
@media (max-width: 480px) {
  .lang-switch { min-height: 40px; }
  .mobile-nav-toggle { width: 40px; height: 40px; }
  .logo-img { height: 2rem; max-width: 42vw; }
}
@media (max-width: 320px) {
  .lang-switch { min-height: 38px; padding: 3px; }
  .lang-switch__thumb { top: 3px; bottom: 3px; left: 3px; width: calc(50% - 3px); }
  .lang-switch__option { padding: .3rem .5rem; font-size: .7rem; min-width: 1.7rem; }
  .logo-img { height: 1.85rem; max-width: 38vw; }
  .mobile-nav-toggle { width: 38px; height: 38px; }
  .mobile-nav { padding: .6rem; }
  .mobile-nav a { padding: .7rem .85rem; font-size: .95rem; }
}

/* Contact methods: allow values to wrap on small screens */
@media (max-width: 480px) {
  .contact-method__link { padding: .75rem .85rem; gap: .75rem; }
  .contact-method__value { white-space: normal; word-break: break-word; font-size: .94rem; line-height: 1.3; }
  .contact-method__icon { width: 40px; height: 40px; border-radius: 10px; }
  .contact-method__arrow { width: 28px; height: 28px; }
}

/* Insights slider nav: stack on very small screens so controls don't overflow */
@media (max-width: 420px) {
  .insights-slider__nav { flex-wrap: wrap; gap: .75rem; }
  .insights-slider__progress { flex: 1 1 100%; order: 3; }
  .insights-slider__dots { order: 2; flex: 1 1 auto; justify-content: center; }
  .insights-slider__btn { width: 40px; height: 40px; }
}

/* About: tidy lead quote on mobile */
@media (max-width: 640px) {
  .about-lead { padding-left: .85rem; border-left-width: 2px; }
  .about-pillar { padding: .95rem .95rem .95rem .9rem; }
  .about-pillar__num { width: 2.4rem; height: 2.4rem; font-size: 1rem; }
}

/* Popup: better mobile fit + inner scroll for long content */
@media (max-width: 640px) {
  .popup__dialog { margin: 1.25rem auto; width: calc(100% - 1.5rem); max-height: calc(100vh - 2.5rem); overflow-y: auto; padding: 1.1rem; }
  .popup__title { font-size: 1.15rem; }
  .popup__form input { padding: .75rem .85rem; }
}

/* Core Verticals: reduce inner padding on small screens so content/SVG fit well */
@media (max-width: 640px) {
  .capability-card { min-height: 13rem; padding: 1.35rem 1.25rem; }
  .capability-card .detail-list li { font-size: .82rem; padding: .6rem .75rem .6rem .65rem; }
}

/* Presence: when the map stacks above the cards, let cards grow naturally */
@media (max-width: 992px) {
  .presence-regions { height: auto; gap: .75rem; }
  .presence-region {
    flex: 0 0 auto;
    display: block;
    padding: 1rem 1.1rem;
  }
  .presence-region__header { margin-bottom: .6rem; }
}

/* Presence: compact region cards on mobile */
@media (max-width: 640px) {
  .presence-region { padding: .85rem .95rem; }
  .presence-region__name { font-size: .94rem; }
  .presence-region__countries li { font-size: .74rem; padding: .22rem .55rem; }
  .presence-legend { font-size: .74rem; gap: .9rem; }
}

/* Footer: center items on small screens */
@media (max-width: 480px) {
  .footer-bottom { justify-content: center; text-align: center; }
  .footer-brand { justify-content: center; }
  .footer-links { justify-content: center; }
}

/* =========================================================
   Editorial hero title - triple stacked words
   ========================================================= */
.hero-title--editorial {
  display: flex;
  flex-direction: column;
  gap: .1em;
  line-height: .95;
  font-size: clamp(3rem, 8vw, 6rem);
  font-weight: 900;
  letter-spacing: -.03em;
  margin: 0 0 1.25rem;
  animation: none !important;
  opacity: 1 !important;
  transform: none !important;
}
.hero-title__word {
  display: inline-block;
  background: linear-gradient(135deg, hsl(var(--primary)) 0%, hsl(var(--primary-deep)) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  padding-right: .15em;
  opacity: 0;
  transform: translateY(24px);
  animation: heroRise .8s cubic-bezier(.2,.8,.2,1) forwards;
}
.hero-title__word:nth-child(1) { animation-delay: .2s; }
.hero-title__word:nth-child(2) { animation-delay: .35s; }
.hero-title__word:nth-child(3) { animation-delay: .5s; }
.hero-title__word--outline {
  background: none;
  -webkit-text-fill-color: transparent;
  -webkit-text-stroke: 2px hsl(var(--primary-deep));
  color: transparent;
  font-style: italic;
  padding-left: .75em;
}
@media (max-width: 768px) {
  .hero-title--editorial { font-size: clamp(2.5rem, 10vw, 3.75rem); }
}
@media (prefers-reduced-motion: reduce) {
  .hero-title__word { animation: none !important; opacity: 1 !important; transform: none !important; }
}

/* =========================================================
   Kinetic ticker marquee between About and Core Verticals
   ========================================================= */
.eel-ticker {
  overflow: hidden;
  padding: 1.5rem 0;
  background: linear-gradient(90deg, hsl(var(--primary-deep)), hsl(var(--primary)) 50%, hsl(var(--primary-deep)));
  border-top: 1px solid hsla(var(--primary-deep), .2);
  border-bottom: 1px solid hsla(var(--primary-deep), .2);
  position: relative;
}
.eel-ticker::before,
.eel-ticker::after {
  content: "";
  position: absolute; top: 0; bottom: 0;
  width: 8%;
  z-index: 2;
  pointer-events: none;
}
.eel-ticker::before { left: 0; background: linear-gradient(90deg, hsla(var(--primary-deep), .6), transparent); }
.eel-ticker::after { right: 0; background: linear-gradient(270deg, hsla(var(--primary-deep), .6), transparent); }
.eel-ticker__track {
  display: inline-flex;
  align-items: center;
  gap: 2rem;
  white-space: nowrap;
  padding-left: 2rem;
  animation: eelTickerScroll 45s linear infinite;
  will-change: transform;
}
.eel-ticker:hover .eel-ticker__track { animation-play-state: paused; }
.eel-ticker__item {
  font-size: clamp(1rem, 1.6vw, 1.4rem);
  font-weight: 800;
  letter-spacing: .02em;
  color: #fff;
  text-transform: uppercase;
}
.eel-ticker__dot {
  width: 10px; height: 10px;
  border-radius: 50%;
  background: hsla(0, 0%, 100%, .55);
  flex-shrink: 0;
}
@keyframes eelTickerScroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

@media (prefers-reduced-motion: reduce) {
  .eel-ticker__track { animation: none !important; }
}

/* --- Article pages (Insights) --- */
.insight-card__link {
  display: block;
  height: 100%;
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}
.insight-card__link:focus-visible {
  outline: 2px solid hsl(var(--primary));
  outline-offset: 3px;
  border-radius: 18px;
}

.article-page {
  --article-header-offset: var(--header-h);
  /* Clear fixed .site-header; a bare 0.5rem would override `main { padding-top }` and leave the top links under the header. */
  padding-top: calc(var(--article-header-offset) + 0.5rem);
  padding-bottom: 5rem;
  background: linear-gradient(
    180deg,
    hsl(270 42% 99.2%) 0%,
    hsl(var(--background)) min(14rem, 28vh)
  );
}

.article-shell {
  max-width: min(50rem, 100%);
  margin-inline: auto;
}

.article-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.2rem 0;
  font-size: 0.8rem;
  letter-spacing: 0.04em;
  font-weight: 700;
  color: hsl(var(--muted-foreground));
  margin: 0 0 1.75rem;
}
.article-breadcrumb a {
  color: hsl(var(--primary-deep));
  text-decoration: none;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  transition: color 0.15s ease;
}
.article-breadcrumb a:hover {
  color: hsl(var(--primary));
  text-decoration: underline;
  text-underline-offset: 3px;
}
.article-breadcrumb__sep {
  margin: 0 0.4rem;
  opacity: 0.45;
  font-weight: 500;
}
.article-breadcrumb__current {
  font-weight: 700;
  color: hsl(var(--foreground));
  letter-spacing: 0.01em;
  text-transform: none;
  font-size: 0.88rem;
}

.article-alt-lang {
  margin: -0.35rem 0 1.35rem;
  font-size: 0.84rem;
  font-weight: 600;
}
.article-alt-lang a {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.35rem 0.75rem 0.38rem;
  border-radius: 999px;
  color: hsl(var(--primary-deep));
  text-decoration: none;
  border: 1px solid hsla(var(--primary), 0.22);
  background: hsl(0 0% 100%);
  box-shadow: 0 1px 0 hsla(var(--primary-deep), 0.04);
  transition: color 0.15s ease, border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}
.article-alt-lang a:hover {
  color: hsl(var(--primary));
  border-color: hsl(var(--primary));
  background: hsla(var(--primary), 0.08);
  box-shadow: 0 4px 18px -12px hsla(var(--primary-deep), 0.35);
}
.article-alt-lang a:focus-visible {
  outline: 2px solid hsl(var(--primary));
  outline-offset: 3px;
}

.article-header {
  margin-bottom: 2rem;
  padding-bottom: 0.25rem;
}
.article-header .section-eyebrow {
  margin-bottom: 0.55rem;
}
.article-title {
  margin: 0 0 1rem;
  font-size: clamp(1.7rem, 4.5vw, 2.45rem);
  line-height: 1.08;
  letter-spacing: -0.025em;
  font-weight: 800;
  color: hsl(var(--foreground));
  text-wrap: balance;
}
.article-meta {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0;
  margin: 0;
  padding: 0.5rem 1rem 0.5rem 0.85rem;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: hsl(var(--primary-deep));
  background: hsl(0 0% 100%);
  border: 1px solid hsla(var(--primary), 0.18);
  border-radius: 999px;
  box-shadow: 0 1px 0 hsla(var(--primary-deep), 0.04);
}
.article-meta__sep {
  margin: 0 0.45rem;
  opacity: 0.45;
  font-weight: 500;
}

.article-hero {
  margin: 0 0 2.25rem;
  border-radius: 20px;
  overflow: hidden;
  border: 1px solid hsla(var(--primary), 0.14);
  box-shadow:
    0 2px 0 hsl(0 0% 100%) inset,
    0 28px 56px -32px hsla(var(--primary-deep), 0.45),
    0 12px 32px -20px hsla(var(--primary), 0.22);
}
.article-hero img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  object-position: center center;
}
.article-hero figcaption {
  margin: 0;
  padding: 0.65rem 1rem 0.85rem;
  font-size: 0.8rem;
  line-height: 1.45;
  font-weight: 600;
  color: hsl(var(--muted-foreground));
  background: hsl(0 0% 100%);
  border-top: 1px solid hsla(var(--primary), 0.1);
}

.article-prose {
  font-size: 1.0625rem;
  line-height: 1.72;
  color: hsl(var(--foreground));
  max-width: 72ch;
}
.article-prose::selection,
.article-lead::selection {
  background: hsla(var(--primary), 0.22);
}
.article-lead {
  margin: 0 0 1.85rem;
  padding: 1.2rem 1.25rem 1.2rem 1.3rem;
  font-size: 1.18rem;
  line-height: 1.62;
  font-weight: 500;
  color: hsl(var(--primary-deep));
  background: linear-gradient(
    125deg,
    hsla(var(--primary), 0.14) 0%,
    hsla(var(--primary), 0.04) 55%,
    hsl(0 0% 100%) 100%
  );
  border-radius: 14px;
  border: 1px solid hsla(var(--primary), 0.12);
  border-left: 4px solid hsl(var(--primary));
  box-shadow: 0 1px 0 hsla(var(--primary-deep), 0.03);
}
.article-prose > p {
  margin: 0 0 1.2rem;
}
.article-prose > p:last-child {
  margin-bottom: 0;
}
.article-prose a {
  color: hsl(var(--primary-deep));
  font-weight: 700;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: color 0.15s ease;
}
.article-prose a:hover {
  color: hsl(var(--primary));
}

.article-prose h2 {
  margin: 2.85rem 0 1.05rem;
  padding-top: 1.85rem;
  border-top: 1px solid hsla(var(--primary), 0.16);
  font-size: clamp(1.18rem, 2.8vw, 1.42rem);
  font-weight: 800;
  letter-spacing: -0.018em;
  color: hsl(var(--primary-deep));
  line-height: 1.22;
  text-wrap: balance;
  scroll-margin-top: calc(var(--article-header-offset, 84px) + 0.75rem);
}
.article-prose > h2:first-of-type {
  margin-top: 0.25rem;
  padding-top: 0;
  border-top: 0;
}

.article-prose ul {
  list-style: none;
  margin: 0 0 1.45rem;
  padding: 0;
}
.article-prose ul li {
  position: relative;
  margin: 0 0 0.8rem;
  padding-left: 1.35rem;
}
.article-prose ul li:last-child {
  margin-bottom: 0;
}
.article-prose ul li::before {
  content: "";
  position: absolute;
  left: 0.15rem;
  top: 0.68em;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: hsl(var(--primary));
  box-shadow: 0 0 0 3px hsla(var(--primary), 0.2);
}

.article-prose ol {
  margin: 0 0 1.45rem;
  padding-left: 1.35rem;
}
.article-prose ol li {
  margin: 0 0 0.65rem;
  padding-left: 0.25rem;
}
.article-prose ol li:last-child {
  margin-bottom: 0;
}

.article-prose strong {
  color: hsl(var(--foreground));
  font-weight: 800;
}

.legal-doc-meta {
  margin: 0 0 2rem;
  padding: 1rem 1.15rem 1.1rem;
  font-size: 0.92rem;
  line-height: 1.55;
  background: hsl(0 0% 100%);
  border: 1px solid hsla(var(--primary), 0.14);
  border-radius: 14px;
  box-shadow: 0 1px 0 hsla(var(--primary-deep), 0.04);
}
.legal-doc-meta dl {
  display: grid;
  gap: 0.55rem 1.25rem;
  margin: 0;
}
@media (min-width: 560px) {
  .legal-doc-meta dl {
    grid-template-columns: auto 1fr;
  }
}
.legal-doc-meta dt {
  margin: 0;
  font-weight: 800;
  color: hsl(var(--primary-deep));
}
.legal-doc-meta dd {
  margin: 0;
  color: hsl(var(--foreground));
}
.legal-address {
  margin: 0 0 1.2rem;
  font-style: normal;
  line-height: 1.65;
}

.article-prose h3 {
  margin: 1.75rem 0 0.65rem;
  font-size: 1.05rem;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: hsl(var(--primary-deep));
  line-height: 1.3;
  scroll-margin-top: calc(var(--article-header-offset, 84px) + 0.75rem);
}
.article-prose > h2 + h3 {
  margin-top: 1rem;
}

.article-region {
  margin: 0 0 1.65rem;
  padding: 1.15rem 1.2rem 1.2rem 1.25rem;
  border-radius: 16px;
  border: 1px solid hsla(var(--primary), 0.14);
  border-left: 4px solid hsl(var(--primary));
  background: linear-gradient(165deg, hsla(var(--primary), 0.09) 0%, hsl(0 0% 100%) 52%);
  box-shadow: 0 1px 0 hsla(var(--primary-deep), 0.04), 0 16px 44px -36px hsla(var(--primary-deep), 0.28);
}
.article-prose .article-region h2 {
  margin: 0 0 0.85rem;
  padding: 0;
  border: 0;
  font-size: clamp(1.12rem, 2.5vw, 1.28rem);
}
.article-prose .article-region > p:last-child {
  margin-bottom: 0;
}

.article-callout {
  margin: 2.25rem 0 0;
  padding: 1.35rem 1.35rem 1.4rem;
  border-radius: 18px;
  border: 1px solid hsla(var(--primary), 0.18);
  background: linear-gradient(
    135deg,
    hsla(var(--primary), 0.12) 0%,
    hsl(0 0% 100%) 48%,
    hsl(0 0% 100%) 100%
  );
  box-shadow: 0 2px 0 hsla(var(--primary-deep), 0.03), 0 20px 48px -32px hsla(var(--primary-deep), 0.22);
}
.article-prose .article-callout > h2:first-child,
.article-prose .article-callout > h3:first-child {
  margin-top: 0;
  margin-bottom: 1rem;
  padding-top: 0;
  border-top: 0;
}
.article-prose .article-callout > ul:first-of-type {
  margin-top: 0;
}
.article-prose .article-callout > *:last-child {
  margin-bottom: 0;
}

@media print {
  .site-header,
  .article-footer-actions,
  .site-footer,
  .popup,
  .skip-link {
    display: none !important;
  }
  .article-page {
    padding-top: 0.5rem;
    background: #fff;
  }
  .article-hero {
    break-inside: avoid;
  }
  .article-prose a[href^="http"]::after {
    content: " (" attr(href) ")";
    font-size: 0.75em;
    font-weight: 500;
    word-break: break-all;
  }
}

.article-table-wrap {
  margin: 1.35rem 0 1.75rem;
  border-radius: 14px;
  border: 1px solid hsla(var(--primary), 0.14);
  background: hsl(0 0% 100%);
  box-shadow: 0 2px 12px -8px hsla(var(--primary-deep), 0.2);
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.article-data-table {
  width: 100%;
  min-width: 36rem;
  border-collapse: collapse;
  font-size: 0.875rem;
  line-height: 1.45;
}
.article-data-table caption {
  caption-side: top;
  text-align: left;
  padding: 1rem 1rem 0.75rem;
  font-size: 0.82rem;
  font-weight: 600;
  color: hsl(var(--muted-foreground));
  line-height: 1.45;
}
.article-data-table thead th {
  padding: 0.7rem 0.85rem;
  text-align: left;
  font-weight: 800;
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: hsl(var(--primary-deep));
  background: hsla(var(--primary), 0.1);
  border-bottom: 1px solid hsla(var(--primary), 0.18);
  white-space: nowrap;
}
.article-data-table tbody th {
  padding: 0.65rem 0.85rem;
  text-align: left;
  font-weight: 700;
  color: hsl(var(--foreground));
  border-bottom: 1px solid hsla(var(--border), 0.9);
  vertical-align: top;
}
.article-data-table td {
  padding: 0.65rem 0.85rem;
  border-bottom: 1px solid hsla(var(--border), 0.9);
  color: hsl(var(--foreground));
  vertical-align: top;
}
.article-data-table tbody tr:nth-child(even) td,
.article-data-table tbody tr:nth-child(even) th {
  background: hsla(var(--primary), 0.055);
}
.article-data-table tbody tr:last-child th,
.article-data-table tbody tr:last-child td {
  border-bottom: 0;
}

/* Stacked “table” — no horizontal scroll (Poland labor articles) */
.article-table-wrap--stack {
  overflow-x: visible;
}
.article-data-table--stack {
  min-width: 0;
  width: 100%;
  table-layout: auto;
}
.article-data-table--stack thead {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.article-data-table--stack caption {
  padding-bottom: 0.85rem;
}
.article-data-table--stack tbody tr {
  display: block;
  margin-bottom: 0.85rem;
  padding: 0.85rem 1rem;
  border: 1px solid hsla(var(--primary), 0.14);
  border-radius: 14px;
  background: hsl(0 0% 100%);
  box-shadow: 0 1px 0 hsla(var(--primary-deep), 0.04);
}
.article-data-table--stack tbody tr:nth-child(even) {
  background: hsla(var(--primary), 0.06);
}
.article-data-table--stack tbody th[scope="row"] {
  display: block;
  width: 100%;
  padding: 0 0 0.65rem;
  margin: 0 0 0.65rem;
  border: 0;
  border-bottom: 1px solid hsla(var(--primary), 0.16);
  font-size: 1.02rem;
  line-height: 1.35;
  vertical-align: top;
}
.article-data-table--stack tbody td {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  gap: 0.75rem 1rem;
  padding: 0.42rem 0;
  border: 0;
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.article-data-table--stack tbody td::before {
  content: attr(data-label);
  flex: 0 1 46%;
  min-width: 0;
  text-align: left;
  font-weight: 700;
  font-size: 0.76rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: hsl(var(--muted-foreground));
  line-height: 1.35;
}
.article-data-table--stack tbody tr:last-child {
  margin-bottom: 0;
}
.article-data-table--stack tbody tr:nth-child(even) td,
.article-data-table--stack tbody tr:nth-child(even) th[scope="row"] {
  background: transparent;
}

/* Shortage tier emphasis (Poland comparison table) */
.article-data-table td[data-tier] {
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.article-data-table td[data-tier]::after {
  content: "";
  display: inline-block;
  width: 0.42rem;
  height: 0.42rem;
  margin-left: 0.4rem;
  border-radius: 50%;
  vertical-align: 0.14em;
  box-shadow: 0 0 0 2px hsl(0 0% 100%);
}
.article-data-table td[data-tier="very-high"] {
  color: hsl(350 58% 36%);
}
.article-data-table td[data-tier="very-high"]::after {
  background: hsl(350 75% 48%);
}
.article-data-table td[data-tier="high"] {
  color: hsl(var(--primary-deep));
}
.article-data-table td[data-tier="high"]::after {
  background: hsl(var(--primary));
}
.article-data-table td[data-tier="medium-high"] {
  color: hsl(28 78% 32%);
}
.article-data-table td[data-tier="medium-high"]::after {
  background: hsl(36 92% 44%);
}

/* Wide screens: real table + horizontal scroll instead of stacked cards */
@media (min-width: 768px) {
  .article-table-wrap--stack {
    overflow-x: auto;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
  }
  .article-data-table--stack {
    min-width: 41rem;
    width: 100%;
    table-layout: auto;
  }
  .article-data-table--stack caption {
    padding: 1rem 1rem 0.65rem;
    font-size: 0.84rem;
    font-weight: 700;
    color: hsl(var(--foreground));
    max-width: 52ch;
    line-height: 1.45;
  }
  .article-data-table--stack thead {
    position: static;
    width: auto;
    height: auto;
    margin: 0;
    padding: 0;
    overflow: visible;
    clip: auto;
    clip-path: none;
    white-space: normal;
    border: 0;
  }
  .article-data-table--stack thead tr {
    display: table-row;
  }
  .article-data-table--stack thead th {
    display: table-cell;
    position: static;
    white-space: normal;
    line-height: 1.25;
    font-size: 0.72rem;
    padding: 0.65rem 0.6rem;
  }
  .article-data-table--stack tbody tr {
    display: table-row;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: transparent !important;
  }
  .article-data-table--stack tbody tr:nth-child(even) {
    background: transparent !important;
  }
  .article-data-table--stack tbody th[scope="row"] {
    display: table-cell;
    width: 19%;
    min-width: 7.5rem;
    font-size: 0.84rem;
    line-height: 1.4;
    padding: 0.65rem 0.75rem;
    margin: 0;
    border: 0;
    border-bottom: 1px solid hsla(var(--border), 0.9);
    border-radius: 0;
    vertical-align: top;
  }
  .article-data-table--stack tbody td {
    display: table-cell;
    padding: 0.65rem 0.55rem;
    text-align: left;
    vertical-align: top;
    border: 0;
    border-bottom: 1px solid hsla(var(--border), 0.9);
    white-space: normal;
  }
  .article-data-table--stack tbody td::before {
    display: none !important;
    content: none !important;
  }
  .article-data-table--stack tbody tr:nth-child(even) td,
  .article-data-table--stack tbody tr:nth-child(even) th[scope="row"] {
    background: hsla(var(--primary), 0.055);
  }
  .article-data-table--stack tbody tr:last-child th,
  .article-data-table--stack tbody tr:last-child td {
    border-bottom: 0;
  }
  .article-data-table--stack tbody td[data-tier] {
    white-space: nowrap;
  }
}

.article-footer-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem;
  margin-top: 2.75rem;
  padding-top: 2rem;
  border-top: 1px solid hsla(var(--primary), .12);
}

.article-footer-actions .btn {
  box-sizing: border-box;
  text-decoration: none;
  padding: 0.95rem 1.75rem;
  min-height: 3rem;
  border-radius: 999px;
  font-size: 0.9375rem;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0.01em;
}

.article-footer-actions .btn-secondary {
  background: hsl(0, 0%, 100%);
  border-color: hsla(var(--primary), .45);
  color: hsl(var(--primary-deep));
  box-shadow: 0 1px 0 hsla(var(--primary-deep), .04), 0 2px 12px -8px hsla(var(--primary-deep), .2);
}

.article-footer-actions .btn-secondary:hover {
  background: hsla(var(--primary), .06);
  border-color: hsl(var(--primary));
}

.article-footer-actions .btn-primary {
  padding-left: 1.85rem;
  padding-right: 1.85rem;
  box-shadow: 0 4px 14px -6px hsla(var(--primary-deep), .55), 0 2px 6px -3px hsla(var(--primary), .35);
}

.article-footer-actions .btn-primary:hover {
  box-shadow: 0 8px 22px -10px hsla(var(--primary-deep), .6), 0 2px 8px -3px hsla(var(--primary), .4);
}

.article-footer-actions .btn:focus-visible {
  outline: 2px solid hsl(var(--primary));
  outline-offset: 3px;
}

@media (max-width: 640px) {
  .article-page {
    padding-bottom: 3.5rem;
  }
  .article-header {
    margin-bottom: 1.65rem;
  }
  .article-title {
    overflow-wrap: break-word;
    hyphens: auto;
    -webkit-hyphens: auto;
  }
  .article-meta {
    font-size: 0.72rem;
    padding: 0.45rem 0.85rem;
  }
  .article-prose {
    font-size: 1rem;
    max-width: none;
    overflow-wrap: break-word;
  }
  .article-lead {
    font-size: 1.05rem;
    padding: 1rem 1rem 1rem 1.1rem;
    margin-bottom: 1.5rem;
  }
  .article-prose h2 {
    margin-top: 2.35rem;
    padding-top: 1.5rem;
  }
  .article-prose h3 {
    font-size: 1rem;
  }
  .article-data-table:not(.article-data-table--stack) {
    min-width: 32rem;
    font-size: 0.8125rem;
  }
  .article-data-table:not(.article-data-table--stack) thead th {
    white-space: normal;
    max-width: 7.5rem;
  }
  .article-footer-actions {
    flex-direction: column;
    align-items: stretch;
  }
  .article-footer-actions .btn {
    flex: 0 0 auto;
    width: 100%;
    justify-content: center;
  }
  .article-region {
    padding: 1rem 0.95rem 1.05rem 1rem;
    border-radius: 14px;
    margin-bottom: 1.35rem;
  }
  .article-prose .article-region h2 {
    font-size: 1.08rem;
    margin-bottom: 0.65rem;
  }
  .article-callout {
    margin-top: 1.85rem;
    padding: 1.1rem 1rem 1.15rem;
    border-radius: 16px;
  }
  .article-hero {
    border-radius: 16px;
  }
  .article-hero figcaption {
    font-size: 0.76rem;
    padding: 0.55rem 0.85rem 0.75rem;
    line-height: 1.4;
  }
  .article-breadcrumb {
    margin-bottom: 1.35rem;
    font-size: 0.76rem;
  }
  .article-alt-lang {
    margin-bottom: 1.1rem;
  }
  .article-alt-lang a {
    max-width: 100%;
    justify-content: center;
    text-align: center;
    white-space: normal;
    line-height: 1.3;
  }
}

/* Stacked comparison table: stable layout on phones and narrow tablets (matches desktop switch at 768px) */
@media (max-width: 767px) {
  .article-table-wrap--stack {
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
    border-radius: 12px;
  }
  .article-data-table--stack {
    width: 100%;
    max-width: 100%;
  }
  .article-data-table--stack caption {
    padding: 0.85rem 0.75rem 0.65rem;
    font-size: 0.78rem;
    line-height: 1.45;
    hyphens: auto;
    -webkit-hyphens: auto;
  }
  .article-data-table--stack tbody tr {
    padding: 0.75rem 0.75rem 0.8rem;
    margin-bottom: 0.75rem;
    border-radius: 12px;
  }
  .article-data-table--stack tbody th[scope="row"] {
    font-size: clamp(0.95rem, 4.2vw, 1.02rem);
    line-height: 1.32;
    padding-bottom: 0.55rem;
    margin-bottom: 0.55rem;
    overflow-wrap: anywhere;
    word-break: break-word;
  }
  .article-data-table--stack tbody td {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    align-self: stretch;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    gap: 0.18rem 0;
    padding: 0.4rem 0;
    text-align: left;
    box-sizing: border-box;
    justify-content: flex-start;
  }
  .article-data-table--stack tbody td::before {
    flex: none;
    width: 100%;
    max-width: none;
    padding-bottom: 0.06rem;
    font-size: 0.7rem;
    letter-spacing: 0.03em;
    line-height: 1.3;
  }
  .article-data-table--stack tbody td[data-tier] {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    column-gap: 0.45rem;
    row-gap: 0.15rem;
    white-space: normal;
  }
  .article-data-table--stack tbody td[data-tier]::before {
    flex: 1 0 100%;
    width: 100%;
  }
}
