/* All rules are scoped to the statement, not the theme header or footer. */
@font-face {
  font-family: "GF Inter";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("../fonts/InterVariable.woff2") format("woff2");
}

body .gf-wfs.gf-wfs {
  --gf-ink: #0a0a0a;
  --gf-dark: #050505;
  --gf-muted: #525252;
  --gf-paper: #ffffff;
  --gf-surface: #f1f1ef;
  --gf-gutter: clamp(20px, 4vw, 48px);
  --gf-text-size: clamp(18px, 16px + .3vw, 20px);
  --gf-heading-size: clamp(28px, 2.2vw + 16px, 44px);
  --gf-section-space: clamp(48px, 5vw, 64px);
  --gf-topic-space: clamp(64px, 6.5vw, 96px);
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  color: var(--gf-ink) !important;
  background: var(--gf-paper) !important;
  font-family: "GF Inter", Inter, system-ui, -apple-system, "Segoe UI", sans-serif !important;
  font-size: var(--gf-text-size) !important;
  line-height: 1.65 !important;
  text-align: left !important;
  isolation: isolate;
}

body .gf-wfs.gf-wfs *,
body .gf-wfs.gf-wfs *::before,
body .gf-wfs.gf-wfs *::after { box-sizing: border-box; }

body .gf-wfs.gf-wfs :is(h1, h2, h3, p, blockquote, summary) {
  color: inherit !important;
  font-family: inherit !important;
  text-align: left !important;
  text-transform: none !important;
  opacity: 1 !important;
  visibility: visible !important;
  overflow-wrap: anywhere;
  word-break: normal !important;
}

body .gf-wfs.gf-wfs :is(h1, h2, h3, p, blockquote) {
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  letter-spacing: normal !important;
  font-style: normal !important;
}

body .gf-wfs.gf-wfs p {
  font-size: var(--gf-text-size) !important;
  font-weight: 400 !important;
  line-height: 1.65 !important;
}

body .gf-wfs.gf-wfs :is(h2, h3) {
  font-weight: 750 !important;
  line-height: 1.2 !important;
  letter-spacing: -.025em !important;
}

body .gf-wfs.gf-wfs :is(span, strong, em) {
  color: inherit !important;
  font-family: inherit !important;
  opacity: 1 !important;
  visibility: visible !important;
}

body .gf-wfs.gf-wfs summary > span:not(.gf-wfs__faq-icon) { font: inherit !important; }

/* Classic themes add these wrappers; flatten only our group containers. */
body .gf-wfs.gf-wfs .wp-block-group__inner-container {
  display: contents !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

body .gf-wfs.gf-wfs .gf-wfs__section-nav { display: none !important; }

/* One shared left edge in wide, constrained, and mobile theme containers. */
body .gf-wfs.gf-wfs :is(.gf-wfs__hero, .gf-wfs__body) {
  width: calc(100% - var(--gf-gutter) * 2) !important;
  max-width: 1200px !important;
  margin-inline: auto !important;
  padding-inline: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

body .gf-wfs.gf-wfs .gf-wfs__hero {
  padding-block: clamp(40px, 5vw, 72px) 40px !important;
}

body .gf-wfs.gf-wfs .gf-wfs__eyebrow {
  max-width: 100% !important;
  margin-bottom: 20px !important;
  color: var(--gf-muted) !important;
  font-size: 14px !important;
  font-weight: 650 !important;
  line-height: 1.5 !important;
  letter-spacing: .06em !important;
}

body .gf-wfs.gf-wfs h1 {
  max-width: 16ch !important;
  font-size: clamp(46px, 6vw, 88px) !important;
  font-weight: 800 !important;
  line-height: 1.15 !important;
  letter-spacing: -.045em !important;
}

body .gf-wfs.gf-wfs .gf-wfs__claim {
  max-width: 50ch !important;
  margin-top: 24px !important;
  font-size: clamp(21px, 1.6vw, 24px) !important;
  font-weight: 550 !important;
  line-height: 1.45 !important;
  letter-spacing: -.015em !important;
}

body .gf-wfs.gf-wfs .gf-wfs__body {
  padding-block: 0 var(--gf-section-space) !important;
}

body .gf-wfs.gf-wfs :is(.gf-wfs__body, .gf-wfs__body > .wp-block-group__inner-container) > p:not(.gf-wfs__closing):not(.gf-wfs__signature) {
  max-width: 80ch !important;
  margin-bottom: 24px !important;
}

/* Background extends, but the content never uses an overflowing 100vw box. */
body .gf-wfs.gf-wfs .gf-wfs__principle {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: var(--gf-section-space) 0 var(--gf-topic-space) !important;
  color: #ffffff !important;
  background: var(--gf-dark) !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: 0 0 0 100vmax var(--gf-dark) !important;
  clip-path: inset(-1px -100vmax);
}

body .gf-wfs.gf-wfs p + .gf-wfs__principle {
  margin-top: 40px !important;
}

body .gf-wfs.gf-wfs .gf-wfs__principle + .gf-wfs__principle {
  padding-top: 0 !important;
}

body .gf-wfs.gf-wfs :is(.gf-wfs__principle, .gf-wfs__principle > .wp-block-group__inner-container) > h2 {
  display: flex !important;
  gap: clamp(14px, 2vw, 24px) !important;
  align-items: flex-start !important;
  font-size: var(--gf-heading-size) !important;
}

body .gf-wfs.gf-wfs .gf-wfs__principle-number {
  display: inline-flex !important;
  flex: 0 0 52px !important;
  align-items: center !important;
  justify-content: center !important;
  width: 52px !important;
  height: 52px !important;
  margin: 0 !important;
  padding: 0 !important;
  color: inherit !important;
  background: transparent !important;
  border: 1px solid #727272 !important;
  border-radius: 50% !important;
  font-size: 18px !important;
  font-weight: 650 !important;
  line-height: 1.2 !important;
  letter-spacing: 0 !important;
  font-variant-numeric: tabular-nums;
}

body .gf-wfs.gf-wfs .gf-wfs__principle-title {
  display: block !important;
  flex: 1 1 auto !important;
  min-width: 0 !important;
  padding-top: 2px !important;
  color: inherit !important;
  font: inherit !important;
}

body .gf-wfs.gf-wfs .gf-wfs__principle-copy {
  width: 100% !important;
  max-width: 80ch !important;
  margin: 24px 0 0 !important;
  padding: 0 !important;
  background: transparent !important;
}

body .gf-wfs.gf-wfs .wp-block-quote {
  max-width: 80ch !important;
  margin-top: 24px !important;
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

body .gf-wfs.gf-wfs .wp-block-quote::before,
body .gf-wfs.gf-wfs .wp-block-quote::after { display: none !important; }

body .gf-wfs.gf-wfs .wp-block-quote p {
  font-weight: 550 !important;
  line-height: 1.6 !important;
}

/* All chapter headings use the same type scale as the six principles. */
body .gf-wfs.gf-wfs .gf-wfs__chapter {
  margin: var(--gf-section-space) 0 28px !important;
  font-size: var(--gf-heading-size) !important;
}

body .gf-wfs.gf-wfs .gf-wfs__details-grid {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 12px !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

body .gf-wfs.gf-wfs .gf-wfs__detail-card {
  display: grid !important;
  grid-template-columns: minmax(180px, 25%) minmax(0, 1fr) !important;
  gap: 32px !important;
  align-items: start !important;
  min-width: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: clamp(24px, 2.5vw, 32px) !important;
  color: var(--gf-ink) !important;
  background: var(--gf-surface) !important;
  border: 0 !important;
  border-radius: 0 !important;
}

body .gf-wfs.gf-wfs .gf-wfs__detail-card:nth-child(2),
body .gf-wfs.gf-wfs .gf-wfs__detail-card:nth-child(5) {
  color: #ffffff !important;
  background: var(--gf-dark) !important;
}

body .gf-wfs.gf-wfs .gf-wfs__detail-title {
  min-width: 0 !important;
  font-size: 22px !important;
  line-height: 1.3 !important;
}

/* Native details stays fully usable if scripts are unavailable. */
body .gf-wfs.gf-wfs .gf-wfs__faq-list {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 12px !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

body .gf-wfs.gf-wfs .gf-wfs__faq-item {
  display: block !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  color: var(--gf-ink) !important;
  background: var(--gf-surface) !important;
  border: 0 !important;
  border-radius: 0 !important;
}

body .gf-wfs.gf-wfs .gf-wfs__faq-item:hover { background: #e5e5e2 !important; }

body .gf-wfs.gf-wfs .gf-wfs__faq-item[open] {
  color: #ffffff !important;
  background: var(--gf-dark) !important;
}

body .gf-wfs.gf-wfs .gf-wfs__faq-item summary {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 44px !important;
  gap: 20px !important;
  align-items: center !important;
  min-height: 88px !important;
  margin: 0 !important;
  padding: 24px clamp(24px, 2.5vw, 32px) !important;
  font-size: 22px !important;
  font-weight: 650 !important;
  line-height: 1.35 !important;
  letter-spacing: -.015em !important;
  cursor: pointer;
  list-style: none !important;
  -webkit-tap-highlight-color: transparent;
}

body .gf-wfs.gf-wfs summary::-webkit-details-marker { display: none; }
body .gf-wfs.gf-wfs summary::marker { content: ""; }

body .gf-wfs.gf-wfs summary:focus-visible {
  outline: 3px solid currentColor !important;
  outline-offset: -5px !important;
}

body .gf-wfs.gf-wfs .gf-wfs__faq-icon {
  position: relative;
  display: block !important;
  width: 44px !important;
  height: 44px !important;
  color: inherit !important;
  border: 1.5px solid currentColor !important;
  border-radius: 50% !important;
}

body .gf-wfs.gf-wfs .gf-wfs__faq-icon::before,
body .gf-wfs.gf-wfs .gf-wfs__faq-icon::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 14px;
  height: 2px;
  background: currentColor;
  content: "";
  transform: translate(-50%, -50%);
  transition: transform 220ms ease;
}

body .gf-wfs.gf-wfs .gf-wfs__faq-icon::after { transform: translate(-50%, -50%) rotate(90deg); }
body .gf-wfs.gf-wfs .gf-wfs__faq-item[open] .gf-wfs__faq-icon::after { transform: translate(-50%, -50%) rotate(0deg); }
body .gf-wfs.gf-wfs .gf-wfs__faq-item[data-gf-closing] .gf-wfs__faq-icon::after { transform: translate(-50%, -50%) rotate(90deg); }

body .gf-wfs.gf-wfs .gf-wfs__faq-answer {
  max-width: 80ch !important;
  margin: 0 !important;
  padding: 0 clamp(24px, 2.5vw, 32px) 28px !important;
}

body .gf-wfs.gf-wfs a {
  color: inherit !important;
  font-family: inherit !important;
  font-size: inherit !important;
  text-decoration: underline !important;
  text-decoration-thickness: 1px;
  text-underline-offset: .2em;
  overflow-wrap: anywhere;
}

body .gf-wfs.gf-wfs a:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
body .gf-wfs.gf-wfs .wp-block-separator { display: none !important; }

body .gf-wfs.gf-wfs .gf-wfs__closing {
  max-width: none !important;
  margin: clamp(80px, 8vw, 112px) 0 clamp(48px, 5vw, 72px) !important;
  padding: clamp(28px, 3vw, 40px) clamp(24px, 3vw, 40px) !important;
  color: var(--gf-ink) !important;
  background: var(--gf-surface) !important;
  font-size: clamp(22px, 2vw, 28px) !important;
  font-weight: 650 !important;
  line-height: 1.5 !important;
  letter-spacing: -.015em !important;
}

body .gf-wfs.gf-wfs .gf-wfs__closing::before {
  display: block;
  height: 56px;
  margin-bottom: 16px;
  color: inherit;
  content: "“";
  font-family: inherit;
  font-size: 72px;
  font-weight: 750;
  line-height: 1;
  letter-spacing: normal;
}

body .gf-wfs.gf-wfs .gf-wfs__signature { color: var(--gf-muted) !important; }
body .gf-wfs.gf-wfs .gf-wfs__signature strong { color: var(--gf-ink) !important; font-weight: 750; }

/* Retain a readable fallback for manually preserved older FAQ blocks. */
body .gf-wfs.gf-wfs .gf-wfs__faq-grid { display: grid !important; gap: 12px !important; }
body .gf-wfs.gf-wfs .gf-wfs__faq-card { margin: 0 !important; padding: 24px !important; background: var(--gf-surface) !important; }
body .gf-wfs.gf-wfs .gf-wfs__faq-card h3 { margin-bottom: 16px !important; font-size: 22px !important; }

@media (max-width: 760px) {
  body .gf-wfs.gf-wfs .gf-wfs__principle-number {
    flex-basis: 42px !important;
    width: 42px !important;
    height: 42px !important;
    font-size: 16px !important;
  }

  body .gf-wfs.gf-wfs .gf-wfs__detail-card { grid-template-columns: minmax(0, 1fr) !important; gap: 16px !important; }
  body .gf-wfs.gf-wfs .gf-wfs__faq-item summary { gap: 16px !important; padding: 20px !important; font-size: 20px !important; }
  body .gf-wfs.gf-wfs .gf-wfs__faq-answer { padding: 0 20px 24px !important; }
}

@media (prefers-reduced-motion: reduce) {
  body .gf-wfs.gf-wfs *, body .gf-wfs.gf-wfs *::before, body .gf-wfs.gf-wfs *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
}

@media print {
  body .gf-wfs.gf-wfs .gf-wfs__principle { color: #000000 !important; background: #ffffff !important; box-shadow: none !important; clip-path: none; }
  body .gf-wfs.gf-wfs .gf-wfs__faq-answer { display: block !important; }
  body .gf-wfs.gf-wfs .gf-wfs__faq-icon { display: none !important; }
}
