/*
 * LIFA Global Trade sitewide button design and motion system
 *
 * This file is loaded after every other stylesheet. It gives all commands,
 * disclosures, tabs, and icon controls one quiet design language while keeping
 * their semantic role and existing JavaScript behavior intact.
 */

:root {
  /* Primitive brand tokens */
  --button-gold-400: var(--gold-light, #eed47d);
  --button-gold-600: var(--gold, #eed47d);
  --button-navy-800: var(--navy, #0f1e36);
  --button-navy-900: var(--deep-ink, #07111e);
  --button-white: var(--white, #ffffff);
  --button-cool-50: var(--off-white, #f7f9fc);
  --button-cool-200: var(--line, #dce3ed);

  /* Semantic state tokens */
  --button-primary-bg: var(--button-gold-600);
  --button-primary-bg-hover: var(--button-gold-400);
  --button-primary-fg: var(--button-navy-900);
  --button-secondary-bg: var(--button-navy-800);
  --button-secondary-bg-hover: var(--secondary-navy, #132b4a);
  --button-secondary-fg: var(--button-white);
  --button-utility-bg: var(--button-white);
  --button-utility-bg-hover: var(--button-cool-50);
  --button-utility-fg: var(--button-navy-800);
  --button-border: var(--button-cool-200);
  --button-border-accent: var(--button-gold-600);
  --button-focus-ring: rgba(238, 212, 125, .28);

  /* Component tokens */
  --button-radius: 6px;
  --button-height: 48px;
  --button-height-compact: 44px;
  --button-padding-block: 12px;
  --button-padding-inline: 22px;
  --button-font-size: .82rem;
  --button-font-weight: 700;
  --button-shadow: 0 10px 24px rgba(7, 17, 30, .14), inset 0 1px 0 rgba(255, 255, 255, .32);
  --button-shadow-hover: 0 15px 30px rgba(7, 17, 30, .19), inset 0 1px 0 rgba(255, 255, 255, .42);
  --button-shadow-utility: 0 5px 14px rgba(7, 17, 30, .08);

  /* Shared motion tokens */
  --motion-duration-button: 220ms;
  --motion-duration-button-press: 100ms;
  --motion-ease-button: cubic-bezier(.22, 1, .36, 1);
  --motion-button-rest-y: 0px;
  --motion-button-hover-y: -2px;
  --motion-button-active-y: -1px;
  --motion-button-rest-scale: 1;
  --motion-button-press-scale: .99;
  --button-motion-transition:
    translate var(--motion-duration-button) var(--motion-ease-button),
    scale var(--motion-duration-button) var(--motion-ease-button),
    box-shadow var(--motion-duration-button) var(--motion-ease-button),
    filter var(--motion-duration-button) var(--motion-ease-button),
    background-color var(--motion-duration-button) var(--motion-ease-button),
    border-color var(--motion-duration-button) var(--motion-ease-button),
    color var(--motion-duration-button) var(--motion-ease-button),
    opacity var(--motion-duration-button) var(--motion-ease-button);
}

/* The body branch matches every page. The inert four-ID branch raises this
   final contract above older imported cascade locks without changing markup. */
:is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) :where(
  button,
  input[type="button"],
  input[type="submit"],
  input[type="reset"],
  [role="button"],
  summary,
  a.btn,
  a.button,
  a.header-cta,
  a.trustpilot-btn,
  a.tool-action,
  a.hero-brief-submit,
  a.calc-btn,
  a.pro-btn,
  a.lifa-tool-button,
  a.hpv2-button,
  a.float-btn,
  a[class$="-button"]
):where(:not(.lifa-ai-root *):not(.ai-desk-button):not(.ai-desk-composer-tool):not(.ai-desk-send):not([hidden]):not(.float-btn)) {
  box-sizing: border-box;
  min-height: var(--button-height-compact) !important;
  padding: var(--button-control-padding, 10px 16px) !important;
  color: var(--button-utility-fg) !important;
  -webkit-text-fill-color: currentColor !important;
  background-color: var(--button-utility-bg) !important;
  background-image: none !important;
  border: 1px solid var(--button-border) !important;
  border-radius: var(--button-radius) !important;
  box-shadow: var(--button-shadow-utility) !important;
  font-family: var(--font-ui, Montserrat, Arial, sans-serif) !important;
  font-size: var(--button-font-size) !important;
  font-weight: var(--button-font-weight) !important;
  line-height: 1.25 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  animation: none !important;
  cursor: pointer;
  touch-action: manipulation;
  transform: none !important;
  translate: 0 var(--motion-button-rest-y) !important;
  scale: var(--motion-button-rest-scale) !important;
  transition: var(--button-motion-transition) !important;
  will-change: translate, scale;
}

/* Sitewide content-centering contract. Every compact command owns the center
   of its frame, regardless of whether its label is bare text, an SVG, or a
   nested span. The AI workspace is included here even though it owns its
   colors and geometry in a later application stylesheet. */
:is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) :where(
  button,
  [role="button"],
  a.btn,
  a.button,
  a.header-cta,
  a.trustpilot-btn,
  a.tool-action,
  a.hero-brief-submit,
  a.calc-btn,
  a.pro-btn,
  a.lifa-tool-button,
  a.hpv2-button,
  a.float-btn,
  a[class$="-button"]
):not(.faq-question):not(summary):not(.menu-toggle):not(.dropdown-toggle):where(:not([hidden])) {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  vertical-align: middle;
}

:is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) :where(
  input[type="button"],
  input[type="submit"],
  input[type="reset"],
  input[type="file"]::file-selector-button
) {
  text-align: center !important;
}

/* Numeric emblems and compact text badges use grid centering so their label
   remains optically centered even when a legacy component supplied only size. */
:is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) :is(
  .lifa-number-badge,
  .lifa-feature-badge,
  .process-info-icon,
  .tool-callout-icon,
  .step-number,
  .home-route-number,
  .lifa-form-stage-number,
  .lifa-google-booking-number,
  .tool-decision-number,
  .founder-ledger-number,
  .founder-fact-mark,
  .founder-service-mark,
  .signal-icon,
  .card-icon,
  .tutorial-level-number,
  .tutorial-step-number,
  .value-evidence__number,
  .cap-tag,
  .ai-desk-tab-count
):where(:not([hidden])) {
  box-sizing: border-box;
  display: inline-grid !important;
  place-items: center !important;
  text-align: center !important;
  vertical-align: middle;
}

:is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) :is(
  .hero-carousel-count,
  .glossary-count,
  .home-resource-status-count,
  .record-status-label
) {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  vertical-align: middle;
}

/* The homepage carousel has one control on the left and two on the right.
   Mirrored reserve columns keep the counter on the toolbar's true centerline,
   rather than merely centering it inside an asymmetric remaining space. */
:is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body).home-page [data-hero-controls].hero-carousel-controls {
  grid-template-columns: 44px 44px minmax(0, 1fr) auto minmax(0, 1fr) 44px 44px !important;
  align-items: center !important;
}

:is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body).home-page [data-hero-controls] [data-hero-prev] {
  grid-column: 1;
  grid-row: 1;
}

:is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body).home-page [data-hero-controls] .hero-media-caption {
  display: none !important;
  grid-column: 3;
  grid-row: 1;
  justify-self: start;
}

:is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body).home-page [data-hero-controls] .hero-carousel-count {
  grid-column: 4;
  grid-row: 1;
  justify-self: center;
  white-space: nowrap;
}

:is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body).home-page [data-hero-controls] [data-hero-toggle] {
  grid-column: 6;
  grid-row: 1;
}

:is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body).home-page [data-hero-controls] [data-hero-next] {
  grid-column: 7;
  grid-row: 1;
}

@media (max-width: 460px) {
  :is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body).home-page [data-hero-controls].hero-carousel-controls {
    gap: 6px !important;
  }
}

/* Command buttons use one geometry. Primary and secondary are the only visual
   variants so adjacent actions retain a clear decision hierarchy. */
:is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) :is(
  .header-cta,
  .btn,
  .button,
  .trustpilot-btn,
  .tool-action,
  .tool-output-actions button,
  .hero-brief-submit,
  .calc-btn,
  .pro-btn,
  .lifa-tool-button,
  .hpv2-button
) {
  position: relative;
  min-width: 0;
  max-width: 100%;
  min-height: var(--button-height) !important;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: var(--button-padding-block) var(--button-padding-inline) !important;
  overflow: hidden !important;
  color: var(--button-primary-fg) !important;
  -webkit-text-fill-color: var(--button-primary-fg) !important;
  background-color: var(--button-primary-bg) !important;
  background-image: none !important;
  border-color: var(--button-gold-400) !important;
  border-radius: var(--button-radius) !important;
  box-shadow: var(--button-shadow) !important;
  font-family: var(--font-ui, Montserrat, Arial, sans-serif) !important;
  font-size: var(--button-font-size) !important;
  font-weight: var(--button-font-weight) !important;
  line-height: 1.25 !important;
  letter-spacing: 0 !important;
  text-align: center;
  text-transform: none !important;
  white-space: normal;
  isolation: isolate;
}

:is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) :is(
  .btn-secondary,
  .btn-outline,
  .btn-ghost,
  .button-secondary,
  .trustpilot-btn-secondary,
  .hpv2-button-secondary
):is(
  .btn-secondary,
  .btn-outline,
  .btn-ghost,
  .button-secondary,
  .trustpilot-btn-secondary,
  .hpv2-button-secondary
) {
  color: var(--button-secondary-fg) !important;
  -webkit-text-fill-color: var(--button-secondary-fg) !important;
  background-color: var(--button-secondary-bg) !important;
  background-image: none !important;
  border-color: var(--button-border-accent) !important;
}

/* Imported action styles used animated sweeps and decorative arrows. Removing
   them keeps the system quiet and makes every command state match. */
:is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) :is(
  .header-cta,
  .btn,
  .button,
  .trustpilot-btn,
  .tool-action,
  .tool-output-actions button,
  .hero-brief-submit,
  .calc-btn,
  .pro-btn,
  .lifa-tool-button,
  .hpv2-button
)::before,
:is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) :is(
  .header-cta,
  .btn,
  .button,
  .trustpilot-btn,
  .tool-action,
  .tool-output-actions button,
  .hero-brief-submit,
  .calc-btn,
  .pro-btn,
  .lifa-tool-button,
  .hpv2-button
)::after {
  content: none !important;
  animation: none !important;
  transform: none !important;
  transition: none !important;
}

/* Compact icon controls share one 44px navy frame. Existing SVGs and images
   stay in place, so familiar menu, close, contact, and carousel symbols remain. */
:is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) :is(
  .menu-toggle,
  .dropdown-toggle,
  .hero-media-control,
  .modal-close,
  .float-btn,
  .close-btn,
  .entry-close,
  .enterprise-cert-pay-close,
  .dtel-disclaimer-close,
  .founder-showcase-progress button
):not(.menu-toggle):not(.dropdown-toggle):not(.float-btn) {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  width: var(--button-height-compact) !important;
  min-width: var(--button-height-compact) !important;
  height: var(--button-height-compact) !important;
  min-height: var(--button-height-compact) !important;
  padding: 0 !important;
  color: var(--button-gold-400) !important;
  -webkit-text-fill-color: var(--button-gold-400) !important;
  background-color: var(--button-navy-800) !important;
  background-image: none !important;
  border-color: rgba(238, 212, 125, .58) !important;
  border-radius: var(--button-radius) !important;
  box-shadow: var(--button-shadow-utility) !important;
}

/* Compact conversation actions retain the shared motion without label padding
   shrinking their icons to zero. */
:is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) .ai-desk-app :is(.ai-desk-message-action, .ai-desk-composer-file button) {
  width: 44px !important;
  min-width: 44px !important;
  height: 44px !important;
  min-height: 44px !important;
  padding: 0 !important;
  border-color: transparent !important;
  box-shadow: none !important;
}

@media (pointer: coarse) {
  :is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) .ai-desk-app :is(.ai-desk-message-action, .ai-desk-composer-file button) {
    width: 44px !important;
    min-width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
  }
}

/* Floating WhatsApp and WeChat contacts are the one visual exception. These
   values reproduce the design referenced by the downloaded home page: navy
   radial surface, gold edge and rotating halo, channel-specific icon, and a
   small green availability marker. Links and modal behavior remain unchanged. */
:is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) .floating-contact {
  position: fixed !important;
  top: auto !important;
  right: max(14px, env(safe-area-inset-right)) !important;
  bottom: max(14px, env(safe-area-inset-bottom)) !important;
  left: auto !important;
  z-index: 1200 !important;
  display: grid !important;
  width: auto !important;
  height: auto !important;
  grid-template-columns: 50px !important;
  grid-auto-flow: row !important;
  gap: 8px !important;
  padding: 0 !important;
  overflow: visible !important;
  background: transparent !important;
}

html:not(#lifa-contact-visibility-a):not(#lifa-contact-visibility-b):not(#lifa-contact-visibility-c):not(#lifa-contact-visibility-d):not(#lifa-contact-visibility-e):not(#lifa-contact-visibility-f):not(#lifa-contact-visibility-g):not(#lifa-contact-visibility-h):not(#lifa-contact-visibility-i)
  body[data-page-family]:has(.main-nav.open) .floating-contact,
html:not(#lifa-contact-visibility-a):not(#lifa-contact-visibility-b):not(#lifa-contact-visibility-c):not(#lifa-contact-visibility-d):not(#lifa-contact-visibility-e):not(#lifa-contact-visibility-f):not(#lifa-contact-visibility-g):not(#lifa-contact-visibility-h):not(#lifa-contact-visibility-i)
  body[data-page-family]:has(.wechat-modal.open) .floating-contact {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

:is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) .floating-contact .float-btn:is(.whatsapp, .wechat) {
  --motion-button-hover-y: -3px;
  display: inline-flex !important;
  width: 50px !important;
  min-width: 50px !important;
  height: 50px !important;
  min-height: 50px !important;
  flex: 0 0 50px !important;
  padding: 0 !important;
  overflow: visible !important;
  color: var(--button-white) !important;
  -webkit-text-fill-color: var(--button-white) !important;
  background-color: var(--button-navy-800) !important;
  background-image: radial-gradient(circle at 32% 28%, #1a2d4d, var(--button-navy-800) 65%) !important;
  border: 1.5px solid rgba(238, 212, 125, .55) !important;
  border-radius: 50% !important;
  box-shadow: 0 12px 28px rgba(7, 17, 30, .35), inset 0 0 0 1px rgba(238, 212, 125, .08) !important;
  isolation: isolate;
}

:is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) .floating-contact .float-btn:is(.whatsapp, .wechat)::before {
  content: "";
  position: absolute;
  inset: -3px;
  z-index: -1;
  border-radius: 50%;
  background: conic-gradient(from 0deg, transparent 0%, rgba(238, 212, 125, .9) 8%, transparent 22%);
  opacity: 0;
  animation: floatBtnSpin 2.6s linear infinite;
  animation-play-state: paused;
  transition: opacity .3s ease;
}

:is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) .floating-contact .float-btn:is(.whatsapp, .wechat)::after {
  content: "";
  position: absolute;
  right: -2px;
  bottom: -2px;
  width: 15px !important;
  height: 15px !important;
  border: 2px solid var(--button-navy-800) !important;
  border-radius: 50% !important;
}

:is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) .floating-contact .float-btn:is(.whatsapp, .wechat) img {
  width: 27px !important;
  height: 27px !important;
  object-fit: contain;
  filter: drop-shadow(0 2px 5px rgba(7, 17, 30, .3));
  transition: transform .22s ease;
}

:is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) .floating-contact .float-btn.whatsapp::after {
  background: linear-gradient(145deg, #3adc72, #1fa855) !important;
  box-shadow: 0 2px 6px rgba(7, 17, 30, .4) !important;
}

:is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) .floating-contact .float-btn.wechat::after {
  background: linear-gradient(145deg, #4fdf6a, #1f9e3a) !important;
  box-shadow: 0 2px 6px rgba(7, 17, 30, .4) !important;
}

@media (hover: hover) and (pointer: fine) {
  :is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) .floating-contact .float-btn:is(.whatsapp, .wechat):not(:disabled):hover::before,
  :is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) .floating-contact .float-btn:is(.whatsapp, .wechat):focus-visible::before {
    opacity: 1;
    animation-play-state: running;
  }

  :is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) .floating-contact .float-btn:is(.whatsapp, .wechat):not(:disabled):hover img,
  :is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) .floating-contact .float-btn:is(.whatsapp, .wechat):focus-visible img {
    transform: scale(1.08);
  }
}

@media (max-width: 700px) {
  :is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) .floating-contact {
    right: max(12px, env(safe-area-inset-right)) !important;
    bottom: max(12px, env(safe-area-inset-bottom)) !important;
    grid-template-columns: 44px !important;
    gap: 8px !important;
  }

  :is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) .floating-contact .float-btn:is(.whatsapp, .wechat) {
    width: 44px !important;
    min-width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
    flex-basis: 44px !important;
  }

  :is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) .floating-contact .float-btn:is(.whatsapp, .wechat) img {
    width: 24px !important;
    height: 24px !important;
  }

  :is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) .floating-contact .float-btn:is(.whatsapp, .wechat)::after {
    width: 13px !important;
    height: 13px !important;
  }
}

/* Full-row disclosures keep their information architecture. They use the same
   typography, surface, border, focus, and motion tokens as other controls. */
:is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) :is(
  .faq-question,
  .faq-list > details > summary
) {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  width: 100% !important;
  min-height: 72px !important;
  color: var(--button-utility-fg) !important;
  -webkit-text-fill-color: var(--button-utility-fg) !important;
  background-color: var(--button-utility-bg) !important;
  background-image: none !important;
  border-color: var(--button-border) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  font-family: var(--font-ui, Montserrat, Arial, sans-serif) !important;
  font-size: 1rem !important;
  font-weight: var(--button-font-weight) !important;
  line-height: 1.45 !important;
  text-align: left !important;
}

/* Tabs, filters, and step controls use the utility surface and the same active
   navy state as secondary commands. */
:is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) :is(
  .tab-btn,
  .language-toggle,
  .language-option,
  .record-library-filter button,
  .lifa-tool-stage-nav button,
  .timeout-button,
  .contact-chip
) {
  min-height: var(--button-height-compact) !important;
  padding: 10px 16px !important;
  color: var(--button-utility-fg) !important;
  -webkit-text-fill-color: var(--button-utility-fg) !important;
  background-color: var(--button-utility-bg) !important;
  background-image: none !important;
  border-color: var(--button-border) !important;
  border-radius: var(--button-radius) !important;
  box-shadow: var(--button-shadow-utility) !important;
}

:is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) :is(
  .tab-btn.active,
  .tab-btn[aria-selected="true"],
  .language-option[aria-selected="true"],
  .record-library-filter button[aria-pressed="true"],
  .lifa-tool-stage-nav button.is-active,
  button[aria-pressed="true"]
) {
  color: var(--button-secondary-fg) !important;
  -webkit-text-fill-color: var(--button-secondary-fg) !important;
  background-color: var(--button-secondary-bg) !important;
  border-color: var(--button-border-accent) !important;
}

/* The hero scroll control uses a structural transform for centering. Motion is
   applied with the independent translate property and does not replace it. */
:is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) :where(button, [role="button"]).hero-scroll {
  transform: translateX(-50%) !important;
}

@media (hover: hover) and (pointer: fine) {
  :is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) :where(
    button,
    input[type="button"],
    input[type="submit"],
    input[type="reset"],
    [role="button"],
    summary,
    a.btn,
    a.button,
    a.header-cta,
    a.trustpilot-btn,
    a.tool-action,
    a.hero-brief-submit,
    a.calc-btn,
    a.pro-btn,
    a.lifa-tool-button,
    a.hpv2-button,
    a.float-btn,
    a[class$="-button"]
  ):where(:not(.lifa-ai-root *):not(.ai-desk-button):not(.ai-desk-composer-tool):not(.ai-desk-send):not([hidden]):not(.float-btn)):not(:disabled):not([aria-disabled="true"]):hover {
    translate: 0 var(--motion-button-hover-y) !important;
    scale: var(--motion-button-rest-scale) !important;
  }

  :is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) :is(
    .header-cta,
    .btn-primary,
    .button-primary,
    .trustpilot-btn-primary,
    .tool-action,
    .tool-output-actions button,
    .hero-brief-submit,
    .calc-btn,
    .pro-btn,
    .lifa-tool-button,
    .hpv2-button:not(.hpv2-button-secondary)
  ):not(:disabled):not([aria-disabled="true"]):hover {
    color: var(--button-primary-fg) !important;
    -webkit-text-fill-color: var(--button-primary-fg) !important;
    background-color: var(--button-primary-bg-hover) !important;
    border-color: var(--button-primary-bg-hover) !important;
    box-shadow: var(--button-shadow-hover) !important;
    filter: saturate(1.02) !important;
  }

  :is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) :is(
    .btn-secondary,
    .btn-outline,
    .btn-ghost,
    .button-secondary,
    .trustpilot-btn-secondary,
    .hpv2-button-secondary
  ):not(:disabled):not([aria-disabled="true"]):hover {
    color: var(--button-secondary-fg) !important;
    -webkit-text-fill-color: var(--button-secondary-fg) !important;
    background-color: var(--button-secondary-bg-hover) !important;
    border-color: var(--button-gold-400) !important;
    box-shadow: var(--button-shadow-hover) !important;
  }

  :is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) :is(
    .menu-toggle,
    .dropdown-toggle,
    .hero-media-control,
    .modal-close,
    .float-btn,
    .close-btn,
    .entry-close,
    .enterprise-cert-pay-close,
    .dtel-disclaimer-close,
    .founder-showcase-progress button
  ):not(:disabled):not([aria-disabled="true"]):hover {
    color: var(--button-navy-900) !important;
    -webkit-text-fill-color: var(--button-navy-900) !important;
    background-color: var(--button-gold-400) !important;
    border-color: var(--button-gold-400) !important;
    box-shadow: var(--button-shadow-hover) !important;
  }

  :is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) :is(
    .faq-question,
    .faq-list > details > summary,
    .tab-btn,
    .language-toggle,
    .language-option,
    .record-library-filter button,
    .lifa-tool-stage-nav button,
    .timeout-button,
    .contact-chip
  ):not(:disabled):not([aria-disabled="true"]):hover {
    color: var(--button-utility-fg) !important;
    -webkit-text-fill-color: var(--button-utility-fg) !important;
    background-color: var(--button-utility-bg-hover) !important;
    border-color: var(--button-border-accent) !important;
    box-shadow: var(--button-shadow-utility) !important;
  }
}

:is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) :where(
  button,
  input[type="button"],
  input[type="submit"],
  input[type="reset"],
  [role="button"],
  summary,
  a.btn,
  a.button,
  a.header-cta,
  a.trustpilot-btn,
  a.tool-action,
  a.hero-brief-submit,
  a.calc-btn,
  a.pro-btn,
  a.lifa-tool-button,
  a.hpv2-button,
  a.float-btn,
  a[class$="-button"]
):where(:not(.lifa-ai-root *):not(.ai-desk-button):not(.ai-desk-composer-tool):not(.ai-desk-send):not([hidden]):not(.float-btn)):not(:disabled):not([aria-disabled="true"]):focus-visible {
  outline: 3px solid var(--button-gold-600) !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 4px var(--button-focus-ring), var(--button-shadow-hover) !important;
  translate: 0 var(--motion-button-hover-y) !important;
  scale: var(--motion-button-rest-scale) !important;
}

:is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) :where(
  button,
  input[type="button"],
  input[type="submit"],
  input[type="reset"],
  [role="button"],
  summary,
  a.btn,
  a.button,
  a.header-cta,
  a.trustpilot-btn,
  a.tool-action,
  a.hero-brief-submit,
  a.calc-btn,
  a.pro-btn,
  a.lifa-tool-button,
  a.hpv2-button,
  a.float-btn,
  a[class$="-button"]
):where(:not(.lifa-ai-root *):not(.ai-desk-button):not(.ai-desk-composer-tool):not(.ai-desk-send):not([hidden]):not(.float-btn)):not(:disabled):not([aria-disabled="true"]):active {
  translate: 0 var(--motion-button-active-y) !important;
  scale: var(--motion-button-press-scale) !important;
  transition-duration: var(--motion-duration-button-press) !important;
}

:is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) :where(
  button,
  input[type="button"],
  input[type="submit"],
  input[type="reset"],
  [role="button"],
  summary,
  a.btn,
  a.button,
  a.header-cta,
  a.trustpilot-btn,
  a.tool-action,
  a.hero-brief-submit,
  a.calc-btn,
  a.pro-btn,
  a.lifa-tool-button,
  a.hpv2-button,
  a.float-btn,
  a[class$="-button"]
):where(:not(.lifa-ai-root *):not(.ai-desk-button):not(.ai-desk-composer-tool):not(.ai-desk-send):not([hidden]):not(.float-btn)):is(:disabled, [aria-disabled="true"]) {
  cursor: not-allowed;
  box-shadow: none !important;
  filter: grayscale(.25) !important;
  opacity: .54 !important;
  transform: none !important;
  translate: 0 var(--motion-button-rest-y) !important;
  scale: var(--motion-button-rest-scale) !important;
  will-change: auto;
}

:is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) input[type="file"]::file-selector-button {
  min-height: var(--button-height-compact);
  padding: 10px 16px;
  color: var(--button-primary-fg);
  background: var(--button-primary-bg);
  border: 1px solid var(--button-gold-400);
  border-radius: var(--button-radius);
  box-shadow: var(--button-shadow-utility);
  font-family: var(--font-ui, Montserrat, Arial, sans-serif);
  font-size: var(--button-font-size);
  font-weight: var(--button-font-weight);
  letter-spacing: 0;
  cursor: pointer;
  translate: 0 var(--motion-button-rest-y);
  scale: var(--motion-button-rest-scale);
  transition: var(--button-motion-transition) !important;
}

@media (hover: hover) and (pointer: fine) {
  :is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) input[type="file"]:not(:disabled):hover::file-selector-button {
    background: var(--button-primary-bg-hover);
    border-color: var(--button-primary-bg-hover);
    box-shadow: var(--button-shadow-hover);
    translate: 0 var(--motion-button-hover-y);
  }
}

@media (hover: none) {
  :is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) :where(
    button,
    input[type="button"],
    input[type="submit"],
    input[type="reset"],
    [role="button"],
    summary,
    a.btn,
    a.button,
    a.header-cta,
    a.trustpilot-btn,
    a.tool-action,
    a.hero-brief-submit,
    a.calc-btn,
    a.pro-btn,
    a.lifa-tool-button,
    a.hpv2-button,
    a.float-btn,
    a[class$="-button"]
  ):where(:not(.lifa-ai-root *):not(.ai-desk-button):not(.ai-desk-composer-tool):not(.ai-desk-send):not([hidden]):not(.float-btn)):hover {
    translate: 0 var(--motion-button-rest-y) !important;
    scale: var(--motion-button-rest-scale) !important;
  }
}

@media (hover: hover) and (pointer: fine) {
  :is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) .floating-contact .float-btn:is(.whatsapp, .wechat):not(:disabled):hover {
    color: var(--button-white) !important;
    -webkit-text-fill-color: var(--button-white) !important;
    background-color: var(--button-navy-800) !important;
    background-image: radial-gradient(circle at 32% 28%, #1a2d4d, var(--button-navy-800) 65%) !important;
    border-color: rgba(238, 212, 125, .95) !important;
    box-shadow: 0 16px 34px rgba(7, 17, 30, .4), 0 0 22px rgba(238, 212, 125, .28) !important;
    filter: none !important;
  }
}

/* Desktop pointer menus stay interactive while the cursor crosses the small
   header-to-panel gap. JavaScript removes this state after a short intent
   delay; touch and collapsed navigation continue to use explicit buttons. */
@media (min-width: 1221px) and (hover: hover) and (pointer: fine) {
  :is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) .site-header .nav-item.is-pointer-open > .dropdown-panel {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateX(calc(-50% + var(--dropdown-shift, 0px))) translateY(0) scale(1) !important;
  }

  :is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) .site-header .nav-item.is-pointer-open .nav-caret {
    transform: rotate(180deg) !important;
  }

  :is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) .site-header .nav-item.is-pointer-dismissed > .dropdown-panel {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateX(calc(-50% + var(--dropdown-shift, 0px))) translateY(-8px) scale(.985) !important;
  }

  :is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) .site-header .nav-item.is-pointer-dismissed .nav-caret {
    transform: rotate(0deg) !important;
  }
}

/* Keep responsive navigation controls in one deliberate layout. The legacy
   header begins collapsing at 1220px, so its panels must not retain desktop
   padding or occupy empty rows while they are closed. */
@media (max-width: 1220px) {
  :is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) .site-header .main-nav {
    top: 100% !important;
    right: 0 !important;
    left: 0 !important;
    display: none !important;
    width: 100vw !important;
    max-height: calc(100svh - var(--site-header-height, 82px)) !important;
    margin: 0 !important;
    padding: 14px clamp(16px, 3vw, 36px) 22px !important;
    overflow-y: auto !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: 0 !important;
    color: var(--button-navy-800) !important;
    background: rgba(255, 255, 255, .99) !important;
    border-top: 1px solid var(--button-border) !important;
    border-bottom: 3px solid var(--button-gold-400) !important;
    box-shadow: 0 20px 36px rgba(7, 17, 30, .16) !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: none !important;
    transform: none !important;
  }

  :is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) .site-header .main-nav.open {
    display: flex !important;
    pointer-events: auto !important;
  }

  :is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) .site-header .main-nav > a,
  :is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) .site-header .main-nav > .nav-item > a {
    width: 100% !important;
    min-height: 48px !important;
    padding: 15px 0 !important;
    color: var(--button-navy-800) !important;
    border-bottom: 1px solid var(--button-border) !important;
  }

  :is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) .site-header .main-nav > .nav-item {
    display: grid !important;
    width: 100% !important;
    grid-template-columns: minmax(0, 1fr) 44px !important;
    grid-template-rows: auto auto !important;
    align-items: center !important;
    gap: 0 !important;
  }

  :is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) .site-header .nav-item > a {
    grid-column: 1 !important;
    grid-row: 1 !important;
  }

  :is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) .site-header .dropdown-toggle {
    display: inline-flex !important;
    width: 44px !important;
    min-width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
    grid-column: 2 !important;
    grid-row: 1 !important;
    align-items: center !important;
    justify-content: center !important;
    justify-self: end !important;
    padding: 0 !important;
    color: var(--button-navy-800) !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  :is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) .site-header .nav-caret {
    display: none !important;
  }

  :is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) .site-header .dropdown-panel {
    position: static !important;
    display: none !important;
    width: 100% !important;
    max-height: 0 !important;
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: none !important;
    transform: none !important;
  }

  :is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) .site-header .nav-item.open > .dropdown-panel {
    display: grid !important;
    max-height: none !important;
    padding: 8px 0 12px !important;
    overflow: visible !important;
    pointer-events: auto !important;
  }

  :is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) .site-header .dropdown-panel a {
    min-height: 44px !important;
    padding: 12px 16px !important;
    color: var(--button-navy-800) !important;
    background: var(--button-cool-50) !important;
    border-bottom: 1px solid var(--button-border) !important;
  }
}

/* Phone and tablet headers keep only the brand and menu trigger. The quote
   route remains inside the menu and elsewhere in the page content; the
   dedicated header CTA returns with the laptop layout at 1024px. */
@media (max-width: 1023px) {
  /* Match the specificity of the final content-centering selector above so
     its important display declaration cannot restore this secondary action. */
  :is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) .site-header .header-cta:not(.faq-question):not(summary):not(.menu-toggle):not(.dropdown-toggle) {
    display: none !important;
  }

  :is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) .site-header .menu-toggle {
    margin-left: auto !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --motion-duration-button: 0ms;
    --motion-duration-button-press: 0ms;
    --motion-button-hover-y: 0px;
    --motion-button-active-y: 0px;
    --motion-button-press-scale: 1;
  }

  :is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) :where(
    button,
    input[type="button"],
    input[type="submit"],
    input[type="reset"],
    input[type="file"]::file-selector-button,
    [role="button"],
    summary,
    a.btn,
    a.button,
    a.header-cta,
    a.trustpilot-btn,
    a.tool-action,
    a.hero-brief-submit,
    a.calc-btn,
    a.pro-btn,
    a.lifa-tool-button,
    a.hpv2-button,
    a.float-btn,
    a[class$="-button"]
  ):where(:not(.lifa-ai-root *):not(.ai-desk-button):not(.ai-desk-composer-tool):not(.ai-desk-send):not([hidden]):not(.float-btn)) {
    animation: none !important;
    translate: 0 var(--motion-button-rest-y) !important;
    scale: var(--motion-button-rest-scale) !important;
    transition: none !important;
    will-change: auto;
  }

  :is(#lifa-button-system-a#lifa-button-system-b#lifa-button-system-c#lifa-button-system-d, body) .floating-contact .float-btn:is(.whatsapp, .wechat)::before {
    animation: none !important;
    transition: none !important;
  }
}
