/*
 * VisoCarte Public · UX Pro Max refinement
 * Design reference: https://github.com/nextlevelbuilder/ui-ux-pro-max-skill
 * Original implementation; zero external CSS/animation dependencies.
 * Scoped to the platform, never tenant public templates or Card Studio.
 */
body[data-public-platform="1"] {
  --vcpro-blue: #0b81cc;
  --vcpro-blue-bright: #20b7f5;
  --vcpro-ink: #112d4d;
  --vcpro-line: rgba(29, 98, 158, .15);
  --vcpro-ease: cubic-bezier(.22, .8, .25, 1);
  --vcpro-shadow: 0 24px 60px rgba(8, 47, 98, .10);
}

/* Accessibility: reach real content before navigating every header link. */
body[data-public-platform="1"] .vcpro-skip-link {
  position: fixed;
  top: max(12px, env(safe-area-inset-top));
  left: max(12px, env(safe-area-inset-left));
  z-index: 2147483100;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 11px 18px;
  border: 2px solid #7bdcff;
  border-radius: 12px;
  background: #05254c;
  color: #fff;
  font: 750 14px/1.3 system-ui, sans-serif;
  text-decoration: none;
  box-shadow: 0 14px 35px rgba(3, 21, 47, .32);
  transform: translateY(calc(-100% - 35px));
}
body[data-public-platform="1"] .vcpro-skip-link:focus-visible {
  transform: translateY(0);
  outline: 3px solid #fff;
  outline-offset: 3px;
}
body[data-public-platform="1"] #public-content :is(section[id], article[id], div[id]) {
  scroll-margin-top: 96px;
}
body[data-public-platform="1"] #public-content :is(h1, h2, h3) {
  text-wrap: balance;
  overflow-wrap: break-word;
}
body[data-public-platform="1"] #public-content :is(p, li) {
  overflow-wrap: break-word;
}

/* A restrained, pointer-responsive aurora behind existing page content. */
body[data-public-platform="1"] #public-content :is(
  .vc46-hero-shell, .vc47-page-hero, .vc49-page-hero,
  .vc49-resources-hero, .vc50-contact-hero, .vc51-demo-hero,
  .vc51-faq-hero, .vcx-page-hero, .viso-page-hero
) {
  position: relative;
  isolation: isolate;
}
body[data-public-platform="1"] #public-content .vcpro-ambient {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
  opacity: .64;
}
body[data-public-platform="1"] #public-content .vcpro-ambient::before,
body[data-public-platform="1"] #public-content .vcpro-ambient::after {
  content: "";
  position: absolute;
  display: block;
  width: min(69vw, 760px);
  height: min(69vw, 760px);
  border-radius: 50%;
  pointer-events: none;
}
body[data-public-platform="1"] #public-content .vcpro-ambient::before {
  top: -35%;
  right: -12%;
  background: radial-gradient(circle, rgba(63, 205, 255, .24) 0, rgba(30, 140, 240, .12) 35%, transparent 68%);
}
body[data-public-platform="1"] #public-content .vcpro-ambient::after {
  bottom: -52%;
  left: -17%;
  background: radial-gradient(circle, rgba(10, 124, 228, .22) 0, rgba(0, 77, 180, .11) 40%, transparent 73%);
}
body[data-public-platform="1"] #public-content :is(
  .vc46-hero-shell, .vc47-page-hero, .vc49-page-hero,
  .vc49-resources-hero, .vc50-contact-hero, .vc51-demo-hero,
  .vc51-faq-hero, .vcx-page-hero, .viso-page-hero
) > .vc-platform-shell {
  position: relative;
  z-index: 1;
}
/* Deliberate one-time entrance instead of perpetual decorative loops. */
body[data-public-platform="1"] #public-content .vcpro-hero-enter {
  animation: vcpro-hero-enter .7s var(--vcpro-ease) both;
}
@keyframes vcpro-hero-enter {
  from { opacity: .45; translate: 0 14px; }
  to { opacity: 1; translate: 0 0; }
}
body[data-public-platform="1"] #public-content .vcpro-await-reveal {
  opacity: 0;
  translate: 0 18px;
}
body[data-public-platform="1"] #public-content .vcpro-await-reveal.is-visible {
  animation: vcpro-reveal-in .52s var(--vcpro-ease) var(--vcpro-delay, 0ms) both;
}
@keyframes vcpro-reveal-in {
  from { opacity: 0; translate: 0 18px; }
  to { opacity: 1; translate: 0 0; }
}

/* Pointer spotlight is opt-in and never the only signal that a card is actionable. */
body[data-public-platform="1"] #public-content .vcpro-spotlight {
  position: relative;
  isolation: isolate;
}
body[data-public-platform="1"] #public-content .vcpro-spotlight > .vcpro-glow {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: auto !important;
  height: auto !important;
  min-width: 0 !important;
  min-height: 0 !important;
  flex: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: inherit;
  box-shadow: none !important;
  background: radial-gradient(
    260px circle at var(--vcpro-x, 50%) var(--vcpro-y, 50%),
    rgba(42, 168, 240, .16), transparent 73%
  ) !important;
  clip-path: inset(0 round 18px);
  opacity: 0;
  z-index: 0;
  pointer-events: none;
  transition: opacity .24s ease-out;
}
@media (hover:hover) and (pointer:fine) {
  body[data-public-platform="1"] #public-content .vcpro-spotlight:hover > .vcpro-glow,
  body[data-public-platform="1"] #public-content .vcpro-spotlight:focus-within > .vcpro-glow {
    opacity: 1;
  }
}

/* Readability matters more than decorative micro-labels, especially on phones. */
body[data-public-platform="1"] #public-content .vc46-side-body strong {
  font-size: 15px !important;
  line-height: 1.32 !important;
}
body[data-public-platform="1"] #public-content .vc46-side-body small {
  font-size: 12px !important;
  line-height: 1.45 !important;
}
body[data-public-platform="1"] #public-content .vc46-side-number {
  font-size: 10px !important;
}
body[data-public-platform="1"] #public-content .vc46-price-card > p {
  font-size: 14px;
}
body[data-public-platform="1"] #public-content .vc46-price-card li {
  font-size: 13px;
  line-height: 1.5;
}
body[data-public-platform="1"] #public-content .vc46-price-action {
  font-size: 14px;
}

/* Refined surface hierarchy, without changing content or checkout interactions. */
body[data-public-platform="1"] #public-content .vc46-action-card {
  border: 1px solid rgba(16, 107, 190, .12);
  box-shadow: 0 16px 38px rgba(9, 59, 112, .09);
}
body[data-public-platform="1"] #public-content :is(
  .vc46-action-card, .vc46-price-card, .vcx-sector-card,
  .vc48-tilt-card, .vc-plan-card
):focus-within {
  border-color: rgba(10, 124, 203, .60) !important;
  box-shadow: var(--vcpro-shadow), 0 0 0 3px rgba(29, 151, 226, .13) !important;
}
body[data-public-platform="1"] #public-content :is(
  .vc46-price-card.is-featured, .vc-plan-card.is-featured
) {
  box-shadow: 0 24px 65px rgba(8, 61, 121, .16), 0 0 0 1px rgba(40, 150, 235, .13);
}
body[data-public-platform="1"] #public-content :is(
  .vc46-action-card, .vc46-price-card, .vcx-sector-card,
  .vc48-tilt-card, .vc-plan-card
) :is(a, button) {
  touch-action: manipulation;
}

/* Keep motion where it conveys user feedback, not as an infinite distraction. */
body[data-public-platform="1"] #public-content :is(
  .vc46-orbit-a, .vc46-orbit-b, .vc46-person, .vc46-person-glow,
  .vc46-card-ring, .vc46-play
) {
  animation: none !important;
}
/* Stopping orbit animations must keep their initial 3-D centering geometry. */
body[data-public-platform="1"] #public-content .vc46-orbit-a {
  transform: translate(-50%, -50%) rotateX(62deg);
}
body[data-public-platform="1"] #public-content .vc46-orbit-b {
  transform: translate(-50%, -50%) rotateY(66deg);
}
body[data-public-platform="1"] #public-content .vc46-play::before,
body[data-public-platform="1"] #public-content .vc46-play::after {
  animation: none !important;
  opacity: 0 !important;
}
body[data-public-platform="1"] #public-content .vc46-btn-primary::after {
  animation: none !important;
  opacity: 0;
}
body[data-public-platform="1"] #public-content :is(
  .vc46-btn, .vcx-btn, .vc47-btn, .vc46-price-action
) {
  min-height: 44px;
  touch-action: manipulation;
}
body[data-public-platform="1"] #public-content :is(
  .vc46-btn, .vcx-btn, .vc47-btn, .vc46-price-action
):active {
  filter: brightness(.96);
}

/* Retain premium depth with compositor-friendly, non-repeating effects. */
body[data-public-platform="1"] .vc-platform-header.is-scrolled {
  background: #f9fcff !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
body[data-public-platform="1"] #public-content .vc46-card-face::before,
body[data-public-platform="1"] #public-content .vc46-side-card::before,
body[data-public-platform="1"] #public-content .vc47-card-face::before,
body[data-public-platform="1"] #public-content .vc47-orbit,
body[data-public-platform="1"] #public-content .vc47-about-orbit-ring {
  animation: none !important;
}
body[data-public-platform="1"] #public-content .vc46-person-glow,
body[data-public-platform="1"] #public-content .vc47-card-halo {
  filter: none !important;
}
@media (hover: none), (pointer: coarse) {
  body[data-public-platform="1"] #public-content .vc48-tilt-card:hover {
    transform: none !important;
  }
}

/* Clear keyboard paths, including hero and pricing controls. */
body[data-public-platform="1"] :is(
  .vc-platform-header, .vc-platform-footer, #public-content
) :is(a, button, input, textarea, select):focus-visible {
  outline: 3px solid #087ec8;
  outline-offset: 3px;
}
body[data-public-platform="1"] #public-content :is(
  .vc46-hero-shell, .vc47-page-hero, .vc49-page-hero,
  .vc50-contact-hero, .vc51-demo-hero, .vc51-faq-hero,
  .vcx-page-hero, .viso-page-hero
) :is(a, button):focus-visible {
  outline-color: #88deff;
}
body[data-public-platform="1"] .vc-platform-footer a {
  transition: color .2s ease, text-decoration-color .2s ease;
}

@media (hover: hover) and (pointer: fine) {
  body[data-public-platform="1"] #public-content .vc46-btn-primary:hover::after {
    opacity: .85;
    animation: vcpro-cta-sweep .65s ease-out both !important;
  }
  body[data-public-platform="1"] #public-content .vc46-action-card:hover {
    box-shadow: 0 23px 52px rgba(9, 59, 112, .15);
    border-color: rgba(19, 136, 221, .30);
  }
  body[data-public-platform="1"] #public-content .vc46-play {
    transition: transform .22s var(--vcpro-ease), border-color .22s ease;
  }
  body[data-public-platform="1"] #public-content .vc46-video:hover .vc46-play {
    border-color: #8dddff;
    transform: scale(1.05);
  }
}
@keyframes vcpro-cta-sweep {
  from { left: -70px; }
  to { left: calc(100% + 80px); }
}
@media (max-width: 900px) {
  body[data-public-platform="1"] #public-content .vcpro-ambient {
    opacity: .45;
  }
  body[data-public-platform="1"] #public-content .vcpro-ambient::before,
  body[data-public-platform="1"] #public-content .vcpro-ambient::after {
    width: 76vw;
    height: 76vw;
    transition: none;
  }
  body[data-public-platform="1"] #public-content .vcpro-spotlight > .vcpro-glow {
    display: none !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  body[data-public-platform="1"] #public-content :is(
    .vcpro-ambient, .vcpro-hero-enter, .vcpro-await-reveal,
    .vcpro-await-reveal.is-visible
  ) {
    animation: none !important;
    transition: none !important;
    opacity: 1 !important;
    translate: none !important;
  }
  body[data-public-platform="1"] #public-content .vcpro-ambient::before,
  body[data-public-platform="1"] #public-content .vcpro-ambient::after {
    transition: none !important;
    transform: none !important;
  }
  body[data-public-platform="1"] #public-content .vcpro-spotlight > .vcpro-glow {
    display: none !important;
  }
  body[data-public-platform="1"] #public-content :is(
    .vc46-btn, .vcx-btn, .vc47-btn, .vc46-action-card
  ) {
    transition: none !important;
  }
}
@media print {
  body[data-public-platform="1"] #public-content .vcpro-await-reveal {
    opacity: 1 !important;
    translate: none !important;
  }
  body[data-public-platform="1"] #public-content .vcpro-ambient {
    display: none !important;
  }
}
