/* September 2026 shared foundation. Loaded last by apply-feedback.mjs.
   Imported selectors/inline styles require the narrowly scoped !important rules.
   Page tasks should use these tokens rather than add another competing scale. */
:root {
  --font-marketing: proxima-nova, 'Open Sans', Arial, sans-serif;
  --font-size-copy: 1.125rem;
  --font-size-label: 1rem;
  --card-gap: 1.5rem;
  --card-padding: 1.5rem;
  --cta-padding: .75rem 1.5rem;
  --focus-ring: var(--color-sky-blue);
  --sticky-offset: 100px;
}
body { --font-primary: var(--font-marketing); }
html { scroll-padding-top: var(--sticky-offset); }
[id] { scroll-margin-top: var(--sticky-offset); }
.pl-header { position: sticky; top: 0; z-index: var(--z-header); }
.pl-navigation { margin-left: clamp(16px, 4vw, 72px); gap: 20px; }
.pl-navigation > ul { gap: 16px; }
.pl-nav-label button { min-width: 44px; }
.pl-nav-label > a { font-size: var(--font-size-label); }
.pl-nav-actions { gap: 12px; }
.pl-dropdown { max-height: calc(100dvh - var(--sticky-offset)); overflow-y: auto; }
.pl-dropdown a, .pl-social a, .nav-search-btn { min-height: 44px; min-width: 44px; }
.pl-nav-group:last-child .pl-dropdown { left: auto; right: 0; }
section.pl-newsletter h2 { font: 700 1.5rem/1.25 var(--font-marketing); color: inherit; margin: 0 0 8px; }
section.pl-newsletter p { font: 400 1.125rem/1.5 var(--font-marketing); color: inherit; max-width: 48ch; margin: 0; }
section.pl-newsletter .pl-button { color: white; }
.pl-sr-only { position: absolute!important; width: 1px!important; height: 1px!important; padding: 0!important; margin: -1px!important; overflow: hidden!important; clip-path: inset(50%)!important; white-space: nowrap!important; border: 0!important; }
/* Content copy excludes forms, navigation, tables and code. Secondary metadata
   stays at 16px; archive/card bodies use the same 18px as solution callouts. */
:is(.pl-home,.product-content,.stage5-content,.stage6,.stage7-page main) :is(p,li,.elementor-widget-text-editor,.elementor-icon-box-description,.pl-benefit):not(.elementor *, .stage7-prose *, .stage6[class*="hs-content-id-"] *,form *,nav *,code *,pre *,table *, .breadcrumb *, .stage7-byline, .stage6-meta) {
  font-size: var(--font-size-copy)!important;
  line-height: 1.5!important;
}
:is(.pl-home,.product-content,.stage5-content,.stage6,.stage7-page main) :is(h1,h2,h3,h4,h5,h6) { text-transform: none!important; overflow-wrap: break-word; }
:is(.pl-home,.product-content,.stage5-content,.stage6,.stage7-page main) h1:not(.elementor *, .stage7-prose *, .stage6[class*="hs-content-id-"] *) { font-size: clamp(2rem, 3.6vw, 3.25rem)!important; line-height: 1.15!important; }
:is(.pl-home,.product-content,.stage5-content,.stage6,.stage7-page main) h2:not(.elementor *, .stage7-prose *, .stage6[class*="hs-content-id-"] *, .stage6-card *, .stage7-card *, .pl-newsletter *, .product-dialog *, .marketing-resources *) { font-size: clamp(1.75rem, 2.8vw, 2.5rem)!important; line-height: 1.2!important; }
:is(.pl-home,.product-content,.stage5-content,.stage6,.stage7-page main) :is(h3,h4):not(.elementor *, .stage7-prose *, .stage6[class*="hs-content-id-"] *, .pl-latest-card *, .marketing-resources *) { font-size: clamp(1.25rem, 1.7vw, 1.5rem)!important; line-height: 1.25!important; }
:is(.stage6-meta,.stage7-byline,.stage7-card time,.pl-trust > p) { font-size: var(--font-size-label)!important; }
/* Stretch siblings without fixed card heights. Their final actions align. */
:is(.card-grid,.resource-grid,.stage6-grid,.stage7-grid,.pl-solution-grid,.pl-industry-grid,.pl-related-grid) { gap: var(--card-gap); align-items: stretch; }
:is(.pl-card,.resource-card,.stage6-card,.stage7-card,.pl-solution-card,.feature-card) { min-width: 0; height: auto; display: flex; flex-direction: column; }
:is(.pl-card,.stage6-card,.stage7-card,.pl-solution-card) { padding: var(--card-padding); }
:is(.pl-card,.stage6-card,.stage7-card,.pl-solution-card) > :is(.card-link,.stage6-action,.stage7-read,.pl-button,.btn) { margin-top: auto; align-self: flex-start; }
.elementor-icon-list-item { column-gap: 12px!important; }
.elementor-icon-list-icon { flex-shrink: 0; }
/* Destination actions and native buttons share size/weight; disclosure, filter,
   form controls keep their native behavior and are not destination links. */
:is(.btn,.pl-button,.elementor-button,.stage6-action,.stage7-read) {
  font-family: var(--font-marketing)!important; font-size: 1.125rem!important;
  font-weight: 600!important; line-height: 1.3!important; text-transform: none!important;
  min-height: 48px; padding: var(--cta-padding)!important; white-space: normal;
  transition: background-color var(--transition-base), color var(--transition-base), border-color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-base);
}
.pl-nav-actions .pl-button, .pl-home :is(.hero,.pl-why) .pl-button { font-size: 1rem!important; }
/* Sitewide CTA hover/focus decision, 2026-10-29. This existing integration
   boundary owns imported CTA states; specificity beats retained widget rules.
   Default product treatments and non-CTA controls retain their own styles. */
:is(.elementor-button,.qodef-qi-button,.jkit-image-box .button-wrapper a):is(:hover,:focus-visible) {
  background: var(--color-accent-orange)!important;
  color: white!important;
  border-color: var(--color-accent-orange)!important;
}
/* Hero arrow CTAs match the header and home hero CTA in pilot.css (2026-10-29). The rule above
   supplies the #F57700 hover/focus fill; here the arrow turns horizontal and goes black while a
   white circle scales and fades in behind it (0.3s), for keyboard focus as well as hover. */
main :is(.e-parent,.elementor-top-section):has(h1) .PFL-btn .elementor-button .elementor-button-icon { position: relative; isolation: isolate; transition: rotate .3s; }
main :is(.e-parent,.elementor-top-section):has(h1) .PFL-btn .elementor-button .elementor-button-icon::before { content: ""; position: absolute; z-index: -1; inset: 0; border-radius: 50%; background: white; scale: 0; opacity: 0; transition: scale .3s, opacity .3s; }
main :is(.e-parent,.elementor-top-section):has(h1) .PFL-btn .elementor-button .jki-right-arrow-12 { transition: color .3s; }
main :is(.e-parent,.elementor-top-section):has(h1) .PFL-btn .elementor-button:is(:hover,:focus-visible) .elementor-button-icon { background-color: transparent; rotate: 0deg; line-height: 20px; }
main :is(.e-parent,.elementor-top-section):has(h1) .PFL-btn .elementor-button:is(:hover,:focus-visible) .elementor-button-icon::before { scale: 1; opacity: 1; }
main :is(.e-parent,.elementor-top-section):has(h1) .PFL-btn .elementor-button:is(:hover,:focus-visible) .jki-right-arrow-12 { color: black; font-size: 12px; }
@media (prefers-reduced-motion: reduce) { main :is(.e-parent,.elementor-top-section):has(h1) .PFL-btn .elementor-button :is(.elementor-button-icon,.jki-right-arrow-12), main :is(.e-parent,.elementor-top-section):has(h1) .PFL-btn .elementor-button .elementor-button-icon::before { transition: none; } }
/* Orange buttons: #F57700 with white text in every state (user decision 2026-10-29). */
.stage6 .stage6-action, .stage6 .stage6-card .stage6-action, .stage7-page .stage7-card .stage7-read { background: var(--color-accent-orange); color: white; }
:is(.stage6-card,.stage7-card):focus-within { box-shadow: 0 0 0 2px var(--focus-ring); }
body :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible { outline: 3px solid var(--focus-ring)!important; outline-offset: 3px!important; }
.product-content .product-dialog-close {
  display: grid; place-items: center; width: 44px; height: 44px; min-width: 44px; min-height: 44px;
  padding: 0!important; font: 400 24px/1 var(--font-marketing)!important;
  background: transparent!important; color: var(--color-primary-blue)!important; border: 0!important; border-radius: 6px;
}
.product-content .product-dialog-close:hover { background: var(--color-cloud-white)!important; }
.product-content .product-dialog { padding-top: 52px; }
.product-content .product-cf-header { position: sticky; top: 0; z-index: var(--z-header); }
.product-cf-nav { max-height: calc(100dvh - var(--sticky-offset)); overflow-y: auto; }
@media(max-width:1200px) and (min-width:1101px) {
 .pl-header-inner { padding-inline: 24px; gap: 16px; }
 .pl-logo img { width: 150px; height: 50px; }
 .pl-navigation > ul { gap: 6px; }
 .pl-nav-actions .pl-button, .pl-home :is(.hero,.pl-why) .pl-button { padding-inline: 12px!important; }
}
@media(max-width:1100px) {
 :root { --sticky-offset: 90px; }
 .pl-navigation { margin-left: 0; max-height: calc(100dvh - 90px); overscroll-behavior: contain; }
 .pl-dropdown { max-height: none; }
}
@media(max-width:767px) {
 /* Let enlarged hero copy reflow instead of clipping in the prior fixed rows. */
 .pl-hero-inner { height: auto; min-height: 430px; grid-template-rows: auto auto auto; padding-block: 32px; }
 .pl-home .hero { min-height: 0; }
}
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior: auto!important; }
 /* Logo tracks apply their own static/paused reduced-motion treatment. */
 body :not(.pl-logo-track), body *::before, body *::after { animation-duration: .01ms!important; animation-iteration-count: 1!important; transition-duration: 0s!important; scroll-behavior: auto!important; }
}
/* Imported sibling card grids use Elementor's shared layout vocabulary. */
.service-content .e-grid { gap: var(--card-gap); align-items: stretch; }
.service-content .e-grid > .e-con { min-width: 0; height: auto; }

/* Shared components use the brand face; imported pages keep the original
   per-widget families (including Roboto, Inter and Poppins). */
:is(.pl-home,.product-content,.stage5-content,.stage6,.stage7-page main) :is(h1,h2,h3,h4,h5,h6,p,li,.elementor-widget-text-editor,.elementor-heading-title,.elementor-icon-list-text,.elementor-button-text):not(.elementor *, .stage7-prose *, .stage6[class*="hs-content-id-"] *) { font-family: var(--font-marketing)!important; }
:is(.pl-home,.product-content,.stage5-content,.stage6,.stage7-page main) :is(.eyebrow,.breadcrumb:not(:where(.archive-breadcrumb)),.stage7-byline,.stage6-meta,small,form label), .pl-field label { font-size: var(--font-size-label)!important; line-height: 1.5!important; }
@media(max-width:1100px) { .pl-nav-label > a { font-size: 1.125rem; } }
/* Imported heading widgets retain their authored responsive roles and widths.
   A container-relative H2 clamp enlarged card labels and flattened section
   hierarchies. Explicit marketing-title roles still belong to Task1. */

.stage6 .stage6-action:hover, .stage7-page .stage7-card .stage7-read:hover { background: var(--color-accent-orange); text-decoration: underline; }
.stage7-page .stage7-card .stage7-read { display: inline-flex; align-items: center; align-self: flex-start; }

/* Shared CTA lift is decorative; focus retains its ring when motion is reduced. */
@media (prefers-reduced-motion: reduce) {
 :is(.btn-primary,.btn-secondary,.btn-white):is(:hover,:focus-visible) { transform: none; }
}
.pl-reduce-motion :is(.btn-primary,.btn-secondary,.btn-white):is(:hover,:focus-visible) { transform: none; }
