@charset "UTF-8";
/* Shared Vujosevic visual system. Home keeps its own section layouts. */
:root {
  --panel-bg: #050914;
  --panel-surface: #0b1429;
  --panel-surface-soft: #0d1730;
  --panel-surface-strong: #102247;
  --panel-border: rgba(119, 160, 255, .16);
  --panel-border-strong: rgba(89, 143, 255, .34);
  --panel-text: #f3f7ff;
  --panel-muted: #a9b6d0;
  --panel-accent: #1759df;
  --panel-accent-strong: #378aff;
  --panel-warm: #79b6ff;
  --site-shell-bg: radial-gradient(ellipse 42% 18% at 55% 0, rgba(21, 67, 187, .24), transparent 90%), #050914;
  --site-nav-bg: rgba(4, 9, 21, .78);
  --site-nav-link: #cad6f1;
  --site-nav-link-hover: #fff;
  --site-dropdown-bg: #0b1429;
  --site-footer-glow: radial-gradient(ellipse 50% 100% at 50% 100%, rgba(31, 82, 190, .12), transparent);
  --site-footer-panel-bg: #0a142b;
  --site-control-bg: #172b53;
  --site-control-bg-hover: #213c70;
  --site-control-text: #dce7ff;
  --site-hero-orb-primary: rgba(37, 99, 235, .16);
  --site-hero-orb-secondary: rgba(43, 171, 255, .11);
  --site-pricing-hero-bg: linear-gradient(135deg, #10234b, #071127);
  --site-light-surface: rgba(22, 40, 80, .65);
  --site-dark-surface: linear-gradient(145deg, #10244d, #081329);
  --site-button-shadow: 0 12px 40px rgba(22, 87, 255, .24);
  --site-cta-hover-bg: linear-gradient(110deg, #2469ee, #53a0ff);
  --color-ivory: #f3f7ff;
  --color-golden-yellow: #8ec8ff;
  --color-yellow: #8ec8ff;
}

html body:not(.template-home) {
  background: var(--site-shell-bg);
  color: var(--panel-text);
}

html body:not(.template-home) ::selection {
  background: #245ad1;
  color: #fff;
  -webkit-text-fill-color: #fff;
}

html .navbar {
  border-bottom-color: rgba(124, 169, 255, .13);
  background: var(--site-nav-bg);
  box-shadow: none;
}

html .navbar .nav-link,
html .navbar .dropdown-toggle { color: #cad6f1; }
html .navbar .active > .nav-link,
html .navbar .nav-link:hover,
html .navbar .nav-link:focus-visible { color: #fff; }
html .navbar .dropdown-menu { border-color: var(--panel-border); }
html .navbar .dropdown-item:hover,
html .navbar .dropdown-item:focus-visible { background: #142348; color: #fff; }
html .navbar .subnav-left .nav-service-icon { color: #82b8ff; }

html body:not(.template-home) :is(h1, h2, h3, h4, h5, h6) {
  font-family: "Mulish", Arial, sans-serif !important;
  font-weight: 800;
  letter-spacing: -.035em;
  color: var(--panel-text);
}
html body:not(.template-home) h1 {
  font-size: clamp(2.15rem, 3.5vw, 3.45rem) !important;
  line-height: 1.12;
  text-wrap: balance;
}
html body:not(.template-home) :is(.growth-section-heading h2, .growth-final-card h2) {
  line-height: 1.17;
  text-wrap: balance;
}
html body:not(.template-home) .growth-card h2 {
  font-size: clamp(1.55rem, 2vw, 2rem);
  line-height: 1.22;
}
html body:not(.template-home) .growth-card h3 {
  font-size: clamp(1.2rem, 1.55vw, 1.55rem);
  line-height: 1.28;
}
html body:not(.template-home) :is(.growth-section-heading p, .growth-card p, .growth-card_copy, .growth-contact-details-card p) {
  color: #a9b6d0;
}
html body:not(.template-home) .growth-section {
  padding-top: clamp(72px, 7vw, 104px);
  padding-bottom: clamp(72px, 7vw, 104px);
}
html body:not(.template-home) .growth-section-heading { margin-bottom: 32px; }

html body:not(.template-home) .growth-card {
  border-color: rgba(109, 153, 241, .19);
  border-radius: 16px;
  background: linear-gradient(143deg, rgba(17, 33, 69, .84), rgba(6, 13, 29, .94));
  box-shadow: inset 0 1px rgba(144, 180, 255, .07), 0 20px 55px rgba(0, 0, 0, .14);
}
html body:not(.template-home) :is(.growth-card-primary, .growth-card-warm, .growth-card-accent) {
  background: radial-gradient(circle at 100% 0, rgba(38, 104, 240, .22), transparent 58%), linear-gradient(145deg, #122759, #071227);
}
html body:not(.template-home) :is(.growth-card-primary, .growth-card-warm, .growth-card-accent)::before {
  width: 2px;
  background: #357bff;
}
html body:not(.template-home) .growth-card-glass { backdrop-filter: none; }

html body:not(.template-home) .service-intro .row.position-relative {
  min-height: 510px;
  border-radius: 18px;
  border-color: var(--panel-border);
  background: radial-gradient(ellipse 45% 65% at 78% 30%, rgba(35, 92, 230, .25), transparent), linear-gradient(135deg, #10234b, #071127);
}
html body:not(.template-home) .service-intro .row.position-relative::before {
  background: linear-gradient(90deg, transparent 0 49.95%, rgba(96, 143, 241, .055) 50%, transparent 50.05%);
  background-size: 160px 100%;
  opacity: .75;
}
html body:not(.template-home) .service-intro .back-image { display: none; }
html body:not(.template-home) .service-intros {
  min-height: 510px;
  padding: 72px 28px;
}
html body:not(.template-home) .service-intro h1 {
  max-width: 24ch;
  margin-bottom: 16px;
}
html body:not(.template-home) .service-intro .desc {
  max-width: 55ch;
  color: #c9dcff;
  font-size: clamp(1.02rem, 1.6vw, 1.2rem);
}
html body:not(.template-home) .service-intro :is(.w-lg-50, .growth-credibility) {
  color: #a9b6d0;
  font-weight: 400;
}

html .growth-button,
html .footer .growth-button {
  border-radius: 12px;
  font-family: "Mulish", Arial, sans-serif;
  font-weight: 800;
}
html .growth-button-primary,
html .footer .growth-button-primary {
  border-color: transparent;
  background: linear-gradient(135deg, #1759df, #378aff);
  color: #fff;
  box-shadow: var(--site-button-shadow);
}
html .growth-button-primary:hover,
html .growth-button-primary:focus-visible,
html .footer .growth-button-primary:hover,
html .footer .growth-button-primary:focus-visible {
  transform: translateY(-3px);
  background: var(--site-cta-hover-bg);
  color: #fff;
  box-shadow: 0 15px 38px rgba(34, 103, 255, .35);
}
html .growth-button-ghost,
html .growth-button-ghost:visited {
  border-color: var(--panel-border-strong);
  background: rgba(20, 40, 80, .62);
  color: #fff !important;
  -webkit-text-fill-color: #fff;
  text-shadow: 0 1px 2px rgba(0, 7, 25, .28);
  box-shadow: none;
}
html .growth-button-ghost:hover,
html .growth-button-ghost:focus-visible {
  transform: translateY(-3px);
  border-color: rgba(132, 183, 255, .72);
  background: rgba(25, 62, 126, .9);
  color: #fff;
}
html .growth-button:focus-visible {
  outline: 2px solid #a9d6ff;
  outline-offset: 3px;
}

html .footer-bg {
  background: linear-gradient(180deg, #050914 0%, #0b1833 100%);
}
html body .footer {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background:
    radial-gradient(ellipse 64% 82% at 50% -30%, rgba(52, 112, 255, .25), transparent 72%),
    radial-gradient(ellipse 38% 75% at 100% 70%, rgba(26, 93, 196, .16), transparent 78%),
    linear-gradient(180deg, #0b1833 0%, #08142b 54%, #050b19 100%);
}
html body .footer::before {
  content: "";
  position: absolute;
  inset: -25% 15% 10%;
  z-index: 0;
  pointer-events: none;
  background: radial-gradient(ellipse at center, rgba(53, 132, 255, .16), transparent 68%);
  animation: footer-glow-drift 18s ease-in-out infinite alternate;
}
html body .footer::after {
  content: "";
  position: absolute;
  top: 0;
  left: 10%;
  right: 10%;
  height: 1px;
  pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(122, 179, 255, .38), transparent);
  box-shadow: 0 0 22px rgba(56, 126, 255, .28);
}
html body .footer > .container {
  position: relative;
  z-index: 1;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
html body .bottom {
  border-top: 1px solid rgba(122, 179, 255, .1);
  background: #050b19;
}
@keyframes footer-glow-drift {
  from { transform: translateX(-7%); }
  to { transform: translateX(7%); }
}
@media (prefers-reduced-motion: reduce) {
  html body .footer::before { animation: none; }
}
html .footer :is(.ftitle, a, li, div) { color: #c3d0e9; }
html .footer .ftitle { color: #f3f7ff; }
html .footer a:hover { color: #fff; }
html .footer .growth-button-primary { min-width: 180px; }
html .footer a.growth-button-primary {
  width: max-content;
  max-width: 100%;
  color: #fff;
}
html .footer .social .footer-social-link {
  background: #152850;
  border-color: rgba(117, 163, 255, .26);
  color: #9ac3ff;
}
html .footer .social .footer-social-link:hover {
  background: #2267df;
  color: #fff;
}

/* The service icons reuse the custom artwork already used on the home page. */
.template-services .growth-service-card {
  position: relative;
  min-height: 270px;
  padding: 29px;
}
.template-services .growth-service-card_title {
  min-height: 72px;
  padding-right: 76px;
  font-size: 1.18rem;
  text-transform: none;
  letter-spacing: -.02em;
}
.template-services .vu-service-icon {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 74px;
  height: 74px;
  background: url("../img/vu-service-icons.png?v=2") no-repeat;
  background-size: 300% 200%;
  clip-path: inset(0 7px);
  pointer-events: none;
}
.template-services .growth-service-card:nth-child(1) .vu-service-icon { background-position: 50% 0; }
.template-services .growth-service-card:nth-child(2) .vu-service-icon { background-position: 0 0; }
.template-services .growth-service-card:nth-child(3) .vu-service-icon { background-position: 100% 0; }
.template-services .growth-service-card:nth-child(4) .vu-service-icon { background-position: 0 100%; }
.template-services .growth-service-card:nth-child(5) .vu-service-icon { background-position: 50% 100%; }

.template-services .growth-step-card_header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  width: 100%;
  min-height: 68px;
}
.template-services .growth-step-card_label {
  display: flex;
  flex: 1 1 auto;
  align-items: baseline;
  gap: 8px;
  min-width: 0;
}
.template-services .growth-step-card_number {
  width: auto;
  height: auto;
  border-radius: 0;
  background: none;
  box-shadow: none;
  color: #71a7ff;
  font-size: .95rem;
}
.template-services .growth-step-card h3 {
  min-width: 0;
  font-size: clamp(1.15rem, 1.4vw, 1.3rem);
  overflow-wrap: break-word;
}
.template-services .vu-process-icon { flex: none; width: 52px; height: 52px; object-fit: contain; }

html .template-pricing .growth-package-card-featured { background: linear-gradient(145deg, #122759, #071227); }
html .template-pricing .growth-package-card-featured::after { opacity: .25; }
html .template-pricing .growth-package-feature-item {
  border-radius: 14px;
  border-color: rgba(132, 183, 255, .18);
  background: rgba(83, 137, 230, .1);
  backdrop-filter: none;
}
html .template-pricing .growth-package-feature-item strong {
  display: flex;
  align-items: center;
  gap: 9px;
  letter-spacing: 0;
}
html .template-pricing .growth-package-feature-item strong::before {
  content: "";
  flex: none;
  width: 17px;
  height: 17px;
  background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238fc7ff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 4 4L19 6'/%3E%3C/svg%3E");
}
html .template-pricing .growth-package-card_price { color: #94c5ff; }
html .template-pricing .growth-package-card_price {
  font-family: "Mulish", Arial, sans-serif;
  font-size: clamp(1.65rem, 2.5vw, 2.2rem);
  font-weight: 700;
  letter-spacing: -.03em;
}
html .template-blog .growth-blog-hero_content,
html .template-selected-work .growth-blog-hero_content,
html .template-tag .growth-blog-hero_content {
  background: radial-gradient(circle at 100% 0, rgba(38, 104, 240, .26), transparent 55%), linear-gradient(145deg, #122759, #071227);
}
html .template-blog .growth-blog-card_media { border-radius: 14px 14px 0 0; }
html .template-blog .growth-blog-featured_body h2,
html .template-blog .growth-blog-card_body h2 { font-size: clamp(1.35rem, 2vw, 1.75rem); }
html .template-contact .growth-contact-info-card {
  background: radial-gradient(circle at 100% 0, rgba(38, 104, 240, .23), transparent 55%), linear-gradient(145deg, #122759, #071227);
}
html .template-contact .growth-contact-info-card .growth-simple-list_icon {
  background: #3b86ff;
  box-shadow: 0 0 0 4px rgba(57, 132, 255, .16);
}
html .template-contact .growth-contact-field .form-control:focus {
  border-color: #66a2ff;
  box-shadow: 0 0 0 3px rgba(53, 123, 255, .2);
}
html .template-contact .growth-contact-direct a { color: #91bdff; }
html .template-404 a { color: #89baff; }
html .template-search form.search {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
}
html .template-search form.search input[name="q"] {
  min-height: 50px;
  min-width: min(100%, 300px);
  padding: 0 16px;
  border: 1px solid var(--panel-border-strong);
  border-radius: 12px;
  background: #0c1a35;
  color: #f3f7ff;
}
html .template-search .card {
  border-color: var(--panel-border);
  border-radius: 16px;
  background: #0d1b39;
  color: var(--panel-muted);
}
html .template-search :is(.card a, .page-link) { color: #91bdff; }
html .template-search .page-link { border-color: var(--panel-border); background: #0d1b39; }
html .template-shame .shade .inner > h2 {
  margin: 0 0 32px;
  padding: 0 !important;
  font-size: clamp(1.7rem, 2.5vw, 2.5rem);
  line-height: 1.2;
}
html .template-shame .shade .inner > p {
  margin: 0 0 12px;
  padding: 17px 20px;
  border: 1px solid var(--panel-border);
  border-radius: 14px;
  background: #0d1b39;
  color: var(--panel-muted);
  overflow-wrap: anywhere;
}
html .template-shame .shade .inner > p a { color: #91bdff; }

@media (max-width: 767px) {
  html body:not(.template-home) .growth-section { padding-top: 64px; padding-bottom: 64px; }
  html body:not(.template-home) .service-intro { padding-top: 96px; }
  html body:not(.template-home) .service-intro .row.position-relative,
  html body:not(.template-home) .service-intros { min-height: 0; }
  html body:not(.template-home) .service-intros { padding: 72px 24px 64px; }
  html body:not(.template-home) h1 { font-size: clamp(2rem, 8vw, 2.8rem) !important; }
}

/* Interior heroes follow the open composition of the homepage. */
body:not(.template-home):not(.template-contact) .growth-section-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding-block: clamp(128px, 11vw, 164px) clamp(54px, 6vw, 88px);
  background:
    radial-gradient(ellipse 45% 60% at 82% 38%, rgba(28, 83, 212, .17), transparent 85%),
    radial-gradient(ellipse 50% 90% at 5% 45%, rgba(22, 66, 160, .14), transparent 85%);
}

body:not(.template-home):not(.template-contact) .growth-section-hero > .container {
  position: relative;
  z-index: 1;
  max-width: 1200px;
}

.vu-orbit-canvas-inner {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  opacity: .38;
  pointer-events: none;
}

body:not(.template-home):not(.template-contact) .service-intro {
  position: relative;
  isolation: isolate;
  width: 100%;
  max-width: none;
  padding-inline: 0 !important;
  padding-top: clamp(104px, 9vw, 136px);
  margin-bottom: 0;
}

body:not(.template-home):not(.template-contact) .service-intro::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 64px;
  bottom: -30px;
  left: 0;
  width: 100%;
  background: radial-gradient(ellipse 48% 52% at 74% 40%, rgba(29, 85, 220, .16), transparent 88%);
  pointer-events: none;
}

body:not(.template-home):not(.template-contact) .service-intro .row.position-relative {
  isolation: isolate;
  overflow: hidden;
  width: 100%;
  min-height: 540px;
  margin-inline: 0;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}

body:not(.template-home):not(.template-contact) .service-intro .row.position-relative::before {
  opacity: .26;
}

body:not(.template-home):not(.template-contact) .service-intro .row.position-relative > .col-12 {
  position: relative;
  z-index: 1;
  padding: 0 !important;
}

body:not(.template-home):not(.template-contact) .service-intros {
  align-items: flex-start;
  justify-content: center;
  width: 100%;
  max-width: 1200px;
  min-height: 540px;
  margin-inline: auto;
  padding: 62px clamp(16px, 2vw, 24px) !important;
  text-align: left !important;
}

body:is(.template-service, .template-services) .service-intros > :is(h1, .desc, p, .growth-actions) {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.template-service :is(.seo-services h2.title, .container.mb-5 h2.title, .faqs h2.title) {
  line-height: 1.17;
}

.template-service .seo-services .growth-card {
  border-radius: 16px;
  background: linear-gradient(143deg, rgba(17, 33, 69, .84), rgba(6, 13, 29, .94));
  box-shadow: inset 0 1px rgba(144, 180, 255, .07), 0 20px 55px rgba(0, 0, 0, .14);
}

body:not(.template-home):not(.template-contact) .service-intro h1 {
  max-width: 23ch;
  margin: 0 0 26px;
}

body:not(.template-home):not(.template-contact) .service-intro .desc,
body:not(.template-home):not(.template-contact) .service-intro .w-lg-50 {
  width: auto !important;
  max-width: 55ch;
  margin: 0 0 18px;
  padding-inline: 0 !important;
  line-height: 1.55;
}

body:not(.template-home):not(.template-contact) .service-intro .growth-actions {
  justify-content: flex-start;
  margin-top: 8px;
}

body:not(.template-home):not(.template-contact) .service-intro .growth-credibility {
  max-width: 60ch;
  margin: 24px 0 0;
  text-align: left;
}

body:not(.template-home):not(.template-contact) .service-intro .pointer { display: none; }

.template-blog .growth-blog-hero,
.template-selected-work .growth-blog-hero {
  align-items: center;
  gap: clamp(34px, 5vw, 76px);
  min-height: 420px;
  grid-template-columns: minmax(0, 1fr) minmax(0, .94fr);
}

.template-blog .growth-blog-hero_content,
.template-selected-work .growth-blog-hero_content,
.template-selected-work .growth-blog-featured {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.template-blog .growth-blog-hero_content,
.template-selected-work .growth-blog-hero_content {
  align-content: center;
  gap: 24px;
  padding: 0 !important;
}

.template-blog .growth-blog-hero_content::before,
.template-selected-work .growth-blog-hero_content::before,
.template-selected-work .growth-blog-featured::before { display: none; }

.template-blog .growth-blog-hero_content h1,
.template-selected-work .growth-blog-hero_content h1 {
  max-width: 16ch;
}

.template-blog .growth-blog-hero_intro,
.template-selected-work .growth-blog-hero_intro {
  max-width: 57ch;
  color: #bdcbe5;
  font-size: 1.08rem;
  line-height: 1.65;
}

.template-blog .growth-blog-featured {
  grid-template-columns: 40% 60%;
}

.template-blog .growth-blog-featured_body {
  min-width: 0;
}

.template-selected-work .growth-blog-featured {
  display: block;
  grid-template-columns: 1fr;
  min-width: 0;
  overflow: visible;
  border-radius: 0 !important;
  padding: 0 0 0 clamp(24px, 3vw, 48px);
  border-left: 1px solid rgba(119, 160, 255, .25) !important;
}

.template-selected-work .growth-blog-featured_body {
  display: block;
  width: 100%;
  max-width: none;
  padding: 0;
}

.template-selected-work .growth-blog-featured_body p + p { margin-top: 18px; }

.template-about .growth-about-hero {
  min-height: 490px;
  padding: 0;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.template-about .growth-about-hero::before { display: none; }
.template-about .growth-about-hero_content { gap: 20px; }
.template-about .growth-about-hero h1 {
  max-width: 19ch;
}
.template-about .growth-about-hero_media {
  max-width: none;
  border-color: rgba(154, 183, 237, .3);
  border-radius: 10px;
  box-shadow: none;
}
.template-about .growth-about-hero_visual {
  isolation: isolate;
  width: 100%;
  max-width: 380px;
  margin-inline: auto;
  padding: 9px;
  border: 1px solid rgba(128, 167, 239, .38);
  border-radius: 18px;
  background: linear-gradient(145deg, rgba(40, 63, 104, .82), rgba(9, 19, 42, .96) 72%);
  box-shadow: inset 0 1px rgba(218, 232, 255, .13), 0 28px 62px rgba(1, 7, 24, .42);
}
.template-about .growth-about-hero_visual::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 9px -8px -8px 9px;
  border: 1px solid rgba(107, 150, 230, .3);
  border-radius: 18px;
  pointer-events: none;
}
.template-about .growth-about-hero_visual::after {
  content: "";
  position: absolute;
  top: -1px;
  left: 27px;
  width: 70px;
  height: 2px;
  background: linear-gradient(90deg, #477fe9, #9ebcff 64%, transparent);
  pointer-events: none;
}

.template-post .growth-post-hero {
  align-items: center;
  min-height: 460px;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.template-post .growth-post-hero::before { display: none; }
.template-post .growth-post-hero_content { padding: 0 clamp(24px, 3vw, 48px) 0 0; }
.template-post .growth-post-hero_content h1 {
  max-width: 19ch;
}
.template-post .growth-post-hero_lead {
  color: #bdcbe5;
  font-size: 1.08rem;
  line-height: 1.65;
}
.template-post .growth-post-hero_visual {
  overflow: hidden;
  min-height: 0;
  padding: 12px;
  border: 1px solid rgba(109, 153, 241, .2);
  border-radius: 20px;
  background: rgba(10, 23, 49, .85);
  box-shadow: 0 22px 56px rgba(0, 0, 0, .22);
}
.template-post .growth-post-hero_media { min-height: 0; max-height: 440px; border-radius: 12px; }

.template-privacy .growth-privacy-hero {
  max-width: 760px;
  padding: 0;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.template-privacy .growth-privacy-hero::before { display: none; }
.template-privacy .growth-privacy-hero_content h1 {
  max-width: 19ch;
}
.template-privacy .growth-privacy-hero_intro {
  color: #bdcbe5;
  font-size: 1.08rem;
  line-height: 1.65;
}

/* Existing button classes share the homepage sizing and hover treatment. */
html body:not(.template-home) .growth-button {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: 48px;
  border-radius: 7px;
  font-size: .9rem;
  letter-spacing: .01em;
  transition: transform 260ms cubic-bezier(.2, .8, .2, 1), box-shadow 260ms ease, border-color 260ms ease, background 260ms ease;
}

html .footer .growth-button { min-height: 48px !important; border-radius: 7px; font-size: .9rem; }

html body:not(.template-home) .growth-button::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(105deg, transparent 24%, rgba(255, 255, 255, .22) 48%, transparent 72%);
  transform: translateX(-150%);
  transition: transform 600ms cubic-bezier(.2, .8, .2, 1);
  pointer-events: none;
}

html body:not(.template-home) .growth-button:hover::after,
html body:not(.template-home) .growth-button:focus-visible::after {
  transform: translateX(150%);
}

html body:not(.template-home) .growth-button-primary {
  background: linear-gradient(110deg, #1755d9, #3478ff);
}

html body:not(.template-home) .growth-button-ghost {
  border-color: rgba(144, 177, 249, .31);
  background: rgba(12, 25, 55, .68);
}

html body:not(.template-home) .growth-button-ghost:hover,
html body:not(.template-home) .growth-button-ghost:focus-visible {
  background: linear-gradient(120deg, rgba(24, 53, 108, .94), rgba(20, 74, 147, .86));
  box-shadow: 0 12px 30px rgba(9, 33, 92, .27), inset 0 1px rgba(181, 216, 255, .16);
}

@media (max-width: 767px) {
  body:not(.template-home):not(.template-contact) .growth-section-hero {
    padding-block: 116px 54px;
  }
  body:not(.template-home):not(.template-contact) .service-intro {
    padding-top: 106px;
  }
  body:not(.template-home):not(.template-contact) .service-intro .row.position-relative,
  body:not(.template-home):not(.template-contact) .service-intros {
    min-height: 0;
  }
  body:not(.template-home):not(.template-contact) .service-intros {
    padding: 52px 16px 58px !important;
  }
  .template-blog .growth-blog-hero,
  .template-selected-work .growth-blog-hero { min-height: 0; grid-template-columns: 1fr; }
  .template-blog .growth-blog-featured { grid-template-columns: 1fr; }
  .template-blog .growth-blog-featured_media,
  .template-blog .growth-blog-featured_media img { height: 185px; }
  .template-blog .growth-blog-featured_body { padding: 22px; }
  .template-selected-work .growth-blog-featured {
    padding: 24px 0 0;
    border-left: 0 !important;
    border-top: 1px solid rgba(119, 160, 255, .25) !important;
  }
  .template-about .growth-about-hero { min-height: 0; }
  .template-about .growth-about-hero_visual { max-width: 320px; }
  .template-post .growth-post-hero { min-height: 0; }
  .template-post .growth-post-hero_content { padding: 0 0 28px; }
  .template-post .growth-post-hero_visual { padding: 8px; }
}

@media (prefers-reduced-motion: reduce) {
  .vu-orbit-canvas-inner { opacity: .32; }
}

/* Shared text CTA used by home, services, about, work, and posts. */
.vu-authority-flow {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  opacity: .68;
  mask-image: linear-gradient(90deg, transparent, #000 13%, #000 87%, transparent);
}

html body .global-cta-wrap {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding-block: clamp(44px, 5vw, 72px);
  background: radial-gradient(ellipse 54% 76% at 50% 54%, rgba(20, 76, 180, .14), transparent 85%);
}

html body .global-cta-wrap > :is(.container, .container-lg) {
  position: relative;
  z-index: 1;
}

html body .global-cta-wrap > .container-lg { max-width: 1160px; }

html body .growth-card.global-cta-card {
  grid-template-columns: minmax(0, 1fr);
  justify-items: center;
  align-items: center;
  gap: 22px;
  width: 100%;
  max-width: 1160px;
  margin-inline: auto;
  padding: clamp(28px, 3vw, 44px);
  border: 1px solid rgba(106, 157, 255, .32);
  border-radius: 22px;
  background: linear-gradient(143deg, rgba(17, 33, 69, .78), rgba(6, 13, 29, .84));
  box-shadow: inset 0 1px rgba(177, 208, 255, .12), 0 24px 70px rgba(3, 12, 37, .23);
}

html body .global-cta-card_content {
  display: grid;
  justify-items: center;
  gap: 14px;
  min-width: 0;
  width: 100%;
  max-width: 800px;
  text-align: center;
}

html body .growth-card.global-cta-card h2 {
  max-width: 30ch;
  margin: 0;
  font-size: clamp(1.8rem, 2.5vw, 2.25rem);
  line-height: 1.13;
  text-wrap: balance;
}

html body .global-cta-card h2 + p { margin: 0; }
html body .global-cta-card p { max-width: 68ch; line-height: 1.65; }
html body .global-cta-card .growth-final-card_actions { justify-content: center; }
html body .global-cta-card .growth-button { min-height: 50px; white-space: nowrap; }

body.template-selected-work .growth-blog-shell::after,
body.template-post .growth-post-shell::after { display: none; }

html body .growth-post-inline-cta.global-cta-wrap {
  padding-block: 18px 0;
  background: transparent;
}

html body .growth-post-inline-cta .global-cta-wrap { padding: 0; background: transparent; }
html body .growth-post-inline-cta .global-cta-wrap > .container-lg { width: 100%; max-width: none; padding: 0; }
@media (max-width: 767px) {
  .vu-authority-flow { opacity: .46; }
  html body .growth-card.global-cta-card { gap: 20px; }
  html body .global-cta-card .growth-final-card_actions { width: 100%; }
  html body .global-cta-card .growth-button { width: 100%; }
}

/* One interaction for service and selected work cards across the site. */
html body .growth-selected-work-actions {
  justify-content: center;
  margin-top: 36px;
}

@media (min-width: 992px) {
  html body .growth-selected-work-grid:has(> .growth-card-link:nth-child(2):last-child) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 900px;
    margin-inline: auto;
  }
}

body .growth-card-link,
body .growth-card-link:visited {
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding-bottom: 58px;
  color: var(--panel-text);
  text-decoration: none;
  cursor: pointer;
  transition: border-color 300ms ease, box-shadow 300ms ease, background 300ms ease;
}

body .growth-card-link h3.growth-service-card_title { font-size: 1.18rem !important; line-height: 1.28; }
body .growth-card-link > :not(.vu-service-icon) { position: relative; z-index: 1; }

body .growth-card-link::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background: linear-gradient(110deg, transparent 20%, rgba(65, 134, 255, .15) 49%, transparent 76%);
  transform: translateX(-125%);
  transition: transform 700ms cubic-bezier(.2, .8, .2, 1);
  pointer-events: none;
}

body .growth-card-link::after {
  content: "\2197";
  position: absolute;
  z-index: 2;
  right: 25px;
  bottom: 19px;
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border: 1px solid rgba(122, 169, 255, .24);
  border-radius: 50%;
  background: rgba(39, 89, 181, .11);
  color: #8db9ff;
  font-size: 1.1rem;
  line-height: 1;
  transition: transform 300ms cubic-bezier(.2, .8, .2, 1), border-color 300ms ease, background 300ms ease, color 300ms ease;
  pointer-events: none;
}

html body .growth-card-link:is(:hover, :focus-visible) {
  border-color: rgba(101, 159, 255, .65);
  box-shadow: 0 24px 52px rgba(5, 23, 71, .42), inset 0 1px rgba(173, 208, 255, .14);
  color: var(--panel-text);
  text-decoration: none;
}

body .growth-card-link:is(:hover, :focus-visible)::before { transform: translateX(125%); }
body .growth-card-link:is(:hover, :focus-visible)::after {
  transform: translate(2px, -2px);
  border-color: rgba(156, 198, 255, .7);
  background: #2775ed;
  color: #fff;
}

body .growth-card-link:is(:hover, :focus-visible) .vu-service-icon {
  transform: translateY(-4px) rotate(-6deg) scale(1.06);
  filter: drop-shadow(0 8px 14px rgba(16, 102, 255, .4));
}

body .growth-card-link .vu-service-icon { z-index: 1; transition: transform 300ms cubic-bezier(.2, .8, .2, 1), filter 300ms ease; }
body .growth-card-link:focus-visible { outline: 2px solid #93c4ff; outline-offset: 4px; }

@media (prefers-reduced-motion: reduce) {
  body .growth-card-link,
  body .growth-card-link::before,
  body .growth-card-link::after,
  body .growth-card-link .vu-service-icon { transition-duration: .01ms; }
  html body .growth-card-link:is(:hover, :focus-visible) { transform: none; }
}

/* One type scale for hero and section titles across home and service pages. */
:root {
  --site-title-hero-size: clamp(2.75rem, 3.6vw, 3.65rem);
  --site-title-section-size: clamp(1.7rem, 2.5vw, 2.5rem);
}

html body h1.growth-title-hero {
  color: #f7f9ff;
  font-family: "Mulish", Arial, sans-serif !important;
  font-size: var(--site-title-hero-size) !important;
  font-weight: 900 !important;
  letter-spacing: -.055em !important;
  line-height: 1.04 !important;
  text-wrap: balance;
}

html body .growth-title-section {
  color: var(--panel-text);
  font-family: "Mulish", Arial, sans-serif !important;
  font-size: var(--site-title-section-size) !important;
  font-weight: 800 !important;
  letter-spacing: -.035em !important;
  line-height: 1.16 !important;
  text-wrap: balance;
}

@media (max-width: 767px) {
  :root {
    --site-title-hero-size: clamp(2.2rem, 9.5vw, 3rem);
    --site-title-section-size: clamp(1.65rem, 6.9vw, 2rem);
  }
}
