/* Luvia V3 public interiors. Load after v2.css; excluded flows never receive .luvia-v3. */
.luvia-v3:not(.home) #main-content {
  --v2-ink: #111; --v2-text: #111; --v2-paper: #f8f8f7; --v2-blue: #3b3bf9;
  --v2-blue-dark: #2828d7; --v2-muted: #62625f; --v2-lilac: #ededff;
  --v2-line: rgba(17,17,17,.17); --v2-line-light: rgba(255,255,255,.22);
  --v2-radius: 4px; --v2-radius-sm: 4px; --v2-shadow: none;
  --accent: #3b3bf9; --accent-soft: #ededff; --accent-light: #ededff;
  --text: #111; --muted: #62625f; --border: rgba(17,17,17,.17); --navy: #111;
  background: #f8f8f7; color: #111;
}
.luvia-v3:not(.home) #main-content .container { width: min(calc(100% - 80px), 1320px); }
.luvia-v3:not(.home) #main-content .section { padding-block: clamp(76px, 8vw, 128px); }
.luvia-v3:not(.home) #main-content > .section:not(.section--ink):not(.page-cta) { background: #f8f8f7; border-top: 1px solid var(--v2-line); }
.luvia-v3:not(.home) #main-content :is(.section-heading, .section-heading-row) { max-width: 1040px; }
.luvia-v3:not(.home) #main-content :is(.section-heading h2, .section-heading-row h2, .editorial-split h2, .split-section h2, .transparent-note h2, .security-note h2, .process-steps-inline h2, .contact-routes h2, .roadmap-step h2, .service-route-grid h2, .concept-card__content h2, .faq-layout > div:first-child h2, .page-cta h2) {
  font-family: "Bricolage Grotesque", sans-serif; font-weight: 800; letter-spacing: -.055em; line-height: 1.02; text-wrap: balance;
}
.luvia-v3:not(.home) #main-content :is(.section-heading h2, .section-heading-row h2, .editorial-split h2, .split-section h2, .transparent-note h2, .security-note h2, .process-steps-inline h2, .faq-layout > div:first-child h2) { font-size: clamp(36px, 4.3vw, 64px); }
.luvia-v3:not(.home) #main-content .eyebrow { color: #3b3bf9; font-size: 11px; font-weight: 750; letter-spacing: .16em; }
.luvia-v3:not(.home) #main-content .eyebrow::before { width: 24px; height: 2px; }
.luvia-v3:not(.home) #main-content .section-heading > p:last-child:not(.eyebrow) { max-width: 670px; font-size: 17px; line-height: 1.7; }

/* Titles sit on an open, quiet surface with a firm baseline. */
.luvia-v3:not(.home) #main-content .page-hero { min-height: 0; padding: 90px 0 92px; background: #f8f8f7; color: #111; text-align: left; border-bottom: 1px solid var(--v2-line); }
.luvia-v3:not(.home) #main-content .page-hero::before,
.luvia-v3:not(.home) #main-content .page-hero::after { display: none; }
.luvia-v3:not(.home) #main-content .page-hero > .container { max-width: 1320px; }
.luvia-v3:not(.home) #main-content .page-hero h1 { max-width: 1180px; margin: 0 0 32px; font-family: "Bricolage Grotesque", sans-serif; font-size: clamp(52px, 7.3vw, 112px); font-weight: 600; line-height: 1.06; letter-spacing: -.035em; text-wrap: balance; }
.luvia-v3:not(.home) #main-content .page-hero h1 em { color: #3b3bf9; font-style: normal; font-weight: 500; }
.luvia-v3:not(.home) #main-content .page-hero p:not(.eyebrow) { max-width: 690px; margin-inline: 0; color: #62625f; font-size: 18px; line-height: 1.7; }
.luvia-v3:not(.home) #main-content .page-hero .button-row { justify-content: flex-start; margin-top: 34px; }
.luvia-v3:not(.home) #main-content .page-hero__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(36px, 5vw, 72px); }
.luvia-v3:not(.home) #main-content .page-hero__grid h1 { font-size: clamp(46px, 5.1vw, 78px); }
.luvia-v3:not(.home) #main-content .page-hero__visual { min-width: 0; }
.luvia-v3:not(.home) #main-content .page-hero__visual .browser-mockup { border: 1px solid var(--v2-line); border-radius: 5px; box-shadow: none; }

/* Marketing actions; form controls retain their existing treatment. */
.luvia-v3:not(.home) #main-content a.button { min-height: 52px; border-radius: 3px; padding: 16px 24px; font-size: 13px; font-weight: 750; box-shadow: none; }
.luvia-v3:not(.home) #main-content a.button:hover { transform: translateY(-2px); box-shadow: none; }
.luvia-v3:not(.home) #main-content a.button--primary { background: #3b3bf9; color: #fff; border-color: #3b3bf9; }
.luvia-v3:not(.home) #main-content a.button--primary:hover { background: #2828d7; border-color: #2828d7; }
.luvia-v3:not(.home) #main-content a:is(.button--secondary, .button--soft) { border: 1px solid #111; background: transparent; color: #111; }
.luvia-v3:not(.home) #main-content a:is(.button--secondary, .button--soft):hover { background: #111; color: #fff; }
.luvia-v3:not(.home) #main-content a.button--white { background: #f8f8f7; color: #111; border-color: #f8f8f7; }
.luvia-v3:not(.home) #main-content .text-link { text-underline-offset: 5px; }
.luvia-v3:not(.home) #main-content .text-link:hover { text-decoration: underline; }

/* Contained comparison grids and flat, carefully spaced cards. */
.luvia-v3:not(.home) #main-content :is(.service-route-grid, .feature-grid, .value-grid, .manifesto-grid, .portal-feature-grid, .design-direction-grid, .responsibility-split, .package-rail) { border-radius: 4px; }
.luvia-v3:not(.home) #main-content :is(.service-card, .pricing-comparison__card, .addon-grid article, .contact-route, .process-banner, .not-included, .dont-grid span) { border: 1px solid var(--v2-line); border-radius: 4px; box-shadow: none; }
.luvia-v3:not(.home) #main-content :is(.service-card, .pricing-comparison__card) { padding: clamp(26px, 3.5vw, 46px); }
.luvia-v3:not(.home) #main-content :is(.service-card:hover, .pricing-comparison__card.is-recommended, .contact-route:hover) { box-shadow: none; transform: none; }
.luvia-v3:not(.home) #main-content .pricing-comparison__card.is-recommended { border: 1px solid #3b3bf9; border-top-width: 4px; }
.luvia-v3:not(.home) #main-content :is(.service-card h3, .pricing-comparison__card h2) { font-weight: 800; letter-spacing: -.045em; }
.luvia-v3:not(.home) #main-content :is(.feature-card, .value-grid > article, .manifesto-grid > article, .portal-feature-grid > article) { min-width: 0; padding: 32px; background: #f8f8f7; }
.luvia-v3:not(.home) #main-content :is(.feature-card, .decision-grid > article) { transition: background-color .2s ease; }
.luvia-v3:not(.home) #main-content .feature-card:hover { background: #ededff; color: #111; }
.luvia-v3:not(.home) #main-content :is(.feature-card h3, .value-grid h3, .manifesto-grid h3, .portal-feature-grid h3, .decision-grid h3) { font-size: 25px; font-weight: 750; line-height: 1.12; letter-spacing: -.035em; }
.luvia-v3:not(.home) #main-content :is(.feature-card p, .value-grid p, .manifesto-grid p, .portal-feature-grid p, .decision-grid p) { font-size: 14px; line-height: 1.7; }
.luvia-v3:not(.home) #main-content :is(.feature-card__icon, .tag, .roadmap-step__meta b, .decision-grid > article > span, .dont-grid span) { border-radius: 3px; }
.luvia-v3:not(.home) #main-content .service-route-grid > article { min-height: 560px; padding: clamp(32px, 4.4vw, 60px); }
.luvia-v3:not(.home) #main-content .route-number { position: static; display: block; margin-bottom: 32px; color: #3b3bf9; font-size: 14px; letter-spacing: .08em; }
.luvia-v3:not(.home) #main-content .is-dark .route-number { color: #f8f8f7; }
.luvia-v3:not(.home) #main-content .scope-disclosure { border-radius: 0; background: #ededff; }
.luvia-v3:not(.home) #main-content .scope-disclosure p + p { margin-top: 12px; }
.luvia-v3:not(.home) #main-content :is(.editorial-split, .split-section, .security-note, .process-steps-inline, .faq-layout) { gap: clamp(40px, 7vw, 96px); }
.luvia-v3:not(.home) #main-content .roadmap-step { border-bottom: 1px solid var(--v2-line); padding-block: 30px 40px; }
.luvia-v3:not(.home) #main-content .roadmap-step > span { border-radius: 3px; background: #f8f8f7; font-size: 18px; }
.luvia-v3:not(.home) #main-content .roadmap-step h2 { font-size: clamp(32px, 3.8vw, 52px); }
.luvia-v3:not(.home) #main-content .concept-card { border-bottom: 1px solid var(--v2-line); }
.luvia-v3:not(.home) #main-content .concept-card .browser-mockup { border-radius: 5px; box-shadow: none; }
.luvia-v3:not(.home) #main-content .faq-library__toolbar { border-radius: 4px; box-shadow: none; }
.luvia-v3:not(.home) #main-content .faq-library__item { border-radius: 3px; box-shadow: none; }
.luvia-v3:not(.home) #main-content .faq-library__item button span { font-weight: 750; }
.luvia-v3:not(.home) #main-content .faq__item button span { font-size: clamp(18px, 1.7vw, 23px); font-weight: 700; }

/* Dark chapters remain distinct; light surfaces inside demos keep their own contrast. */
.luvia-v3:not(.home) #main-content :is(.section--ink, .page-hero--dark, .ecommerce-hero, .service-route-grid > .is-dark, .service-card--accent, .design-direction--accent) { background: #111; color: #f8f8f7; }
.luvia-v3:not(.home) #main-content .responsibility-split > div + div { background: #111; }
.luvia-v3:not(.home) #main-content :is(.section--ink, .page-hero--dark, .ecommerce-hero, .service-route-grid > .is-dark) .eyebrow { color: #f8f8f7; }
.luvia-v3:not(.home) #main-content :is(.section--ink, .page-hero--dark, .ecommerce-hero) .eyebrow::before { background: #3b3bf9; }
.luvia-v3:not(.home) #main-content :is(.page-hero--dark, .ecommerce-hero) h1 em { color: #f8f8f7; text-decoration: underline; text-decoration-color: #3b3bf9; text-decoration-thickness: .045em; text-underline-offset: .12em; }
.luvia-v3:not(.home) #main-content :is(.page-hero--dark, .ecommerce-hero) p:not(.eyebrow),
.luvia-v3:not(.home) #main-content .section--ink :is(.split-section > div > p:not(.eyebrow), .section-heading > p:not(.eyebrow)) { color: #b8b8b5; }
.luvia-v3:not(.home) #main-content :is(.page-hero--dark, .ecommerce-hero, .section--ink) a.button--secondary { border-color: rgba(255,255,255,.5); color: #f8f8f7; }
.luvia-v3:not(.home) #main-content .ecommerce-hero__glow { opacity: .16; }
.luvia-v3:not(.home) #main-content .commerce-console { border-radius: 5px; box-shadow: none; }
.luvia-v3:not(.home) #main-content .contact-route.is-primary { background: #3b3bf9; border-color: #3b3bf9; }

/* A solid indigo closing invitation replaces the nested gradient panel. */
.luvia-v3:not(.home) #main-content .page-cta { border-radius: 0; background: #3b3bf9 !important; }
.luvia-v3:not(.home) #main-content .page-cta__inner { min-height: 0; max-width: 1320px; padding: 0; border: 0; border-radius: 0; background: #3b3bf9 !important; text-align: left; }
.luvia-v3:not(.home) #main-content .page-cta__inner::after { display: none; }
.luvia-v3:not(.home) #main-content .page-cta h2 { max-width: 1000px; font-size: clamp(42px, 6.5vw, 88px); font-weight: 800; }
.luvia-v3:not(.home) #main-content .page-cta .eyebrow { color: #fff !important; }
.luvia-v3:not(.home) #main-content .page-cta p:not(.eyebrow) { margin-inline: 0; color: #fff !important; }
.luvia-v3:not(.home) #main-content .page-cta .button-row { justify-content: flex-start; }

@media (max-width: 1100px) {
  .luvia-v3:not(.home) #main-content :is(.page-hero__grid, .ecommerce-hero__grid) { grid-template-columns: minmax(0, 1fr); }
  .luvia-v3:not(.home) #main-content .page-hero__grid h1 { max-width: 900px; font-size: clamp(52px, 8vw, 86px); }
  .luvia-v3:not(.home) #main-content .page-hero__visual { width: 100%; max-width: 850px; margin-top: 12px; }
  .luvia-v3:not(.home) #main-content :is(.feature-grid, .value-grid, .decision-grid, .package-rail) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .luvia-v3:not(.home) #main-content .container { width: calc(100% - 40px); }
  .luvia-v3:not(.home) #main-content .section { padding-block: 68px; }
  .luvia-v3:not(.home) #main-content .page-hero { padding: 56px 0 64px; }
  .luvia-v3:not(.home) #main-content :is(.page-hero h1, .page-hero__grid h1) { font-size: clamp(43px, 8.5vw, 64px); }
  .luvia-v3:not(.home) #main-content .page-hero p:not(.eyebrow) { font-size: 16px; }
  .luvia-v3:not(.home) #main-content :is(.service-route-grid, .service-grid--packages, .pricing-comparison, .addon-grid, .editorial-split, .split-section, .security-note, .process-steps-inline, .responsibility-split, .design-direction-grid, .manifesto-grid, .portal-feature-grid, .contact-layout, .concept-card, .concept-card:nth-child(even)) { grid-template-columns: minmax(0, 1fr); }
  .luvia-v3:not(.home) #main-content .service-route-grid > article { min-height: 0; padding: 32px 26px; }
  .luvia-v3:not(.home) #main-content .service-route-grid h2 { font-size: 40px; }
  .luvia-v3:not(.home) #main-content .responsibility-split > div { min-height: 0; padding: 34px 26px; }
  .luvia-v3:not(.home) #main-content .responsibility-split > div + div { border-left: 0; }
  .luvia-v3:not(.home) #main-content .design-direction { border-right: 0; }
  .luvia-v3:not(.home) #main-content .roadmap-step { grid-template-columns: 46px minmax(0, 1fr); gap: 20px; }
  .luvia-v3:not(.home) #main-content .roadmap-step > span { width: 46px; height: 46px; font-size: 14px; }
  .luvia-v3:not(.home) #main-content .process-roadmap::before { left: 23px; }
  .luvia-v3:not(.home) #main-content .contact-routes { position: static; }
  .luvia-v3:not(.home) #main-content .concept-card:nth-child(even) > .concept-presentation { order: 0; }
}
@media (max-width: 520px) {
  .luvia-v3:not(.home) #main-content :is(.feature-grid, .value-grid, .decision-grid, .package-rail, .dont-grid) { grid-template-columns: minmax(0, 1fr); }
  .luvia-v3:not(.home) #main-content :is(.feature-card, .value-grid > article, .decision-grid > article) { min-height: 0; border-right: 0; padding: 28px 24px; }
  .luvia-v3:not(.home) #main-content .package-rail > article { border-right: 0; border-bottom: 1px solid var(--v2-line-light); }
  .luvia-v3:not(.home) #main-content .button-row { flex-wrap: wrap; gap: 10px; }
  .luvia-v3:not(.home) #main-content .button-row a.button { width: 100%; justify-content: space-between; }
  .luvia-v3:not(.home) #main-content .pricing-comparison__card dl > div { flex-direction: column; gap: 6px; }
  .luvia-v3:not(.home) #main-content .pricing-comparison__card dd { text-align: left; }
  .luvia-v3:not(.home) #main-content .scope-disclosure { padding: 24px; }
  .luvia-v3:not(.home) #main-content .page-cta h2 { font-size: 42px; }
  .luvia-v3:not(.home) #main-content .page-hero .button-row { width: 100%; flex-direction: row; align-items: stretch; gap: 10px; }
  .luvia-v3:not(.home) #main-content .page-hero .button-row a.button { flex: 1; width: auto; padding: 14px 12px; font-size: 12px; justify-content: center; }
}
