/* FXIFY Discount Desk — site stylesheet.
 *
 * Loaded by the mu-plugin as one cached file. Colours are tokens, never
 * literals in rules, so every text/background pair can be audited:
 *
 *   ink    #10213A on paper #FFFFFF   15.9:1
 *   weak   #4A5568 on paper #FFFFFF    7.5:1
 *   accent #B4480B on paper #FFFFFF    5.5:1
 *   ink    #10213A on sunken #F2F5F9  14.5:1
 *   accent #B4480B on sunken #F2F5F9   5.0:1
 *   paper  #FFFFFF on ink #10213A     15.9:1
 *   ink    #10213A on warm #FBE9DD    13.6:1
 */
:root {
  color-scheme: light;
  --fxd-ink: #10213A;
  --fxd-weak: #4A5568;
  --fxd-paper: #FFFFFF;
  --fxd-sunken: #F2F5F9;
  --fxd-line: #D5DCE6;
  --fxd-accent: #B4480B;
  --fxd-warm: #FBE9DD;
  --fxd-measure: 44rem;
  --wp--preset--color--primary: #10213A;
  --wp--preset--color--secondary: #1D3557;
}

/* The theme registers both faces with font-display:block, which holds the
 * heading (the LCP element) invisible until the font arrives. Same family,
 * style and weight range, later in the cascade, so these win. */
@font-face {
  font-family: Manrope; font-style: normal; font-weight: 200 800; font-stretch: normal;
  font-display: swap;
  src: url('/wp-content/themes/extendable/assets/fonts/manrope/manrope.woff2') format('woff2');
}
@font-face {
  font-family: Hind; font-style: normal; font-weight: 100 900; font-stretch: normal;
  font-display: swap;
  src: url('/wp-content/themes/extendable/assets/fonts/hind/hind-variable.woff2') format('woff2');
}

body { background: var(--fxd-paper); color: var(--fxd-ink); }

/* ---- header ---- */
.fxd-header { border-bottom: 1px solid var(--fxd-line); background: var(--fxd-paper); }
.fxd-header .wp-block-site-title { margin: 0; }
.fxd-header .wp-block-site-title a { color: var(--fxd-ink); text-decoration: none; }
.fxd-header .wp-block-site-logo img { width: 36px; height: 36px; }
.fxd-header .wp-block-navigation a { color: var(--fxd-ink); text-decoration: none; padding: 0.75rem 0.25rem; }
.fxd-header .wp-block-navigation a:hover,
.fxd-header .wp-block-navigation .current-menu-item > a { color: var(--fxd-accent); }
.fxd-header .wp-block-navigation__responsive-container-open,
.fxd-header .wp-block-navigation__responsive-container-close { min-width: 44px; min-height: 44px; color: var(--fxd-ink); }
/* six items do not fit one row below about 1000px: collapse to the menu button */
@media (max-width: 1023px) {
  .fxd-header .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none; }
  .fxd-header .wp-block-navigation__responsive-container-open { display: flex; }
}
@media (min-width: 1024px) {
  .fxd-header .wp-block-navigation__responsive-container-open { display: none; }
  .fxd-header .wp-block-navigation__responsive-container:not(.is-menu-open) { display: block; }
}

/* ---- reading column: one left rail ---- */
.fxd-main > *,
.fxd-main .wp-block-post-content > * {
  max-width: var(--fxd-measure);
  margin-left: auto; margin-right: auto;
}
.fxd-main .wp-block-post-content > .wp-block-table,
.fxd-main .wp-block-post-content > .fxd-wide { max-width: 56rem; }
.fxd-main { padding-left: 1.25rem; padding-right: 1.25rem; }
.fxd-main .wp-block-post-content { padding: 0; }

.fxd-main h1 { font-size: clamp(1.75rem, 1.2rem + 2.4vw, 2.75rem); line-height: 1.15; letter-spacing: -0.015em; font-weight: 700; margin-bottom: 1rem; text-wrap: balance; }
.fxd-main h2 { font-size: clamp(1.35rem, 1.1rem + 1vw, 1.75rem); line-height: 1.2; font-weight: 700; margin-top: 2.5rem; margin-bottom: 0.75rem; }
.fxd-main h3 { font-size: 1.2rem; line-height: 1.3; font-weight: 700; margin-top: 1.75rem; margin-bottom: 0.5rem; }
.fxd-main p, .fxd-main li { font-size: 1.0625rem; line-height: 1.65; }
.fxd-main p { margin-top: 0; margin-bottom: 1.1rem; }
.fxd-main ul, .fxd-main ol { padding-left: 1.3rem; margin-bottom: 1.1rem; }
.fxd-main li { margin-bottom: 0.35rem; }
.fxd-main a { color: var(--fxd-accent); text-decoration: underline; text-underline-offset: 2px; }
.fxd-main a:hover { text-decoration-thickness: 2px; }
.fxd-main em { color: var(--fxd-weak); }
.fxd-main strong { font-weight: 700; }

/* ---- tables: scroll inside their own box, never widen the page ---- */
.fxd-main .wp-block-table { overflow-x: auto; -webkit-overflow-scrolling: touch; margin-top: 1.25rem; margin-bottom: 1.5rem; border: 1px solid var(--fxd-line); border-radius: 6px; }
.fxd-main .wp-block-table table { width: 100%; border-collapse: collapse; font-size: 0.95rem; line-height: 1.4; min-width: 30rem; }
.fxd-main .wp-block-table th,
.fxd-main .wp-block-table td { padding: 0.6rem 0.8rem; text-align: left; vertical-align: top; border: 0; border-bottom: 1px solid var(--fxd-line); color: var(--fxd-ink); }
.fxd-main .wp-block-table thead th { background: var(--fxd-ink); color: var(--fxd-paper); font-weight: 700; white-space: nowrap; }
.fxd-main .wp-block-table tbody th { font-weight: 700; background: var(--fxd-sunken); }
.fxd-main .wp-block-table tbody tr:last-child th,
.fxd-main .wp-block-table tbody tr:last-child td { border-bottom: 0; }

/* ---- the code box under the H1 ---- */
.fxd-code { border: 2px solid var(--fxd-ink); border-radius: 8px; padding: 1rem 1.1rem; margin: 1.25rem auto 1.5rem; background: var(--fxd-sunken); display: grid; gap: 0.75rem; }
.fxd-code__label { font-size: 0.85rem; letter-spacing: 0.04em; text-transform: uppercase; color: var(--fxd-weak); margin: 0; }
.fxd-code__row { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; }
.fxd-code__value { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 1.6rem; font-weight: 700; letter-spacing: 0.06em; color: var(--fxd-ink); background: var(--fxd-paper); border: 1px dashed var(--fxd-ink); border-radius: 6px; padding: 0.35rem 0.9rem; user-select: all; }
.fxd-code__copy,
.fxd-main a.fxd-code__go { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; padding: 0 1.1rem; border-radius: 6px; font: inherit; font-weight: 700; font-size: 1rem; cursor: pointer; text-decoration: none; }
.fxd-code__copy { background: var(--fxd-ink); color: var(--fxd-paper); border: 0; }
.fxd-main a.fxd-code__go { background: var(--fxd-paper); color: var(--fxd-ink); border: 2px solid var(--fxd-ink); }
.fxd-code__copy:hover { background: var(--wp--preset--color--secondary); }
.fxd-code__note { font-size: 0.95rem; color: var(--fxd-weak); margin: 0; }

/* ---- byline, callouts, figures ---- */
.fxd-main .wp-block-post-content > p:has(> em:only-child) { font-size: 0.95rem; }
.fxd-main blockquote.wp-block-quote { border-left: 4px solid var(--fxd-accent); background: var(--fxd-warm); margin: 1.5rem auto; padding: 0.9rem 1.1rem; border-radius: 0 6px 6px 0; }
.fxd-main blockquote.wp-block-quote p { margin: 0; color: var(--fxd-ink); }
.fxd-main figure.wp-block-image { margin-top: 1.5rem; margin-bottom: 1.75rem; }
.fxd-main figure.wp-block-image img { border: 1px solid var(--fxd-line); border-radius: 6px; height: auto; max-width: 100%; display: block; }
.fxd-main figure.wp-block-image figcaption { font-size: 0.9rem; line-height: 1.45; color: var(--fxd-weak); margin-top: 0.5rem; text-align: left; }
.fxd-contact { border: 1px solid var(--fxd-line); border-radius: 8px; padding: 1rem 1.1rem; background: var(--fxd-sunken); }
.fxd-contact p:last-child { margin-bottom: 0; }

/* ---- footer ---- */
.fxd-footer { border-top: 1px solid var(--fxd-line); padding-left: 1.25rem; padding-right: 1.25rem; }
.fxd-footer p { max-width: var(--fxd-measure); margin-left: auto; margin-right: auto; color: var(--fxd-ink); }
.fxd-footer a { color: var(--fxd-accent); display: inline-block; padding: 0.6rem 0; }

@media (max-width: 600px) {
  .fxd-main h1 { font-size: 1.75rem; }
  .fxd-code__value { font-size: 1.35rem; }
}
