/* ==========================================================================
   NextGen Creatives — Hero Section
   ========================================================================== */

:root {
  --ng-blue: #1e5fd9;
  --ng-blue-dark: #164ab3;
  --ng-orange: #f5821f;
  --ng-orange-dark: #dd6e10;
  --ng-navy: #101a33;
  --ng-navy-soft: #2a3550;
  --ng-text-body: #4b5570;
  --ng-bg: #ffffff;
  --ng-bg-soft: #f5f8fd;
  --ng-border: #e3e8f2;

  --font-sans: "Plus Jakarta Sans", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  --transition-fast: 200ms ease;
  --transition-med: 280ms cubic-bezier(0.22, 1, 0.36, 1);

  --header-height: 88px;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  font-family: var(--font-sans);
  color: var(--ng-text-body);
  background: var(--ng-bg);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

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

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

ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

button {
  font-family: inherit;
  cursor: pointer;
}

/* Skip link */
.skip-link {
  position: absolute;
  left: -999px;
  top: 0;
  background: var(--ng-blue);
  color: #fff;
  padding: 12px 20px;
  z-index: 1000;
  border-radius: 0 0 8px 0;
}
.skip-link:focus {
  left: 0;
}

/* Focus visibility */
a:focus-visible,
button:focus-visible,
input:focus-visible {
  outline: 2.5px solid var(--ng-orange);
  outline-offset: 3px;
  border-radius: 4px;
}

/* ==========================================================================
   Header
   ========================================================================== */

.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: saturate(180%) blur(8px);
  border-bottom: 1px solid var(--ng-border);
}

.header-inner {
  max-width: 1600px;
  margin: 0 auto;
  height: var(--header-height);
  padding: 0 40px;
  display: flex;
  align-items: center;
  gap: 32px;
}

.brand {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

.brand-logo {
  height: 54px;
  width: auto;
}

.main-nav {
  flex: 1;
  display: flex;
  justify-content: center;
}

.main-nav > ul {
  display: flex;
  align-items: center;
  gap: 36px;
}

.nav-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 15.5px;
  font-weight: 600;
  color: var(--ng-navy-soft);
  background: none;
  border: none;
  padding: 6px 2px;
  position: relative;
  transition: color var(--transition-fast);
}

.nav-link::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -4px;
  height: 2px;
  background: var(--ng-orange);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--transition-fast);
}

.nav-link:hover,
.nav-link:focus-visible {
  color: var(--ng-blue);
}

.nav-link:hover::after,
.nav-link:focus-visible::after,
.nav-link.is-active::after {
  transform: scaleX(1);
}

.nav-link.is-active {
  color: var(--ng-blue);
}

.chevron {
  transition: transform var(--transition-fast);
}

.has-dropdown[data-open="true"] .chevron {
  transform: rotate(180deg);
}

.has-dropdown {
  position: relative;
}

.dropdown-menu {
  position: absolute;
  top: calc(100% + 14px);
  left: 50%;
  transform: translateX(-50%) translateY(6px);
  background: #fff;
  border: 1px solid var(--ng-border);
  border-radius: 14px;
  box-shadow: 0 20px 45px -12px rgba(16, 26, 51, 0.18);
  min-width: 260px;
  padding: 10px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity var(--transition-med), transform var(--transition-med), visibility var(--transition-med);
  z-index: 50;
}

.has-dropdown[data-open="true"] .dropdown-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}

.dropdown-menu li a {
  display: block;
  padding: 10px 14px;
  border-radius: 8px;
  font-size: 14.5px;
  font-weight: 500;
  color: var(--ng-navy-soft);
  transition: background var(--transition-fast), color var(--transition-fast), padding-left var(--transition-fast);
}

.dropdown-menu li a:hover,
.dropdown-menu li a:focus-visible {
  background: var(--ng-bg-soft);
  color: var(--ng-blue);
  padding-left: 18px;
}

.header-actions {
  display: flex;
  align-items: center;
  gap: 18px;
  flex-shrink: 0;
}

.icon-btn {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid var(--ng-border);
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ng-navy-soft);
  transition: background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
}

.icon-btn:hover {
  background: var(--ng-bg-soft);
  color: var(--ng-blue);
  border-color: var(--ng-blue);
}

.search-panel {
  border-top: 1px solid var(--ng-border);
  background: var(--ng-bg-soft);
  padding: 16px 40px;
}

.search-form {
  max-width: 1440px;
  margin: 0 auto;
  display: flex;
  gap: 10px;
}

.search-form input {
  flex: 1;
  padding: 11px 16px;
  border: 1px solid var(--ng-border);
  border-radius: 10px;
  font-size: 15px;
  font-family: inherit;
}

.search-form input:focus-visible {
  border-color: var(--ng-blue);
}

.search-form button {
  padding: 11px 22px;
  border: none;
  border-radius: 10px;
  background: var(--ng-blue);
  color: #fff;
  font-weight: 600;
  transition: background var(--transition-fast);
}

.search-form button:hover {
  background: var(--ng-blue-dark);
}

.mobile-menu-toggle {
  display: none;
  width: 44px;
  height: 44px;
  border: none;
  background: none;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  border-radius: 8px;
}

.mobile-menu-toggle span {
  width: 22px;
  height: 2px;
  background: var(--ng-navy);
  border-radius: 2px;
  transition: transform var(--transition-fast), opacity var(--transition-fast);
}

.mobile-menu-toggle.is-active span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}
.mobile-menu-toggle.is-active span:nth-child(2) {
  opacity: 0;
}
.mobile-menu-toggle.is-active span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

/* ==========================================================================
   Mobile navigation drawer
   ========================================================================== */

.drawer-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(16, 26, 51, 0.45);
  z-index: 190;
  opacity: 0;
  transition: opacity var(--transition-med);
}

.drawer-backdrop[hidden] {
  display: none;
}

.drawer-backdrop.is-visible {
  opacity: 1;
}

.mobile-nav {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(340px, 86vw);
  background: #fff;
  z-index: 200;
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform var(--transition-med);
  box-shadow: -18px 0 40px -20px rgba(16, 26, 51, 0.35);
  overflow-y: auto;
}

.mobile-nav.is-open {
  transform: translateX(0);
}

.mobile-nav-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 18px;
  border-bottom: 1px solid var(--ng-border);
  flex-shrink: 0;
}

.mobile-nav-header .brand-logo {
  height: 36px;
}

.mobile-nav-close {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid var(--ng-border);
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ng-navy);
  flex-shrink: 0;
  transition: background var(--transition-fast), color var(--transition-fast);
}

.mobile-nav-close:hover {
  background: var(--ng-bg-soft);
  color: var(--ng-blue);
}

.mobile-nav-list {
  padding: 8px 18px;
  flex: 1;
}

.mobile-nav-list > li > a,
.mobile-dropdown-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: 52px;
  padding: 14px 4px;
  font-size: 16px;
  font-weight: 600;
  color: var(--ng-navy);
  border: none;
  background: none;
  border-bottom: 1px solid var(--ng-border);
  text-align: left;
}

.mobile-has-dropdown[data-open="true"] .chevron {
  transform: rotate(180deg);
}

.mobile-dropdown-menu {
  padding-left: 12px;
  padding-bottom: 6px;
}

.mobile-dropdown-menu li a {
  display: flex;
  align-items: center;
  min-height: 46px;
  padding: 10px 4px;
  font-size: 14.5px;
  color: var(--ng-text-body);
}

.mobile-dropdown-menu li a:hover,
.mobile-dropdown-menu li a:focus-visible {
  color: var(--ng-blue);
}

.mobile-nav-footer {
  padding: 16px 18px 24px;
  border-top: 1px solid var(--ng-border);
  flex-shrink: 0;
}

.mobile-nav-cta {
  width: 100%;
}

body.mobile-nav-open {
  overflow: hidden;
}

/* ==========================================================================
   Buttons
   ========================================================================== */

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font-weight: 700;
  border-radius: 10px;
  border: 2px solid transparent;
  transition: transform var(--transition-fast), box-shadow var(--transition-fast),
    background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
  white-space: nowrap;
}

.btn svg {
  transition: transform var(--transition-fast);
}

.btn-primary {
  background: var(--ng-orange);
  color: #fff;
  box-shadow: 0 8px 20px -6px rgba(245, 130, 31, 0.55);
}

.btn-primary:hover,
.btn-primary:focus-visible {
  background: var(--ng-orange-dark);
  transform: translateY(-2px);
  box-shadow: 0 14px 26px -8px rgba(245, 130, 31, 0.6);
}

.btn-primary:hover svg,
.btn-primary:focus-visible svg {
  transform: translateX(3px);
}

.btn-primary:active {
  transform: translateY(0);
  box-shadow: 0 6px 14px -6px rgba(245, 130, 31, 0.5);
}

.btn-secondary {
  background: #fff;
  color: var(--ng-navy);
  border-color: var(--ng-navy);
}

.btn-secondary:hover,
.btn-secondary:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 14px 26px -10px rgba(16, 26, 51, 0.28);
  background: var(--ng-bg-soft);
}

.btn-secondary:active {
  transform: translateY(0);
}

.play-icon {
  color: var(--ng-navy);
}

.btn-nav {
  padding: 11px 22px;
  font-size: 14.5px;
}

.btn-lg {
  padding: 16px 28px;
  font-size: 16px;
}

/* ==========================================================================
   Hero
   ========================================================================== */

.hero {
  position: relative;
  background: linear-gradient(180deg, #ffffff 0%, var(--ng-bg-soft) 100%);
  overflow: hidden;
}

.hero-inner {
  max-width: 1600px;
  margin: 0 auto;
  padding: 64px 40px 56px;
  min-height: 720px;
  display: grid;
  grid-template-columns: minmax(480px, 640px) 1fr;
  align-items: center;
  gap: 20px;
}

.hero-content {
  position: relative;
  z-index: 2;
}

.hero-eyebrow {
  margin: 0 0 20px;
  font-size: 13.5px;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: var(--ng-blue);
  text-transform: uppercase;
}

.hero-heading {
  margin: 0 0 22px;
  font-size: clamp(2.6rem, 3vw, 3.35rem);
  line-height: 1.1;
  font-weight: 800;
  letter-spacing: -0.02em;
  white-space: nowrap;
}

.hero-heading .line-navy {
  display: block;
  color: var(--ng-navy);
}

.hero-heading .line-blue {
  display: block;
  color: var(--ng-blue);
}

.accent-dot {
  color: var(--ng-orange);
}

.hero-description {
  margin: 0 0 34px;
  font-size: 17.5px;
  line-height: 1.65;
  color: var(--ng-text-body);
  max-width: 480px;
}

.hero-cta-group {
  display: flex;
  gap: 16px;
  margin-bottom: 44px;
  flex-wrap: wrap;
}

/* Service quick links */
.service-quicklinks {
  display: grid;
  grid-template-columns: repeat(4, auto);
  gap: 10px 26px;
  margin-bottom: 46px;
  max-width: 560px;
}

.service-quicklinks li a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 6px;
  border-radius: 10px;
  transition: transform var(--transition-fast), color var(--transition-fast);
}

.qlink-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ng-blue);
  flex-shrink: 0;
  transition: transform var(--transition-fast);
}

.qlink-text {
  font-size: 13.5px;
  font-weight: 600;
  line-height: 1.3;
  color: var(--ng-navy-soft);
}

.service-quicklinks li a:hover,
.service-quicklinks li a:focus-visible {
  transform: translateY(-2px);
}

.service-quicklinks li a:hover .qlink-icon,
.service-quicklinks li a:focus-visible .qlink-icon {
  transform: scale(1.12);
}

.service-quicklinks li a:hover .qlink-text,
.service-quicklinks li a:focus-visible .qlink-text {
  color: var(--ng-blue);
}

/* Stats */
.hero-stats {
  display: flex;
  align-items: flex-start;
  gap: 40px;
  margin: 0;
  padding-top: 28px;
  border-top: 1px solid var(--ng-border);
  max-width: 560px;
}

.stat {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.stat-value {
  font-size: 26px;
  font-weight: 800;
  color: var(--ng-blue);
  margin: 0;
}

.stat-label {
  font-size: 13.5px;
  font-weight: 500;
  color: var(--ng-text-body);
  margin: 0;
}

.stat-clients {
  flex-direction: row;
  align-items: center;
  gap: 10px;
}

.stat-icon {
  color: var(--ng-blue);
  flex-shrink: 0;
}

.stat-label-top {
  font-size: 13.5px;
}

.stat-value-sm {
  font-size: 15px;
  font-weight: 700;
  color: var(--ng-navy);
}

/* Visual side */
.hero-visual {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
}

.hero-visual-frame {
  width: 100%;
  max-width: 900px;
  border-radius: 20px;
  overflow: hidden;
  animation: float-visual 6s ease-in-out infinite;
  will-change: transform;
}

.hero-visual-img {
  width: 100%;
  height: auto;
  aspect-ratio: 1003 / 698;
  object-fit: cover;
  border-radius: 20px;
}

@keyframes float-visual {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-10px); }
}

@media (prefers-reduced-motion: reduce) {
  .hero-visual-frame {
    animation: none;
  }
  html {
    scroll-behavior: auto;
  }
}

/* ==========================================================================
   Responsive
   ========================================================================== */

@media (max-width: 1240px) {
  .header-inner {
    padding: 0 24px;
    gap: 20px;
  }
  .main-nav > ul {
    gap: 24px;
  }
  .hero-inner {
    padding: 56px 24px 48px;
    grid-template-columns: minmax(380px, 500px) 1fr;
  }
}

@media (max-width: 1024px) {
  .main-nav {
    display: none;
  }
  .mobile-menu-toggle {
    display: flex;
  }
  .btn-nav {
    display: none;
  }
  .hero-inner {
    grid-template-columns: 1fr;
    min-height: unset;
  }
  .hero-visual {
    margin-top: 40px;
  }
  .hero-content {
    max-width: 640px;
  }
  .hero-heading {
    white-space: normal;
  }
}

@media (max-width: 1024px) and (min-width: 769px) {
  .hero-visual-frame {
    max-width: 640px;
    margin: 0 auto;
  }
}

/* ==========================================================================
   Mobile hero — a dedicated composition, not a shrunk desktop layout
   ========================================================================== */

@media (max-width: 768px) {
  .header-inner {
    padding: 0 20px;
    height: 68px;
  }
  .brand-logo {
    height: 36px;
  }
  .icon-btn {
    display: none;
  }
  .search-panel {
    display: none;
  }

  /* Single-column flow: hero-content's children become direct flex
     items of hero-inner so the visual can slot between CTAs and
     quicklinks purely via `order`, no DOM/SEO reshuffling needed. */
  .hero-inner {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    padding: 28px 20px 56px;
    gap: 0;
    min-height: unset;
  }

  .hero-content {
    display: contents;
  }

  .hero-eyebrow {
    order: 1;
    font-size: 12px;
    letter-spacing: 0.1em;
    margin: 0 0 14px;
  }

  .hero-heading {
    order: 2;
    font-size: clamp(2.4rem, 11vw, 3rem);
    line-height: 1.14;
    white-space: normal;
    margin: 0 0 16px;
  }

  .hero-description {
    order: 3;
    font-size: 16px;
    line-height: 1.6;
    max-width: 100%;
    margin: 0 0 24px;
  }

  .hero-cta-group {
    order: 4;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 40px;
  }

  .btn-lg {
    width: 100%;
    min-height: 52px;
  }

  .hero-visual {
    order: 5;
    margin: 0 0 48px;
  }

  .hero-visual-frame {
    animation: none;
  }

  .service-quicklinks {
    order: 6;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    max-width: 100%;
    margin: 0 0 48px;
  }

  .service-quicklinks li a {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    padding: 16px;
    min-height: 92px;
    background: #fff;
    border: 1px solid var(--ng-border);
    border-radius: 14px;
    box-shadow: 0 2px 8px -4px rgba(16, 26, 51, 0.08);
  }

  .service-quicklinks li a:hover,
  .service-quicklinks li a:focus-visible {
    transform: none;
    border-color: var(--ng-blue);
  }

  .qlink-icon {
    width: 34px;
    height: 34px;
    background: var(--ng-bg-soft);
    border-radius: 9px;
  }

  .qlink-text {
    font-size: 13.5px;
  }

  .hero-stats {
    order: 7;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    max-width: 100%;
    padding-top: 24px;
  }

  .stat {
    gap: 4px;
  }

  .stat-value {
    font-size: 21px;
  }

  .stat-label {
    font-size: 12px;
    line-height: 1.3;
  }

  .stat-clients {
    grid-column: span 3;
    flex-direction: row;
    padding-top: 16px;
    margin-top: 4px;
    border-top: 1px solid var(--ng-border);
  }

  .stat-label-top {
    font-size: 12px;
  }

  .stat-value-sm {
    font-size: 14px;
  }
}

@media (max-width: 400px) {
  .service-quicklinks {
    grid-template-columns: 1fr;
  }
  .stat-clients {
    grid-column: span 1;
  }
  .hero-stats {
    grid-template-columns: 1fr 1fr;
  }
}

/* ==========================================================================
   Sticky mobile CTA
   ========================================================================== */

.mobile-sticky-cta {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 80;
  display: none;
  align-items: center;
  gap: 10px;
  padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
  background: rgba(255, 255, 255, 0.97);
  backdrop-filter: saturate(180%) blur(8px);
  border-top: 1px solid var(--ng-border);
  box-shadow: 0 -8px 24px -12px rgba(16, 26, 51, 0.18);
  transform: translateY(100%);
  transition: transform var(--transition-med);
}

.mobile-sticky-cta.is-visible {
  transform: translateY(0);
}

.mobile-sticky-cta[hidden] {
  display: none;
}

@media (max-width: 768px) {
  .mobile-sticky-cta {
    display: flex;
  }
}

.sticky-cta-main {
  flex: 1;
  min-height: 48px;
  font-size: 15px;
  padding: 12px 18px;
}

.sticky-cta-whatsapp {
  width: 48px;
  height: 48px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #25d366;
  color: #fff;
  transition: transform var(--transition-fast), box-shadow var(--transition-fast);
}

.sticky-cta-whatsapp:hover,
.sticky-cta-whatsapp:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 8px 18px -6px rgba(37, 211, 102, 0.55);
}

.whatsapp-widget {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 90;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 52px;
  padding: 0 17px 0 13px;
  border-radius: 999px;
  color: #fff;
  background: #25d366;
  box-shadow: 0 8px 20px -10px rgba(10, 80, 42, .65);
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
  transition: transform var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast);
}
.whatsapp-widget svg { width: 27px; height: 27px; flex: 0 0 auto; }
.whatsapp-widget:hover, .whatsapp-widget:focus-visible { color: #fff; background: #1fb85a; box-shadow: 0 11px 24px -10px rgba(10, 80, 42, .75); transform: translateY(-2px); }
.whatsapp-widget:focus-visible { outline: 3px solid rgba(37, 211, 102, .35); outline-offset: 3px; }
@media (max-width: 768px) {
  .whatsapp-widget { right: 16px; bottom: calc(88px + env(safe-area-inset-bottom)); min-height: 48px; padding: 0 13px 0 11px; font-size: 12px; }
  .whatsapp-widget svg { width: 25px; height: 25px; }
}
@media (max-width: 359px) {
  .whatsapp-widget span { display: none; }
  .whatsapp-widget { width: 49px; height: 49px; justify-content: center; padding: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .whatsapp-widget { transition: none; }
}

body.has-sticky-cta {
  padding-bottom: 76px;
}

@media (prefers-reduced-motion: reduce) {
  .mobile-nav,
  .drawer-backdrop,
  .mobile-sticky-cta {
    transition: none;
  }
}

/* ==========================================================================
   Websites & E-commerce service section
   ========================================================================== */

.svc-web {
  position: relative;
  background: linear-gradient(180deg, var(--ng-bg-soft) 0%, #ffffff 55%, #ffffff 100%);
  overflow: hidden;
  padding-bottom: 4px;
}

.svc-web-inner {
  max-width: 1600px;
  margin: 0 auto;
  padding: 100px 6vw 90px;
  display: grid;
  grid-template-columns: minmax(400px, 42%) 1fr;
  align-items: center;
  gap: 40px;
}

.svc-web-content {
  position: relative;
  z-index: 2;
}

/* Reusable: section eyebrow ("ServiceSectionHeader") */
.svc-header {
  margin-bottom: 28px;
}

.svc-eyebrow {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 24px;
  font-size: 13.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ng-orange);
}

.svc-eyebrow-rule {
  width: 28px;
  height: 2px;
  background: var(--ng-orange);
  flex-shrink: 0;
}

.svc-header-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  border-radius: 16px;
  background: var(--ng-bg-soft);
  color: var(--ng-blue);
  margin-bottom: 24px;
}

.svc-heading {
  margin: 0 0 20px;
  font-size: clamp(3rem, 4.5vw, 4.5rem);
  line-height: 0.98;
  font-weight: 800;
  letter-spacing: -0.02em;
}

.svc-heading .line-navy {
  display: block;
  color: var(--ng-navy);
}

.svc-heading .line-blue {
  display: block;
  color: var(--ng-blue);
}

.svc-description {
  margin: 0;
  max-width: 460px;
  font-size: 19px;
  line-height: 1.6;
  color: var(--ng-text-body);
}

/* Reusable: 2x2 service mini-card grid ("ServiceMiniCard") */
.svc-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 6px 28px;
  margin: 36px 0 32px;
  max-width: 520px;
}

.svc-card {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 14px 8px;
  border-radius: 12px;
  cursor: pointer;
  transition: background var(--transition-fast);
}

.svc-card:hover,
.svc-card:focus-visible {
  background: rgba(30, 95, 217, 0.05);
}

.svc-card-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: var(--ng-bg-soft);
  color: var(--ng-blue);
  flex-shrink: 0;
  transition: transform var(--transition-fast);
}

.svc-card:hover .svc-card-icon,
.svc-card:focus-visible .svc-card-icon {
  transform: translateY(-2px);
}

.svc-card-body {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.svc-card-title {
  font-size: 15.5px;
  font-weight: 700;
  color: var(--ng-navy);
  transition: color var(--transition-fast);
}

.svc-card:hover .svc-card-title,
.svc-card:focus-visible .svc-card-title {
  color: var(--ng-blue);
}

.svc-card-desc {
  font-size: 13.5px;
  line-height: 1.45;
  color: var(--ng-text-body);
}

.svc-cta {
  display: inline-flex;
}

/* Right-side device visual */
.svc-visual {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

.svc-visual-frame {
  width: 100%;
  border-radius: 20px;
  overflow: hidden;
}

.svc-visual-img {
  width: 100%;
  height: auto;
  aspect-ratio: 956 / 845;
  object-fit: cover;
  border-radius: 20px;
}

/* Benefits bar */
.svc-benefits {
  max-width: 1600px;
  margin: 0 auto;
  padding: 0 6vw 56px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
}

.svc-benefit {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 0 24px;
  position: relative;
}

.svc-benefit:not(:first-child)::before {
  content: "";
  position: absolute;
  left: 0;
  top: 4px;
  bottom: 4px;
  width: 1px;
  background: var(--ng-border);
}

.svc-benefit-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 12px;
  background: var(--ng-bg-soft);
  color: var(--ng-blue);
  flex-shrink: 0;
}

.svc-benefit-body {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.svc-benefit-title {
  font-size: 14.5px;
  font-weight: 700;
  color: var(--ng-navy);
}

.svc-benefit-desc {
  font-size: 13px;
  line-height: 1.4;
  color: var(--ng-text-body);
}

/* Bottom brand wave */
.svc-wave {
  display: block;
  width: 100%;
  height: 64px;
}

/* Scroll-reveal (progressive enhancement; content is visible by default) */
@media (prefers-reduced-motion: no-preference) {
  /* Gated behind html.js (set by an inline head script) so content
     never depends on JS running correctly to become visible: with no
     JS, or if it errors, .svc-reveal simply has no opacity/transform
     applied and everything renders at full opacity immediately. */
  html.js .svc-reveal {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity 550ms ease, transform 550ms ease;
  }
  html.js .svc-reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
  }
  html.js .svc-visual-frame.svc-reveal {
    transform: scale(0.97);
  }
  html.js .svc-visual-frame.svc-reveal.is-visible {
    transform: scale(1);
  }
  .svc-grid .svc-reveal[data-reveal-index="0"] { transition-delay: 0ms; }
  .svc-grid .svc-reveal[data-reveal-index="1"] { transition-delay: 90ms; }
  .svc-grid .svc-reveal[data-reveal-index="2"] { transition-delay: 180ms; }
  .svc-grid .svc-reveal[data-reveal-index="3"] { transition-delay: 270ms; }
  .svc-benefits .svc-reveal[data-reveal-index="0"] { transition-delay: 0ms; }
  .svc-benefits .svc-reveal[data-reveal-index="1"] { transition-delay: 80ms; }
  .svc-benefits .svc-reveal[data-reveal-index="2"] { transition-delay: 160ms; }
  .svc-benefits .svc-reveal[data-reveal-index="3"] { transition-delay: 240ms; }
}

/* ==========================================================================
   Websites & E-commerce — tablet (768–1179px)
   ========================================================================== */

@media (max-width: 1179px) and (min-width: 1024px) {
  .svc-web-inner {
    grid-template-columns: minmax(360px, 44%) 1fr;
    padding: 90px 40px 80px;
    gap: 32px;
  }
  .svc-heading {
    font-size: clamp(2.6rem, 4.2vw, 3.5rem);
  }
}

@media (max-width: 1023px) {
  .svc-web-inner {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    padding: 72px 40px 64px;
    gap: 0;
  }
  .svc-web-content {
    display: contents;
  }
  .svc-web .svc-header {
    order: 1;
  }
  .svc-web .svc-grid {
    order: 2;
    max-width: 100%;
    grid-template-columns: repeat(2, 1fr);
  }
  .svc-web .svc-cta {
    order: 3;
    margin-bottom: 48px;
  }
  .svc-web .svc-visual {
    order: 4;
    margin-bottom: 56px;
  }
  .svc-heading {
    font-size: clamp(2.75rem, 6vw, 3.5rem);
  }
  .svc-benefits {
    padding: 0 40px 64px;
    grid-template-columns: repeat(2, 1fr);
    gap: 28px 16px;
  }
  .svc-benefit:nth-child(2)::before {
    display: none;
  }
  .svc-benefit:nth-child(3)::before,
  .svc-benefit:nth-child(4)::before {
    display: none;
  }
}

@media (max-width: 900px) {
  .svc-visual-frame {
    max-width: 620px;
    margin: 0 auto;
  }
}

/* ==========================================================================
   Websites & E-commerce — mobile (< 768px)
   ========================================================================== */

@media (max-width: 767px) {
  .svc-web-inner {
    padding: 64px 20px 56px;
  }

  .svc-header-icon {
    width: 56px;
    height: 56px;
    border-radius: 14px;
    margin-bottom: 18px;
  }

  .svc-heading {
    font-size: clamp(2.4rem, 11vw, 3.25rem);
    line-height: 1;
  }

  .svc-web .svc-heading .line-blue {
    white-space: nowrap;
  }

  .svc-description {
    font-size: 16px;
    line-height: 1.55;
    max-width: 100%;
  }

  .svc-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    max-width: 100%;
    margin: 28px 0 28px;
  }

  .svc-card {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    padding: 16px;
    min-height: 44px;
    background: #fff;
    border: 1px solid var(--ng-border);
    border-radius: 16px;
  }

  .svc-card:hover,
  .svc-card:focus-visible {
    background: #fff;
  }

  .svc-card:active {
    background: var(--ng-bg-soft);
  }

  .svc-card-desc {
    display: none;
  }

  .svc-card-title {
    font-size: 14px;
    line-height: 1.3;
  }

  .svc-cta {
    width: 100%;
    min-height: 54px;
  }

  .svc-visual-frame {
    max-width: 100%;
  }

  .svc-benefits {
    padding: 0 20px 56px;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px 14px;
  }

  .svc-benefit {
    padding: 0;
  }

  .svc-benefit::before,
  .svc-benefit:not(:first-child)::before {
    display: none;
  }

  .svc-benefit-title {
    font-size: 13.5px;
  }

  .svc-benefit-desc {
    font-size: 12px;
  }
}

/* Central motion language */
:root {
  --motion-fast: 180ms;
  --motion-normal: 320ms;
  --motion-slow: 550ms;
  --ease-standard: cubic-bezier(.2, .8, .2, 1);
  --reveal-distance: 20px;
}
@media (prefers-reduced-motion: no-preference) {
  html.js [data-motion-reveal] { opacity: 0; transform: translate3d(0, var(--reveal-distance), 0); transition: opacity var(--motion-slow) var(--ease-standard) var(--motion-delay, 0ms), transform var(--motion-slow) var(--ease-standard) var(--motion-delay, 0ms); }
  html.js [data-motion-reveal="scale"] { transform: translate3d(0, 0, 0) scale(.97); }
  html.js [data-motion-reveal="fade-left"] { transform: translate3d(24px, 0, 0); }
  html.js [data-motion-reveal="fade-right"] { transform: translate3d(-24px, 0, 0); }
  html.js [data-motion-reveal].is-visible { opacity: 1; transform: none; }
  html.js .insight-featured, html.js .insight-card { transition-delay: var(--motion-delay, 0ms); }
  html.js .insights-eyebrow span, html.js .svc-eyebrow-rule, html.js .service-details-eyebrow span { transform: scaleX(0); transform-origin: left; transition: transform 650ms var(--ease-standard); }
  html.js .is-visible .insights-eyebrow span, html.js .is-visible .svc-eyebrow-rule, html.js .is-visible .service-details-eyebrow span { transform: scaleX(1); }
}

@media (hover: hover) and (pointer: fine) {
  .insight-featured, .insight-card { transition: transform var(--motion-normal) var(--ease-standard), box-shadow var(--motion-normal) var(--ease-standard), border-color var(--motion-normal) ease; }
  .insight-featured:hover, .insight-card:hover { transform: translateY(-6px); border-color: rgba(22,95,180,.28); box-shadow: 0 25px 42px -25px rgba(16,26,74,.62); }
  .insight-featured:hover h3, .insight-card:hover h3 { color: var(--ng-blue); }
  .insight-featured__media img, .insight-card__media img { transition: transform 500ms var(--ease-standard); }
  .insight-featured:hover .insight-featured__media img, .insight-card:hover .insight-card__media img { transform: scale(1.035); }
  .insight-action span, .article-reader__related-card button span, .insights-hub__cta span, .btn span { display: inline-block; transition: transform var(--motion-fast) var(--ease-standard); }
  .insight-action:hover span, .article-reader__related-card button:hover span, .insights-hub__cta:hover span, .btn:hover span { transform: translateX(4px); }
  .why-nextgen-card:hover, .industry-card:hover { transform: translateY(-5px); }
}

.insight-featured__media, .insight-card__media { overflow: hidden; }
.insights-newsletter__form input { transition: border-color var(--motion-fast) ease, box-shadow var(--motion-fast) ease; }
.insights-newsletter__form input:focus { border-color: var(--ng-blue); box-shadow: 0 0 0 3px rgba(30,95,217,.15); outline: 0; }
.all-insights-list.is-refreshing > article { animation: insight-list-in var(--motion-normal) var(--ease-standard) both; }
.all-insights-list.is-refreshing > article:nth-child(2) { animation-delay: 70ms; }
.all-insights-list.is-refreshing > article:nth-child(3) { animation-delay: 140ms; }
.all-insights-list.is-refreshing > article:nth-child(4) { animation-delay: 210ms; }
@keyframes insight-list-in { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }

body.article-reader-open { position: fixed; width: 100%; overflow: hidden; }
.article-reader { overflow: hidden; opacity: 0; transform: translateY(20px) scale(.99); transition: opacity 380ms var(--ease-standard), transform 380ms var(--ease-standard); }
.article-reader[open] { opacity: 1; transform: none; }
.article-reader::backdrop { opacity: 0; background: rgba(3,17,44,.68); transition: opacity 380ms ease; }
.article-reader[open]::backdrop { opacity: 1; }
.all-insights-dialog, .about-dialog, .legal-dialog { opacity: 0; transform: translateY(14px) scale(.99); transition: opacity var(--motion-normal) var(--ease-standard), transform var(--motion-normal) var(--ease-standard); }
.all-insights-dialog[open], .about-dialog[open], .legal-dialog[open] { opacity: 1; transform: none; }
.all-insights-dialog::backdrop, .about-dialog::backdrop, .legal-dialog::backdrop { opacity: 0; transition: opacity var(--motion-normal) ease; }
.all-insights-dialog[open]::backdrop, .about-dialog[open]::backdrop, .legal-dialog[open]::backdrop { opacity: 1; }
.article-reader__shell { position: relative; scroll-behavior: smooth; }
.article-reader__progress { position: sticky; top: 0; z-index: 5; width: 100%; height: 3px; background: rgba(22,95,180,.1); }
.article-reader__progress span { display: block; width: 100%; height: 100%; background: var(--ng-orange); transform: scaleX(0); transform-origin: left; }
.article-reader__sticky { position: sticky; top: 3px; z-index: 4; display: flex; align-items: center; gap: 13px; min-height: 0; max-height: 0; overflow: hidden; padding: 0 22px; color: var(--ng-navy); background: rgba(255,255,255,.96); box-shadow: 0 8px 18px -17px rgba(16,26,74,.5); opacity: 0; transform: translateY(-100%); transition: max-height var(--motion-normal) var(--ease-standard), opacity var(--motion-normal) ease, transform var(--motion-normal) var(--ease-standard); }
.article-reader__sticky.is-stuck { min-height: 48px; max-height: 48px; opacity: 1; transform: none; }
.article-reader__sticky button { flex: 0 0 auto; padding: 5px 0; border: 0; color: var(--ng-blue); background: transparent; font: inherit; font-size: 12px; font-weight: 800; }
.article-reader__sticky-title { overflow: hidden; min-width: 0; flex: 1; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; font-weight: 700; }
.article-reader__sticky-progress { width: 70px; height: 3px; overflow: hidden; background: #dce7f2; }
.article-reader__sticky-progress i { display: block; width: 100%; height: 100%; background: var(--ng-blue); transform: scaleX(0); transform-origin: left; }
.article-reader__toc { max-width: 820px; margin: 0 auto 28px; padding: 17px 19px; border: 1px solid #dbe6f2; border-radius: 11px; background: #f7fbff; }
.article-reader__toc strong { display: block; margin-bottom: 9px; color: var(--ng-navy); font-size: 13px; }
.article-reader__toc div { display: flex; flex-wrap: wrap; gap: 8px 17px; }
.article-reader__toc a { color: #50617d; font-size: 12px; text-decoration: none; }
.article-reader__toc a::before { display: inline-block; width: 0; height: 2px; margin-right: 0; vertical-align: middle; background: var(--ng-orange); content: ""; transition: width var(--motion-fast) var(--ease-standard), margin-right var(--motion-fast) var(--ease-standard); }
.article-reader__toc a.is-active, .article-reader__toc a:hover { color: var(--ng-blue); }
.article-reader__toc a.is-active::before { width: 15px; margin-right: 5px; }
@media (prefers-reduced-motion: no-preference) {
  html.js .article-reader__content h2, html.js .article-reader__content h3, html.js .article-reader__content ul, html.js .article-reader__content ol, html.js .article-reader__related-wrap, html.js .article-reader__cta { opacity: 0; transform: translateY(15px); transition: opacity 500ms var(--ease-standard), transform 500ms var(--ease-standard); }
  html.js .article-reader__content h2.is-visible, html.js .article-reader__content h3.is-visible, html.js .article-reader__content ul.is-visible, html.js .article-reader__content ol.is-visible, html.js .article-reader__related-wrap.is-visible, html.js .article-reader__cta.is-visible { opacity: 1; transform: none; }
}
@media (max-width: 767px) {
  .article-reader__sticky { padding: 0 18px; gap: 9px; }
  .article-reader__sticky-progress { width: 45px; }
  .article-reader__toc div { display: grid; gap: 9px; }
}
@media (prefers-reduced-motion: reduce) {
  html.js [data-motion-reveal], html.js .article-reader__content h2, html.js .article-reader__content h3, html.js .article-reader__content ul, html.js .article-reader__content ol, html.js .article-reader__related-wrap, html.js .article-reader__cta { opacity: 1 !important; transform: none !important; transition: none !important; }
  html.js .insights-eyebrow span, html.js .svc-eyebrow-rule, html.js .service-details-eyebrow span { transform: none; transition: none; }
  .article-reader, .article-reader[open], .article-reader::backdrop, .article-reader[open]::backdrop, .article-reader__sticky { transition: none; }
  .article-reader__shell { scroll-behavior: auto; }
  .all-insights-list.is-refreshing > article { animation: none; }
}

@media (max-width: 350px) {
  .svc-grid {
    grid-template-columns: 1fr;
  }
  .svc-benefits {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   Applications & Management Systems service section
   Shares the .svc-* component language (header, grid, cards, benefits,
   reveal) established by the Websites & E-commerce section above, with
   its own left/right ratio and a photographic (not device) visual.
   ========================================================================== */

.svc-apps {
  position: relative;
  background: linear-gradient(180deg, #ffffff 0%, var(--ng-bg-soft) 100%);
  overflow: hidden;
}

.svc-apps-inner {
  position: relative;
  max-width: 1600px;
  margin: 0 auto;
  min-height: 700px;
  padding: 100px 6vw 90px;
  display: grid;
  grid-template-columns: minmax(460px, 44%) 1fr;
  align-items: center;
  gap: 40px;
}

.svc-apps-content {
  position: relative;
  z-index: 2;
}

.svc-apps .svc-heading {
  font-size: clamp(2.5rem, 3.4vw, 3.5rem);
}

/* Secondary ("See How It Works") button variant */
.btn-outline {
  background: #fff;
  color: var(--ng-blue);
  border-color: var(--ng-blue);
}

.btn-outline:hover,
.btn-outline:focus-visible {
  background: rgba(30, 95, 217, 0.06);
  transform: translateY(-2px);
  box-shadow: 0 14px 26px -10px rgba(30, 95, 217, 0.28);
}

.btn-outline:active {
  transform: translateY(0);
}

.play-icon-filled {
  color: var(--ng-blue);
}

.svc-cta-group {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
}

.svc-apps .svc-cta,
.svc-apps .svc-cta-secondary {
  display: inline-flex;
}

/* Photographic visual: a gentle white-to-transparent blend on its left
   edge keeps it feeling like one continuous section rather than two
   disconnected boxes, per the reference's soft transition. */
.svc-apps-visual {
  position: relative;
}

.svc-apps-visual::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: -6vw;
  width: 12vw;
  background: linear-gradient(90deg, var(--ng-bg-soft) 0%, rgba(245, 248, 253, 0) 100%);
  z-index: 1;
  pointer-events: none;
}

.svc-apps-visual-frame {
  position: relative;
  z-index: 0;
}

.svc-apps-visual-img {
  aspect-ratio: 989 / 793;
}

/* ==========================================================================
   Applications & Management Systems — tablet (768–1179px)
   ========================================================================== */

@media (max-width: 1179px) and (min-width: 1024px) {
  .svc-apps-inner {
    grid-template-columns: minmax(360px, 45%) 1fr;
    padding: 90px 40px 80px;
    gap: 32px;
    min-height: unset;
  }
}

@media (max-width: 1023px) {
  .svc-apps-inner {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    padding: 72px 40px 64px;
    gap: 0;
    min-height: unset;
  }
  .svc-apps-content {
    display: contents;
  }
  .svc-apps .svc-header {
    order: 1;
  }
  .svc-apps .svc-grid {
    order: 2;
    max-width: 100%;
  }
  .svc-apps .svc-cta-group {
    order: 3;
    margin-bottom: 48px;
  }
  .svc-apps-visual {
    order: 4;
    margin-bottom: 56px;
  }
  .svc-apps-visual::before {
    display: none;
  }
}

@media (max-width: 900px) {
  .svc-apps-visual-frame {
    max-width: 620px;
    margin: 0 auto;
  }
}

/* ==========================================================================
   Applications & Management Systems — mobile (< 768px)
   ========================================================================== */

@media (max-width: 767px) {
  .svc-apps-inner {
    padding: 64px 20px 56px;
  }

  .svc-apps .svc-cta-group {
    flex-direction: column;
    gap: 12px;
  }

  .svc-apps .svc-cta,
  .svc-apps .svc-cta-secondary {
    width: 100%;
  }

  .svc-apps .svc-cta {
    min-height: 54px;
  }

  .svc-apps .svc-cta-secondary {
    min-height: 52px;
  }

  .svc-apps-visual-frame {
    max-width: 100%;
  }

  .svc-apps-visual-img {
    aspect-ratio: 4 / 3;
  }

  .svc-apps .svc-heading {
    font-size: clamp(2.25rem, 10.5vw, 3.125rem);
    line-height: 1.05;
  }
}

/* ==========================================================================
   SEO & Digital Marketing — dark cinematic service section
   ========================================================================== */

.svc-seo {
  --z-bg: 1;
  --z-network: 2;
  --z-visual: 3;
  --z-panels: 4;
  --z-content: 5;
  --z-strip: 6;

  position: relative;
  overflow: hidden;
  background: linear-gradient(180deg, var(--ng-navy) 0%, #0b1830 55%, #081222 100%);
  color: #fff;
}

.svc-seo-bg {
  position: absolute;
  inset: 0;
  z-index: var(--z-bg);
  background:
    radial-gradient(1100px 700px at 78% 15%, rgba(90, 169, 255, 0.22), transparent 60%),
    radial-gradient(700px 500px at 15% 85%, rgba(30, 95, 217, 0.18), transparent 60%),
    linear-gradient(115deg, #0b1830 0%, #0e2547 45%, #123061 100%);
}

.svc-seo-network {
  position: absolute;
  inset: 0;
  z-index: var(--z-network);
  opacity: 0.5;
  background-image:
    radial-gradient(1.5px 1.5px at 20% 30%, rgba(90, 169, 255, 0.9) 50%, transparent 51%),
    radial-gradient(1.5px 1.5px at 35% 60%, rgba(90, 169, 255, 0.7) 50%, transparent 51%),
    radial-gradient(2px 2px at 55% 25%, rgba(90, 169, 255, 0.8) 50%, transparent 51%),
    radial-gradient(1.5px 1.5px at 70% 55%, rgba(90, 169, 255, 0.6) 50%, transparent 51%),
    radial-gradient(1.5px 1.5px at 85% 35%, rgba(90, 169, 255, 0.9) 50%, transparent 51%),
    linear-gradient(120deg, transparent 49.6%, rgba(90, 169, 255, 0.14) 50%, transparent 50.4%),
    linear-gradient(60deg, transparent 49.6%, rgba(90, 169, 255, 0.1) 50%, transparent 50.4%);
  background-size: 100% 100%;
}

.svc-seo-inner {
  position: relative;
  z-index: var(--z-content);
  max-width: 1600px;
  margin: 0 auto;
  padding: 100px 6vw 70px;
  display: grid;
  grid-template-columns: minmax(420px, 38%) 1fr;
  align-items: center;
  gap: 40px;
  min-height: 760px;
}

.svc-seo-content {
  position: relative;
}

/* Dark-variant overrides of the shared .svc-* component language */
.svc-eyebrow-dark {
  color: #ffb374;
}

.svc-heading-dark {
  font-size: clamp(2.6rem, 4vw, 4.2rem);
}

.line-white {
  display: block;
  color: #fff;
}

.line-electric {
  display: block;
  color: #5aa9ff;
  text-shadow: 0 0 30px rgba(90, 169, 255, 0.45);
}

.svc-description-dark {
  color: #c7d3ea;
  max-width: 600px;
}

/* Marketing service grid (dark glass cards) */
.svc-marketing-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin: 32px 0 32px;
  max-width: 100%;
}

.svc-mkt-card {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 16px 14px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(6px);
  transition: transform var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast), box-shadow var(--transition-fast);
}

.svc-mkt-card:hover,
.svc-mkt-card:focus-visible {
  transform: translateY(-3px);
  border-color: rgba(90, 169, 255, 0.55);
  background: rgba(90, 169, 255, 0.08);
  box-shadow: 0 16px 32px -16px rgba(90, 169, 255, 0.45);
}

.svc-mkt-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  flex-shrink: 0;
  transition: transform var(--transition-fast);
}

.svc-mkt-card:hover .svc-mkt-icon,
.svc-mkt-card:focus-visible .svc-mkt-icon {
  transform: scale(1.08);
}

.svc-mkt-icon-cluster {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 3px;
  padding: 5px;
}

.svc-mkt-icon-cluster svg {
  border-radius: 4px;
}

.svc-mkt-title {
  margin: 0;
  font-size: 14.5px;
  font-weight: 700;
  color: #fff;
  transition: color var(--transition-fast);
}

.svc-mkt-card:hover .svc-mkt-title,
.svc-mkt-card:focus-visible .svc-mkt-title {
  color: #7ebaff;
}

.svc-mkt-desc {
  font-size: 12.5px;
  line-height: 1.45;
  color: #9fb0cc;
}

/* Secondary (light-outline) button for dark sections */
.btn-outline-light {
  background: rgba(255, 255, 255, 0.04);
  color: #fff;
  border-color: rgba(255, 255, 255, 0.5);
}

.btn-outline-light:hover,
.btn-outline-light:focus-visible {
  background: rgba(255, 255, 255, 0.12);
  border-color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 14px 26px -12px rgba(255, 255, 255, 0.25);
}

.btn-outline-light:active {
  transform: translateY(0);
}

.btn-outline-light svg circle {
  fill: #fff;
}

/* Dark-variant benefits row */
.svc-benefits-dark {
  border: none;
  padding-top: 8px;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
  max-width: 420px;
}

.svc-benefits-dark .svc-benefit {
  padding: 0;
  gap: 10px;
}

.svc-benefits-dark .svc-benefit::before {
  display: none;
}

.svc-benefit-icon-dark {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: #5aa9ff;
}

.svc-benefit-title-dark {
  color: #e7edf9;
  font-size: 13.5px;
}

/* Right-side visual + floating analytics panels */
.svc-seo-visual {
  position: relative;
  z-index: var(--z-visual);
  display: flex;
  align-items: center;
  justify-content: center;
}

.svc-seo-visual-frame {
  width: 100%;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 30px 60px -20px rgba(0, 0, 0, 0.55);
}

.svc-seo-visual-img {
  width: 100%;
  height: auto;
  aspect-ratio: 1094 / 525;
  object-fit: cover;
  border-radius: 20px;
}

.svc-analytics-panel {
  position: absolute;
  z-index: var(--z-panels);
  background: rgba(13, 27, 54, 0.7);
  border: 1px solid rgba(90, 169, 255, 0.35);
  border-radius: 14px;
  padding: 14px 18px;
  backdrop-filter: blur(10px);
  box-shadow: 0 20px 40px -18px rgba(0, 0, 0, 0.6);
}

.svc-analytics-panel-traffic {
  top: -6%;
  left: 4%;
}

.svc-analytics-panel-keywords {
  top: -10%;
  right: 6%;
  min-width: 220px;
}

.svc-analytics-label {
  margin: 0 0 4px;
  font-size: 11.5px;
  font-weight: 600;
  color: #9fb0cc;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.svc-analytics-value {
  margin: 0;
  font-size: 22px;
  font-weight: 800;
  color: #fff;
  display: flex;
  align-items: baseline;
  gap: 8px;
}

.svc-analytics-delta {
  font-size: 13px;
  font-weight: 700;
  color: #4ade80;
}

.svc-analytics-spark {
  margin-top: 6px;
  display: block;
}

.svc-analytics-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.svc-analytics-list li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  font-size: 12.5px;
  color: #e7edf9;
}

.svc-rank-up {
  color: #4ade80;
  font-weight: 700;
}

/* Industry / trust strip */
.svc-industry-strip {
  position: relative;
  z-index: var(--z-strip);
  max-width: 1600px;
  margin: 0 auto;
  padding: 20px 6vw 40px;
  background: rgba(6, 14, 30, 0.55);
  backdrop-filter: blur(8px);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 24px 24px 0 0;
}

.svc-industry-heading {
  margin: 0 0 18px;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #9fb0cc;
  text-align: center;
}

.svc-industry-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 32px;
}

.svc-industry-list li {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  color: #d7e0f2;
}

.svc-industry-list svg {
  color: #cfe0ff;
}

.svc-industry-list span {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.svc-wave-dark {
  display: block;
  width: 100%;
  height: 48px;
  margin-top: -1px;
}

/* Decorative floating panel entrance offsets */
@media (prefers-reduced-motion: no-preference) {
  html.js .svc-analytics-panel.svc-reveal {
    transform: translateY(-10px);
  }
  html.js .svc-analytics-panel.svc-reveal.is-visible {
    transform: translateY(0);
  }
}

/* ==========================================================================
   SEO & Digital Marketing — tablet (768–1179px)
   ========================================================================== */

@media (max-width: 1179px) and (min-width: 1024px) {
  .svc-seo-inner {
    grid-template-columns: minmax(360px, 42%) 1fr;
    padding: 90px 40px 60px;
    gap: 32px;
    min-height: unset;
  }
  .svc-heading-dark {
    font-size: clamp(2.4rem, 3.6vw, 3.4rem);
  }
  .svc-analytics-panel-keywords {
    min-width: 190px;
  }
}

@media (max-width: 1023px) {
  .svc-seo-inner {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    padding: 72px 40px 48px;
    gap: 0;
    min-height: unset;
  }
  .svc-seo-content {
    display: contents;
  }
  .svc-seo-header {
    order: 1;
  }
  .svc-marketing-grid {
    order: 2;
    grid-template-columns: repeat(2, 1fr);
  }
  .svc-seo .svc-cta-group {
    order: 3;
    margin-bottom: 40px;
  }
  .svc-benefits-dark {
    order: 4;
    margin-bottom: 56px;
    gap: 24px;
  }
  .svc-seo-visual {
    order: 5;
    margin-top: 8px;
  }
  .svc-analytics-panel-traffic {
    top: -4%;
    left: 2%;
  }
  .svc-analytics-panel-keywords {
    top: -8%;
    right: 2%;
    min-width: 170px;
    padding: 10px 14px;
  }
}

@media (max-width: 900px) {
  .svc-seo-visual-frame {
    max-width: 640px;
    margin: 0 auto;
  }
}

/* ==========================================================================
   SEO & Digital Marketing — mobile (< 768px)
   ========================================================================== */

@media (max-width: 767px) {
  .svc-seo-inner {
    padding: 64px 20px 40px;
  }

  .svc-heading-dark {
    font-size: clamp(2.5rem, 12vw, 3.5rem);
    line-height: 1;
  }

  .svc-description-dark {
    font-size: 16px;
    max-width: 100%;
  }

  .svc-marketing-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    margin: 28px 0 28px;
  }

  .svc-mkt-card {
    padding: 14px 12px;
  }

  .svc-mkt-icon {
    width: 44px;
    height: 44px;
  }

  .svc-mkt-icon-cluster svg {
    width: 16px;
    height: 16px;
  }

  .svc-mkt-desc {
    display: none;
  }

  .svc-seo .svc-cta-group {
    flex-direction: column;
    gap: 12px;
    margin-bottom: 40px;
  }

  .svc-seo .svc-cta {
    min-height: 54px;
    width: 100%;
  }

  .svc-seo .svc-cta-secondary {
    min-height: 52px;
    width: 100%;
  }

  .svc-benefits-dark {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px 16px;
    margin-bottom: 48px;
  }

  .svc-seo-visual {
    margin-top: 0;
  }

  .svc-seo-visual-img {
    aspect-ratio: 4 / 3;
  }

  .svc-analytics-panel {
    padding: 10px 12px;
    border-radius: 12px;
  }

  .svc-analytics-panel-traffic {
    top: -5%;
    left: 3%;
  }

  .svc-analytics-value {
    font-size: 17px;
  }

  .svc-analytics-spark {
    width: 100px;
  }

  /* Keep only the traffic panel visible on narrow phones per spec —
     max 1–2 panels; keyword panel needs more width than 375px affords. */
  .svc-analytics-panel-keywords {
    display: none;
  }

  .svc-industry-strip {
    padding: 20px 0 32px;
    border-radius: 20px 20px 0 0;
  }

  .svc-industry-heading {
    padding: 0 20px;
  }

  .svc-industry-list {
    flex-wrap: nowrap;
    justify-content: flex-start;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    gap: 28px;
    padding: 0 20px 4px;
    -ms-overflow-style: none;
    scrollbar-width: none;
  }

  .svc-industry-list::-webkit-scrollbar {
    display: none;
  }

  .svc-industry-list li {
    scroll-snap-align: start;
    flex-shrink: 0;
  }
}

@media (min-width: 431px) and (max-width: 767px) {
  .svc-analytics-panel-keywords {
    display: block;
    top: -8%;
    right: 3%;
    min-width: 150px;
  }
}

@media (max-width: 350px) {
  .svc-marketing-grid {
    grid-template-columns: 1fr;
  }
  .svc-benefits-dark {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   Screen-reader-only utility
   ========================================================================== */

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.portfolio-case-study {
  min-height: 100vh;
  padding: clamp(48px, 10vw, 140px) 7vw;
  color: #f4ead7;
  background: linear-gradient(120deg, #09170d, #1d321d 55%, #6a411d);
}

.portfolio-case-study h1 {
  max-width: 760px;
  margin: 24px 0 16px;
  font-size: clamp(3.5rem, 10vw, 8rem);
  line-height: .9;
  text-transform: uppercase;
}

.portfolio-case-study > p:not(.svc-eyebrow) {
  max-width: 640px;
  font-size: clamp(1.15rem, 2vw, 1.6rem);
  line-height: 1.5;
}

/* About Us: the content remains the same shared single-page system while the
   visual side uses the site's existing real workspace/project imagery. */
.about-section {
  --about-navy: #101a4a;
  --about-blue: #1677ff;
  --about-orange: #f5821f;
  --about-green: #10b981;
  scroll-margin-top: var(--header-height);
  position: relative;
  overflow: hidden;
  background: linear-gradient(105deg, #f9fbff 0%, #f3f8ff 45%, #dcecfb 100%);
  color: var(--about-navy);
}

.about-inner {
  max-width: 1600px;
  min-height: 820px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(520px, 45%) 1fr;
  align-items: stretch;
}

.about-copy {
  position: relative;
  z-index: 2;
  padding: clamp(64px, 7vw, 108px) clamp(28px, 5vw, 72px) 64px;
}

.about-eyebrow {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 28px;
  color: var(--about-navy);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.about-eyebrow span { width: 36px; height: 3px; background: var(--about-blue); flex: 0 0 auto; }
.about-copy h2 { margin: 0 0 24px; max-width: 720px; font-size: clamp(3.25rem, 4.3vw, 4.75rem); line-height: 1; letter-spacing: -.045em; }
.about-copy h2 span { color: var(--about-blue); }
.about-period { color: var(--about-orange) !important; }
.about-description { max-width: 670px; margin: 0 0 30px; color: #263657; font-size: 18px; line-height: 1.58; }

.about-values { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.about-value-card, .about-mission { border: 1px solid rgba(16, 26, 74, .1); border-radius: 15px; background: rgba(255,255,255,.72); box-shadow: 0 10px 28px -22px rgba(16, 26, 74, .45); }
.about-value-card { padding: 18px 16px; }
.about-value-icon { display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; margin-bottom: 14px; border-radius: 50%; }
.about-icon-blue { color: var(--about-blue); background: #e5efff; }
.about-icon-orange { color: var(--about-orange); background: #fff0e3; }
.about-icon-green { color: var(--about-green); background: #e3faf1; }
.about-value-card h3, .about-mission h3 { margin: 0 0 8px; font-size: 16px; }
.about-value-card p, .about-mission p { margin: 0; color: #344464; font-size: 13px; line-height: 1.45; }

.about-mission-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-top: 12px; }
.about-mission { display: flex; gap: 14px; padding: 20px 18px; }
.about-mission-blue { background: rgba(225, 239, 255, .75); }
.about-mission-orange { background: rgba(255, 242, 229, .76); }
.about-large-icon { display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; flex: 0 0 auto; border-radius: 50%; color: var(--about-blue); background: #fff; }
.about-mission-orange .about-large-icon { color: var(--about-orange); }

.about-info-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 20px; }
.about-info { display: flex; align-items: flex-start; gap: 10px; }
.about-info > span { color: var(--about-blue); flex: 0 0 auto; }
.about-info small, .about-info strong, .about-info em { display: block; }
.about-info small { font-size: 11px; font-weight: 700; }
.about-info strong { font-size: 15px; line-height: 1.25; }
.about-info em { margin-top: 3px; color: #51617d; font-size: 11px; font-style: normal; line-height: 1.35; }

.about-cta-group { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 24px; }
.about-cta-group .btn { min-height: 52px; }
.about-visual { position: relative; min-height: 820px; overflow: hidden; }
.about-visual::before { content: ""; position: absolute; inset: 0 auto 0 -20%; width: 42%; z-index: 1; background: linear-gradient(90deg, #f9fbff, rgba(249,251,255,0)); }
.about-visual img { width: 100%; height: 100%; object-fit: cover; object-position: center; }

.about-dialog { width: min(680px, calc(100% - 32px)); padding: 0; border: 0; border-radius: 20px; color: var(--about-navy); box-shadow: 0 30px 100px rgba(0,0,0,.28); }
.about-dialog::backdrop { background: rgba(4, 10, 28, .58); backdrop-filter: blur(4px); }
.about-dialog-inner { position: relative; padding: 42px; background: #fff; }
.about-dialog-inner h2 { margin: 0 0 16px; font-size: clamp(2rem, 5vw, 3rem); line-height: 1; }
.about-dialog-inner h3 { margin: 28px 0 8px; }
.about-dialog-inner p:not(.about-eyebrow) { color: #344464; line-height: 1.65; }
.about-dialog-close { position: absolute; top: 14px; right: 16px; width: 40px; height: 40px; border: 0; border-radius: 50%; background: #f1f5fb; color: var(--about-navy); font-size: 27px; line-height: 1; }

@media (max-width: 1179px) and (min-width: 1024px) {
  .about-inner { grid-template-columns: minmax(430px, 48%) 1fr; }
  .about-copy { padding-left: 40px; padding-right: 32px; }
  .about-copy h2 { font-size: clamp(3rem, 4vw, 4rem); }
}

@media (max-width: 1023px) {
  .about-inner { display: flex; flex-direction: column; min-height: 0; }
  .about-copy { padding: 72px 40px 48px; }
  .about-visual { min-height: 520px; }
  .about-visual::before { display: none; }
}

@media (max-width: 767px) {
  .about-copy { padding: 58px 20px 42px; }
  .about-copy h2 { font-size: clamp(2.35rem, 11vw, 3.25rem); letter-spacing: -.04em; }
  .about-description { font-size: 16px; }
  .about-values, .about-mission-grid, .about-info-row { grid-template-columns: 1fr; }
  .about-value-card { padding: 18px; }
  .about-mission { padding: 18px; }
  .about-info-row { gap: 16px; }
  .about-cta-group { flex-direction: column; }
  .about-cta-group .btn { width: 100%; }
  .about-visual { min-height: 410px; }
  .about-dialog-inner { padding: 34px 24px 28px; }
}

@media (prefers-reduced-motion: reduce) {
  .about-dialog, .about-visual img { transition: none; }
}

/* Why NextGen: a light, editorial follow-on to About with one shared
   responsive composition and a clipped Tanzania visual on the right. */
.why-nextgen-section {
  position: relative;
  overflow: hidden;
  background: #fff;
  color: #101a4a;
  scroll-margin-top: var(--header-height);
}
.why-nextgen-container { max-width: 1920px; min-height: 820px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, 70%) minmax(360px, 30%); }
.why-nextgen-content { position: relative; z-index: 2; padding: clamp(64px, 6vw, 96px) clamp(32px, 4vw, 72px) 66px; background: linear-gradient(135deg, #fff 0%, #f6faff 72%, rgba(243, 249, 255, .78) 100%); }
.why-nextgen-eyebrow { display: flex; align-items: center; gap: 12px; margin: 0 0 28px; color: #101a4a; font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.why-nextgen-eyebrow span { width: 36px; height: 3px; background: #1677ff; flex: 0 0 auto; }
.why-nextgen-title, .why-nextgen-header h2 { margin: 0 0 22px; max-width: 980px; font-size: clamp(3.25rem, 4.3vw, 4.75rem); line-height: 1; letter-spacing: -.045em; }
.why-nextgen-header h2 span { color: #1677ff; }
.why-nextgen-header h2 b { color: #f5821f; font-weight: inherit; }
.why-nextgen-intro { max-width: 900px; margin: 0 0 30px; color: #29395c; font-size: 18px; line-height: 1.6; }
.why-nextgen-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; max-width: 1130px; margin: 0; padding: 0; list-style: none; }
.why-nextgen-card { position: relative; min-height: 198px; overflow: hidden; padding: 20px 20px 18px; border: 1px solid rgba(20, 80, 160, .1); border-radius: 17px; background: rgba(255,255,255,.78); box-shadow: 0 12px 30px -24px rgba(16, 26, 74, .55); transition: transform 240ms ease, border-color 240ms ease, box-shadow 240ms ease; }
.why-nextgen-card:hover { transform: translateY(-4px); border-color: rgba(22, 119, 255, .28); box-shadow: 0 18px 35px -24px rgba(16, 26, 74, .42); }
.why-nextgen-card__icon { display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; margin-bottom: 13px; border-radius: 50%; color: #fff; }
.why-icon-blue { background: #1677ff; }.why-icon-orange { background: #f5821f; }.why-icon-green { background: #10b981; }.why-icon-purple { background: #7c3aed; }.why-icon-cyan { background: #2583ff; }.why-icon-red { background: #f43f5e; }
.why-nextgen-card__number { position: absolute; top: 15px; right: 17px; color: rgba(22, 119, 255, .16); font-size: 38px; font-weight: 800; line-height: 1; }
.why-nextgen-card h3 { margin: 0 0 8px; color: #101a4a; font-size: 17px; line-height: 1.08; }
.why-nextgen-card p { max-width: 280px; margin: 0; color: #425171; font-size: 13px; line-height: 1.45; }
.why-nextgen-actions { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 24px; }.why-nextgen-actions .btn { min-height: 52px; }
.why-nextgen-actions .btn-secondary { color: #101a4a; border-color: #101a4a; background: #fff; }
.why-nextgen-visual { position: relative; min-height: 820px; overflow: hidden; isolation: isolate; background: #1471b7 url("ChatGPT Image Sep 18, 2026, 12_20_32 PM.png") center right / cover no-repeat; clip-path: polygon(18% 0, 100% 0, 100% 100%, 0 100%); }
.why-nextgen-visual::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(9, 87, 152, .1), rgba(3, 20, 47, .42)); }
.why-nextgen-map { position: absolute; top: 18px; left: 15%; color: rgba(224, 241, 255, .2); font-size: 48px; font-weight: 800; transform: rotate(-12deg); }
.why-nextgen-script { position: absolute; top: 46px; left: 26%; color: #101a4a; font-family: "Segoe Print", "Bradley Hand", cursive; font-size: clamp(1.7rem, 2.4vw, 3rem); font-style: italic; font-weight: 600; line-height: .96; transform: rotate(-8deg); }.why-nextgen-script i, .why-nextgen-quote i { display: block; width: 112px; height: 4px; margin: 12px auto 0; background: #f5821f; border-radius: 4px; transform: rotate(-5deg); }
.why-nextgen-top-copy { position: absolute; top: 48px; right: 20px; padding-left: 28px; border-left: 2px solid rgba(16, 26, 74, .7); color: #101a4a; font-size: clamp(1.15rem, 1.8vw, 2rem); line-height: 1.3; }.why-nextgen-top-copy span { color: #f5821f; }
.why-nextgen-quote { position: absolute; top: 30%; right: 16%; color: #fff; font-size: clamp(1rem, 1.45vw, 1.5rem); font-style: italic; font-weight: 600; line-height: 1.35; }.why-nextgen-quote i { margin-left: 42px; }
.why-nextgen-values { position: absolute; right: 0; bottom: 0; left: 0; display: grid; grid-template-columns: repeat(3, 1fr); padding: 20px 12px; color: #fff; background: rgba(4, 21, 48, .88); backdrop-filter: blur(5px); }.why-nextgen-values > div { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 0 12px; text-align: center; }.why-nextgen-values > div + div { border-left: 1px solid rgba(255,255,255,.3); }.why-nextgen-values span { height: 27px; }.why-nextgen-values strong { font-size: 14px; }.why-nextgen-values small { font-size: 12px; }

@media (max-width: 1179px) and (min-width: 1024px) { .why-nextgen-container { grid-template-columns: minmax(0, 68%) minmax(330px, 32%); }.why-nextgen-content { padding-left: 40px; padding-right: 32px; }.why-nextgen-header h2 { font-size: clamp(3rem, 4vw, 4rem); }.why-nextgen-card { padding-left: 15px; padding-right: 15px; }.why-nextgen-card p { font-size: 12px; } }
@media (max-width: 1023px) { .why-nextgen-container { display: flex; flex-direction: column; }.why-nextgen-content { padding: 72px 40px 56px; }.why-nextgen-visual { min-height: 560px; clip-path: polygon(8% 0, 100% 0, 100% 100%, 0 100%); } }
@media (max-width: 767px) { .why-nextgen-content { padding: 58px 20px 44px; }.why-nextgen-header h2 { font-size: clamp(2.35rem, 11vw, 3.25rem); }.why-nextgen-intro { font-size: 16px; }.why-nextgen-grid { grid-template-columns: 1fr; gap: 12px; }.why-nextgen-card { min-height: 0; padding: 18px; }.why-nextgen-actions { flex-direction: column; }.why-nextgen-actions .btn { width: 100%; }.why-nextgen-visual { min-height: 500px; clip-path: none; border-radius: 0; }.why-nextgen-script { top: 38px; left: 18%; }.why-nextgen-top-copy { top: 34px; right: 16px; }.why-nextgen-quote { top: 37%; right: 12%; }.why-nextgen-values { padding: 16px 4px; }.why-nextgen-values > div { padding: 0 4px; }.why-nextgen-values strong { font-size: 12px; }.why-nextgen-values small { font-size: 10px; } }
@media (prefers-reduced-motion: reduce) { .why-nextgen-card { transition: none; } }

/* Industries We Serve */
.industries-section { position: relative; overflow: hidden; background: linear-gradient(145deg, #fff 0%, #f7faff 68%, #eef7ff 100%); color: var(--ng-navy); scroll-margin-top: var(--header-height); }
.industries-atmosphere { position: absolute; top: 8px; left: 42%; width: 300px; height: 360px; color: #80c7ee; opacity: .065; pointer-events: none; transform: rotate(7deg); }.industries-atmosphere svg { width: 100%; height: 100%; }
.industries-container { position: relative; z-index: 1; max-width: 1760px; margin: 0 auto; padding: clamp(70px, 6vw, 105px) clamp(24px, 4vw, 64px) 0; }
.industries-header { display: flex; justify-content: space-between; gap: 48px; align-items: flex-start; margin-bottom: 30px; }.industries-heading-copy { min-width: 0; }.industries-eyebrow { display: flex; align-items: center; gap: 12px; margin: 0 0 25px; color: var(--ng-navy); font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }.industries-eyebrow span { width: 36px; height: 3px; background: var(--ng-blue); }.industries-title { max-width: 980px; margin: 0 0 21px; font-size: clamp(3.1rem, 4.3vw, 4.75rem); line-height: 1.02; letter-spacing: -.045em; }.industries-title span { color: var(--ng-blue); }.industries-title b { color: var(--ng-orange); font-weight: inherit; }.industries-intro { max-width: 860px; margin: 0; color: #273758; font-size: 18px; line-height: 1.58; }.industries-header-notes { display: flex; flex: 0 0 350px; justify-content: space-between; align-items: flex-start; gap: 24px; padding-top: 5px; }.industries-script { margin: 0; color: #101a4a; font-family: "Segoe Print", "Bradley Hand", cursive; font-size: 24px; font-style: italic; font-weight: 600; line-height: .96; transform: rotate(-8deg); }.industries-script i { display: block; width: 102px; height: 4px; margin: 14px 0 0 38px; border-radius: 4px; background: var(--ng-orange); transform: rotate(-5deg); }.industries-global-note { display: flex; gap: 18px; margin: 4px 0 0; padding-left: 18px; border-left: 1.5px solid var(--ng-navy); color: var(--ng-navy); font-size: 18px; line-height: 1.35; }.industries-global-note span { display: none; }.industries-global-note strong { font-weight: 800; white-space: nowrap; }.industries-global-note strong span { display: inline; color: var(--ng-orange); }
.industries-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(335px, 30%); gap: 18px; align-items: stretch; }.industries-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }.industry-card { min-width: 0; overflow: hidden; border: 1px solid rgba(22, 95, 180, .12); border-radius: 15px; background: #fff; box-shadow: 0 15px 30px -25px rgba(16, 26, 74, .5); transition: transform var(--transition-med), box-shadow var(--transition-med); }.industry-card:hover { transform: translateY(-4px); box-shadow: 0 22px 35px -23px rgba(16, 26, 74, .48); }.industry-card__media { position: relative; aspect-ratio: 2 / 1; overflow: hidden; background: #dbeafe; }.industry-card__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(5, 25, 62, .12)); pointer-events: none; }.industry-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 300ms ease; }.industry-card:hover .industry-card__media img { transform: scale(1.025); }.industry-card__content { position: relative; min-height: 143px; padding: 28px 18px 17px; background: linear-gradient(180deg, #f5faff, #eaf4ff); }.industry-card__icon { position: absolute; top: -23px; left: 17px; display: grid; place-items: center; width: 47px; height: 47px; border: 4px solid #fff; border-radius: 50%; color: #fff; background: var(--industry-accent); box-shadow: 0 7px 15px -8px rgba(0,0,0,.5); }.industry-card__icon svg { width: 24px; height: 24px; }.industry-card__number { position: absolute; top: 12px; right: 15px; color: rgba(16, 26, 74, .16); font-size: 27px; font-weight: 800; }.industry-card__title-row { display: flex; align-items: center; justify-content: space-between; gap: 5px; }.industry-card h3 { min-width: 0; margin: 0; color: var(--ng-navy); font-size: clamp(12px, 1vw, 15px); line-height: 1.12; }.industry-card p { margin: 10px 0 0; color: #354463; font-size: 11.5px; line-height: 1.35; }.industry-card__action { display: grid; flex: 0 0 auto; place-items: center; width: 25px; height: 25px; border: 1px solid #91a8cc; border-radius: 50%; color: #315898; background: rgba(255,255,255,.7); transition: color var(--transition-fast), background var(--transition-fast), border-color var(--transition-fast); }.industry-card__action svg { width: 17px; height: 17px; }.industry-card__action:hover, .industry-card__action:focus-visible { border-color: var(--ng-blue); color: #fff; background: var(--ng-blue); }.industry-card--blue { --industry-accent: var(--ng-blue); }.industry-card--orange { --industry-accent: var(--ng-orange); }.industry-card--green { --industry-accent: #10b981; }.industry-card--coral { --industry-accent: #f43f5e; }.industry-card--purple { --industry-accent: #7c3aed; }.industry-card--pink { --industry-accent: #ec4899; }.industry-card--teal { --industry-accent: #14b8a6; }
.industries-feature { position: relative; min-height: 100%; overflow: hidden; border-radius: 23px 23px 0 0; isolation: isolate; background: #092c62; }.industries-feature__image, .industries-feature__overlay { position: absolute; inset: 0; }.industries-feature__image { z-index: -2; background: url("ChatGPT Image Sep 18, 2026, 12_20_32 PM.png") center / cover no-repeat; }.industries-feature__overlay { z-index: -1; background: linear-gradient(110deg, rgba(5, 31, 77, .98) 0%, rgba(5, 39, 91, .82) 43%, rgba(4, 23, 57, .42) 100%); }.industries-feature::after { content: "TANZANIA"; position: absolute; top: 55px; right: -20px; z-index: -1; color: rgba(174, 225, 255, .16); font-size: 42px; font-weight: 800; letter-spacing: .08em; transform: rotate(-8deg); }.industries-feature__content { display: flex; height: 100%; min-height: 490px; flex-direction: column; padding: 50px 30px 28px; color: #fff; }.industries-feature__rule { width: 52px; height: 3px; margin-bottom: 20px; background: var(--ng-orange); }.industries-feature h3 { margin: 0 0 19px; color: #fff; font-size: clamp(2rem, 2.7vw, 3rem); line-height: 1.03; letter-spacing: -.04em; }.industries-feature h3 span { color: var(--ng-orange); }.industries-feature__content > p { max-width: 340px; margin: 0 0 24px; color: rgba(255,255,255,.88); font-size: 13px; line-height: 1.48; }.industries-feature__benefits { display: grid; gap: 13px; margin: 0 0 25px; padding: 0; list-style: none; color: #fff; font-size: 13px; }.industries-feature__benefits li { display: flex; align-items: center; gap: 10px; }.industries-feature__benefits span { display: grid; flex: 0 0 auto; place-items: center; width: 23px; height: 23px; color: var(--ng-orange); }.industries-feature__benefits svg { width: 23px; height: 23px; }.industries-feature__cta { display: inline-flex; align-items: center; justify-content: space-between; gap: 20px; width: fit-content; min-height: 47px; margin-top: auto; padding: 0 20px; border-radius: 10px; color: var(--ng-navy); background: #fff; font-size: 13px; font-weight: 800; transition: transform var(--transition-fast), background var(--transition-fast); }.industries-feature__cta:hover, .industries-feature__cta:focus-visible { background: #f4f8ff; transform: translateY(-2px); }.industries-feature__cta span { color: var(--ng-blue); font-size: 22px; line-height: 1; }.industries-feature__script { align-self: flex-end; margin: 19px 0 0; color: #fff; font-family: "Segoe Print", "Bradley Hand", cursive; font-size: 21px !important; font-style: italic; line-height: .95 !important; text-align: right; transform: rotate(-8deg); }.industries-feature__script i { display: block; width: 84px; height: 4px; margin: 10px 0 0 auto; border-radius: 5px; background: var(--ng-orange); transform: rotate(-4deg); }
.industries-impact { position: relative; color: #fff; background: linear-gradient(90deg, #062d65, #0b4e95 55%, #092f6c); }.industries-impact::before { content: ""; position: absolute; inset: 0; opacity: .14; background: url("ChatGPT Image Sep 18, 2026, 12_20_32 PM.png") center 46% / cover no-repeat; mix-blend-mode: screen; }.industries-impact__inner { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(4, minmax(100px, 1fr)) minmax(240px, 1.8fr); max-width: 1760px; margin: 0 auto; padding: 25px clamp(24px, 4vw, 64px); }.industries-impact__item { display: grid; grid-template-columns: 35px 1fr; grid-template-rows: auto auto; column-gap: 10px; align-items: center; padding: 0 18px; }.industries-impact__item + .industries-impact__item { border-left: 1px solid rgba(255,255,255,.23); }.industries-impact__icon { grid-row: 1 / span 2; color: #fff; }.industries-impact__icon svg { width: 29px; height: 29px; }.industries-impact__item strong { color: #fff; font-size: 21px; line-height: 1; }.industries-impact__item small { color: rgba(255,255,255,.78); font-size: 11px; }.industries-impact__quote { display: grid; grid-template-columns: 30px 1fr; grid-template-rows: auto auto; column-gap: 8px; align-items: center; margin: 0; padding-left: 22px; border-left: 1px solid rgba(255,255,255,.3); }.industries-impact__quote > span { grid-row: 1 / span 2; color: var(--ng-orange); font-size: 52px; font-weight: 800; line-height: .75; }.industries-impact__quote p { max-width: 330px; margin: 0; color: #fff; font-size: 12px; line-height: 1.42; }.industries-impact__quote i { display: block; width: 50px; height: 3px; margin-top: 7px; background: var(--ng-orange); }
.industries-section .industries-eyebrow, .industries-section .industries-title, .industries-section .industries-intro, .industries-section .industry-card, .industries-section .industries-feature, .industries-section .industries-impact { opacity: 1; transform: none; }.js .industries-section .industries-eyebrow, .js .industries-section .industries-title, .js .industries-section .industries-intro, .js .industries-section .industry-card, .js .industries-section .industries-feature, .js .industries-section .industries-impact { opacity: 0; transform: translateY(18px); transition: opacity 650ms ease var(--industry-reveal-delay, 0ms), transform 650ms cubic-bezier(.22,1,.36,1) var(--industry-reveal-delay, 0ms); }.js .industries-section .is-visible { opacity: 1; transform: none; }
@media (max-width: 1279px) { .industries-header-notes { flex-basis: 310px; }.industries-layout { grid-template-columns: minmax(0, 1fr) minmax(300px, 30%); }.industries-grid { gap: 10px; }.industry-card__content { padding-left: 14px; padding-right: 14px; }.industry-card p { font-size: 10.5px; }.industries-feature__content { padding-left: 23px; padding-right: 23px; }.industries-impact__item { padding: 0 10px; } }
@media (max-width: 1023px) { .industries-header { flex-direction: column; gap: 28px; }.industries-header-notes { width: 100%; max-width: 610px; flex-basis: auto; }.industries-layout { display: flex; flex-direction: column; }.industries-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }.industry-card__content { min-height: 148px; padding: 29px 18px 18px; }.industry-card h3 { font-size: 15px; }.industry-card p { font-size: 12px; }.industries-feature { min-height: 550px; border-radius: 23px; }.industries-feature__content { min-height: 550px; max-width: 530px; padding: 55px 40px 32px; }.industries-impact__inner { grid-template-columns: repeat(4, 1fr); gap: 20px 0; }.industries-impact__quote { grid-column: 1 / -1; margin-top: 5px; padding: 18px 0 0; border-top: 1px solid rgba(255,255,255,.3); border-left: 0; justify-content: center; } }
@media (max-width: 767px) { .industries-container { padding: 57px 20px 0; }.industries-header { margin-bottom: 28px; }.industries-title { font-size: clamp(2.4rem, 10.5vw, 3.4rem); }.industries-intro { font-size: 16px; }.industries-header-notes { gap: 18px; }.industries-script { font-size: 20px; }.industries-global-note { font-size: 14px; }.industries-grid { grid-template-columns: 1fr; gap: 12px; }.industry-card { display: grid; grid-template-columns: 38% 62%; min-height: 157px; }.industry-card__media { aspect-ratio: auto; min-height: 157px; }.industry-card__content { min-height: 157px; padding: 30px 13px 12px 16px; }.industry-card__icon { left: -22px; top: 15px; width: 43px; height: 43px; border-width: 3px; }.industry-card__number { top: 10px; right: 10px; font-size: 22px; }.industry-card h3 { padding-right: 20px; font-size: 14px; }.industry-card p { margin-top: 8px; font-size: 11px; }.industry-card__action { width: 23px; height: 23px; }.industries-feature { min-height: 590px; }.industries-feature__content { min-height: 590px; padding: 40px 24px 26px; }.industries-feature h3 { font-size: 2.2rem; }.industries-feature__cta { width: 100%; }.industries-feature__script { margin-top: 18px; }.industries-impact__inner { grid-template-columns: repeat(2, 1fr); padding: 20px; gap: 16px 0; }.industries-impact__item { padding: 0 8px; }.industries-impact__item:nth-child(odd) { border-left: 0; }.industries-impact__item:nth-child(even) { border-left: 1px solid rgba(255,255,255,.23); }.industries-impact__item strong { font-size: 17px; }.industries-impact__item small { font-size: 10px; }.industries-impact__quote { grid-column: 1 / -1; display: block; padding: 17px 0 0; }.industries-impact__quote > span { display: inline; margin-right: 6px; font-size: 40px; }.industries-impact__quote p { display: inline; font-size: 12px; } }
@media (max-width: 359px) { .industry-card { display: block; }.industry-card__media { min-height: 145px; aspect-ratio: 2 / 1; }.industry-card__content { min-height: 145px; }.industry-card__icon { top: -22px; left: 14px; } }
@media (prefers-reduced-motion: reduce) { .industry-card, .industry-card__media img, .industry-card__action, .industries-feature__cta, .industries-section .industries-eyebrow, .industries-section .industries-title, .industries-section .industries-intro, .industries-section .industry-card, .industries-section .industries-feature, .industries-section .industries-impact { transition: none; transform: none; opacity: 1; } }

/* Insights knowledge hub */
.insights-section { position: relative; overflow: hidden; color: var(--ng-navy); background: linear-gradient(145deg, #fff 0%, #f7faff 68%, #eef7ff 100%); scroll-margin-top: var(--header-height); }.insights-container { position: relative; z-index: 1; max-width: 1760px; margin: 0 auto; padding: clamp(70px, 6vw, 105px) clamp(24px, 4vw, 64px) 32px; }.insights-map { position: absolute; top: 4px; left: 43%; width: 280px; height: 350px; color: #80c7ee; opacity: .06; pointer-events: none; transform: rotate(7deg); }.insights-map svg { width: 100%; height: 100%; }.insights-header { display: flex; justify-content: space-between; gap: 48px; align-items: flex-start; margin-bottom: 30px; }.insights-eyebrow { display: flex; align-items: center; gap: 12px; margin: 0 0 25px; color: var(--ng-navy); font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }.insights-eyebrow span { width: 36px; height: 3px; background: var(--ng-blue); }.insights-title { max-width: 940px; margin: 0 0 21px; font-size: clamp(3.1rem, 4.4vw, 4.85rem); line-height: 1; letter-spacing: -.05em; }.insights-title span { color: var(--ng-blue); }.insights-title b { color: var(--ng-orange); font-weight: inherit; }.insights-intro { max-width: 850px; margin: 0; color: #273758; font-size: 18px; line-height: 1.58; }.insights-header-notes { display: flex; flex: 0 0 390px; justify-content: space-between; gap: 28px; padding-top: 9px; }.insights-script { margin: 0; color: #101a4a; font-family: "Segoe Print", "Bradley Hand", cursive; font-size: 22px; font-style: italic; font-weight: 600; line-height: .95; transform: rotate(-8deg); }.insights-script i { display: block; width: 130px; height: 4px; margin: 13px 0 0 25px; border-radius: 4px; background: var(--ng-orange); transform: rotate(-5deg); }.insights-global-note { margin: 4px 0 0; padding-left: 20px; border-left: 1.5px solid var(--ng-navy); color: var(--ng-navy); font-size: 23px; line-height: 1.42; }.insights-global-note strong { font-weight: 800; white-space: nowrap; }.insights-global-note span { color: var(--ng-orange); }
.insights-layout { display: grid; grid-template-columns: minmax(270px, 30%) minmax(440px, 42%) minmax(315px, 28%); gap: 16px; align-items: stretch; }.insight-featured, .insight-card { overflow: hidden; border: 1px solid rgba(22,95,180,.12); border-radius: 15px; background: #fff; box-shadow: 0 16px 35px -27px rgba(16,26,74,.55); }.insight-featured { display: flex; flex-direction: column; transition: transform var(--transition-med), box-shadow var(--transition-med); }.insight-featured__media { position: relative; aspect-ratio: 1.72 / 1; overflow: hidden; }.insight-featured__media img, .insight-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 300ms ease; }.insight-featured:hover, .insight-card:hover { transform: translateY(-3px); box-shadow: 0 23px 38px -25px rgba(16,26,74,.48); }.insight-featured:hover img, .insight-card:hover img { transform: scale(1.025); }.insight-featured__badge, .insight-card__category { position: absolute; top: 11px; left: 12px; display: inline-flex; align-items: center; gap: 5px; padding: 6px 9px; border-radius: 5px; color: #fff; background: var(--ng-blue); font-size: 10px; font-weight: 800; letter-spacing: .02em; text-transform: uppercase; }.insight-featured__badge svg { width: 14px; height: 14px; }.insight-featured__content { display: flex; flex: 1; flex-direction: column; padding: 15px 19px 17px; }.insight-featured__content h3 { margin: 11px 0 10px; color: var(--ng-navy); font-size: clamp(1.25rem, 1.55vw, 1.72rem); line-height: 1.1; letter-spacing: -.035em; }.insight-featured__content p { margin: 0 0 15px; color: #394967; font-size: 12px; line-height: 1.48; }.insight-card__meta { display: flex; flex-wrap: wrap; gap: 12px; color: #63708b; font-size: 10px; }.insight-card__meta span + span::before { content: "•"; margin-right: 12px; color: #a1aec5; }.insight-action { display: inline-flex; align-items: center; gap: 8px; width: fit-content; margin-top: auto; padding: 0; border: 0; color: var(--ng-blue); background: transparent; font-size: 12px; font-weight: 800; }.insight-action span { font-size: 20px; line-height: .7; transition: transform var(--transition-fast); }.insight-action:hover span, .insight-action:focus-visible span { transform: translateX(4px); }.insights-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }.insight-card { display: flex; min-width: 0; flex-direction: column; transition: transform var(--transition-med), box-shadow var(--transition-med); }.insight-card__media { position: relative; aspect-ratio: 1.85 / 1; overflow: hidden; background: #dbeafe; }.insight-card__category { padding: 5px 8px; color: #fff; background: rgba(5,24,55,.9); font-size: 9px; text-transform: none; }.insight-card__content { display: flex; flex: 1; flex-direction: column; padding: 10px 12px 12px; background: linear-gradient(180deg, #fff, #f4f9ff); }.insight-card__content h3 { margin: 9px 0 11px; color: var(--ng-navy); font-size: clamp(12px, 1vw, 14px); line-height: 1.18; letter-spacing: -.02em; }.insights-hub { position: relative; min-height: 100%; overflow: hidden; border-radius: 24px 24px 0 0; isolation: isolate; background: #082c61; }.insights-hub__image, .insights-hub__overlay { position: absolute; inset: 0; }.insights-hub__image { z-index: -2; background: url("ChatGPT Image Sep 18, 2026, 12_20_32 PM.png") center / cover no-repeat; }.insights-hub__overlay { z-index: -1; background: linear-gradient(110deg, rgba(4,31,76,.98), rgba(4,39,90,.82) 48%, rgba(4,23,57,.35)); }.insights-hub::after { content: "TANZANIA"; position: absolute; top: 55px; right: -27px; z-index: -1; color: rgba(179,228,255,.14); font-size: 39px; font-weight: 800; letter-spacing: .07em; transform: rotate(-8deg); }.insights-hub__content { display: flex; min-height: 500px; flex-direction: column; padding: 49px 29px 27px; color: #fff; }.insights-hub__rule { width: 52px; height: 3px; margin-bottom: 20px; background: var(--ng-orange); }.insights-hub h3 { margin: 0 0 18px; color: #fff; font-size: clamp(2rem, 2.7vw, 3rem); line-height: 1.04; letter-spacing: -.045em; }.insights-hub h3 span { color: var(--ng-orange); }.insights-hub__content > p:not(.insights-hub__script) { max-width: 330px; margin: 0 0 22px; color: rgba(255,255,255,.88); font-size: 13px; line-height: 1.47; }.insights-hub__cta { display: inline-flex; align-items: center; justify-content: space-between; gap: 18px; width: fit-content; min-height: 48px; margin-bottom: 25px; padding: 0 20px; border: 0; border-radius: 10px; color: var(--ng-navy); background: #fff; font: inherit; font-size: 13px; font-weight: 800; }.insights-hub__cta:hover, .insights-hub__cta:focus-visible { background: #f5f8ff; }.insights-hub__cta span { color: var(--ng-blue); font-size: 21px; }.insights-hub__benefits { display: grid; gap: 13px; margin: 0; padding: 0; list-style: none; }.insights-hub__benefits li { display: flex; align-items: center; gap: 10px; }.insights-hub__benefits li > span:last-child { display: flex; flex-direction: column; gap: 2px; }.insights-hub__benefits strong { font-size: 13px; }.insights-hub__benefits small { color: rgba(255,255,255,.76); font-size: 11px; }.hub-icon { display: grid; flex: 0 0 auto; place-items: center; width: 38px; height: 38px; border-radius: 50%; color: #fff; }.hub-icon svg { width: 23px; height: 23px; }.hub-icon-orange { background: var(--ng-orange); }.hub-icon-blue { background: var(--ng-blue); }.hub-icon-teal { background: #12bfa4; }.insights-hub__script { align-self: flex-end; margin: auto 0 0; color: #fff; font-family: "Segoe Print", "Bradley Hand", cursive; font-size: 21px !important; font-style: italic; line-height: .95 !important; text-align: right; transform: rotate(-8deg); }.insights-hub__script i { display: block; width: 83px; height: 4px; margin: 9px 0 0 auto; border-radius: 4px; background: var(--ng-orange); }
.insights-newsletter { position: relative; color: #fff; background: linear-gradient(90deg, #062c63, #0a4d91 55%, #092d68); }.insights-newsletter::before { content: ""; position: absolute; inset: 0; opacity: .13; background: url("ChatGPT Image Sep 18, 2026, 12_20_32 PM.png") center 47% / cover no-repeat; mix-blend-mode: screen; }.insights-newsletter__inner { position: relative; z-index: 1; display: grid; grid-template-columns: 1.2fr 1fr 1.65fr; align-items: center; gap: 28px; max-width: 1760px; margin: 0 auto; padding: 23px clamp(24px, 4vw, 64px); }.insights-newsletter__intro { display: flex; align-items: center; gap: 13px; }.newsletter-mail { display: grid; flex: 0 0 auto; place-items: center; width: 47px; height: 47px; border-radius: 50%; color: #fff; background: var(--ng-blue); }.newsletter-mail svg { width: 25px; height: 25px; }.insights-newsletter__intro h3 { margin: 0 0 4px; color: #fff; font-size: 17px; }.insights-newsletter__intro p { margin: 0; color: rgba(255,255,255,.8); font-size: 11px; }.insights-newsletter__form { position: relative; display: flex; min-width: 0; }.insights-newsletter__form input { width: 100%; min-width: 0; height: 44px; padding: 0 116px 0 17px; border: 0; border-radius: 8px; color: var(--ng-navy); background: #fff; font: inherit; font-size: 12px; }.insights-newsletter__form button { position: absolute; top: 0; right: 0; height: 44px; padding: 0 18px; border: 0; border-radius: 0 8px 8px 0; color: #fff; background: var(--ng-blue); font: inherit; font-size: 12px; font-weight: 800; }.insights-newsletter__form button span { margin-left: 5px; font-size: 17px; }.insights-newsletter__feedback { position: absolute; top: calc(100% + 5px); left: 0; margin: 0; color: #fff; font-size: 11px; }.insights-values { display: grid; grid-template-columns: repeat(4, 1fr); }.insights-values > div { display: grid; grid-template-columns: 32px 1fr; grid-template-rows: auto auto; column-gap: 8px; align-items: center; padding: 0 13px; }.insights-values > div + div { border-left: 1px solid rgba(255,255,255,.25); }.insights-values svg { width: 28px; height: 28px; }.insights-values span { grid-row: 1 / span 2; }.insights-values strong { font-size: 12px; line-height: 1.05; }.insights-values small { color: rgba(255,255,255,.78); font-size: 10px; }
.article-reader, .all-insights-dialog { width: min(900px, calc(100% - 32px)); max-height: min(900px, calc(100vh - 32px)); padding: 0; border: 0; border-radius: 18px; color: var(--ng-navy); background: #fff; box-shadow: 0 30px 100px rgba(3,18,51,.35); }.article-reader::backdrop, .all-insights-dialog::backdrop { background: rgba(3,17,44,.68); backdrop-filter: blur(5px); }.article-reader__shell, .all-insights-dialog__shell { position: relative; max-height: inherit; overflow: auto; }.article-reader__close { position: sticky; top: 17px; z-index: 2; float: right; width: 38px; height: 38px; margin: 17px 17px -55px 0; border: 1px solid #d7e1ef; border-radius: 50%; color: var(--ng-navy); background: #fff; font-size: 25px; line-height: 1; }.article-reader__body { padding: 48px clamp(22px, 6vw, 72px) 60px; }.article-reader__category { margin: 0 0 10px; color: var(--ng-blue); font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }.article-reader h2 { max-width: 730px; margin: 0 0 13px; font-size: clamp(2rem, 4vw, 3.6rem); line-height: 1.03; letter-spacing: -.045em; }.article-reader__meta { display: flex; gap: 15px; margin-bottom: 25px; color: #64728c; font-size: 12px; }.article-reader__body > img { width: 100%; max-height: 390px; margin-bottom: 28px; border-radius: 13px; object-fit: cover; }.article-reader__content { color: #344563; font-size: 16px; line-height: 1.75; }.article-reader__content h3 { color: var(--ng-navy); font-size: 23px; line-height: 1.2; }.article-reader__related { margin-top: 28px; padding: 13px 18px; border: 0; border-radius: 8px; color: #fff; background: var(--ng-blue); font: inherit; font-weight: 700; }.all-insights-dialog { width: min(1080px, calc(100% - 32px)); }.all-insights-dialog__body { padding: 48px clamp(20px, 5vw, 60px) 58px; }.all-insights-dialog h2 { margin: 0 0 10px; font-size: clamp(2rem, 4vw, 3.6rem); }.all-insights-dialog__intro { margin: 0 0 24px; color: #50617d; }.all-insights-dialog__tools { display: grid; gap: 14px; margin-bottom: 24px; }.all-insights-dialog__tools > input { width: 100%; height: 46px; padding: 0 15px; border: 1px solid #d7e1ef; border-radius: 8px; font: inherit; }.insights-filter { display: flex; flex-wrap: wrap; gap: 8px; }.insights-filter button { padding: 8px 11px; border: 1px solid #d2deee; border-radius: 99px; color: var(--ng-navy); background: #fff; font: inherit; font-size: 11px; }.insights-filter button.is-active, .insights-filter button:hover { color: #fff; border-color: var(--ng-blue); background: var(--ng-blue); }.all-insights-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }.all-insights-list article { padding: 17px; border: 1px solid #e1e8f3; border-radius: 12px; background: #f7faff; }.all-insights-list h3 { margin: 7px 0 11px; color: var(--ng-navy); font-size: 16px; line-height: 1.2; }.all-insights-list p { margin: 0; color: #5a6881; font-size: 12px; line-height: 1.45; }.all-insights-list button { margin-top: 14px; padding: 0; border: 0; color: var(--ng-blue); background: transparent; font: inherit; font-size: 12px; font-weight: 800; }
@media (max-width: 1279px) { .insights-header-notes { flex-basis: 320px; }.insights-layout { grid-template-columns: minmax(250px, 29%) minmax(400px, 43%) minmax(285px, 28%); }.insight-card__content { padding-left: 10px; padding-right: 10px; }.insight-card__content h3 { font-size: 12px; }.insights-hub__content { padding-left: 22px; padding-right: 22px; }.insights-newsletter__inner { gap: 16px; }.insights-values > div { padding: 0 7px; } }
@media (max-width: 1023px) { .insights-header { flex-direction: column; }.insights-header-notes { width: 100%; max-width: 620px; flex-basis: auto; }.insights-layout { display: grid; grid-template-columns: minmax(0, 45%) minmax(0, 55%); }.insight-featured { grid-row: span 2; }.insights-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }.insights-hub { grid-column: 1 / -1; min-height: 500px; border-radius: 22px; }.insights-hub__content { min-height: 500px; max-width: 580px; padding: 48px 38px 30px; }.insights-newsletter__inner { grid-template-columns: 1fr 1fr; }.insights-values { grid-column: 1 / -1; }.insights-values > div { padding: 0 14px; } }
@media (max-width: 767px) { .insights-container { padding: 58px 20px 28px; }.insights-title { font-size: clamp(2.4rem, 10.7vw, 3.4rem); }.insights-intro { font-size: 16px; }.insights-header-notes { gap: 18px; }.insights-script { font-size: 18px; }.insights-global-note { font-size: 17px; }.insights-layout { display: flex; flex-direction: column; }.insight-featured { width: 100%; }.insight-featured__media { aspect-ratio: 1.7 / 1; }.insight-featured__content { padding: 15px 17px 18px; }.insight-featured__content h3 { font-size: 1.35rem; }.insights-grid { grid-template-columns: 1fr; gap: 12px; }.insight-card { display: grid; grid-template-columns: 38% 62%; min-height: 151px; }.insight-card__media { min-height: 151px; aspect-ratio: auto; }.insight-card__content { min-height: 151px; padding: 12px 12px 11px; }.insight-card__content h3 { margin: 7px 0 9px; font-size: 13px; }.insight-card__meta { gap: 6px; font-size: 9px; }.insight-card__meta span + span::before { margin-right: 6px; }.insight-card__category { top: 8px; left: 8px; font-size: 8px; }.insights-hub { min-height: 555px; border-radius: 20px; }.insights-hub__content { min-height: 555px; padding: 39px 24px 25px; }.insights-hub h3 { font-size: 2.2rem; }.insights-hub__cta { width: 100%; }.insights-newsletter__inner { grid-template-columns: 1fr; gap: 22px; padding: 24px 20px; }.insights-newsletter__form input, .insights-newsletter__form button { height: 48px; }.insights-newsletter__form button { height: 48px; }.insights-values { grid-template-columns: repeat(2, 1fr); gap: 17px 0; }.insights-values > div { padding: 0 8px; }.insights-values > div:nth-child(odd) { border-left: 0; }.insights-values > div:nth-child(even) { border-left: 1px solid rgba(255,255,255,.25); }.article-reader, .all-insights-dialog { width: calc(100% - 16px); max-height: calc(100vh - 16px); }.article-reader__body, .all-insights-dialog__body { padding: 42px 18px 35px; }.all-insights-list { grid-template-columns: 1fr; } }
@media (max-width: 359px) { .insight-card { display: block; }.insight-card__media { min-height: 145px; aspect-ratio: 1.85 / 1; }.insight-card__content { min-height: 145px; }.insights-header-notes { flex-direction: column; } }
@media (prefers-reduced-motion: reduce) { .insight-featured, .insight-card, .insight-featured__media img, .insight-card__media img, .insight-action span { transition: none; transform: none; } }

/* Contact / Start a Project */
.anchor-target { height: 0; scroll-margin-top: var(--header-height); }.contact-project-section { position: relative; overflow: hidden; color: var(--ng-navy); background: linear-gradient(145deg, #fff 0%, #f6faff 68%, #edf6ff 100%); scroll-margin-top: var(--header-height); }.contact-project-map { position: absolute; top: -50px; left: 38%; width: 300px; height: 370px; color: #83c9ee; opacity: .06; pointer-events: none; transform: rotate(7deg); }.contact-project-map svg { width: 100%; height: 100%; }.contact-project-container { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(410px, 44%) minmax(430px, 31%) minmax(300px, 25%); gap: 18px; align-items: end; max-width: 1760px; margin: 0 auto; padding: clamp(70px, 6vw, 105px) clamp(24px, 4vw, 64px) 0; }.contact-project-intro { min-width: 0; }.contact-project-eyebrow { display: flex; align-items: center; gap: 12px; margin: 0 0 25px; color: var(--ng-navy); font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }.contact-project-eyebrow span { width: 36px; height: 3px; background: var(--ng-blue); }.contact-project-intro h2 { max-width: 700px; margin: 0 0 22px; font-size: clamp(3.3rem, 4.5vw, 5.15rem); line-height: .99; letter-spacing: -.052em; }.contact-project-intro h2 span { color: var(--ng-blue); }.contact-project-intro h2 b { color: var(--ng-orange); font-weight: inherit; }.contact-project-lead { max-width: 740px; margin: 0; color: #293959; font-size: 18px; line-height: 1.55; }.contact-project-values { display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; margin: 30px 0 25px; }.contact-project-values > div { display: grid; grid-template-columns: 54px 1fr; grid-template-rows: auto auto; column-gap: 10px; align-items: center; }.contact-value-icon { display: grid; grid-row: 1 / span 2; place-items: center; width: 54px; height: 54px; border-radius: 50%; }.contact-value-icon svg { width: 28px; height: 28px; }.contact-value-blue { color: #1677ff; background: #dcecff; }.contact-value-orange { color: #f5821f; background: #fff0e5; }.contact-value-teal { color: #10b981; background: #d9faf1; }.contact-project-values strong { color: var(--ng-navy); font-size: 14px; line-height: 1.15; }.contact-project-values small { color: #354463; font-size: 12px; }.contact-project-visual { position: relative; min-height: 390px; overflow: hidden; border-radius: 20px 20px 0 0; background: #a9d3f0; box-shadow: 0 -10px 35px -30px rgba(16,26,74,.6); }.contact-project-visual::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 50%, rgba(4,27,62,.42)); pointer-events: none; }.contact-project-visual > picture, .contact-project-visual > picture img { width: 100%; height: 100%; }.contact-project-visual > picture img { min-height: 390px; object-fit: cover; object-position: center; }.contact-laptop-label { position: absolute; z-index: 1; left: 14%; bottom: 21%; display: flex; width: 190px; min-height: 104px; flex-direction: column; align-items: center; justify-content: center; padding: 11px; border-radius: 5px 5px 10px 10px; color: #fff; background: linear-gradient(145deg, #071426, #182f53); box-shadow: 0 18px 22px -16px #06152d; transform: rotate(-3deg); }.contact-laptop-label img { width: 93px; height: auto; }.contact-laptop-label span { margin-top: 4px; color: #b8c9e8; font-size: 7px; }.contact-visual-script { position: absolute; z-index: 2; top: 20px; right: 10%; margin: 0; color: #101a4a; font-family: "Segoe Print", "Bradley Hand", cursive; font-size: 22px; font-style: italic; font-weight: 600; line-height: .95; text-align: right; transform: rotate(-7deg); }.contact-visual-script i { display: block; width: 83px; height: 4px; margin: 10px 0 0 auto; border-radius: 4px; background: var(--ng-orange); }.contact-visual-plan { position: absolute; z-index: 2; right: 9%; bottom: 16px; margin: 0; color: #fff; font-family: "Segoe Print", "Bradley Hand", cursive; font-size: 21px; font-style: italic; font-weight: 600; line-height: .95; text-align: right; transform: rotate(-6deg); }.contact-visual-plan span { color: var(--ng-orange); }
.project-enquiry { min-width: 0; padding: 28px 25px 22px; border: 1px solid rgba(22,95,180,.12); border-radius: 20px; background: rgba(255,255,255,.96); box-shadow: 0 20px 40px -28px rgba(16,26,74,.5); }.project-enquiry__header { margin-bottom: 20px; }.project-enquiry__header > span, .contact-panel__rule { display: block; width: 44px; height: 3px; margin-bottom: 12px; background: var(--ng-blue); }.project-enquiry__header h3 { margin: 0 0 7px; color: var(--ng-navy); font-size: 24px; letter-spacing: -.035em; }.project-enquiry__header p { margin: 0; color: #465675; font-size: 12px; line-height: 1.45; }.project-enquiry__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px 16px; }.project-enquiry__field { min-width: 0; }.project-enquiry__field--full { grid-column: 1 / -1; }.project-enquiry__field label { display: block; margin-bottom: 6px; color: var(--ng-navy); font-size: 11px; font-weight: 700; }.project-enquiry__field label b { color: #e24747; }.project-enquiry__field label small { color: #71809b; font-weight: 500; }.project-enquiry__field input, .project-enquiry__field select, .project-enquiry__field textarea { width: 100%; border: 1px solid #d3ddea; border-radius: 8px; color: var(--ng-navy); background: #fff; font: inherit; font-size: 12px; transition: border-color var(--transition-fast), box-shadow var(--transition-fast); }.project-enquiry__field input, .project-enquiry__field select { height: 40px; padding: 0 12px; }.project-enquiry__field textarea { min-height: 115px; resize: vertical; padding: 11px 12px; line-height: 1.45; }.project-enquiry__field input::placeholder, .project-enquiry__field textarea::placeholder { color: #9aa7ba; }.project-enquiry__field input:focus, .project-enquiry__field select:focus, .project-enquiry__field textarea:focus { border-color: var(--ng-blue); box-shadow: 0 0 0 3px rgba(30,95,217,.12); outline: 0; }.project-enquiry__field [aria-invalid="true"] { border-color: #d74747; }.project-enquiry__error { min-height: 0; margin: 4px 0 0; color: #c63b3b; font-size: 10px; }.project-enquiry__textarea-footer { display: flex; justify-content: space-between; gap: 8px; }.project-enquiry__textarea-footer > span { padding-top: 4px; color: #7f8ca2; font-size: 10px; }.project-enquiry__upload { display: flex !important; min-height: 75px; align-items: center; gap: 12px; padding: 12px; border: 1px dashed #aebed5; border-radius: 8px; color: #52637e !important; background: #f8fbff; cursor: pointer; }.project-enquiry__upload > svg { flex: 0 0 auto; width: 27px; height: 27px; color: var(--ng-navy); }.project-enquiry__upload span { display: flex; min-width: 0; flex-direction: column; gap: 3px; }.project-enquiry__upload strong { color: var(--ng-navy); font-size: 11px; }.project-enquiry__upload small { color: #7786a0; font-size: 9px; line-height: 1.3; }.project-enquiry__upload input { position: absolute; width: 1px; height: 1px; opacity: 0; }.project-enquiry__file-list { color: var(--ng-blue) !important; font-size: 10px !important; }.project-enquiry__submit { display: flex; width: 100%; min-height: 50px; align-items: center; justify-content: center; gap: 15px; margin-top: 13px; border: 0; border-radius: 8px; color: #fff; background: var(--ng-blue); font: inherit; font-size: 14px; font-weight: 800; transition: background var(--transition-fast), transform var(--transition-fast); }.project-enquiry__submit:hover, .project-enquiry__submit:focus-visible { background: var(--ng-blue-dark); transform: translateY(-1px); }.project-enquiry__submit:disabled { cursor: wait; opacity: .7; }.project-enquiry__submit span { font-size: 21px; }.project-enquiry__privacy { display: flex; align-items: center; justify-content: center; gap: 7px; margin: 13px 0 0; color: #61708a; font-size: 10px; text-align: center; }.project-enquiry__privacy svg { width: 14px; height: 14px; }.project-enquiry__status { display: none; margin-top: 13px; padding: 11px; border-radius: 8px; color: #145d45; background: #e4f8ee; font-size: 12px; line-height: 1.4; }.project-enquiry__status.is-visible { display: block; }.project-enquiry__status.is-error { color: #a42c2c; background: #fff0f0; }
.contact-panel { position: relative; min-width: 0; align-self: stretch; padding-top: 4px; }.contact-panel__script { position: absolute; top: -55px; right: 17%; margin: 0; color: #101a4a; font-family: "Segoe Print", "Bradley Hand", cursive; font-size: 22px; font-style: italic; font-weight: 600; line-height: .96; text-align: right; transform: rotate(-7deg); }.contact-panel__script::after { content: ""; display: block; width: 82px; height: 4px; margin: 10px 0 0 auto; border-radius: 4px; background: var(--ng-orange); }.contact-panel__script span { color: var(--ng-orange); }.contact-panel__box { padding: 28px 20px 20px; border-radius: 20px 20px 0 0; color: #fff; background: linear-gradient(145deg, #082b60, #0a3f7e); }.contact-panel__rule { background: var(--ng-blue); }.contact-panel__box h3 { margin: 0 0 8px; color: #fff; font-size: 23px; }.contact-panel__box > p { margin: 0 0 15px; color: rgba(255,255,255,.84); font-size: 12px; }.contact-methods { display: grid; gap: 8px; }.contact-panel__method { display: grid; grid-template-columns: 39px 1fr 20px; min-height: 58px; align-items: center; gap: 10px; padding: 8px 9px; border: 1px solid rgba(255,255,255,.16); border-radius: 12px; color: #fff; background: rgba(255,255,255,.08); transition: transform var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast); }.contact-panel__method:hover, .contact-panel__method:focus-visible { border-color: rgba(255,255,255,.45); background: rgba(255,255,255,.14); transform: translateX(3px); }.contact-panel__method > span:nth-child(2) { display: flex; min-width: 0; flex-direction: column; gap: 2px; }.contact-panel__method strong { color: #fff; font-size: 12px; }.contact-panel__method small { overflow-wrap: anywhere; color: rgba(255,255,255,.84); font-size: 11px; }.contact-panel__method > b { color: #fff; font-size: 23px; font-weight: 400; text-align: right; }.contact-panel__icon { display: grid; place-items: center; width: 39px; height: 39px; border-radius: 50%; color: #fff; }.contact-panel__icon svg { width: 22px; height: 22px; }.contact-method-whatsapp .contact-panel__icon { background: #10c99a; }.contact-method-phone .contact-panel__icon { background: var(--ng-blue); }.contact-method-email .contact-panel__icon { background: var(--ng-orange); }.contact-office, .contact-response { display: flex; align-items: center; gap: 12px; margin-top: 10px; padding: 14px; border-radius: 12px; color: var(--ng-navy); background: rgba(227,241,255,.82); }.contact-office > span, .contact-response > span { display: grid; flex: 0 0 auto; place-items: center; width: 35px; height: 35px; border-radius: 50%; color: var(--ng-blue); background: #fff; }.contact-office svg, .contact-response svg { width: 21px; height: 21px; }.contact-office div, .contact-response div { display: flex; flex-direction: column; gap: 3px; }.contact-office strong, .contact-response strong { font-size: 12px; }.contact-office small, .contact-response small { color: #4f6281; font-size: 10px; line-height: 1.35; }.contact-skyline { position: relative; min-height: 120px; overflow: hidden; margin-top: 9px; background: linear-gradient(180deg, transparent, rgba(42,139,211,.2)); }.contact-skyline::before { content: ""; position: absolute; right: -5%; bottom: 0; left: -5%; height: 70px; background: #82bce5; clip-path: polygon(0 74%, 10% 55%, 23% 67%, 36% 45%, 49% 65%, 59% 31%, 67% 61%, 77% 46%, 88% 70%, 100% 50%, 100% 100%, 0 100%); opacity: .75; }.contact-skyline span { position: absolute; bottom: 25px; width: 10px; background: #2e78bd; }.contact-skyline span:nth-child(1) { right: 37%; height: 68px; }.contact-skyline span:nth-child(2) { right: 47%; height: 42px; }.contact-skyline span:nth-child(3) { right: 28%; height: 32px; }.contact-skyline i { position: absolute; right: 7%; bottom: 7px; color: var(--ng-navy); font-family: "Segoe Print", "Bradley Hand", cursive; font-size: 17px; font-style: italic; line-height: .9; text-align: right; transform: rotate(-7deg); }.contact-skyline em { display: block; width: 67px; height: 3px; margin: 8px 0 0 auto; border-radius: 3px; background: var(--ng-orange); }
.contact-trust { color: #fff; background: linear-gradient(90deg, #062c63, #0a4d91 55%, #092d68); }.contact-trust__inner { display: grid; grid-template-columns: repeat(4, 1fr) minmax(230px, 1.3fr); max-width: 1760px; margin: 0 auto; padding: 24px clamp(24px, 4vw, 64px); }.contact-trust__item { display: grid; grid-template-columns: 35px 1fr; grid-template-rows: auto auto; column-gap: 10px; align-items: center; padding: 0 17px; }.contact-trust__item + .contact-trust__item { border-left: 1px solid rgba(255,255,255,.25); }.contact-trust__item > span { grid-row: 1 / span 2; }.contact-trust__item svg { width: 29px; height: 29px; }.contact-trust__item strong { font-size: 13px; line-height: 1.1; }.contact-trust__item small { color: rgba(255,255,255,.78); font-size: 10px; line-height: 1.25; }.contact-trust__quote { display: flex; align-items: center; gap: 9px; margin: 0; padding-left: 22px; border-left: 1px solid rgba(255,255,255,.3); color: #fff; font-size: 12px; line-height: 1.4; }.contact-trust__quote span { color: var(--ng-orange); font-size: 54px; font-weight: 800; line-height: .6; }
@media (max-width: 1399px) { .contact-project-container { grid-template-columns: minmax(350px, 40%) minmax(390px, 34%) minmax(285px, 26%); }.contact-project-intro h2 { font-size: clamp(3rem, 4.3vw, 4.5rem); }.contact-project-lead { font-size: 16px; }.project-enquiry { padding-left: 19px; padding-right: 19px; }.contact-panel__box { padding-left: 15px; padding-right: 15px; }.contact-trust__item { padding-left: 8px; padding-right: 8px; } }
@media (max-width: 1100px) { .contact-project-container { grid-template-columns: minmax(0, 42%) minmax(0, 58%); align-items: start; }.contact-project-intro { grid-column: 1; }.project-enquiry { grid-column: 2; grid-row: 1 / span 2; }.contact-panel { grid-column: 1 / -1; margin-top: 28px; }.contact-panel__script { top: -50px; }.contact-panel__box { border-radius: 20px; }.contact-methods { grid-template-columns: repeat(4, 1fr); }.contact-panel__method { grid-template-columns: 33px 1fr; }.contact-panel__method > b { display: none; }.contact-skyline { min-height: 105px; }.contact-office, .contact-response { display: inline-flex; width: calc(50% - 7px); vertical-align: top; }.contact-trust__inner { grid-template-columns: repeat(2, 1fr); gap: 18px 0; }.contact-trust__item:nth-child(odd) { border-left: 0; }.contact-trust__quote { grid-column: 1 / -1; padding: 15px 0 0; border-top: 1px solid rgba(255,255,255,.25); border-left: 0; justify-content: center; } }
@media (max-width: 767px) { .anchor-target { scroll-margin-top: var(--header-height); }.contact-project-container { display: flex; flex-direction: column; gap: 28px; padding: 58px 20px 0; }.contact-project-intro { display: contents; }.contact-project-map { top: -30px; left: 50%; width: 220px; height: 280px; }.contact-project-eyebrow { margin-bottom: 22px; }.contact-project-intro h2 { font-size: clamp(2.45rem, 10.7vw, 3.5rem); line-height: 1; }.contact-project-lead { font-size: 16px; line-height: 1.55; }.contact-project-values { gap: 8px; margin: 26px 0 0; }.contact-project-values > div { display: flex; min-width: 0; flex-direction: column; align-items: center; gap: 5px; text-align: center; }.contact-value-icon { width: 47px; height: 47px; }.contact-value-icon svg { width: 25px; height: 25px; }.contact-project-values strong { font-size: 12px; }.contact-project-values small { font-size: 11px; }.project-enquiry { order: 5; width: 100%; padding: 24px 17px 19px; border-radius: 17px; }.project-enquiry__grid { grid-template-columns: 1fr; gap: 11px; }.project-enquiry__field--full { grid-column: auto; }.project-enquiry__field label { font-size: 12px; }.project-enquiry__field input, .project-enquiry__field select, .project-enquiry__field textarea { font-size: 16px; }.project-enquiry__field input, .project-enquiry__field select { height: 52px; }.project-enquiry__field textarea { min-height: 150px; }.project-enquiry__upload { min-height: 92px; }.project-enquiry__submit { min-height: 54px; font-size: 15px; }.project-enquiry__privacy { font-size: 10px; line-height: 1.35; }.contact-panel { order: 6; width: 100%; margin-top: 0; }.contact-panel__script { display: none; }.contact-panel__box { padding: 26px 16px 17px; border-radius: 18px; }.contact-panel__box h3 { font-size: 24px; }.contact-panel__method { min-height: 64px; grid-template-columns: 43px 1fr 22px; padding: 9px; }.contact-panel__icon { width: 43px; height: 43px; }.contact-panel__method strong { font-size: 13px; }.contact-panel__method small { font-size: 12px; }.contact-panel__method > b { display: block; }.contact-office, .contact-response { display: flex; width: 100%; margin-top: 10px; }.contact-skyline { min-height: 130px; }.contact-project-visual { order: 7; width: 100%; min-height: 245px; border-radius: 17px 17px 0 0; }.contact-project-visual > picture img { min-height: 245px; object-position: center; }.contact-laptop-label { left: 7%; bottom: 18%; width: 125px; min-height: 74px; padding: 7px; }.contact-laptop-label img { width: 65px; }.contact-laptop-label span { font-size: 6px; }.contact-visual-script { top: 15px; right: 7%; font-size: 17px; }.contact-visual-plan { right: 8%; bottom: 10px; font-size: 16px; }.contact-trust { margin-top: 0; }.contact-trust__inner { grid-template-columns: 1fr; gap: 16px; padding: 22px 20px; }.contact-trust__item, .contact-trust__item:nth-child(even) { padding: 0; border-left: 0; }.contact-trust__quote { grid-column: auto; justify-content: flex-start; padding: 14px 0 0; border-top: 1px solid rgba(255,255,255,.25); font-size: 13px; }.contact-trust__quote span { font-size: 44px; } }
@media (max-width: 359px) { .contact-project-values { grid-template-columns: 1fr; gap: 12px; }.contact-project-values > div { display: grid; grid-template-columns: 47px 1fr; grid-template-rows: auto auto; column-gap: 9px; text-align: left; }.contact-value-icon { grid-row: 1 / span 2; }.contact-project-visual { min-height: 215px; }.contact-project-visual > picture img { min-height: 215px; }.contact-skyline { display: none; } }
@media (prefers-reduced-motion: reduce) { .contact-panel__method, .project-enquiry__submit { transition: none; transform: none; } }

/* Premium single-page footer */
.site-footer { position: relative; overflow: hidden; color: #fff; background: #03152f; }.site-footer__atmosphere { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(3,21,47,.96) 0%, rgba(3,21,47,.82) 45%, rgba(2,13,31,.96) 100%), url("ChatGPT Image Sep 18, 2026, 12_20_32 PM.png") center bottom / cover no-repeat; opacity: .88; }.site-footer__main, .site-footer__values-inner, .site-footer__legal { position: relative; z-index: 1; max-width: 1760px; margin: 0 auto; }.site-footer__main { display: grid; grid-template-columns: 1.15fr .8fr 1fr 1.1fr 1.15fr; gap: 40px; padding: 70px clamp(24px, 4vw, 64px) 75px; }.site-footer__brand, .site-footer__column { min-width: 0; }.site-footer__logo { display: inline-flex; width: 180px; }.site-footer__logo img { width: 100%; height: auto; filter: brightness(0) invert(1); }.site-footer__tagline { margin: -8px 0 0; color: #fff; font-size: 15px; }.site-footer__accent { width: 157px; height: 4px; margin: 10px 0 27px 7px; border-radius: 3px; background: var(--ng-orange); transform: rotate(-5deg); }.site-footer__description { max-width: 275px; margin: 0; color: rgba(255,255,255,.8); font-size: 13px; line-height: 1.55; }.site-footer__social-note { margin: 38px 0 0; color: rgba(255,255,255,.52); font-size: 11px; line-height: 1.4; }.site-footer__script { margin: 32px 0 0 13px; color: #fff; font-family: "Segoe Print", "Bradley Hand", cursive; font-size: 24px; font-style: italic; line-height: .95; transform: rotate(-7deg); }.site-footer__script i, .site-footer__lower-script i { display: block; width: 122px; height: 4px; margin: 11px 0 0 20px; border-radius: 4px; background: var(--ng-orange); }.site-footer__column h3 { margin: 7px 0 9px; color: #fff; font-size: 20px; letter-spacing: -.025em; }.site-footer__heading-line { display: block; width: 44px; height: 4px; margin-bottom: 18px; border-radius: 3px; background: var(--ng-orange); }.site-footer__column ul { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }.site-footer__column li a { display: flex; min-height: 32px; align-items: center; justify-content: space-between; gap: 8px; color: rgba(255,255,255,.84); font-size: 13px; transition: color var(--transition-fast); }.site-footer__column li a span { color: #fff; font-size: 19px; transition: transform var(--transition-fast), color var(--transition-fast); }.site-footer__column li a:hover, .site-footer__column li a:focus-visible { color: #fff; }.site-footer__column li a:hover span, .site-footer__column li a:focus-visible span { color: var(--ng-orange); transform: translateX(3px); }.site-footer__contact { padding-left: 2px; }.site-footer__contact-group { display: grid; grid-template-columns: 40px 1fr; gap: 11px; align-items: start; margin-bottom: 15px; }.site-footer__contact-icon { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; color: #fff; }.site-footer__contact-icon svg { width: 22px; height: 22px; }.site-footer__icon-whatsapp { background: #12c99a; }.site-footer__icon-phone, .site-footer__icon-location { background: var(--ng-blue); }.site-footer__icon-email { background: var(--ng-orange); }.site-footer__contact-group div { display: flex; min-width: 0; flex-direction: column; gap: 3px; padding-top: 3px; }.site-footer__contact-group strong { color: #fff; font-size: 13px; }.site-footer__contact-group a, .site-footer__contact-group small { overflow-wrap: anywhere; color: rgba(255,255,255,.82); font-size: 12px; line-height: 1.35; }.site-footer__contact-group a:hover, .site-footer__contact-group a:focus-visible { color: #fff; }.site-footer__newsletter { padding-left: 28px; border-left: 1px solid rgba(255,255,255,.35); }.site-footer__newsletter > p { max-width: 290px; margin: 0 0 18px; color: rgba(255,255,255,.8); font-size: 13px; line-height: 1.5; }.site-footer__newsletter-form { display: flex; width: 100%; }.site-footer__newsletter-form input { min-width: 0; width: 100%; height: 50px; padding: 0 14px; border: 0; border-radius: 8px 0 0 8px; color: var(--ng-navy); background: #fff; font: inherit; font-size: 13px; }.site-footer__newsletter-form button { display: grid; flex: 0 0 55px; place-items: center; height: 50px; border: 0; border-radius: 0 8px 8px 0; color: #fff; background: var(--ng-blue); }.site-footer__newsletter-form button svg { width: 22px; height: 22px; }.site-footer__newsletter-feedback { min-height: 16px; margin: 7px 0 0 !important; color: #a9f1d6 !important; font-size: 11px !important; }.site-footer__privacy { display: flex; align-items: center; gap: 7px; margin-top: 3px !important; color: rgba(255,255,255,.72) !important; font-size: 11px !important; }.site-footer__privacy svg { width: 15px; height: 15px; }.site-footer__brand-message { position: relative; display: flex; min-height: 205px; align-items: center; gap: 18px; margin-top: 16px; }.site-footer__map { width: 135px; height: 165px; flex: 0 0 auto; color: #1677ff; opacity: .7; }.site-footer__brand-message p { margin: 0; color: #fff; font-size: 19px; font-weight: 800; line-height: 1.02; }.site-footer__brand-message p span { color: var(--ng-blue); }.site-footer__brand-message p i { display: block; width: 87px; height: 4px; margin: 12px 0 0; border-radius: 3px; background: var(--ng-orange); }.site-footer__lower-script { margin: 10px 0 0 auto; color: rgba(255,255,255,.9); font-family: "Segoe Print", "Bradley Hand", cursive; font-size: 16px !important; font-style: italic; line-height: 1.02 !important; text-align: right; transform: rotate(-5deg); }.site-footer__lower-script i { width: 75px; height: 3px; margin-left: auto; }.site-footer__values { position: relative; z-index: 1; border-top: 1px solid rgba(255,255,255,.3); border-bottom: 1px solid rgba(255,255,255,.2); background: rgba(2,19,46,.82); }.site-footer__values-inner { display: grid; grid-template-columns: repeat(4, 1fr) 1.45fr; align-items: center; padding: 22px clamp(24px, 4vw, 64px); }.site-footer__values-inner > div { display: grid; grid-template-columns: 37px 1fr; align-items: center; gap: 11px; padding: 0 18px; }.site-footer__values-inner > div + div { border-left: 1px solid rgba(255,255,255,.3); }.site-footer__values-inner svg { width: 30px; height: 30px; }.site-footer__values-inner strong { font-size: 13px; line-height: 1.1; }.site-footer__next { display: flex; align-items: center; justify-content: center; gap: 25px; padding-left: 28px; border-left: 1px solid rgba(255,255,255,.3); color: #fff; }.site-footer__next strong { font-size: 18px; line-height: 1.05; }.site-footer__next span { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; color: #081a36; background: var(--ng-orange); font-size: 24px; transition: transform var(--transition-fast); }.site-footer__next:hover span, .site-footer__next:focus-visible span { transform: translateX(3px); }.site-footer__legal { display: grid; grid-template-columns: 1.1fr 1fr 1.1fr; align-items: center; padding: 24px clamp(24px, 4vw, 64px); color: rgba(255,255,255,.78); background: rgba(1,11,27,.7); font-size: 11px; }.site-footer__legal nav { display: flex; justify-content: center; gap: 0; }.site-footer__legal nav button { padding: 0 13px; border: 0; border-right: 1px solid rgba(255,255,255,.35); color: rgba(255,255,255,.78); background: transparent; font: inherit; cursor: pointer; }.site-footer__legal nav button:last-child { border-right: 0; }.site-footer__legal nav button:hover, .site-footer__legal nav button:focus-visible { color: #fff; }.site-footer__legal > div:last-child { text-align: right; }.site-footer__legal > div:last-child span { display: inline-block; width: 24px; height: 3px; margin-left: 10px; vertical-align: middle; border-radius: 3px; background: var(--ng-orange); }
@media (max-width: 1399px) { .site-footer__main { gap: 24px; }.site-footer__main { grid-template-columns: 1.15fr .8fr 1fr 1.15fr; }.site-footer__newsletter { grid-column: 1 / -1; padding: 25px 0 0; border-top: 1px solid rgba(255,255,255,.25); border-left: 0; display: grid; grid-template-columns: 1fr 1fr; column-gap: 30px; }.site-footer__newsletter h3, .site-footer__newsletter > .site-footer__heading-line, .site-footer__newsletter > p { grid-column: 1; }.site-footer__newsletter-form { grid-column: 2; grid-row: 1 / span 3; align-self: center; }.site-footer__newsletter .site-footer__privacy, .site-footer__newsletter .site-footer__brand-message, .site-footer__newsletter .site-footer__lower-script { grid-column: 1 / -1; }.site-footer__brand-message { min-height: 120px; }.site-footer__lower-script { position: absolute; right: 0; bottom: 0; } }
@media (max-width: 1023px) { .site-footer__main { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 42px 30px; padding-top: 58px; }.site-footer__newsletter { grid-column: 1 / -1; }.site-footer__brand-message { justify-content: flex-start; }.site-footer__values-inner { grid-template-columns: repeat(2, 1fr); gap: 17px 0; }.site-footer__values-inner > div:nth-child(odd) { border-left: 0; }.site-footer__values-inner > div:nth-child(even) { border-left: 1px solid rgba(255,255,255,.3); }.site-footer__next { grid-column: 1 / -1; padding: 18px 0 0; border-top: 1px solid rgba(255,255,255,.3); border-left: 0; }.site-footer__legal { grid-template-columns: 1fr; gap: 16px; text-align: center; }.site-footer__legal > div:last-child { text-align: center; } }
@media (max-width: 767px) { .site-footer__main { grid-template-columns: 1fr; gap: 35px; padding: 52px 20px 46px; }.site-footer__logo { width: 180px; }.site-footer__description { max-width: 350px; font-size: 14px; }.site-footer__social-note { margin-top: 25px; }.site-footer__script { margin-top: 24px; }.site-footer__column h3 { font-size: 21px; }.site-footer__column li a { min-height: 42px; font-size: 14px; }.site-footer__services { padding-top: 2px; }.site-footer__contact-group { min-height: 48px; grid-template-columns: 44px 1fr; }.site-footer__contact-icon { width: 44px; height: 44px; }.site-footer__contact-group a, .site-footer__contact-group small { font-size: 13px; }.site-footer__newsletter { display: block; padding: 27px 0 0; }.site-footer__newsletter-form { margin-top: 13px; }.site-footer__newsletter-form input { height: 52px; min-width: 0; font-size: 16px; }.site-footer__newsletter-form button { flex-basis: 55px; height: 52px; }.site-footer__newsletter .site-footer__privacy { margin-top: 10px !important; }.site-footer__brand-message { min-height: 190px; margin-top: 18px; }.site-footer__map { width: 125px; height: 155px; }.site-footer__brand-message p { font-size: 18px; }.site-footer__lower-script { position: static; margin-top: 4px; text-align: right; }.site-footer__values-inner { grid-template-columns: repeat(2, 1fr); padding: 21px 20px; gap: 18px 0; }.site-footer__values-inner > div { padding: 0 8px; }.site-footer__values-inner strong { font-size: 12px; }.site-footer__next { padding: 20px 0 0; }.site-footer__next strong { font-size: 18px; }.site-footer__legal { padding: 23px 20px; font-size: 12px; }.site-footer__legal nav { flex-wrap: wrap; row-gap: 10px; }.site-footer__legal nav button { min-height: 40px; }.site-footer__legal > div:last-child { line-height: 1.4; } }
@media (max-width: 359px) { .site-footer__values-inner { grid-template-columns: 1fr; }.site-footer__values-inner > div, .site-footer__values-inner > div:nth-child(even) { padding: 0; border-left: 0; }.site-footer__next { justify-content: space-between; } }
@media (prefers-reduced-motion: reduce) { .site-footer__column li a span, .site-footer__next span { transition: none; transform: none; } }

/* Long-form insight reader */
.article-reader__intro { max-width: 780px; margin: 0 0 14px; color: #4b5c79; font-size: 18px; line-height: 1.55; }
.article-reader__content { max-width: 820px; margin: 0 auto; color: #344563; font-size: 18px; line-height: 1.8; }
.article-reader__content h2 { margin: 42px 0 14px; color: var(--ng-navy); font-size: 29px; line-height: 1.18; letter-spacing: -.025em; }
.article-reader__content h3 { margin: 28px 0 10px; color: var(--ng-navy); font-size: 21px; line-height: 1.25; }
.article-reader__content p { margin: 0 0 21px; }
.article-reader__content ul, .article-reader__content ol { margin: 0 0 24px; padding-left: 25px; }
.article-reader__content li { margin: 0 0 10px; padding-left: 4px; }
.article-reader__related-wrap { max-width: 820px; margin: 58px auto 0; padding-top: 31px; border-top: 1px solid #dbe6f2; }
.article-reader__related-wrap > h2 { margin: 0 0 17px; color: var(--ng-navy); font-size: 25px; }
.article-reader__related-list { display: grid; }
#article-reader-related-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.article-reader__related-card { display: flex; min-width: 0; flex-direction: column; padding: 15px; border: 1px solid #dbe6f2; border-radius: 11px; background: #f7fbff; }
.article-reader__related-card p { margin: 0 0 8px; color: var(--ng-blue); font-size: 10px; font-weight: 800; text-transform: uppercase; }
.article-reader__related-card h3 { margin: 0 0 15px; color: var(--ng-navy); font-size: 15px; line-height: 1.3; }
.article-reader__related-card button { margin-top: auto; padding: 0; border: 0; color: var(--ng-blue); background: transparent; font: inherit; font-size: 12px; font-weight: 800; text-align: left; }
.article-reader__cta { max-width: 820px; margin: 28px auto 0; padding: 25px 27px; border-radius: 14px; color: #fff; background: linear-gradient(110deg, #062d65, #0a4d91); }
.article-reader__cta h2 { margin: 0 0 8px; color: #fff; font-size: 25px; }
.article-reader__cta p { margin: 0 0 17px; color: rgba(255,255,255,.84); font-size: 14px; line-height: 1.5; }
.article-reader__cta .btn { color: var(--ng-navy); background: #fff; }
.article-reader__related { display: block; margin: 28px auto 0; }
.hp-field { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; opacity: 0 !important; pointer-events: none !important; }
@media (max-width: 767px) {
  .article-reader__intro { font-size: 16px; line-height: 1.6; }
  .article-reader__content { font-size: 17px; line-height: 1.78; }
  .article-reader__content h2 { margin-top: 34px; font-size: 25px; }
  .article-reader__content h3 { font-size: 19px; }
  #article-reader-related-list { grid-template-columns: 1fr; }
  .article-reader__cta { padding: 21px 18px; }
  .article-reader__cta h2 { font-size: 22px; }
  .article-reader__cta .btn { width: 100%; justify-content: center; }
}

/* Interactive Service Details */
.service-details-section { position: relative; overflow: hidden; color: var(--ng-navy); background: linear-gradient(145deg, #fff 0%, #f7faff 68%, #edf7ff 100%); scroll-margin-top: var(--header-height); }.service-details-container { position: relative; z-index: 1; max-width: 1760px; margin: 0 auto; padding: clamp(70px, 6vw, 105px) clamp(24px, 4vw, 64px) 30px; }.service-details-map { position: absolute; top: -15px; left: 47%; width: 275px; height: 340px; color: #83c9ee; opacity: .06; pointer-events: none; transform: rotate(7deg); }.service-details-map svg { width: 100%; height: 100%; }.service-details-header { display: flex; justify-content: space-between; gap: 50px; align-items: flex-start; margin-bottom: 28px; }.service-details-eyebrow, .service-detail-eyebrow { display: flex; align-items: center; gap: 12px; margin: 0 0 25px; color: var(--ng-navy); font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }.service-details-eyebrow span, .service-detail-eyebrow::before { display: block; width: 36px; height: 3px; background: var(--ng-blue); content: ""; }.service-details-header h2 { margin: 0 0 20px; font-size: clamp(3.15rem, 4.3vw, 4.8rem); line-height: .99; letter-spacing: -.05em; }.service-details-header h2 span { color: var(--ng-blue); }.service-details-header h2 b { color: var(--ng-orange); font-weight: inherit; }.service-details-intro { max-width: 930px; margin: 0; color: #293959; font-size: 18px; line-height: 1.57; }.service-details-notes { display: flex; flex: 0 0 305px; justify-content: space-between; gap: 25px; padding-top: 4px; }.service-details-script { margin: 0; color: #101a4a; font-family: "Segoe Print", "Bradley Hand", cursive; font-size: 20px; font-style: italic; font-weight: 600; line-height: .95; transform: rotate(-7deg); }.service-details-script i { display: block; width: 95px; height: 4px; margin: 12px 0 0 25px; border-radius: 4px; background: var(--ng-orange); }.service-details-plan { margin: 4px 0 0; padding-left: 17px; border-left: 1.5px solid var(--ng-navy); color: var(--ng-navy); font-size: 21px; font-weight: 800; line-height: 1.35; }.service-details-plan span { color: var(--ng-orange); }.service-tabs-wrap { overflow-x: auto; padding: 2px 0 17px; scrollbar-color: var(--ng-blue) transparent; }.service-tabs { display: grid; grid-template-columns: repeat(9, minmax(115px, 1fr)); gap: 11px; min-width: 1120px; }.service-tab { display: flex; min-height: 104px; flex-direction: column; align-items: center; justify-content: center; gap: 8px; padding: 12px 8px; border: 1px solid #d5e2f2; border-radius: 11px; color: var(--ng-navy); background: rgba(255,255,255,.68); font: inherit; font-size: 11px; font-weight: 700; line-height: 1.13; text-align: center; transition: color var(--transition-fast), background var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast); }.service-tab svg { width: 27px; height: 27px; }.service-tab:hover { border-color: #86b4f7; background: #f1f7ff; transform: translateY(-2px); }.service-tab[aria-selected="true"] { border-color: var(--ng-blue); color: #fff; background: var(--ng-blue); box-shadow: 0 11px 23px -18px #1677ff; }.service-tab:focus-visible { outline: 3px solid var(--ng-orange); outline-offset: 3px; }.service-detail-panel { display: grid; grid-template-columns: minmax(0, 47%) minmax(0, 53%); min-height: 550px; overflow: hidden; border: 1px solid rgba(22,95,180,.12); border-radius: 21px; background: rgba(255,255,255,.92); box-shadow: 0 22px 42px -28px rgba(16,26,74,.52); transition: opacity 260ms ease, transform 260ms ease; }.service-detail-panel.is-changing { opacity: .35; transform: translateY(5px); }.service-detail-copy { display: flex; flex-direction: column; padding: 38px 30px 28px; }.service-detail-eyebrow { margin-bottom: 20px; }.service-detail-copy h3 { max-width: 630px; margin: 0 0 16px; color: var(--ng-navy); font-size: clamp(2.35rem, 3.25vw, 4rem); line-height: 1.02; letter-spacing: -.05em; }.service-detail-copy h3 span { color: var(--ng-blue); }.service-detail-description { max-width: 650px; margin: 0 0 21px; color: #3d4f6d; font-size: 15px; line-height: 1.52; }.service-detail-features { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 11px 17px; margin: 0 0 24px; padding: 0; list-style: none; }.service-detail-features li { display: flex; align-items: flex-start; gap: 8px; color: #223657; font-size: 12px; line-height: 1.35; }.service-detail-features li::before { display: grid; flex: 0 0 auto; width: 19px; height: 19px; place-items: center; border-radius: 50%; color: #fff; background: var(--ng-blue); content: "✓"; font-size: 12px; font-weight: 800; }.service-detail-proof { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 11px; margin-top: auto; }.service-detail-proof > div { display: grid; grid-template-columns: 25px 1fr; grid-template-rows: auto auto; column-gap: 7px; align-items: center; }.service-detail-proof span { grid-row: 1 / span 2; color: var(--ng-navy); }.service-detail-proof svg { width: 24px; height: 24px; }.service-detail-proof strong { font-size: 11px; line-height: 1.15; }.service-detail-proof small { color: #61708a; font-size: 9px; line-height: 1.25; }.service-detail-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 24px; }.service-detail-actions .btn { min-height: 49px; }.service-detail-actions .btn-primary { background: var(--ng-orange); }.service-detail-actions .btn-primary:hover, .service-detail-actions .btn-primary:focus-visible { background: var(--ng-orange-dark); }.service-detail-expanded { margin-top: 15px; padding: 14px; border-radius: 9px; color: #465675; background: #f1f7ff; font-size: 12px; line-height: 1.5; }.service-detail-visual { position: relative; min-height: 550px; overflow: hidden; background: #d9edff; }.service-detail-visual picture, .service-detail-visual img { display: block; width: 100%; height: 100%; }.service-detail-visual img { min-height: 550px; object-fit: cover; }.service-detail-visual::after { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 60%, rgba(4,28,62,.24)); content: ""; pointer-events: none; }.service-detail-visual-script { position: absolute; z-index: 1; top: 24px; right: 7%; margin: 0; color: #101a4a; font-family: "Segoe Print", "Bradley Hand", cursive; font-size: 22px; font-style: italic; font-weight: 600; line-height: .94; text-align: right; transform: rotate(-7deg); }.service-detail-visual-script i { display: block; width: 89px; height: 4px; margin: 11px 0 0 auto; border-radius: 4px; background: var(--ng-orange); }.service-details-decoration { position: relative; display: flex; min-height: 100px; justify-content: flex-end; gap: 10px; align-items: flex-end; padding: 0 3% 0 0; }.service-details-decoration span { display: block; width: 11px; background: #4b9de1; opacity: .65; }.service-details-decoration span:nth-child(1) { height: 35px; }.service-details-decoration span:nth-child(2) { height: 55px; }.service-details-decoration span:nth-child(3) { height: 42px; }.service-details-decoration i { color: var(--ng-navy); font-family: "Segoe Print", "Bradley Hand", cursive; font-size: 18px; font-style: italic; line-height: .95; text-align: right; transform: rotate(-6deg); }.service-details-decoration em { display: block; width: 75px; height: 3px; margin: 8px 0 0 auto; border-radius: 3px; background: var(--ng-orange); }
@media (max-width: 1279px) { .service-details-header { gap: 25px; }.service-details-notes { flex-basis: 270px; }.service-tabs { min-width: 1030px; }.service-detail-copy { padding-left: 25px; padding-right: 25px; }.service-detail-copy h3 { font-size: clamp(2.25rem, 3.2vw, 3.4rem); }.service-detail-proof small { font-size: 8px; } }
@media (max-width: 1023px) { .service-details-header { flex-direction: column; }.service-details-notes { width: 100%; max-width: 600px; flex-basis: auto; }.service-tabs { grid-template-columns: repeat(5, minmax(140px, 1fr)); min-width: 750px; }.service-detail-panel { grid-template-columns: 1fr; }.service-detail-copy { min-height: 470px; padding: 38px 38px 30px; }.service-detail-visual { min-height: 480px; }.service-detail-visual img { min-height: 480px; }.service-detail-proof { grid-template-columns: repeat(4, minmax(0,1fr)); }.service-details-decoration { min-height: 90px; } }
@media (max-width: 767px) { .service-details-container { padding: 58px 20px 25px; }.service-details-header { margin-bottom: 24px; }.service-details-header h2 { font-size: clamp(2.4rem, 10.7vw, 3.45rem); }.service-details-intro { font-size: 16px; }.service-details-notes { gap: 20px; }.service-details-script { font-size: 18px; }.service-details-plan { font-size: 18px; }.service-tabs-wrap { margin-right: -20px; padding-right: 20px; }.service-tabs { display: flex; min-width: max-content; gap: 10px; }.service-tab { width: 145px; min-height: 94px; flex: 0 0 145px; font-size: 11px; }.service-detail-panel { display: flex; flex-direction: column; min-height: 0; border-radius: 17px; }.service-detail-copy { min-height: 0; padding: 27px 18px 25px; }.service-detail-copy h3 { font-size: clamp(2rem, 8.8vw, 2.85rem); }.service-detail-description { font-size: 15px; }.service-detail-features { grid-template-columns: 1fr; gap: 10px; }.service-detail-proof { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 15px 8px; }.service-detail-proof small { font-size: 9px; }.service-detail-actions { flex-direction: column; }.service-detail-actions .btn { width: 100%; }.service-detail-visual { order: 2; min-height: 265px; }.service-detail-visual img { min-height: 265px; object-position: center; }.service-detail-visual-script { top: 15px; right: 7%; font-size: 17px; }.service-details-decoration { min-height: 105px; padding-right: 20px; }.service-details-decoration i { font-size: 17px; } }
@media (max-width: 359px) { .service-tabs-wrap { margin-right: -20px; }.service-tab { width: 136px; flex-basis: 136px; }.service-detail-copy { padding-left: 15px; padding-right: 15px; }.service-detail-proof { grid-template-columns: 1fr; }.service-details-decoration { display: none; } }
@media (prefers-reduced-motion: reduce) { .service-tab, .service-detail-panel, .service-detail-actions .btn { transition: none; transform: none; } }

/* Privacy Policy modal */
body.privacy-policy-open { position: fixed; width: 100%; overflow: hidden; }
.legal-modal { width: min(92vw, 1750px); max-width: none; height: min(89vh, 1000px); max-height: none; padding: 0; overflow: hidden; border: 1px solid rgba(101,174,255,.42); border-radius: 14px; color: var(--ng-navy); background: #f8fbff; box-shadow: 0 30px 100px rgba(0,0,0,.52); opacity: 0; transform: scale(.98); transition: opacity 240ms ease, transform 280ms ease; }.legal-modal[open] { opacity: 1; transform: scale(1); }.legal-modal::backdrop { background: rgba(2,18,40,.78); backdrop-filter: blur(4px); }.legal-modal__shell { display: grid; grid-template-columns: minmax(280px, 25%) minmax(0, 75%); width: 100%; height: 100%; }.legal-modal__brand { position: relative; display: flex; min-width: 0; flex-direction: column; overflow: hidden; padding: 39px 46px 33px; color: #fff; background: linear-gradient(180deg, rgba(4,30,70,.93), rgba(4,30,70,.72)), url("assets/hero-visual.webp") center/cover; }.legal-modal__brand::after { position: absolute; inset: 0; z-index: 0; background: linear-gradient(180deg, rgba(4,23,53,.65) 0%, rgba(6,67,143,.25) 46%, rgba(2,18,40,.88) 100%); content: ""; }.legal-modal__brand > * { position: relative; z-index: 1; }.legal-modal__brand-top { flex: 0 0 auto; }.legal-modal__brand-logo { display: block; width: 205px; }.legal-modal__brand-logo img { display: block; width: 100%; height: auto; }.legal-modal__tagline { margin: -20px 0 0; font-size: 11px; line-height: 1.2; }.legal-modal__orange-rule { display: block; width: 125px; height: 4px; margin: 13px 0 0 3px; border-radius: 4px; background: var(--ng-orange); transform: rotate(-3deg); }.legal-modal__script { margin: 56px 0 16px; font-family: "Segoe Print", "Bradley Hand", cursive; font-size: clamp(21px, 1.9vw, 30px); font-style: italic; line-height: 1.02; text-align: center; transform: rotate(-6deg); }.legal-modal__script i, .privacy-policy__script i { display: block; width: 115px; height: 4px; margin: 13px 0 0 auto; border-radius: 5px; background: var(--ng-orange); transform: rotate(-3deg); }.legal-modal__brand-image { position: relative; min-height: 0; flex: 1 1 auto; margin: 0 -46px; background: linear-gradient(180deg, transparent, rgba(2,18,40,.42)), url("assets/hero-visual.webp") center/cover; opacity: .9; mask-image: linear-gradient(to bottom, transparent 0%, black 20%, black 100%); }.legal-modal__brand-message { max-width: 280px; margin-top: -20px; }.legal-modal__brand-message h2 { margin: 0 0 13px; color: #fff; font-size: clamp(20px, 1.55vw, 30px); line-height: 1.08; }.legal-modal__brand-message p { margin: 0; color: rgba(255,255,255,.93); font-size: clamp(13px, 1vw, 17px); line-height: 1.42; }.legal-modal__security { display: flex; align-items: center; gap: 13px; margin-top: auto; padding-top: 25px; }.legal-modal__security span { display: grid; width: 47px; height: 47px; place-items: center; color: var(--ng-blue); }.legal-modal__security svg { width: 47px; height: 47px; }.legal-modal__security p { margin: 0; color: #fff; font-size: 14px; font-weight: 600; line-height: 1.16; }.legal-modal__content { position: relative; display: flex; min-width: 0; flex-direction: column; overflow: hidden; background: linear-gradient(135deg, #fff 0%, #f6faff 100%); }.legal-modal__close { position: absolute; z-index: 5; top: 20px; right: 22px; display: grid; width: 52px; height: 52px; place-items: center; border: 0; border-radius: 50%; color: var(--ng-navy); background: #eaf3fc; cursor: pointer; font-size: 34px; font-weight: 300; line-height: 1; }.legal-modal__close:hover { color: #fff; background: var(--ng-blue); }.legal-modal__close:focus-visible, .privacy-policy__tab:focus-visible, .privacy-policy__footer button:focus-visible, .privacy-policy__accept:focus-visible, .privacy-policy__contacts a:focus-visible { outline: 3px solid var(--ng-orange); outline-offset: 3px; }.privacy-policy__header { display: flex; justify-content: space-between; gap: 28px; padding: 42px 80px 21px 30px; }.privacy-policy__eyebrow { display: flex; align-items: center; gap: 17px; margin: 0 0 23px; color: var(--ng-navy); font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }.privacy-policy__eyebrow span { width: 54px; height: 3px; background: var(--ng-blue); }.privacy-policy__header h2 { max-width: 1000px; margin: 0 0 13px; font-size: clamp(3rem, 4vw, 4.35rem); line-height: .98; letter-spacing: -.055em; }.privacy-policy__header h2 span { color: var(--ng-blue); }.privacy-policy__header h2 b { color: var(--ng-orange); }.privacy-policy__intro { max-width: 990px; margin: 0; color: #20355d; font-size: clamp(14px, 1.15vw, 18px); line-height: 1.42; }.privacy-policy__script { flex: 0 0 185px; margin: 24px 0 0; color: var(--ng-navy); font-family: "Segoe Print", "Bradley Hand", cursive; font-size: 20px; font-style: italic; line-height: .99; transform: rotate(-7deg); }.privacy-policy__nav { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 9px; flex: 0 0 auto; margin: 0 30px; padding: 2px 0 14px; border-bottom: 1px solid #dce8f5; }.privacy-policy__tab { display: flex; min-height: 80px; flex-direction: column; align-items: center; justify-content: center; gap: 8px; padding: 10px 7px; border: 1px solid #d8e7f8; border-radius: 10px; color: var(--ng-navy); background: rgba(255,255,255,.82); cursor: pointer; font: inherit; font-size: 11px; font-weight: 800; line-height: 1.12; text-align: center; transition: background 180ms ease, color 180ms ease, border-color 180ms ease, transform 180ms ease; }.privacy-policy__tab svg { width: 28px; height: 28px; }.privacy-policy__tab:hover { border-color: #89b8f7; transform: translateY(-2px); }.privacy-policy__tab.is-active { border-color: var(--ng-blue); color: #fff; background: var(--ng-blue); box-shadow: 0 13px 22px -18px var(--ng-blue); }.privacy-policy__body { min-height: 0; flex: 1 1 auto; overflow: auto; padding: 0 30px; scroll-behavior: smooth; scrollbar-color: #afc9e5 transparent; scrollbar-width: thin; }.privacy-policy__body::-webkit-scrollbar { width: 9px; }.privacy-policy__body::-webkit-scrollbar-thumb { border-radius: 10px; background: #afc9e5; }.privacy-policy__section { padding: 28px 0 31px; border-bottom: 1px solid #dce8f5; scroll-margin-top: 8px; }.privacy-policy__section h3 { margin: 0 0 12px; color: var(--ng-navy); font-size: clamp(24px, 2.15vw, 37px); letter-spacing: -.045em; line-height: 1.04; }.privacy-policy__section h3 span { margin-right: 10px; color: var(--ng-blue); }.privacy-policy__section h4 { margin: 25px 0 8px; color: var(--ng-navy); font-size: 16px; }.privacy-policy__section p { max-width: 1060px; margin: 0 0 11px; color: #30466d; font-size: 14px; line-height: 1.52; }.privacy-policy__overview { display: grid; grid-template-columns: minmax(0, 1fr) 232px; gap: 27px; align-items: start; }.privacy-policy__security-card { padding: 20px; border-radius: 10px; background: #eaf5ff; }.privacy-policy__security-card svg { width: 38px; height: 38px; color: var(--ng-blue); }.privacy-policy__security-card p { margin: 11px 0; color: var(--ng-navy); font-weight: 700; line-height: 1.3; }.privacy-policy__security-card i { display: block; width: 52px; height: 3px; margin: 17px 0; background: var(--ng-orange); }.privacy-policy__security-card q { color: #556985; font-size: 12px; font-style: italic; line-height: 1.35; }.privacy-policy__cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; }.privacy-policy__cards article { position: relative; min-height: 130px; padding: 17px 16px 14px; border: 1px solid #d5e6f8; border-radius: 10px; background: rgba(255,255,255,.7); }.privacy-policy__cards article > span { position: absolute; top: 13px; right: 14px; color: #9ab5d4; font-size: 11px; font-weight: 800; }.privacy-policy__cards svg { width: 27px; height: 27px; color: var(--ng-blue); }.privacy-policy__cards h4 { margin: 6px 0 5px; font-size: 14px; }.privacy-policy__cards p { margin: 0; font-size: 12px; line-height: 1.35; }.privacy-policy__use-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 19px 0 0; padding: 0; list-style: none; }.privacy-policy__use-list li { display: grid; grid-template-columns: 9px 1fr; column-gap: 10px; padding: 13px; border-radius: 8px; background: #eef6ff; }.privacy-policy__use-list li::before { grid-row: 1 / span 2; width: 7px; border-radius: 7px; background: var(--ng-orange); content: ""; }.privacy-policy__use-list b { color: var(--ng-navy); font-size: 14px; }.privacy-policy__use-list span { color: #4c6180; font-size: 12px; line-height: 1.4; }.privacy-policy__security-panel { display: flex; gap: 18px; align-items: flex-start; padding: 20px; border: 1px solid #cde1f5; border-radius: 11px; background: #eaf5ff; }.privacy-policy__security-panel svg { flex: 0 0 auto; width: 44px; height: 44px; color: var(--ng-blue); }.privacy-policy__security-panel h4 { margin: 0 0 6px; font-size: 17px; }.privacy-policy__security-panel p { margin: 0; }.privacy-policy__rights { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }.privacy-policy__rights article { display: flex; min-width: 130px; flex: 1 1 130px; align-items: center; gap: 8px; padding: 13px; border: 1px solid #d6e6f8; border-radius: 9px; color: var(--ng-navy); background: #fff; }.privacy-policy__rights svg { width: 25px; height: 25px; color: var(--ng-blue); }.privacy-policy__rights strong { font-size: 12px; }.privacy-policy__contacts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 20px 0 5px; }.privacy-policy__contacts a { display: flex; align-items: center; gap: 9px; min-width: 0; padding: 12px; border: 1px solid #d4e5f7; border-radius: 8px; color: var(--ng-navy); background: #fff; font-size: 12px; text-decoration: none; }.privacy-policy__contacts a:hover { border-color: var(--ng-blue); color: var(--ng-blue); }.privacy-policy__contacts a span { display: grid; flex: 0 0 23px; width: 23px; height: 23px; place-items: center; border-radius: 50%; color: #fff; background: var(--ng-blue); font-weight: 800; }.privacy-policy__updated { margin-top: 20px !important; }.privacy-policy__footer { display: grid; grid-template-columns: 1fr auto auto; gap: 18px; align-items: center; flex: 0 0 auto; padding: 14px 30px 17px; color: #62728b; font-size: 11px; }.privacy-policy__footer p { margin: 0; }.privacy-policy__footer nav { display: flex; align-items: center; gap: 9px; }.privacy-policy__footer button { padding: 0; border: 0; color: #536784; background: transparent; cursor: pointer; font: inherit; }.privacy-policy__footer button:hover, .privacy-policy__footer button.is-current { color: var(--ng-blue); }.privacy-policy__accept { min-height: 47px; padding: 0 25px; border: 0; border-radius: 8px; color: #fff !important; background: var(--ng-orange) !important; font-size: 14px !important; font-weight: 800 !important; }.privacy-policy__accept:hover { background: var(--ng-orange-dark) !important; }
@media (max-width: 1180px) { .legal-modal__brand { padding-left: 30px; padding-right: 30px; }.legal-modal__brand-image { margin-left: -30px; margin-right: -30px; }.privacy-policy__header { padding-left: 25px; }.privacy-policy__nav, .privacy-policy__body { margin-left: 25px; margin-right: 25px; padding-left: 0; padding-right: 0; }.privacy-policy__footer { padding-left: 25px; padding-right: 25px; }.privacy-policy__tab { font-size: 10px; } }
@media (max-width: 1023px) { .legal-modal { width: min(94vw, 900px); height: 92vh; }.legal-modal__shell { grid-template-columns: 29% 71%; }.legal-modal__brand { padding: 27px 22px; }.legal-modal__brand-logo { width: 160px; }.legal-modal__script { margin-top: 30px; font-size: 21px; }.legal-modal__brand-message p { font-size: 13px; }.privacy-policy__header { padding-top: 31px; }.privacy-policy__script { display: none; }.privacy-policy__cards { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 767px) { .legal-modal { inset: 0; width: 100%; height: 100dvh; max-height: 100dvh; border: 0; border-radius: 0; }.legal-modal__shell { display: flex; flex-direction: column; }.legal-modal__brand { display: block; flex: 0 0 auto; min-height: 92px; padding: calc(12px + env(safe-area-inset-top)) 65px 13px 20px; background: linear-gradient(110deg, #061e49, #0d4d9a); }.legal-modal__brand::after, .legal-modal__brand-image, .legal-modal__script, .legal-modal__brand-message { display: none; }.legal-modal__brand-top { display: grid; grid-template-columns: 142px 1fr; align-items: end; gap: 10px; }.legal-modal__brand-logo { width: 142px; }.legal-modal__tagline { margin: -12px 0 0; font-size: 8px; }.legal-modal__orange-rule { width: 77px; height: 3px; margin-top: 6px; }.legal-modal__security { position: absolute; top: 50%; right: 63px; margin: 0; padding: 0; transform: translateY(-50%); }.legal-modal__security span { width: 30px; height: 30px; }.legal-modal__security svg { width: 30px; height: 30px; }.legal-modal__security p { display: none; }.legal-modal__close { top: calc(11px + env(safe-area-inset-top)); right: 15px; width: 45px; height: 45px; color: var(--ng-navy); background: #eaf3fc; font-size: 30px; }.legal-modal__content { min-height: 0; flex: 1; }.privacy-policy__header { display: block; padding: 25px 20px 17px; }.privacy-policy__eyebrow { margin-bottom: 16px; font-size: 11px; }.privacy-policy__eyebrow span { width: 35px; }.privacy-policy__header h2 { font-size: clamp(2.25rem, 10vw, 3rem); line-height: .99; }.privacy-policy__intro { font-size: 16px; line-height: 1.45; }.privacy-policy__nav { display: flex; overflow-x: auto; gap: 8px; margin: 0; padding: 0 20px 13px; border-bottom: 1px solid #dce8f5; scrollbar-width: none; }.privacy-policy__nav::-webkit-scrollbar { display: none; }.privacy-policy__tab { flex: 0 0 132px; min-height: 60px; padding: 8px 6px; font-size: 10px; }.privacy-policy__tab svg { width: 23px; height: 23px; }.privacy-policy__body { margin: 0; padding: 0 20px; overscroll-behavior: contain; }.privacy-policy__section { padding: 25px 0 28px; }.privacy-policy__section h3 { font-size: 27px; }.privacy-policy__section p { font-size: 16px; line-height: 1.55; }.privacy-policy__overview { display: block; }.privacy-policy__security-card { margin-top: 19px; }.privacy-policy__cards, .privacy-policy__use-list, .privacy-policy__contacts { grid-template-columns: 1fr; }.privacy-policy__cards article { min-height: 0; }.privacy-policy__cards p, .privacy-policy__use-list span, .privacy-policy__contacts a { font-size: 14px; }.privacy-policy__use-list b { font-size: 15px; }.privacy-policy__security-panel { padding: 16px; }.privacy-policy__rights { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); }.privacy-policy__rights article { min-width: 0; }.privacy-policy__footer { grid-template-columns: 1fr; gap: 13px; padding: 15px 20px calc(15px + env(safe-area-inset-bottom)); font-size: 12px; }.privacy-policy__footer nav { order: 1; flex-wrap: wrap; }.privacy-policy__accept { width: 100%; min-height: 53px; order: 2; } }
@media (prefers-reduced-motion: reduce) { .legal-modal, .privacy-policy__tab, .privacy-policy__body { transition: none; scroll-behavior: auto; transform: none; } }
.terms-service__nav { grid-template-columns: repeat(5, minmax(0, 1fr)); }.terms-service__tab { min-height: 73px; }.terms-service__tab svg { stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }.terms-service__rules { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 18px; }.terms-service__rules div { display: flex; align-items: flex-start; gap: 10px; padding: 11px 13px; border: 1px solid #d5e6f8; border-radius: 8px; color: #30466d; background: rgba(255,255,255,.72); font-size: 13px; line-height: 1.35; }.terms-service__rules div::before { display: grid; flex: 0 0 19px; width: 19px; height: 19px; place-items: center; border-radius: 50%; color: #fff; background: var(--ng-blue); content: "✓"; font-size: 12px; font-weight: 800; }.terms-service__overview { display: grid; grid-template-columns: minmax(0, 1fr) 232px; gap: 27px; align-items: start; }.terms-service__callout q { display: block; }.terms-service__contact .privacy-policy__contacts { margin-bottom: 20px; }
@media (max-width: 1023px) { .terms-service__nav { grid-template-columns: repeat(4, minmax(0, 1fr)); }.terms-service__tab { min-height: 68px; }.terms-service__rules { grid-template-columns: 1fr; } }
@media (max-width: 767px) { .terms-service__nav { display: flex; }.terms-service__tab { min-height: 60px; }.terms-service__overview { display: block; }.terms-service__rules { grid-template-columns: 1fr; }.terms-service__rules div { font-size: 14px; } }

/* Give long-form legal copy a more comfortable reading rhythm. */
.legal-modal .privacy-policy__section { padding-top: 38px; padding-bottom: 43px; }
.legal-modal .privacy-policy__section h3 { margin-bottom: 18px; }
.legal-modal .privacy-policy__section p { margin-bottom: 20px; color: #30466d; font-size: 16px; line-height: 1.7; }
.legal-modal .privacy-policy__section h4 { margin-top: 32px; margin-bottom: 11px; }
.legal-modal .privacy-policy__cards { gap: 15px; }
.legal-modal .privacy-policy__cards article { min-height: 155px; padding: 21px 19px 18px; }
.legal-modal .privacy-policy__cards h4 { margin-top: 10px; }
.legal-modal .privacy-policy__cards p { font-size: 14px; line-height: 1.48; }
.legal-modal .privacy-policy__use-list { gap: 15px; margin-top: 24px; }
.legal-modal .privacy-policy__use-list li { padding: 17px 15px; }
.legal-modal .privacy-policy__security-panel { margin-top: 20px; padding: 24px; }
.legal-modal .privacy-policy__rights { gap: 14px; margin-top: 25px; }
.legal-modal .privacy-policy__rights article { padding: 16px 14px; }
.legal-modal .privacy-policy__contacts { gap: 14px; margin-top: 25px; }
.terms-service__rules { gap: 13px; margin-top: 24px; }
.terms-service__rules div { padding: 15px 14px; font-size: 14px; line-height: 1.5; }
@media (max-width: 767px) { .legal-modal .legal-modal__close { color: var(--ng-navy); background: #eaf3fc; } }
@media (min-width: 768px) and (max-height: 800px) {
  .legal-modal { height: 94vh; }
  .legal-modal__brand { padding-top: 27px; padding-bottom: 24px; }
  .legal-modal__script { margin-top: 32px; }
  .privacy-policy__header { padding-top: 25px; padding-bottom: 13px; }
  .privacy-policy__eyebrow { margin-bottom: 13px; }
  .privacy-policy__header h2 { max-width: 850px; margin-bottom: 8px; font-size: clamp(2.55rem, 3.5vw, 3.7rem); }
  .privacy-policy__intro { font-size: 15px; line-height: 1.3; }
  .privacy-policy__nav { padding-bottom: 9px; }
  .privacy-policy__tab { min-height: 62px; gap: 5px; }
  .privacy-policy__tab svg { width: 24px; height: 24px; }
  .privacy-policy__footer { padding-top: 9px; padding-bottom: 10px; }
}
.privacy-policy__accept { min-width: 154px; padding-left: 18px; padding-right: 18px; white-space: nowrap; }
@media (max-width: 767px) {
  .legal-modal .privacy-policy__section { padding-top: 32px; padding-bottom: 37px; }
  .legal-modal .privacy-policy__section h3 { margin-bottom: 16px; }
  .legal-modal .privacy-policy__section p { margin-bottom: 19px; line-height: 1.62; }
  .legal-modal .privacy-policy__cards { gap: 13px; }
  .legal-modal .privacy-policy__cards article { min-height: 0; padding: 19px 17px 18px; }
  .legal-modal .privacy-policy__use-list { gap: 12px; margin-top: 20px; }
  .legal-modal .privacy-policy__use-list li { padding: 15px 13px; }
  .legal-modal .privacy-policy__security-panel { padding: 19px; }
  .legal-modal .privacy-policy__contacts { gap: 12px; margin-top: 20px; }
  .terms-service__rules { gap: 11px; margin-top: 20px; }
  .terms-service__rules div { padding: 14px 13px; line-height: 1.48; }
}
@media (max-width: 767px) { .legal-modal .legal-modal__close { color: var(--ng-navy); background: #eaf3fc; } }
@media (max-width: 1180px) { .legal-modal__brand { padding-left: 30px; padding-right: 30px; }.legal-modal__brand-image { margin-left: -30px; margin-right: -30px; }.privacy-policy__header { padding-left: 25px; }.privacy-policy__nav, .privacy-policy__body { margin-left: 25px; margin-right: 25px; padding-left: 0; padding-right: 0; }.privacy-policy__footer { padding-left: 25px; padding-right: 25px; }.privacy-policy__tab { font-size: 10px; } }
@media (max-width: 1023px) { .legal-modal { width: min(94vw, 900px); height: 92vh; }.legal-modal__shell { grid-template-columns: 29% 71%; }.legal-modal__brand { padding: 27px 22px; }.legal-modal__brand-logo { width: 160px; }.legal-modal__script { margin-top: 30px; font-size: 21px; }.legal-modal__brand-message p { font-size: 13px; }.privacy-policy__header { padding-top: 31px; }.privacy-policy__script { display: none; }.privacy-policy__cards { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 767px) { .legal-modal { inset: 0; width: 100%; height: 100dvh; max-height: 100dvh; border: 0; border-radius: 0; }.legal-modal__shell { display: flex; flex-direction: column; }.legal-modal__brand { display: block; flex: 0 0 auto; min-height: 92px; padding: calc(12px + env(safe-area-inset-top)) 65px 13px 20px; background: linear-gradient(110deg, #061e49, #0d4d9a); }.legal-modal__brand::after, .legal-modal__brand-image, .legal-modal__script, .legal-modal__brand-message { display: none; }.legal-modal__brand-top { display: grid; grid-template-columns: 142px 1fr; align-items: end; gap: 10px; }.legal-modal__brand-logo { width: 142px; }.legal-modal__tagline { margin: -12px 0 0; font-size: 8px; }.legal-modal__orange-rule { width: 77px; height: 3px; margin-top: 6px; }.legal-modal__security { position: absolute; top: 50%; right: 63px; margin: 0; padding: 0; transform: translateY(-50%); }.legal-modal__security span { width: 30px; height: 30px; }.legal-modal__security svg { width: 30px; height: 30px; }.legal-modal__security p { display: none; }.legal-modal__close { top: calc(11px + env(safe-area-inset-top)); right: 15px; width: 45px; height: 45px; color: #fff; background: rgba(255,255,255,.17); font-size: 30px; }.legal-modal__content { min-height: 0; flex: 1; }.privacy-policy__header { display: block; padding: 25px 20px 17px; }.privacy-policy__eyebrow { margin-bottom: 16px; font-size: 11px; }.privacy-policy__eyebrow span { width: 35px; }.privacy-policy__header h2 { font-size: clamp(2.25rem, 10vw, 3rem); line-height: .99; }.privacy-policy__intro { font-size: 16px; line-height: 1.45; }.privacy-policy__nav { display: flex; overflow-x: auto; gap: 8px; margin: 0; padding: 0 20px 13px; border-bottom: 1px solid #dce8f5; scrollbar-width: none; }.privacy-policy__nav::-webkit-scrollbar { display: none; }.privacy-policy__tab { flex: 0 0 132px; min-height: 60px; padding: 8px 6px; font-size: 10px; }.privacy-policy__tab svg { width: 23px; height: 23px; }.privacy-policy__body { margin: 0; padding: 0 20px; overscroll-behavior: contain; }.privacy-policy__section { padding: 25px 0 28px; }.privacy-policy__section h3 { font-size: 27px; }.privacy-policy__section p { font-size: 16px; line-height: 1.55; }.privacy-policy__overview { display: block; }.privacy-policy__security-card { margin-top: 19px; }.privacy-policy__cards, .privacy-policy__use-list, .privacy-policy__contacts { grid-template-columns: 1fr; }.privacy-policy__cards article { min-height: 0; }.privacy-policy__cards p, .privacy-policy__use-list span, .privacy-policy__contacts a { font-size: 14px; }.privacy-policy__use-list b { font-size: 15px; }.privacy-policy__security-panel { padding: 16px; }.privacy-policy__rights { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); }.privacy-policy__rights article { min-width: 0; }.privacy-policy__footer { grid-template-columns: 1fr; gap: 13px; padding: 15px 20px calc(15px + env(safe-area-inset-bottom)); font-size: 12px; }.privacy-policy__footer nav { order: 1; flex-wrap: wrap; }.privacy-policy__accept { width: 100%; min-height: 53px; order: 2; } }
@media (prefers-reduced-motion: reduce) { .legal-modal, .privacy-policy__tab, .privacy-policy__body { transition: none; scroll-behavior: auto; transform: none; } }
.legal-dialog { width: min(620px, calc(100% - 32px)); padding: 0; border: 0; border-radius: 18px; color: var(--ng-navy); background: #fff; box-shadow: 0 30px 100px rgba(3,18,51,.35); }.legal-dialog::backdrop { background: rgba(3,17,44,.68); backdrop-filter: blur(5px); }.legal-dialog__inner { position: relative; padding: 48px 38px 42px; }.legal-dialog__inner h2 { margin: 0 0 15px; font-size: clamp(2rem, 4vw, 3rem); line-height: 1; }.legal-dialog__inner > p:last-child { color: #4d5f7c; font-size: 15px; line-height: 1.7; }
.site-footer__logo img { filter: none; border-radius: 4px; }
.site-footer__tanzania-mainland { fill: currentColor; stroke: rgba(255,255,255,.55); stroke-width: 1.5; stroke-linejoin: round; }
.site-footer__tanzania-lake { fill: rgba(255,255,255,.2); }
.site-footer__tanzania-zanzibar { fill: var(--ng-orange); stroke: rgba(255,255,255,.65); stroke-width: 1; }
.project-enquiry__privacy-link { padding: 0; border: 0; color: var(--ng-blue); background: transparent; cursor: pointer; font: inherit; text-decoration: underline; }
.insights-newsletter__feedback button, .site-footer__newsletter-feedback button { padding: 0; border: 0; color: inherit; background: transparent; cursor: pointer; font: inherit; text-decoration: underline; }
.privacy-policy__nav.is-expanded { display: flex; overflow-x: auto; scrollbar-width: thin; }.privacy-policy__nav.is-expanded .privacy-policy__tab { flex: 0 0 145px; }
@media (max-width: 767px) { .privacy-policy__nav.is-expanded { display: flex; } }

/* Touch-sized controls for the existing homepage components on small screens. */
@media (max-width: 767px) {
  .mobile-menu-toggle, .mobile-nav-close, .portfolio-arrow, .industry-card__action, .insight-action, .insights-hub__cta { min-width: 44px; min-height: 44px; }
  .mobile-menu-toggle { justify-content: center; }
  .insight-action { padding: 8px 0; }
}

.project-enquiry__upload.is-dragging { border-color: var(--ng-blue); background: #edf5ff; }
.project-enquiry__file-list button { align-self: flex-start; padding: 0; border: 0; color: #c63b3b; background: transparent; font: inherit; font-size: 10px; text-decoration: underline; }
.project-enquiry__field input, .project-enquiry__field select, .project-enquiry__field textarea { background-repeat: no-repeat; background-position: 12px center; }
#contact-name { padding-left: 39px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none'%3E%3Ccircle cx='12' cy='8' r='3' stroke='%237487a3' stroke-width='1.7'/%3E%3Cpath d='M5 20c.4-3.5 2.8-5.5 7-5.5s6.6 2 7 5.5' stroke='%237487a3' stroke-width='1.7' stroke-linecap='round'/%3E%3C/svg%3E"); }
#contact-business { padding-left: 39px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M4 21V5h16v16M8 9h2M14 9h2M8 13h2M14 13h2M8 17h2M14 17h2' stroke='%237487a3' stroke-width='1.7' stroke-linecap='round'/%3E%3C/svg%3E"); }
#contact-email { padding-left: 39px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none'%3E%3Crect x='3' y='5' width='18' height='14' rx='2' stroke='%237487a3' stroke-width='1.7'/%3E%3Cpath d='m4 7 8 6 8-6' stroke='%237487a3' stroke-width='1.7' stroke-linejoin='round'/%3E%3C/svg%3E"); }
#contact-phone { padding-left: 39px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M6 3.5 9.5 3l2 4.7-2.1 1.7a13 13 0 0 0 5.2 5.2l1.7-2.1 4.7 2L20.5 18c-.3 1.3-1.5 2.2-2.8 2-7.2-1.1-12.6-6.5-13.7-13.7C3.8 5 4.7 3.8 6 3.5Z' stroke='%237487a3' stroke-width='1.7' stroke-linejoin='round'/%3E%3C/svg%3E"); }
#contact-service { padding-left: 39px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M5 6h14M5 12h14M5 18h14M2.5 6h.01M2.5 12h.01M2.5 18h.01' stroke='%237487a3' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E"); }
#contact-message { padding-left: 39px; background-position: 12px 13px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M4 5h16v12H8l-4 3V5Z' stroke='%237487a3' stroke-width='1.7' stroke-linejoin='round'/%3E%3Cpath d='M8 9h8M8 13h5' stroke='%237487a3' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E"); }

.portfolio-page {
  background: #080b0a;
  color: #fff;
}

.portfolio-page-header,
.portfolio-stack {
  width: min(1500px, calc(100% - 64px));
  margin: 0 auto;
}

.portfolio-page-header {
  padding: clamp(72px, 11vw, 160px) 0 64px;
}

.portfolio-page-kicker {
  margin: 0 0 18px;
  color: #d6a04a;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.portfolio-page-header h1 {
  margin: 0 0 18px;
  font-size: clamp(3.5rem, 8vw, 8rem);
  line-height: .9;
  letter-spacing: -.05em;
}

.portfolio-page-header > p:last-child {
  max-width: 560px;
  margin: 0;
  color: #b8c0bb;
  font-size: 18px;
  line-height: 1.6;
}

.portfolio-stack {
  display: grid;
  gap: 32px;
  padding-bottom: 80px;
}

.portfolio-stack-project {
  display: grid;
  grid-template-columns: minmax(320px, .8fr) minmax(0, 1.5fr);
  align-items: center;
  gap: clamp(32px, 6vw, 96px);
  min-height: min(720px, 72vh);
  padding: clamp(32px, 5vw, 80px);
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.12);
  background: #151719;
}

.portfolio-stack-safari {
  background: linear-gradient(105deg, #0b1b10, #1e3520 48%, #5e3b1d);
}

.portfolio-stack-church {
  background: linear-gradient(105deg, #061a38, #152d69 52%, #31205d);
}

.portfolio-stack-copy {
  position: relative;
  z-index: 1;
}

.portfolio-stack-copy h2 {
  margin: 0 0 14px;
  font-size: clamp(2.8rem, 5vw, 5.6rem);
  line-height: .9;
  text-transform: uppercase;
}

.portfolio-stack-copy h2 span { color: #e21f2b; }
.portfolio-stack-safari h2 span { color: #f0ce91; }

.portfolio-stack-category {
  margin: 0 0 34px;
  color: #c6cbc8;
  font-size: 12px;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.portfolio-stack-copy h3 {
  margin: 0 0 18px;
  font-size: clamp(2rem, 3.6vw, 4rem);
  line-height: 1;
}

.portfolio-stack-copy h3 span { color: #e21f2b; }
.portfolio-stack-safari .portfolio-stack-copy h3 { font-family: Georgia, "Times New Roman", serif; font-weight: 600; }
.portfolio-stack-safari .portfolio-stack-copy h3 span { color: #f0ce91; }

.portfolio-stack-copy > p:not(.portfolio-page-kicker):not(.portfolio-stack-category) {
  max-width: 530px;
  margin: 0 0 30px;
  color: #eef1ee;
  font-size: 16px;
  line-height: 1.65;
}

.portfolio-stack-visual {
  display: block;
  transform: translateX(3%);
  transition: transform 300ms ease;
}

.portfolio-stack-visual:hover { transform: translateX(3%) scale(1.025); }
.portfolio-stack-visual img { width: 100%; height: auto; }
.portfolio-stack-safari-button { background: #a9631d; color: #fff; }
.portfolio-stack-church-button { background: linear-gradient(100deg, #405aff, #784cff); color: #fff; }
.portfolio-stack-kaditeki {
  background: linear-gradient(105deg, #041427, #123b68 52%, #3a2929);
}
.portfolio-stack-kaditeki-button { background: linear-gradient(135deg, #ff5b00, #ff8500); color: #fff; }
.portfolio-stack-logo { width: 54px; height: 54px; object-fit: contain; vertical-align: middle; margin-right: 12px; border-radius: 50%; }

@media (max-width: 800px) {
  .portfolio-page-header,
  .portfolio-stack { width: min(100% - 40px, 620px); }
  .portfolio-page-header { padding: 64px 0 40px; }
  .portfolio-stack-project { grid-template-columns: 1fr; gap: 34px; padding: 28px 22px 34px; }
  .portfolio-stack-visual { transform: none; }
  .portfolio-stack-visual:hover { transform: scale(1.015); }
}

/* ==========================================================================
   Our Work — Portfolio Showcase (data-driven, one project at a time)
   ========================================================================== */

.portfolio {
  --z-bg: 1;
  --z-bg-image: 2;
  --z-visual: 3;
  --z-content: 4;
  --portfolio-accent: #e21f2b;
  --portfolio-accent-soft: rgba(226, 31, 43, 0.14);

  position: relative;
  overflow: hidden;
  background: #06080a;
  color: #fff;
  min-height: 780px;
  display: flex;
  flex-direction: column;
}

.portfolio-bg {
  position: absolute;
  inset: 0;
  z-index: var(--z-bg);
  transition: opacity 550ms ease;
}

.portfolio-bg.is-transitioning {
  opacity: .5;
}

.portfolio-bg-gradient {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(1000px 700px at 82% 30%, color-mix(in srgb, var(--portfolio-accent) 16%, transparent), transparent 65%),
    linear-gradient(
      90deg,
      #050607 0%,
      #0a0a0b 30%,
      color-mix(in srgb, var(--portfolio-accent) 20%, #120a0a) 62%,
      color-mix(in srgb, var(--portfolio-accent) 10%, #0d0808) 100%
    );
  transition: background 550ms ease;
}

.portfolio-bg::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image: var(--portfolio-bg-image);
  background-position: center;
  background-size: cover;
  opacity: 0;
  transition: opacity 600ms ease;
}

.portfolio-safari .portfolio-bg::before {
  opacity: 0.42;
}

.portfolio-safari .portfolio-bg-gradient {
  background:
    linear-gradient(90deg, rgba(8, 18, 10, .97) 0%, rgba(12, 27, 15, .89) 30%, rgba(24, 34, 19, .56) 57%, rgba(40, 29, 15, .28) 100%),
    linear-gradient(180deg, rgba(13, 26, 16, .2), rgba(5, 12, 8, .55));
}

.portfolio-inner {
  position: relative;
  z-index: var(--z-content);
  flex: 1;
  max-width: 1600px;
  width: 100%;
  margin: 0 auto;
  padding: clamp(56px, 7vh, 96px) clamp(32px, 4vw, 72px) 40px;
  display: grid;
  grid-template-columns: minmax(420px, 37%) 1fr;
  align-items: center;
  gap: 40px;
}

.portfolio-content {
  position: relative;
  transition: opacity 500ms ease, transform 500ms ease;
}

.portfolio-eyebrow {
  color: #fff;
}

.portfolio-eyebrow-rule {
  background: var(--portfolio-accent);
}

.portfolio-project-name {
  margin: 18px 0 10px;
  font-size: clamp(2.1rem, 3vw, 3.1rem);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.01em;
}

.portfolio-name-primary {
  color: #fff;
}

.portfolio-name-accent {
  color: var(--portfolio-accent);
}

.portfolio-category {
  margin: 0 0 26px;
  font-size: 16px;
  color: #d9dbe0;
  letter-spacing: 0.01em;
}

.portfolio-project-type {
  margin: 0 0 8px;
  color: #e6d4ad;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .24em;
  text-transform: uppercase;
}

.portfolio-headline {
  margin: 0 0 18px;
  font-size: clamp(2rem, 3vw, 3.2rem);
  font-weight: 800;
  line-height: 1.06;
}

.portfolio-headline-primary {
  display: block;
  color: #fff;
}

.portfolio-headline-accent {
  display: block;
  color: var(--portfolio-accent);
}

.portfolio-safari .portfolio-project-name {
  font-size: clamp(3.5rem, 5vw, 5rem);
  line-height: .92;
  text-transform: uppercase;
}

.portfolio-safari .portfolio-name-primary,
.portfolio-safari .portfolio-name-accent {
  display: block;
}

.portfolio-safari .portfolio-name-accent {
  color: #fff;
}

.portfolio-safari .portfolio-project-type,
.portfolio-safari .portfolio-category,
.portfolio-safari .portfolio-headline-accent,
.portfolio-safari .portfolio-feature-icon,
.portfolio-safari .portfolio-meta-icon {
  color: #e4b76b;
}

.portfolio-safari .portfolio-headline {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 600;
  letter-spacing: -.02em;
}

.portfolio-safari .portfolio-headline-primary {
  color: #f1d29b;
}

.portfolio-safari .portfolio-category {
  letter-spacing: .13em;
  font-size: 12px;
  text-transform: uppercase;
}

.portfolio-safari .portfolio-features {
  grid-template-columns: repeat(3, 1fr);
}

.portfolio-safari .portfolio-features li {
  background: rgba(21, 39, 23, .64);
  border-color: rgba(215, 174, 101, .12);
  backdrop-filter: blur(8px);
}

.portfolio-safari .portfolio-feature-icon {
  background: rgba(7, 24, 13, .58);
  border-color: rgba(215, 174, 101, .12);
}

.portfolio-safari .portfolio-cta-primary {
  background: #a9631d;
}

.portfolio-safari .portfolio-cta-primary:hover,
.portfolio-safari .portfolio-cta-primary:focus-visible {
  background: #c27b2d;
}

.portfolio-safari .portfolio-visual-frame {
  filter: drop-shadow(0 28px 30px rgba(0, 0, 0, .42));
}

.portfolio-safari .portfolio-visual-img {
  aspect-ratio: 1774 / 887;
  object-fit: cover;
  object-position: right center;
  border-radius: 18px;
}

.portfolio-church-blue-violet .portfolio-bg-gradient {
  background:
    radial-gradient(780px 540px at 73% 25%, rgba(83, 106, 255, .2), transparent 68%),
    radial-gradient(540px 420px at 58% 78%, rgba(112, 76, 255, .16), transparent 68%),
    linear-gradient(90deg, rgba(3, 16, 39, .98) 0%, rgba(7, 28, 61, .93) 30%, rgba(25, 39, 91, .65) 58%, rgba(35, 26, 68, .3) 100%);
}

.portfolio-church-blue-violet .portfolio-bg::before {
  opacity: .36;
  background-position: center;
}

.portfolio-church-blue-violet .portfolio-project-name {
  font-size: clamp(3.35rem, 4.8vw, 4.7rem);
  line-height: .92;
  text-transform: uppercase;
}

.portfolio-church-blue-violet .portfolio-name-accent,
.portfolio-church-blue-violet .portfolio-headline-accent {
  color: #8a73ff;
  background: linear-gradient(90deg, #9c78ff, #4b8dff);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.portfolio-church-blue-violet .portfolio-project-type,
.portfolio-church-blue-violet .portfolio-category,
.portfolio-church-blue-violet .portfolio-feature-icon,
.portfolio-church-blue-violet .portfolio-meta-icon {
  color: #aebcff;
}

.portfolio-church-blue-violet .portfolio-headline {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 600;
}

.portfolio-church-blue-violet .portfolio-headline-primary {
  color: #f6f4ff;
}

.portfolio-church-blue-violet .portfolio-category {
  letter-spacing: .11em;
  font-size: 11px;
  text-transform: uppercase;
}

.portfolio-church-blue-violet .portfolio-features {
  grid-template-columns: repeat(4, 1fr);
}

.portfolio-church-blue-violet .portfolio-features li {
  background: rgba(7, 21, 46, .68);
  border-color: rgba(117, 98, 255, .25);
  box-shadow: 0 0 18px rgba(75, 141, 255, .08);
}

.portfolio-church-blue-violet .portfolio-feature-icon {
  background: rgba(24, 30, 78, .72);
  border-color: rgba(138, 99, 255, .34);
}

.portfolio-church-blue-violet .portfolio-cta-primary {
  background: linear-gradient(100deg, #405aff, #784cff);
  box-shadow: 0 10px 24px -8px rgba(91, 76, 255, .7);
}

.portfolio-church-blue-violet .portfolio-cta-primary:hover,
.portfolio-church-blue-violet .portfolio-cta-primary:focus-visible {
  background: linear-gradient(100deg, #536bff, #906bff);
}

.portfolio-church-blue-violet .portfolio-visual-frame {
  filter: drop-shadow(0 28px 30px rgba(1, 8, 25, .52));
}

.portfolio-church-blue-violet .portfolio-visual-img {
  aspect-ratio: 1774 / 887;
  object-fit: cover;
  object-position: right center;
  border-radius: 18px;
}

.portfolio-event-navy-orange .portfolio-bg-gradient {
  background:
    radial-gradient(800px 560px at 78% 28%, rgba(255, 106, 0, .16), transparent 68%),
    radial-gradient(620px 520px at 55% 76%, rgba(18, 80, 140, .22), transparent 68%),
    linear-gradient(90deg, rgba(3, 19, 39, .98) 0%, rgba(5, 28, 55, .93) 31%, rgba(14, 38, 67, .62) 57%, rgba(52, 31, 31, .28) 100%);
}

.portfolio-event-navy-orange .portfolio-bg::before {
  opacity: .35;
  background-position: center;
}

.portfolio-event-navy-orange .portfolio-project-name {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  font-size: clamp(3rem, 4vw, 4.5rem);
  line-height: .92;
  text-transform: uppercase;
}

.portfolio-event-navy-orange .portfolio-name-accent {
  color: #fff;
}

.portfolio-event-navy-orange .portfolio-project-type,
.portfolio-event-navy-orange .portfolio-category,
.portfolio-event-navy-orange .portfolio-feature-icon,
.portfolio-event-navy-orange .portfolio-meta-icon {
  color: #d8e1ed;
}

.portfolio-event-navy-orange .portfolio-category {
  letter-spacing: .09em;
  text-transform: uppercase;
}

.portfolio-event-navy-orange .portfolio-headline-primary {
  color: #fff;
}

.portfolio-event-navy-orange .portfolio-headline-accent {
  color: #ff7a12;
}

.portfolio-event-navy-orange .portfolio-features {
  grid-template-columns: repeat(4, 1fr);
}

.portfolio-event-navy-orange .portfolio-features li {
  background: rgba(4, 20, 39, .7);
  border-color: rgba(255, 106, 0, .22);
  box-shadow: inset 0 0 18px rgba(18, 59, 104, .22);
}

.portfolio-event-navy-orange .portfolio-feature-icon {
  background: rgba(7, 26, 52, .8);
  border-color: rgba(255, 106, 0, .35);
}

.portfolio-event-navy-orange .portfolio-cta-primary {
  background: linear-gradient(135deg, #ff5b00, #ff8500);
  box-shadow: 0 10px 24px -8px rgba(255, 106, 0, .7);
}

.portfolio-event-navy-orange .portfolio-cta-primary:hover,
.portfolio-event-navy-orange .portfolio-cta-primary:focus-visible {
  background: linear-gradient(135deg, #ff761a, #ff9a2e);
}

.portfolio-event-navy-orange .portfolio-visual-frame {
  filter: drop-shadow(0 28px 30px rgba(1, 8, 25, .55));
}

.portfolio-event-navy-orange .portfolio-visual-img {
  aspect-ratio: 1774 / 887;
  object-fit: cover;
  object-position: right center;
  border-radius: 18px;
}

.portfolio-safari-earth-gold .portfolio-bg-gradient {
  background:
    radial-gradient(900px 600px at 78% 25%, rgba(201, 154, 72, .16), transparent 68%),
    linear-gradient(90deg, rgba(10, 14, 10, .98) 0%, rgba(15, 19, 12, .93) 29%, rgba(38, 35, 23, .58) 55%, rgba(70, 51, 31, .18) 100%);
}

.portfolio-safari-earth-gold .portfolio-bg::before {
  opacity: .4;
  background-position: center;
}

.portfolio-safari-earth-gold .portfolio-project-name {
  font-size: clamp(3.2rem, 4.6vw, 4.6rem);
  line-height: .92;
  text-transform: uppercase;
}

.portfolio-safari-earth-gold .portfolio-project-type,
.portfolio-safari-earth-gold .portfolio-category,
.portfolio-safari-earth-gold .portfolio-feature-icon,
.portfolio-safari-earth-gold .portfolio-meta-icon {
  color: #d7b778;
}

.portfolio-safari-earth-gold .portfolio-category {
  letter-spacing: .1em;
  text-transform: uppercase;
}

.portfolio-safari-earth-gold .portfolio-headline {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 600;
}

.portfolio-safari-earth-gold .portfolio-headline-primary {
  color: #f6f0e4;
}

.portfolio-safari-earth-gold .portfolio-headline-accent {
  color: #d3a64e;
}

.portfolio-safari-earth-gold .portfolio-features {
  grid-template-columns: repeat(4, 1fr);
}

.portfolio-safari-earth-gold .portfolio-features li {
  background: rgba(24, 32, 24, .7);
  border-color: rgba(201, 154, 72, .25);
  box-shadow: inset 0 0 18px rgba(89, 71, 47, .24);
}

.portfolio-safari-earth-gold .portfolio-feature-icon {
  background: rgba(24, 32, 24, .82);
  border-color: rgba(201, 154, 72, .34);
}

.portfolio-safari-earth-gold .portfolio-cta-primary {
  background: linear-gradient(135deg, #b9822f, #d3a64e);
  box-shadow: 0 10px 24px -8px rgba(201, 154, 72, .58);
}

.portfolio-safari-earth-gold .portfolio-cta-primary:hover,
.portfolio-safari-earth-gold .portfolio-cta-primary:focus-visible {
  background: linear-gradient(135deg, #c9923b, #e2b966);
}

.portfolio-safari-earth-gold .portfolio-visual-frame {
  filter: drop-shadow(0 28px 30px rgba(8, 10, 7, .58));
}

.portfolio-safari-earth-gold .portfolio-visual-img {
  aspect-ratio: 1774 / 887;
  object-fit: cover;
  object-position: right center;
  border-radius: 18px;
}

.portfolio-restaurant-black-gold .portfolio-bg-gradient {
  background:
    radial-gradient(850px 560px at 78% 24%, rgba(217, 164, 65, .16), transparent 68%),
    linear-gradient(90deg, rgba(6, 6, 4, .99) 0%, rgba(8, 8, 5, .96) 27%, rgba(21, 15, 8, .72) 52%, rgba(42, 26, 12, .3) 100%);
}

.portfolio-restaurant-black-gold .portfolio-bg::before {
  opacity: .38;
  background-position: center;
}

.portfolio-restaurant-black-gold .portfolio-project-name {
  font-size: clamp(3.1rem, 4.5vw, 4.5rem);
  line-height: .92;
  text-transform: uppercase;
}

.portfolio-restaurant-black-gold .portfolio-project-type,
.portfolio-restaurant-black-gold .portfolio-category,
.portfolio-restaurant-black-gold .portfolio-feature-icon,
.portfolio-restaurant-black-gold .portfolio-meta-icon {
  color: #f1c76a;
}

.portfolio-restaurant-black-gold .portfolio-category {
  letter-spacing: .09em;
  text-transform: uppercase;
}

.portfolio-restaurant-black-gold .portfolio-headline {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 600;
}

.portfolio-restaurant-black-gold .portfolio-headline-primary {
  color: #f8f5ee;
}

.portfolio-restaurant-black-gold .portfolio-headline-accent {
  color: #d9a441;
}

.portfolio-restaurant-black-gold .portfolio-features {
  grid-template-columns: repeat(4, 1fr);
}

.portfolio-restaurant-black-gold .portfolio-features li {
  background: rgba(255, 255, 255, .05);
  border-color: rgba(217, 164, 65, .14);
  box-shadow: inset 0 0 18px rgba(73, 48, 29, .2);
}

.portfolio-restaurant-black-gold .portfolio-feature-icon {
  background: rgba(17, 17, 14, .8);
  border-color: rgba(217, 164, 65, .28);
}

.portfolio-restaurant-black-gold .portfolio-cta-primary {
  color: #17110a;
  background: linear-gradient(135deg, #d9a441, #f1c76a);
  box-shadow: 0 10px 24px -8px rgba(217, 164, 65, .55);
}

.portfolio-restaurant-black-gold .portfolio-cta-primary:hover,
.portfolio-restaurant-black-gold .portfolio-cta-primary:focus-visible {
  background: linear-gradient(135deg, #e6b451, #f7d584);
}

.portfolio-restaurant-black-gold .portfolio-visual-frame {
  filter: drop-shadow(0 28px 30px rgba(0, 0, 0, .6));
}

.portfolio-restaurant-black-gold .portfolio-visual-img {
  aspect-ratio: 1774 / 887;
  object-fit: cover;
  object-position: right center;
  border-radius: 18px;
}

.portfolio-electronics-navy-cyan .portfolio-bg-gradient {
  background:
    radial-gradient(900px 600px at 76% 24%, rgba(0, 200, 255, .17), transparent 68%),
    linear-gradient(90deg, rgba(2, 15, 29, .99) 0%, rgba(3, 22, 42, .96) 29%, rgba(7, 31, 52, .72) 52%, rgba(12, 29, 43, .2) 100%);
}

.portfolio-electronics-navy-cyan .portfolio-bg::before {
  opacity: .38;
  background-position: center;
}

.portfolio-electronics-navy-cyan .portfolio-project-name {
  font-size: clamp(3.2rem, 4.6vw, 4.7rem);
  line-height: .92;
  text-transform: uppercase;
}

.portfolio-electronics-navy-cyan .portfolio-name-accent,
.portfolio-electronics-navy-cyan .portfolio-headline-accent {
  color: #00c8ff;
}

.portfolio-electronics-navy-cyan .portfolio-project-type,
.portfolio-electronics-navy-cyan .portfolio-category,
.portfolio-electronics-navy-cyan .portfolio-feature-icon,
.portfolio-electronics-navy-cyan .portfolio-meta-icon {
  color: #59d9ff;
}

.portfolio-electronics-navy-cyan .portfolio-category {
  letter-spacing: .1em;
  text-transform: uppercase;
}

.portfolio-electronics-navy-cyan .portfolio-headline-primary {
  color: #f5faff;
}

.portfolio-electronics-navy-cyan .portfolio-features {
  grid-template-columns: repeat(4, 1fr);
}

.portfolio-electronics-navy-cyan .portfolio-features li {
  background: rgba(8, 43, 70, .72);
  border-color: rgba(0, 200, 255, .18);
  box-shadow: inset 0 0 18px rgba(0, 155, 232, .1);
}

.portfolio-electronics-navy-cyan .portfolio-feature-icon {
  background: rgba(6, 26, 48, .82);
  border-color: rgba(0, 200, 255, .3);
}

.portfolio-electronics-navy-cyan .portfolio-cta-primary {
  background: linear-gradient(135deg, #00bfef, #079be8);
  box-shadow: 0 10px 24px -8px rgba(0, 200, 255, .58);
}

.portfolio-electronics-navy-cyan .portfolio-cta-primary:hover,
.portfolio-electronics-navy-cyan .portfolio-cta-primary:focus-visible {
  background: linear-gradient(135deg, #22d4ff, #16a9ee);
}

.portfolio-electronics-navy-cyan .portfolio-visual-frame {
  filter: drop-shadow(0 28px 30px rgba(0, 9, 22, .62));
}

.portfolio-electronics-navy-cyan .portfolio-visual-img {
  aspect-ratio: 1774 / 887;
  object-fit: cover;
  object-position: right center;
  border-radius: 18px;
}

.portfolio-project-name-detail {
  margin: -2px 0 8px;
  color: var(--portfolio-accent);
  font-size: 15px;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.portfolio-kevi-admin-red .portfolio-bg-gradient {
  background:
    radial-gradient(800px 560px at 78% 28%, rgba(33, 87, 213, .16), transparent 68%),
    linear-gradient(90deg, rgba(8, 10, 18, .99) 0%, rgba(12, 17, 29, .96) 28%, rgba(15, 21, 33, .72) 48%, rgba(20, 25, 35, .18) 100%);
}

.portfolio-kevi-admin-red .portfolio-bg::before {
  opacity: .34;
  background-position: center;
}

.portfolio-kevi-admin-red .portfolio-project-name {
  font-size: clamp(2.9rem, 4vw, 4.3rem);
  line-height: .92;
  text-transform: uppercase;
}

.portfolio-kevi-admin-red .portfolio-project-name-detail {
  color: #f52d36;
}

.portfolio-kevi-admin-red .portfolio-project-type,
.portfolio-kevi-admin-red .portfolio-category,
.portfolio-kevi-admin-red .portfolio-feature-icon,
.portfolio-kevi-admin-red .portfolio-meta-icon {
  color: #c4cad5;
}

.portfolio-kevi-admin-red .portfolio-category {
  letter-spacing: .08em;
  text-transform: uppercase;
}

.portfolio-kevi-admin-red .portfolio-headline-primary {
  color: #f8f9fc;
}

.portfolio-kevi-admin-red .portfolio-headline-accent {
  color: #f52d36;
}

.portfolio-kevi-admin-red .portfolio-features {
  grid-template-columns: repeat(4, 1fr);
}

.portfolio-kevi-admin-red .portfolio-features li {
  background: rgba(21, 27, 43, .72);
  border-color: rgba(245, 45, 54, .14);
  box-shadow: inset 0 0 18px rgba(33, 87, 213, .1);
}

.portfolio-kevi-admin-red .portfolio-feature-icon {
  background: rgba(16, 23, 40, .82);
  border-color: rgba(196, 202, 213, .18);
}

.portfolio-kevi-admin-red .portfolio-cta-primary {
  background: #f52d36;
  box-shadow: 0 10px 24px -8px rgba(245, 45, 54, .58);
}

.portfolio-kevi-admin-red .portfolio-cta-primary:hover,
.portfolio-kevi-admin-red .portfolio-cta-primary:focus-visible {
  background: #d9232c;
}

.portfolio-kevi-admin-red .portfolio-visual-frame {
  filter: drop-shadow(0 28px 30px rgba(0, 0, 0, .62));
}

.portfolio-kevi-admin-red .portfolio-visual-img {
  aspect-ratio: 1774 / 887;
  object-fit: cover;
  object-position: right center;
  border-radius: 18px;
}

.portfolio-uza-green .portfolio-bg-gradient {
  background:
    radial-gradient(760px 560px at 66% 22%, rgba(115, 228, 169, .18), transparent 68%),
    linear-gradient(90deg, rgba(249, 253, 250, .98) 0%, rgba(238, 249, 242, .94) 35%, rgba(155, 226, 185, .58) 58%, rgba(35, 126, 84, .18) 100%);
}

.portfolio-uza-green .portfolio-bg::before {
  opacity: .3;
  background-position: center;
}

.portfolio-uza-green {
  color: #101b2c;
}

.portfolio-uza-green .portfolio-inner,
.portfolio-uza-green .portfolio-nav-bar {
  color: #101b2c;
}

.portfolio-uza-green .portfolio-eyebrow,
.portfolio-uza-green .portfolio-project-name,
.portfolio-uza-green .portfolio-feature-title,
.portfolio-uza-green .portfolio-meta-item dd,
.portfolio-uza-green .portfolio-counter {
  color: #101b2c;
}

.portfolio-uza-green .portfolio-eyebrow-rule {
  background: #0b8f4d;
}

.portfolio-uza-green .portfolio-project-name {
  font-size: clamp(3.2rem, 4.6vw, 4.7rem);
  line-height: .92;
  text-transform: uppercase;
}

.portfolio-uza-green .portfolio-name-accent,
.portfolio-uza-green .portfolio-headline-accent,
.portfolio-uza-green .portfolio-project-type,
.portfolio-uza-green .portfolio-category,
.portfolio-uza-green .portfolio-feature-icon,
.portfolio-uza-green .portfolio-meta-icon {
  color: #0b8f4d;
}

.portfolio-uza-green .portfolio-category {
  letter-spacing: .1em;
  text-transform: uppercase;
}

.portfolio-uza-green .portfolio-headline {
  font-weight: 800;
}

.portfolio-uza-green .portfolio-headline-primary {
  color: #101b2c;
}

.portfolio-uza-green .portfolio-description {
  color: #243449;
}

.portfolio-uza-green .portfolio-features {
  grid-template-columns: repeat(4, 1fr);
}

.portfolio-uza-green .portfolio-features li {
  background: rgba(255, 255, 255, .62);
  border-color: rgba(11, 143, 77, .12);
  box-shadow: 0 8px 24px -16px rgba(16, 27, 44, .3);
}

.portfolio-uza-green .portfolio-feature-icon {
  background: rgba(235, 249, 239, .86);
  border-color: rgba(11, 143, 77, .18);
}

.portfolio-uza-green .portfolio-cta-primary {
  color: #fff;
  background: #0b8f4d;
  box-shadow: 0 10px 24px -8px rgba(11, 143, 77, .42);
}

.portfolio-uza-green .portfolio-cta-primary:hover,
.portfolio-uza-green .portfolio-cta-primary:focus-visible {
  background: #08743e;
}

.portfolio-uza-green .portfolio-cta-secondary {
  color: #0b8f4d;
  border-color: rgba(11, 143, 77, .55);
  background: rgba(255, 255, 255, .5);
}

.portfolio-uza-green .portfolio-visual-frame {
  filter: drop-shadow(0 28px 30px rgba(16, 52, 35, .24));
}

.portfolio-uza-green .portfolio-visual-img {
  aspect-ratio: 1774 / 887;
  object-fit: cover;
  object-position: right center;
  border-radius: 18px;
}

.portfolio-education-blue .portfolio-bg-gradient {
  background:
    radial-gradient(760px 560px at 70% 20%, rgba(37, 131, 255, .15), transparent 68%),
    linear-gradient(90deg, rgba(245, 249, 255, .99) 0%, rgba(241, 247, 255, .95) 35%, rgba(173, 211, 255, .55) 58%, rgba(21, 62, 102, .18) 100%);
}

.portfolio-education-blue .portfolio-bg::before {
  opacity: .3;
  background-position: center;
}

.portfolio-education-blue {
  color: #071a3d;
}

.portfolio-education-blue .portfolio-inner,
.portfolio-education-blue .portfolio-nav-bar {
  color: #071a3d;
}

.portfolio-education-blue .portfolio-eyebrow,
.portfolio-education-blue .portfolio-project-name,
.portfolio-education-blue .portfolio-feature-title,
.portfolio-education-blue .portfolio-meta-item dd,
.portfolio-education-blue .portfolio-counter {
  color: #071a3d;
}

.portfolio-education-blue .portfolio-eyebrow-rule {
  background: #1677ff;
}

.portfolio-education-blue .portfolio-project-name {
  font-size: clamp(3.15rem, 4.5vw, 4.7rem);
  line-height: .92;
  text-transform: uppercase;
}

.portfolio-education-blue .portfolio-name-accent,
.portfolio-education-blue .portfolio-headline-accent,
.portfolio-education-blue .portfolio-project-type,
.portfolio-education-blue .portfolio-category,
.portfolio-education-blue .portfolio-feature-icon,
.portfolio-education-blue .portfolio-meta-icon {
  color: #1677ff;
}

.portfolio-education-blue .portfolio-category {
  letter-spacing: .08em;
  text-transform: uppercase;
}

.portfolio-education-blue .portfolio-headline-primary {
  color: #071a3d;
}

.portfolio-education-blue .portfolio-description {
  color: #33445e;
}

.portfolio-education-blue .portfolio-features {
  grid-template-columns: repeat(4, 1fr);
}

.portfolio-education-blue .portfolio-features li {
  background: rgba(255, 255, 255, .66);
  border-color: rgba(22, 119, 255, .12);
  box-shadow: 0 8px 24px -16px rgba(7, 26, 61, .28);
}

.portfolio-education-blue .portfolio-feature-icon {
  background: rgba(241, 247, 255, .9);
  border-color: rgba(22, 119, 255, .18);
}

.portfolio-education-blue .portfolio-cta-primary {
  background: #1677ff;
  box-shadow: 0 10px 24px -8px rgba(22, 119, 255, .42);
}

.portfolio-education-blue .portfolio-cta-primary:hover,
.portfolio-education-blue .portfolio-cta-primary:focus-visible {
  background: #0e5dcc;
}

.portfolio-education-blue .portfolio-cta-secondary {
  color: #071a3d;
  border-color: rgba(7, 26, 61, .5);
  background: rgba(255, 255, 255, .52);
}

.portfolio-education-blue .portfolio-visual-frame {
  filter: drop-shadow(0 28px 30px rgba(7, 26, 61, .24));
}

.portfolio-education-blue .portfolio-visual-img {
  aspect-ratio: 1774 / 887;
  object-fit: cover;
  object-position: right center;
  border-radius: 18px;
}

.portfolio-education-blue .portfolio-dot {
  background: rgba(22, 119, 255, .25);
}

.portfolio-education-blue .portfolio-dot.is-active {
  background: #1677ff;
}

.portfolio-education-blue .portfolio-arrow {
  color: #071a3d;
  border-color: rgba(7, 26, 61, .28);
  background: rgba(255, 255, 255, .45);
}

.portfolio-education-blue .portfolio-arrow:hover,
.portfolio-education-blue .portfolio-arrow:focus-visible {
  color: #fff;
  background: #1677ff;
  border-color: #1677ff;
}

.portfolio-uza-green .portfolio-dot {
  background: rgba(11, 143, 77, .25);
}

.portfolio-uza-green .portfolio-dot.is-active {
  background: #0b8f4d;
}

.portfolio-uza-green .portfolio-arrow {
  color: #101b2c;
  border-color: rgba(16, 27, 44, .28);
  background: rgba(255, 255, 255, .4);
}

.portfolio-uza-green .portfolio-arrow:hover,
.portfolio-uza-green .portfolio-arrow:focus-visible {
  color: #fff;
  background: #0b8f4d;
  border-color: #0b8f4d;
}

.portfolio-description {
  margin: 0 0 30px;
  max-width: 580px;
  font-size: 17.5px;
  line-height: 1.6;
  color: #f1f1f1;
}

.portfolio-features {
  list-style: none;
  margin: 0 0 32px;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  max-width: 100%;
}

.portfolio-features li {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  padding: 14px 10px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(6px);
  transition: transform var(--transition-fast), border-color var(--transition-fast);
}

.portfolio-features li:hover,
.portfolio-features li:focus-within {
  transform: translateY(-3px);
  border-color: var(--portfolio-accent);
}

.portfolio-feature-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 9px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: var(--portfolio-accent);
  flex-shrink: 0;
  transition: transform var(--transition-fast);
}

.portfolio-features li:hover .portfolio-feature-icon,
.portfolio-features li:focus-within .portfolio-feature-icon {
  transform: scale(1.06);
}

.portfolio-feature-title {
  font-size: 13px;
  font-weight: 700;
  line-height: 1.3;
  color: #f1f1f1;
}

.portfolio-cta-group {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 28px;
}

.portfolio-cta-primary {
  background: var(--portfolio-accent);
  box-shadow: 0 8px 20px -6px color-mix(in srgb, var(--portfolio-accent) 60%, transparent);
}

.portfolio-cta-primary:hover,
.portfolio-cta-primary:focus-visible {
  background: color-mix(in srgb, var(--portfolio-accent) 82%, black);
}

.portfolio-meta {
  display: flex;
  gap: 32px;
  flex-wrap: wrap;
  margin: 0;
  padding-top: 22px;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
  max-width: 560px;
}

.portfolio-meta-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.portfolio-meta-icon {
  color: var(--portfolio-accent);
  flex-shrink: 0;
  margin-top: 1px;
}

.portfolio-meta-item dt {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #a7a9ae;
  margin: 0 0 2px;
}

.portfolio-meta-item dd {
  margin: 0;
  font-size: 13.5px;
  font-weight: 600;
  color: #f1f1f1;
  line-height: 1.35;
}

/* Right-side device visual */
.portfolio-visual {
  position: relative;
  z-index: var(--z-visual);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 550ms ease, transform 550ms ease;
}

.portfolio-visual-frame {
  width: 100%;
  max-width: 980px;
}

.portfolio-visual-img {
  width: 100%;
  height: auto;
  aspect-ratio: 1074 / 887;
  object-fit: contain;
  display: block;
}

/* Bottom navigation bar: counter, dots, arrows */
.portfolio-nav-bar {
  position: relative;
  z-index: var(--z-content);
  max-width: 1600px;
  width: 100%;
  margin: 0 auto;
  padding: 0 clamp(32px, 4vw, 72px) 40px;
  display: flex;
  align-items: center;
  gap: 24px;
}

.portfolio-counter {
  font-size: 16px;
  font-weight: 700;
  color: #f1f1f1;
  font-variant-numeric: tabular-nums;
}

.portfolio-dots {
  display: flex;
  align-items: center;
  gap: 10px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.portfolio-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: none;
  background: rgba(255, 255, 255, 0.3);
  cursor: pointer;
  padding: 0;
  transition: background var(--transition-fast), transform var(--transition-fast);
  box-shadow: none;
  filter: none;
}

.portfolio-dot:hover,
.portfolio-dot:focus-visible,
.portfolio-dot.is-active {
  box-shadow: none;
  filter: none;
}

.portfolio-dot:hover {
  background: rgba(255, 255, 255, 0.55);
}

.portfolio-dot.is-active {
  background: var(--portfolio-accent);
  transform: scale(1.2);
}

.portfolio-arrows {
  display: flex;
  gap: 10px;
  margin-left: auto;
}

.portfolio-arrow {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.3);
  background: rgba(255, 255, 255, 0.04);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast);
}

.portfolio-arrow:hover,
.portfolio-arrow:focus-visible {
  background: var(--portfolio-accent);
  border-color: var(--portfolio-accent);
}

.portfolio-arrow:active {
  transform: scale(0.94);
}

.portfolio-arrow:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}

/* Transition state applied briefly while switching projects */
.portfolio-content.is-transitioning,
.portfolio-visual.is-transitioning {
  opacity: 0;
  transform: translateX(-14px);
}

.portfolio-visual.is-transitioning {
  transform: translateX(14px);
}

@media (prefers-reduced-motion: reduce) {
  .portfolio-content,
  .portfolio-visual,
  .portfolio-bg-image,
  .portfolio-bg-gradient {
    transition: none;
  }
}

/* ==========================================================================
   Our Work — tablet (768–1179px)
   ========================================================================== */

@media (max-width: 1179px) and (min-width: 1024px) {
  .portfolio-inner {
    grid-template-columns: minmax(380px, 42%) 1fr;
    padding: 72px 40px 32px;
    gap: 32px;
  }
  .portfolio-headline {
    font-size: clamp(1.9rem, 2.8vw, 2.6rem);
  }
  .portfolio-description {
    max-width: 480px;
  }
}

@media (max-width: 1023px) {
  .portfolio {
    min-height: unset;
  }
  .portfolio-inner {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    padding: 64px 40px 32px;
    gap: 0;
  }
  .portfolio-content {
    display: contents;
  }
  .portfolio-eyebrow { order: 1; }
  .portfolio-project-name { order: 2; }
  .portfolio-project-type { order: 3; }
  .portfolio-category { order: 4; }
  .portfolio-headline { order: 5; }
  .portfolio-description { order: 6; }
  .portfolio-features { order: 7; }
  .portfolio-cta-group { order: 8; }
  .portfolio-visual { order: 9; }
  .portfolio-meta { order: 10; }
  .portfolio-features {
    grid-template-columns: repeat(2, 1fr);
    margin-bottom: 28px;
  }
  .portfolio-cta-group {
    margin-bottom: 40px;
  }
  .portfolio-visual {
    margin-bottom: 40px;
  }
  .portfolio-visual-frame {
    max-width: 640px;
    margin: 0 auto;
  }
  .portfolio-meta {
    margin-bottom: 8px;
  }
  .portfolio-nav-bar {
    padding: 0 40px 40px;
  }
}

/* ==========================================================================
   Our Work — mobile (< 768px)
   ========================================================================== */

@media (max-width: 767px) {
  .portfolio-inner {
    padding: 56px 20px 24px;
  }

  .portfolio-project-name {
    font-size: clamp(2rem, 10vw, 2.75rem);
  }

  .portfolio-safari .portfolio-project-name {
    font-size: clamp(3rem, 15vw, 4.5rem);
  }

  .portfolio-church-blue-violet .portfolio-project-name {
    font-size: clamp(2.75rem, 14vw, 4.25rem);
  }

  .portfolio-event-navy-orange .portfolio-project-name {
    display: block;
    font-size: clamp(2.8rem, 14vw, 4.25rem);
  }

  .portfolio-safari-earth-gold .portfolio-project-name {
    font-size: clamp(2.8rem, 14vw, 4.25rem);
  }

  .portfolio-restaurant-black-gold .portfolio-project-name {
    font-size: clamp(2.8rem, 14vw, 4.25rem);
  }

  .portfolio-electronics-navy-cyan .portfolio-project-name {
    font-size: clamp(2.8rem, 14vw, 4.25rem);
  }

  .portfolio-kevi-admin-red .portfolio-project-name {
    font-size: clamp(2.7rem, 13vw, 4rem);
  }

  .portfolio-uza-green .portfolio-project-name {
    font-size: clamp(2.8rem, 14vw, 4.25rem);
  }

  .portfolio-education-blue .portfolio-project-name {
    font-size: clamp(2.8rem, 14vw, 4.25rem);
  }

  .portfolio-project-type {
    font-size: 12px;
    letter-spacing: .16em;
  }

  .portfolio-safari .portfolio-category {
    font-size: 10px;
    letter-spacing: .08em;
    line-height: 1.6;
  }

  .portfolio-category {
    font-size: 14.5px;
    margin-bottom: 20px;
  }

  .portfolio-headline {
    font-size: clamp(2.25rem, 11vw, 3.25rem);
    line-height: 1;
  }

  .portfolio-description {
    font-size: 16px;
    max-width: 100%;
  }

  .portfolio-features {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    margin-bottom: 28px;
  }

  .portfolio-cta-group {
    flex-direction: column;
    gap: 12px;
    margin-bottom: 32px;
  }

  .portfolio-cta-primary,
  .portfolio-cta-secondary {
    width: 100%;
    min-height: 54px;
  }

  .portfolio-visual {
    margin-bottom: 32px;
  }

  .portfolio-visual-img {
    aspect-ratio: 990 / 692;
  }

  .portfolio-safari .portfolio-visual-img {
    aspect-ratio: 4 / 3;
    object-position: 78% center;
  }

  .portfolio-church-blue-violet .portfolio-visual-img {
    aspect-ratio: 4 / 3;
    object-position: 78% center;
  }

  .portfolio-event-navy-orange .portfolio-visual-img {
    aspect-ratio: 4 / 3;
    object-position: 78% center;
  }

  .portfolio-safari-earth-gold .portfolio-visual-img {
    aspect-ratio: 4 / 3;
    object-position: 78% center;
  }

  .portfolio-restaurant-black-gold .portfolio-visual-img {
    aspect-ratio: 4 / 3;
    object-position: 78% center;
  }

  .portfolio-electronics-navy-cyan .portfolio-visual-img {
    aspect-ratio: 4 / 3;
    object-position: 78% center;
  }

  .portfolio-kevi-admin-red .portfolio-visual-img {
    aspect-ratio: 4 / 3;
    object-position: 78% center;
  }

  .portfolio-uza-green .portfolio-visual-img {
    aspect-ratio: 4 / 3;
    object-position: 78% center;
  }

  .portfolio-education-blue .portfolio-visual-img {
    aspect-ratio: 4 / 3;
    object-position: 78% center;
  }

  .portfolio-meta {
    flex-direction: column;
    gap: 16px;
  }

  .portfolio-nav-bar {
    padding: 0 20px 32px;
    flex-wrap: wrap;
  }
}

@media (max-width: 350px) {
  .portfolio-features {
    grid-template-columns: 1fr;
  }
}

/* All portfolio themes share the original showcase geometry. Theme classes
   may change color and imagery, but never the core project composition. */
.portfolio-uza-green .portfolio-inner,
.portfolio-education-blue .portfolio-inner {
  grid-template-columns: minmax(420px, 37%) 1fr;
  align-items: center;
  gap: 40px;
}

.portfolio-uza-green .portfolio-features,
.portfolio-education-blue .portfolio-features {
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}

.portfolio-uza-green .portfolio-visual-frame,
.portfolio-education-blue .portfolio-visual-frame {
  width: 100%;
  max-width: 980px;
}

@media (max-width: 1023px) {
  .portfolio-uza-green .portfolio-inner,
  .portfolio-education-blue .portfolio-inner {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
  }

  .portfolio-uza-green .portfolio-features,
  .portfolio-education-blue .portfolio-features {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 350px) {
  .portfolio-uza-green .portfolio-features,
  .portfolio-education-blue .portfolio-features {
    grid-template-columns: 1fr;
  }
}
