/**
 * BOOKFELS V3 — MILESTONE A.2.5
 * Language, Accessibility & Performance Consolidation
 */
:root {
  --bf-focus-ring: 0 0 0 3px rgba(5,9,20,.96), 0 0 0 6px rgba(125,235,255,.88);
  --bf-readable-measure: 72ch;
  --bf-touch-target: 44px;
  --bf-ui-min: .75rem;
}
html {
  color-scheme: dark;
  text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  overflow-wrap: break-word;
}
body {
  min-width: 320px;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
}
main, section, article, aside, nav, header, footer { scroll-margin-top: 96px; }
p, li, dd { text-wrap: pretty; }
h1, h2, h3 { text-wrap: balance; }
img, svg, video, canvas { max-width: 100%; }
img { height: auto; }
button, a, input, select, textarea, summary, [role="button"], [role="tab"] {
  touch-action: manipulation;
}
button, a, summary, [role="button"], [role="tab"] {
  -webkit-tap-highlight-color: transparent;
}
button:not([disabled]), summary,
[role="button"]:not([aria-disabled="true"]),
[role="tab"]:not([aria-disabled="true"]),
.bf-button,
.bf-skip-link,
.bf-a25-skip-group a {
  min-height: var(--bf-touch-target);
}
:where(a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),
textarea:not([disabled]),summary,[tabindex]:not([tabindex="-1"])):focus-visible {
  outline: 2px solid transparent;
  outline-offset: 4px;
  box-shadow: var(--bf-focus-ring) !important;
}
.bf-skip-link {
  z-index: 99999;
  min-height: var(--bf-touch-target);
  display: inline-flex;
  align-items: center;
}
.bf-a25-skip-group {
  position: fixed;
  z-index: 99998;
  top: 10px;
  left: 12px;
  display: flex;
  gap: 8px;
  transform: translateY(-160%);
  transition: transform 180ms ease;
}
.bf-a25-skip-group:focus-within { transform: translateY(0); }
.bf-a25-skip-group a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 9px 13px;
  border: 1px solid rgba(125,235,255,.4);
  border-radius: 999px;
  color: #050914;
  background: #f4f7fc;
  font-weight: 800;
  text-decoration: none;
}
.bf-a25-status {
  position: fixed;
  z-index: 10000;
  right: 14px;
  bottom: 14px;
  max-width: min(360px, calc(100vw - 28px));
  min-height: 44px;
  display: flex;
  align-items: center;
  padding: 10px 14px;
  border: 1px solid rgba(125,235,255,.18);
  border-radius: 14px;
  color: #f4f7fc;
  background: rgba(5,9,20,.96);
  box-shadow: 0 18px 50px rgba(0,0,0,.42);
  font-size: .78rem;
  line-height: 1.4;
  transform: translateY(calc(100% + 30px));
  opacity: 0;
  pointer-events: none;
  transition: transform 220ms ease, opacity 220ms ease;
}
.bf-a25-status[data-visible="true"] {
  transform: translateY(0);
  opacity: 1;
}
[data-bf-performance-tier="constrained"] .bf-industries__atmosphere,
[data-bf-performance-tier="constrained"] .bf-closing-atmosphere,
[data-bf-performance-tier="constrained"] .bf-hero__network {
  opacity: .45 !important;
}
[data-bf-performance-tier="constrained"] * {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
[data-bf-data-saver="true"] .bf-hero__star-canvas,
[data-bf-data-saver="true"] .bf-genesis-activity-field {
  display: none !important;
}
[data-bf-visibility="hidden"] canvas {
  animation-play-state: paused !important;
}
[data-bf-lazy-state="pending"] {
  content-visibility: auto;
  contain-intrinsic-size: 1px 900px;
}
[data-bf-lazy-state="visible"] { content-visibility: visible; }
.bf-hero__headline { font-size: clamp(2.35rem, 5.4vw, 5.15rem); }
.bf-closing-header h2, .bf-offers__header h2, .bf-industries__header h2,
.bf-dashboard__header h2 {
  font-size: clamp(2rem, 4.7vw, 4.6rem);
  line-height: 1.02;
}
.bf-closing-header p, .bf-offers__header p, .bf-industries__header p {
  max-width: var(--bf-readable-measure);
  font-size: clamp(.98rem, 1.4vw, 1.12rem);
  line-height: 1.7;
}
.bf-enterprise-footer__nav a { font-size: clamp(.68rem, .9vw, .78rem); }
.bf-faq-item p, .bf-knowledge-card p, .bf-foundation-card p {
  font-size: clamp(.76rem, 1vw, .88rem);
}
.bf-faq-item summary { min-height: 56px; }
.bf-offer-billing button, .bf-knowledge-toolbar button,
.bf-assurance-selector button, .bf-partner-network__selector button,
.bf-environment-option, .bf-industry-cluster { min-height: 48px; }
.bf-offer-price em[data-bf-offer-saving] {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  margin-top: 8px;
  padding: 4px 8px;
  border: 1px solid rgba(67,217,140,.18);
  border-radius: 999px;
  color: #7ff0b4;
  background: rgba(67,217,140,.045);
  font-size: .68rem;
  font-style: normal;
  font-weight: 800;
}
@media (max-width: 680px) {
  :root { --bf-touch-target: 48px; }
  .bf-hero__headline {
    font-size: clamp(1.74rem, 8vw, 2.18rem);
    line-height: 1.02;
  }
  .bf-closing-header h2, .bf-offers__header h2, .bf-industries__header h2,
  .bf-dashboard__header h2 { font-size: clamp(1.82rem, 8vw, 2.6rem); }
  .bf-closing-header p, .bf-offers__header p, .bf-industries__header p {
    font-size: 1rem;
  }
  .bf-a25-skip-group { right: 12px; flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    transition-delay: 0ms !important;
  }
  .bf-hero__star-canvas, .bf-genesis-activity-field, .bf-hero__network {
    opacity: .35 !important;
  }
  .bf-a25-status, .bf-a25-skip-group { transition: none !important; }
}
@media (prefers-contrast: more) {
  :root {
    --bf-muted: #d6deef;
    --bf-border: rgba(255,255,255,.2);
  }
  body { color: #fff; background: #02050b; }
  [class*="card"], [class*="console"], [class*="surface"], [class*="panel"] {
    border-color: rgba(255,255,255,.24) !important;
  }
}
@media (forced-colors: active) {
  * { box-shadow: none !important; text-shadow: none !important; }
  a, button, summary, [role="tab"] { forced-color-adjust: auto; }
  .bf-hero__star-canvas, .bf-genesis-activity-field, .bf-closing-atmosphere,
  .bf-industries__atmosphere { display: none !important; }
  [aria-selected="true"], [aria-pressed="true"], [data-active="true"] {
    outline: 2px solid Highlight !important;
    outline-offset: 2px;
  }
}
@media print {
  .bf-header, .bf-platform-loader, .bf-hero__star-canvas,
  .bf-genesis-activity-field, .bf-closing-atmosphere,
  .bf-industries__atmosphere, .bf-a25-skip-group, .bf-a25-status {
    display: none !important;
  }
  body { color: #000; background: #fff; }
  main, section { break-inside: avoid; }
  a[href]::after { content: " (" attr(href) ")"; font-size: .8em; }
}

/* =========================================================
   A.2.5.1 RESPONSIVE CORRECTION
   Preserve compact offer cards and reliable closing reveals.
   ========================================================= */

html[data-bf-quality="operational"]
[data-bf-enterprise-closing]
[data-bf-experience-reveal][data-bf-reveal-state="pending"] {
  /* JS changes this to visible before the section enters the viewport.
     This declaration prevents accidental pointer capture while pending. */
  pointer-events: none;
}

html[data-bf-quality="operational"]
[data-bf-enterprise-closing]
[data-bf-experience-reveal][data-bf-reveal-state="visible"] {
  pointer-events: auto;
}

@media (max-width: 1080px) and (min-width: 681px) {
  .bf-offer-access__card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
  }

  .bf-offer-access__card-grid > .bf-offer-card:last-child {
    grid-column: 1 / -1;
    width: min(100%, calc((100% - 14px) / 2));
    justify-self: center;
  }

  .bf-offer-card {
    gap: 12px;
    padding: 16px;
  }

  .bf-offer-card__price {
    padding: 11px;
  }

  .bf-offer-card__price strong {
    font-size: clamp(1.55rem, 3.3vw, 2.15rem);
  }

  .bf-offer-card ul {
    gap: 5px;
    margin-top: 8px;
  }
}

@media (max-width: 680px) {
  .bf-offer-access {
    padding-block: 82px;
  }

  .bf-offer-access__card-grid > .bf-offer-card:last-child {
    width: 100%;
    grid-column: auto;
  }

  .bf-offer-card {
    gap: 11px;
    padding: 15px;
    border-radius: 18px;
  }

  .bf-offer-card__price {
    padding: 10px 11px;
  }

  .bf-offer-card__price strong {
    font-size: clamp(1.55rem, 8vw, 2rem);
  }

  .bf-offer-card > p,
  .bf-offer-card li {
    font-size: .72rem;
  }

  .bf-offer-card section > span {
    font-size: .58rem;
  }
}

