/*
 * Luvia public polish v1.5.1
 * Stable responsive geometry, readable type and restrained motion.
 */

html,
body { max-width: 100%; overflow-x: clip; }

#main-content,
#main-content > section,
#main-content .container { min-width: 0; }

/* Public copy should read like a website, never like a miniature mock-up. */
.service-route-grid > article > p:not(.eyebrow),
.split-section > div > p:not(.eyebrow),
.roadmap-step p,
.process-list p,
.why-points p,
.faq__panel p,
.feature-card p,
.industry-card p,
.benefit-card p,
.decision-grid p,
.value-grid p,
.portal-feature-grid p { font-size: 16px; line-height: 1.72; }

.service-route-grid .text-link,
.package-rail a,
.page-cta .button { font-size: 14px; }

/* Services: the dark list previously inherited a white surface and white text. */
.service-route-grid {
  width: 100%;
  max-width: 100%;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.service-route-grid > article {
  min-width: 0;
  padding: clamp(34px, 4vw, 52px);
}

.service-route-grid h2 {
  max-width: 620px;
  font-size: clamp(38px, 4.2vw, 58px);
  line-height: .98;
  overflow-wrap: anywhere;
  text-wrap: balance;
}

.service-route-grid .large-check-list {
  width: 100%;
  margin: 30px 0 28px;
  border-color: rgba(21, 31, 72, .1);
  border-radius: 16px;
  background: #f6f7fb;
  color: var(--text);
  box-shadow: none;
}

.service-route-grid .large-check-list li {
  min-height: 62px;
  padding: 18px 20px 18px 50px;
  color: var(--text);
  font-size: 16px;
  line-height: 1.55;
}

.service-route-grid .large-check-list li::before { left: 20px; top: 18px; }

.service-route-grid .is-dark .large-check-list {
  border-color: rgba(255, 255, 255, .14);
  background: rgba(255, 255, 255, .055);
  color: #fff;
}

.service-route-grid .is-dark .large-check-list li {
  border-color: rgba(255, 255, 255, .11);
  color: rgba(255, 255, 255, .88);
}

.service-route-grid .is-dark .large-check-list li::before { color: #9ca2ff; }

/* Process page: two compact columns on desktop instead of one oversized rail. */
.process-roadmap {
  display: grid;
  max-width: none;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.process-roadmap .roadmap-step {
  min-width: 0;
  min-height: 190px;
  margin: 0;
  align-content: start;
  padding: 30px;
  border-radius: 20px;
}

.process-roadmap .roadmap-step:nth-child(7) { grid-column: 1 / -1; min-height: 160px; }
.process-roadmap .roadmap-step:not(:last-child)::before { display: none; }
.process-roadmap .roadmap-step::after {
  position: absolute;
  right: 24px;
  bottom: 22px;
  color: rgba(79, 86, 255, .22);
  font-size: 22px;
  content: "↘";
}

.process-roadmap .roadmap-step:nth-child(7)::after { content: "✓"; }
.process-roadmap .roadmap-step h2 { font-size: clamp(27px, 2.7vw, 38px); }
.process-roadmap .roadmap-step p { max-width: 720px; }

/* Balanced inner-page height and spacing. */
.page-hero:not(.ecommerce-hero) { padding-block: 142px 82px; }
.page-hero:not(.ecommerce-hero) p:not(.eyebrow) { max-width: 760px; font-size: 18px; line-height: 1.7; }
.page-hero--center p:not(.eyebrow) { margin-inline: auto; }
.page-hero:not(.ecommerce-hero)::after { transform: translate3d(0, var(--hero-drift, 0), 0); will-change: transform; }
.section { overflow: clip; }

/* Shared motion language. Content stays visible when JavaScript is unavailable. */
.has-js #main-content [data-reveal] {
  opacity: 0;
  filter: blur(3px);
  transform: translate3d(0, 30px, 0);
  transition:
    opacity .72s cubic-bezier(.2, .72, .2, 1),
    transform .78s cubic-bezier(.16, 1, .3, 1),
    filter .68s ease;
  transition-delay: var(--reveal-delay, 0ms);
  will-change: opacity, transform;
}

.has-js #main-content [data-reveal="hero"] { transform: translate3d(0, 22px, 0); }
.has-js #main-content [data-reveal="card"] { transform: translate3d(0, 34px, 0) scale(.985); }
.has-js #main-content [data-reveal="left"] { transform: translate3d(-34px, 0, 0); }
.has-js #main-content [data-reveal="right"] { transform: translate3d(34px, 0, 0); }
.has-js #main-content [data-reveal].is-visible { opacity: 1; filter: none; transform: none; }

@media (hover: hover) and (pointer: fine) {
  .button,
  .text-link,
  .contact-route,
  .package-rail article,
  .roadmap-step { transition-duration: .28s; transition-timing-function: cubic-bezier(.2, .75, .2, 1); }

  .button:hover { transform: translateY(-3px); }
  .text-link:hover { letter-spacing: .012em; }
  .process-roadmap .roadmap-step:hover { transform: translateY(-5px); border-color: rgba(79, 86, 255, .28); box-shadow: 0 24px 58px rgba(31, 43, 96, .1); }
  .package-rail article:hover { background: rgba(255, 255, 255, .045); }
}

@media (max-width: 1024px) {
  .service-route-grid { grid-template-columns: 1fr; }
  .service-route-grid > article { width: 100%; }
  .service-route-grid h2 { font-size: clamp(38px, 6.7vw, 56px); }
}

@media (max-width: 767px) {
  .page-hero:not(.ecommerce-hero) { padding-block: 112px 64px; }
  .page-hero:not(.ecommerce-hero) p:not(.eyebrow) { font-size: 16px; }
  .section { padding-block: 72px; }

  .service-route-grid > article { padding: 28px 22px; }
  .service-route-grid h2 { margin: 18px 0; font-size: clamp(34px, 10.5vw, 46px); }
  .service-route-grid .route-number { top: 20px; right: 21px; font-size: 54px; }
  .service-route-grid .large-check-list { margin-block: 24px; }
  .service-route-grid .large-check-list li { min-height: 58px; padding: 16px 16px 16px 45px; font-size: 15px; }
  .service-route-grid .large-check-list li::before { top: 16px; left: 17px; }

  .process-roadmap { grid-template-columns: 1fr; gap: 12px; }
  .process-roadmap .roadmap-step,
  .process-roadmap .roadmap-step:nth-child(7) { grid-column: auto; min-height: 0; padding: 24px 20px; }
  .process-roadmap .roadmap-step::after { right: 18px; bottom: 17px; }
  .process-roadmap .roadmap-step h2 { font-size: 27px; }
  .process-roadmap .roadmap-step p { padding-right: 12px; font-size: 15px; }

  .feature-card p,
  .industry-card p,
  .benefit-card p,
  .decision-grid p,
  .value-grid p,
  .portal-feature-grid p { font-size: 15px; }

  .has-js #main-content [data-reveal="left"],
  .has-js #main-content [data-reveal="right"] { transform: translate3d(0, 24px, 0); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .page-hero:not(.ecommerce-hero)::after { transform: none; }
  .has-js #main-content [data-reveal],
  .has-js #main-content [data-reveal].is-visible { opacity: 1; filter: none; transform: none; transition: none; }
  .button,
  .text-link,
  .roadmap-step,
  .package-rail article { transition: none; }
}
