/*
Theme Name: Financial Unity
Theme URI: https://blackfinancialunity.com/
Author: Institution of Financial Unity
Description: Custom theme for the Institution of Financial Unity and the FUSS Business Center. On activation it creates the Home, Services, Tax Services, Programs, About, Get Involved, Contact and Publications pages, sets up the Unity Store when WooCommerce is active, the main menu and the site settings. Page content is ordinary editable blocks.
Version: 1.6.0
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 7.4
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: financial-unity
*/

/* Layout: a white ledger page with a gold rule. Sticky header, content in a 1160px column,
   black bands for mission and footer. Brand palette from the original site's theme:
   gold #c09b37, charcoal text, white header, black footer. */
:root {
  --paper: #ffffff;
  --paper-2: #faf7ef;
  --ink: #2f2d2a;
  --ink-soft: #625c52;
  --line: #e7dfcc;
  --gold: #c09b37;
  --gold-ink: #7d611d;
  --gold-wash: #f6efdc;
  --on-gold: #15130f;
  --night: #000000;
  --night-2: #151310;
  --night-ink: #f4efe3;
  --night-soft: #b8af9e;
  --night-line: #2e2a23;

  --display: "Zilla Slab", "Rockwell", "Roboto Slab", Georgia, serif;
  --body: "Figtree", "Segoe UI", system-ui, -apple-system, sans-serif;
  --mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;

  --radius: 6px;
  --wrap: 1160px;
  --header-h: 76px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; } }
body {
  margin: 0;
  background: var(--paper); color: var(--ink);
  font-family: var(--body); font-size: 16.5px; line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; }
[hidden] { display: none !important; }
[id] { scroll-margin-top: calc(var(--header-h) + 24px); }
.admin-bar [id] { scroll-margin-top: calc(var(--header-h) + 56px); }
a { color: var(--gold-ink); text-underline-offset: 3px; }
a:hover { color: var(--ink); }
:focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; border-radius: 3px; }
h1, h2, h3, h4 { font-family: var(--display); color: var(--ink); line-height: 1.12; margin: 0; text-wrap: balance; font-weight: 600; }
h1 { font-size: clamp(2.3rem, 5.2vw, 3.75rem); letter-spacing: -0.01em; }
h2 { font-size: clamp(1.75rem, 3.4vw, 2.5rem); }
h3 { font-size: 1.4rem; }
h4 { font-size: 1.1rem; }
p { margin: 0; }
.fu-main ul, .fu-main ol { margin: 0; padding: 0; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.skip-link:focus { position: fixed; top: 8px; left: 8px; z-index: 100; width: auto; height: auto; clip: auto; background: var(--paper); padding: 10px 14px; }

/* Neutralize WordPress block spacing so the theme's own layout rules apply */
.fu-main .wp-block-group, .fu-main .wp-block-buttons, .fu-main .wp-block-list, .fu-main .wp-block-details { margin-block: 0; }
.fu-main .wp-block-image, .fu-main .wp-block-table { margin: 0; }
.fu-main :where(.wp-block-group) > * { margin-block: 0; }

.wrap { max-width: var(--wrap); margin-inline: auto; padding-inline: clamp(16px, 4vw, 32px); }
.stack { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.stack-lg { gap: 22px; }
.eyebrow {
  font-family: var(--mono); font-size: 0.78rem; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--gold-ink); font-weight: 500;
}
.lead { font-size: 1.2rem; color: var(--ink-soft); max-width: 62ch; }
.muted { color: var(--ink-soft); }
.measure { max-width: 65ch; }

/* Buttons: plain .btn links (header, forms) and WordPress Button blocks */
.btn, .wp-block-button .wp-block-button__link {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  font-family: var(--body); font-weight: 600; font-size: 1rem; line-height: 1;
  padding: 15px 22px; border-radius: var(--radius); border: 1.5px solid transparent;
  text-decoration: none; cursor: pointer; transition: background .15s, border-color .15s, color .15s;
}
.btn-gold, .wp-block-button.btn-gold .wp-block-button__link,
.wp-block-button:not(.btn-line) .wp-block-button__link { background: var(--gold); color: var(--on-gold); border-color: var(--gold); }
.btn-gold:hover, .wp-block-button.btn-gold .wp-block-button__link:hover,
.wp-block-button:not(.btn-line) .wp-block-button__link:hover { background: var(--gold-ink); border-color: var(--gold-ink); color: var(--paper); }
.btn-line, .wp-block-button.btn-line .wp-block-button__link { border-color: var(--ink); color: var(--ink); background: transparent; }
.btn-line:hover, .wp-block-button.btn-line .wp-block-button__link:hover { background: var(--ink); color: var(--paper); }
.night .wp-block-button.btn-line .wp-block-button__link { border-color: var(--night-ink); color: var(--night-ink); }
.night .wp-block-button.btn-line .wp-block-button__link:hover { background: var(--night-ink); color: var(--night); }
.btn-row, .wp-block-buttons.btn-row { display: flex; flex-wrap: wrap; gap: 12px; }
.wp-block-buttons > .wp-block-button { margin: 0; }
.link-arrow a, a.link-arrow { font-weight: 600; text-decoration: none; color: var(--gold-ink); }
.link-arrow a::after, a.link-arrow::after { content: " \2192"; }
.link-arrow a:hover, a.link-arrow:hover { text-decoration: underline; color: var(--ink); }
.night .link-arrow a { color: var(--gold); }

/* Header */
.site-header {
  position: sticky; top: env(safe-area-inset-top, 0px); z-index: 20;
  background: var(--paper); border-bottom: 1px solid var(--line);
}
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 0; position: relative; } }
.site-header::before { content: ""; display: block; height: 4px; background: var(--gold); }
.header-row { display: flex; align-items: center; gap: 24px; min-height: var(--header-h); position: relative; }
.brand { display: flex; align-items: center; text-decoration: none; min-width: 0; margin-right: auto; }
.brand img { height: 60px; width: auto; display: block; }
.brand .custom-logo-link img { height: 60px; width: auto; }
.logo-on-dark { display: none !important; }
@media (max-width: 420px) { .brand img { height: 46px; } }
.main-nav ul { list-style: none; display: flex; gap: 4px; align-items: center; margin: 0; padding: 0; }
.main-nav a {
  display: block; padding: 10px 12px; text-decoration: none; color: var(--ink); font-weight: 500; border-radius: 4px;
}
.main-nav a:hover { color: var(--gold-ink); }
.main-nav .current-menu-item > a, .main-nav .current_page_item > a, .main-nav .fu-current > a, .main-nav a[aria-current="page"] {
  color: var(--gold-ink); box-shadow: inset 0 -2px 0 var(--gold); border-radius: 0;
}
.header-cta { padding: 12px 18px; }
.menu-btn {
  display: none; background: none; border: 1.5px solid var(--line); color: var(--ink);
  border-radius: var(--radius); padding: 9px 12px; font: 600 0.95rem var(--body); cursor: pointer;
}
@media (max-width: 1220px) {
  .menu-btn { display: inline-flex; }
  .header-cta { display: none; }
  .main-nav {
    position: absolute; left: 0; right: 0; top: 100%;
    background: var(--paper); border-bottom: 1px solid var(--line); display: none;
  }
  .main-nav.open { display: block; }
  .main-nav ul { flex-direction: column; align-items: stretch; padding: 8px clamp(16px, 4vw, 32px) 20px; gap: 0; }
  .main-nav a { padding: 14px 4px; border-bottom: 1px solid var(--line); border-radius: 0; }
  .main-nav .current-menu-item > a, .main-nav .current_page_item > a, .main-nav .fu-current > a { box-shadow: none; }
  .main-nav .nav-cta { margin-top: 14px; border-bottom: 0; text-align: center; padding: 15px 22px; border-radius: var(--radius); background: var(--gold); color: var(--on-gold); }
}
@media (min-width: 1221px) { .main-nav .nav-cta-item { display: none; } }

/* Sections */
.section { padding-block: clamp(56px, 8vw, 96px); }
.section-tight { padding-block: clamp(40px, 6vw, 64px); }
.alt { background: var(--paper-2); border-block: 1px solid var(--line); }
.night { background: var(--night); color: var(--night-ink); }
.night h1, .night h2, .night h3, .night h4 { color: var(--night-ink); }
.night .eyebrow { color: var(--gold); }
.night .muted, .night .lead { color: var(--night-soft); }
.night a { color: var(--gold); }
.section-head { display: flex; flex-direction: column; gap: 14px; margin-bottom: 40px !important; max-width: 760px; }
.page-head { padding-block: clamp(48px, 7vw, 80px) clamp(32px, 5vw, 48px); border-bottom: 1px solid var(--line); background: var(--paper-2); }
.page-head .stack { gap: 18px; max-width: 800px; }
.mt-lg { margin-top: 36px !important; }
.mt-md { margin-top: 24px !important; }

/* Hero */
.hero { padding-block: clamp(48px, 7vw, 88px); }
.hero-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 64px); align-items: center; }
.hero-copy { display: flex; flex-direction: column; gap: 22px; min-width: 0; }
.hero-copy h1 em { font-style: normal; color: var(--gold-ink); }
@media (max-width: 880px) { .hero-grid { grid-template-columns: 1fr; } }

/* Ledger card */
.ledger {
  background: var(--paper); border: 1px solid var(--line); border-top: 4px solid var(--gold);
  border-radius: var(--radius); box-shadow: 0 18px 40px -28px rgba(0,0,0,.35); min-width: 0;
}
.ledger-head { display: flex; justify-content: space-between; gap: 12px; padding: 16px 20px; border-bottom: 1px solid var(--line); font-family: var(--mono); font-size: 0.78rem; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-soft); }
.ledger-head strong { font-weight: 500; }
.ledger-rows { list-style: none; counter-reset: row; }
.ledger-rows li { counter-increment: row; position: relative; padding: 14px 20px 14px calc(20px + 2.2em + 12px); border-bottom: 1px dashed var(--line); font-size: 0.92rem; color: var(--ink-soft); line-height: 1.45; }
.ledger-rows li:last-child { border-bottom: 0; }
.ledger-rows li::before { content: counter(row, decimal-leading-zero); position: absolute; left: 20px; top: 16px; font-family: var(--mono); font-size: 0.85rem; color: var(--gold-ink); font-variant-numeric: tabular-nums; }
.ledger-rows li a { display: block; font-family: var(--display); font-weight: 600; font-size: 1.12rem; color: var(--ink); text-decoration: none; margin-bottom: 2px; }
.ledger-rows li a:hover { color: var(--gold-ink); text-decoration: underline; }
.ledger-foot { padding: 14px 20px; background: var(--gold-wash); border-top: 1px solid var(--line); display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; font-size: 0.92rem; }

/* Facts strip */
.facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; border-block: 1px solid var(--line); }
.facts > p { padding: 24px 20px; border-right: 1px solid var(--line); display: flex; flex-direction: column; gap: 4px; color: var(--ink-soft); font-size: 0.95rem; line-height: 1.4; }
.facts > p:last-child { border-right: 0; }
.facts > p strong { font-family: var(--display); font-size: 2rem; font-weight: 700; color: var(--ink); line-height: 1; font-variant-numeric: tabular-nums; }
@media (max-width: 760px) { .facts { grid-template-columns: repeat(2, minmax(0, 1fr)); } .facts > p:nth-child(2) { border-right: 0; } .facts > p:nth-child(-n+2) { border-bottom: 1px solid var(--line); } }
.partner-line { padding-block: 24px; color: var(--ink-soft); font-size: 0.95rem; line-height: 2; }
.partner-line strong { font-family: var(--mono); font-size: 0.78rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-soft); font-weight: 500; margin-right: 20px; }
.partner-line a { color: var(--ink); text-decoration: none; font-weight: 500; margin-right: 24px; white-space: nowrap; }
@media (max-width: 600px) { .partner-line a { white-space: normal; display: inline-block; } }
.partner-line a:hover { color: var(--gold-ink); text-decoration: underline; }

/* Grids and cards */
.grid { display: grid; gap: 20px; }
.g2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.g3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.g5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
@media (max-width: 1000px) { .g5 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 860px) { .g3, .g5 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .g2, .g3, .g5 { grid-template-columns: 1fr; } }
.card { border: 1px solid var(--line); border-radius: var(--radius); padding: 24px; background: var(--paper); display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.card h3 { font-size: 1.25rem; }
.card .link-arrow { margin-top: auto; padding-top: 8px; }
.tag { font-family: var(--mono); font-size: 0.75rem; color: var(--gold-ink); letter-spacing: .06em; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; }
.chips li { border: 1px solid var(--line); background: var(--paper); padding: 6px 12px; border-radius: 999px; font-size: 0.92rem; }
.night .chips li { background: transparent; border-color: var(--night-line); color: var(--night-ink); }

.split { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: clamp(28px, 5vw, 64px); align-items: start; }
.split.center-v { align-items: center; }
@media (max-width: 860px) { .split { grid-template-columns: 1fr; } }

/* Steps */
.steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; counter-reset: step; }
.steps > * { counter-increment: step; padding: 28px 28px 28px 0; border-top: 2px solid var(--ink); display: flex; flex-direction: column; gap: 8px; }
.steps > * + * { padding-left: 28px; border-left: 1px solid var(--line); }
.steps > *::before { content: "Step " counter(step); font-family: var(--mono); font-size: 0.78rem; letter-spacing: .1em; text-transform: uppercase; color: var(--gold-ink); }
@media (max-width: 760px) { .steps { grid-template-columns: 1fr; } .steps > *, .steps > * + * { padding: 22px 0; border-left: 0; } }

/* Mission band */
.mission-quote { font-family: var(--display); font-weight: 600; font-size: clamp(1.7rem, 3.6vw, 2.7rem); line-height: 1.2; color: var(--night-ink); max-width: 24ch; text-wrap: balance; }
.mission-quote em { font-style: normal; color: var(--gold); }
.symbol-row { display: flex; gap: 18px; align-items: center; }
.symbol-row .wp-block-image, .mark { flex: none; }
.symbol-row img, .mark img { width: 64px; height: auto; display: block; }
.symbol-note { border-left: 3px solid var(--gold); padding-left: 18px; display: flex; flex-direction: column; gap: 6px; }
.symbol-note strong { font-family: var(--display); font-size: 1.2rem; color: var(--night-ink); }
.mpatapo-panel { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 24px; align-items: center; }
.mpatapo-panel img { width: 110px; height: auto; display: block; }
@media (max-width: 520px) { .mpatapo-panel { grid-template-columns: 1fr; } .mpatapo-panel img { width: 80px; } }

/* Forms (rendered by the theme's form shortcodes) */
.fu-form { display: flex; flex-direction: column; gap: 16px; margin: 0; }
.field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.field label, .fu-form fieldset legend { font-weight: 600; font-size: 0.95rem; }
.field .hint { font-size: 0.85rem; color: var(--ink-soft); font-weight: 400; }
.fu-form input[type=text], .fu-form input[type=email], .fu-form input[type=tel], .fu-form select, .fu-form textarea {
  font: inherit; font-size: 1rem; color: var(--ink); background: var(--paper);
  border: 1.5px solid var(--line); border-radius: var(--radius); padding: 12px 14px; width: 100%;
}
.fu-form input:focus, .fu-form select:focus, .fu-form textarea:focus { outline: none; border-color: var(--gold); box-shadow: 0 0 0 3px rgba(192,155,55,.3); }
.fu-form textarea { min-height: 130px; resize: vertical; }
.two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 600px) { .two { grid-template-columns: 1fr; } }
.fu-form fieldset { border: 0; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.checks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 16px; }
@media (max-width: 500px) { .checks { grid-template-columns: 1fr; } }
.checks label, .check-list label { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; cursor: pointer; }
.fu-main input[type=checkbox] { accent-color: var(--gold); width: 18px; height: 18px; margin-top: 3px; flex: none; }
.form-status { border: 1px solid var(--gold); background: var(--gold-wash); padding: 14px 16px; border-radius: var(--radius); font-size: 0.97rem; color: var(--ink); }
.form-status.is-error { border-color: #b3261e; background: #fbeceb; }
.panel { border: 1px solid var(--line); border-radius: var(--radius); padding: clamp(20px, 3vw, 32px); background: var(--paper); min-width: 0; }
.panel.gold { background: var(--gold-wash); }
.night .panel { background: var(--night-2); border-color: var(--night-line); }
.inline-form { flex-direction: row; flex-wrap: wrap; gap: 10px; }
.inline-form .field { flex: 1 1 220px; }
.hp-field { position: absolute !important; left: -9999px !important; }

/* Services page */
.subnav { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px !important; }
.subnav a { text-decoration: none; border: 1px solid var(--line); background: var(--paper); color: var(--ink); padding: 8px 14px; border-radius: 999px; font-size: 0.93rem; font-weight: 500; }
.subnav a:hover { border-color: var(--gold); color: var(--gold-ink); }
.center { display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); gap: clamp(24px, 5vw, 64px); padding-block: clamp(44px, 6vw, 72px); border-bottom: 1px solid var(--line); }
.center.last { border-bottom: 0; }
@media (max-width: 860px) { .center { grid-template-columns: 1fr; } }
.center-intro { display: flex; flex-direction: column; gap: 14px; }
.for { font-size: 0.95rem; color: var(--ink-soft); }
.for strong { color: var(--ink); }
.included { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; border-top: 2px solid var(--ink); align-content: start; }
@media (max-width: 560px) { .included { grid-template-columns: 1fr; } }
.included > * { padding: 16px 16px 16px 0; border-bottom: 1px solid var(--line); }
.included h4 { font-size: 1.02rem; margin-bottom: 6px !important; }
.included ul { list-style: none; display: flex; flex-direction: column; gap: 2px; color: var(--ink-soft); font-size: 0.95rem; }
.included li::before { content: "\2014\00a0"; color: var(--gold); }

.method { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(24px, 5vw, 64px); align-items: start; }
@media (max-width: 860px) { .method { grid-template-columns: 1fr; } }
.pillars { list-style: none; display: flex; flex-direction: column; }
.pillars li { display: grid; grid-template-columns: minmax(0, 11em) minmax(0, 1fr); gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--night-line); color: var(--night-soft); }
.pillars li strong { font-family: var(--display); font-size: 1.1rem; color: var(--night-ink); font-weight: 600; }
@media (max-width: 500px) { .pillars li { grid-template-columns: 1fr; gap: 2px; } }

/* Tax page */
.table-wrap, .wp-block-table.table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius); }
.fu-main table { border-collapse: collapse; width: 100%; min-width: 520px; font-size: 0.97rem; border: 0; }
.fu-main th, .fu-main td { text-align: left; padding: 14px 16px; border: 0; border-bottom: 1px solid var(--line); vertical-align: top; }
.fu-main th { font-family: var(--mono); font-weight: 500; font-size: 0.76rem; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-soft); background: var(--paper-2); }
.fu-main thead { border-bottom: 0; }
.fu-main tr:last-child td { border-bottom: 0; }
.fu-main td:first-child { font-family: var(--mono); font-variant-numeric: tabular-nums; white-space: nowrap; color: var(--ink); font-weight: 500; }
.check-list { list-style: none; display: flex; flex-direction: column; gap: 10px; }
.check-group + .check-group { margin-top: 22px !important; }
.check-group h4 { margin-bottom: 10px !important; }
.progress { display: flex; align-items: center; gap: 12px; font-family: var(--mono); font-size: 0.85rem; color: var(--ink-soft); margin-bottom: 18px; }
.bar { flex: 1; height: 6px; background: var(--line); border-radius: 99px; overflow: hidden; }
.bar i { display: block; height: 100%; width: 0; background: var(--gold); transition: width .2s; }

/* Programs */
.program { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: clamp(24px, 5vw, 64px); padding-block: clamp(40px, 5vw, 60px); border-bottom: 1px solid var(--line); }
.program.last { border-bottom: 0; }
@media (max-width: 860px) { .program { grid-template-columns: 1fr; } }
.program-intro { display: flex; flex-direction: column; gap: 12px; }
.bullets { display: flex; flex-direction: column; gap: 8px; padding-left: 1.1em !important; }
.bullets li::marker { color: var(--gold); }
.feature { background: var(--gold-wash); border: 1px solid var(--line); border-radius: var(--radius); padding: clamp(24px, 4vw, 40px); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
@media (max-width: 760px) { .feature { grid-template-columns: 1fr; } }

/* Team and partners */
.person { display: grid !important; grid-template-columns: 64px minmax(0, 1fr); gap: 16px; align-items: start; }
.avatar { width: 64px; height: 64px; border-radius: 50%; background: var(--gold-wash); border: 1.5px solid var(--gold); display: grid; place-items: center; font-family: var(--display); font-weight: 700; font-size: 1.2rem; color: var(--gold-ink); }
.person .stack { gap: 6px; }
.role { font-family: var(--mono); font-size: 0.76rem; letter-spacing: .06em; text-transform: uppercase; color: var(--gold-ink); }
.person .stack > p:last-child { font-size: 0.95rem; color: var(--ink-soft); }
.lead-person { grid-column: 1 / -1; background: var(--paper-2); }
.name-cols { columns: 3 220px; column-gap: 32px; list-style: none; }
.name-cols li { break-inside: avoid; padding: 6px 0; border-bottom: 1px solid var(--line); font-size: 0.95rem; }
.name-cols a { color: var(--ink); text-decoration-color: var(--gold); }
.fu-main details { border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); }
.fu-main details > summary { cursor: pointer; padding: 16px 20px; font-weight: 600; list-style: none; display: flex; justify-content: space-between; gap: 12px; }
.fu-main details > summary::-webkit-details-marker { display: none; }
.fu-main details > summary::after { content: "+"; font-family: var(--mono); color: var(--gold-ink); }
.fu-main details[open] > summary::after { content: "\2212"; }
.fu-main details > :not(summary) { margin: 0 20px 20px !important; }
.honor { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
@media (max-width: 800px) { .honor { grid-template-columns: 1fr; } }
.honor > * { border-top: 2px solid var(--gold); padding-top: 14px; display: flex; flex-direction: column; gap: 6px; }
.honor .eyebrow { color: var(--gold); }
.honor h3 { font-size: 1.15rem; color: var(--night-ink); }
.honor p:last-child { color: var(--night-soft); font-size: 0.95rem; }

/* Contact */
.contact-list { list-style: none; display: flex; flex-direction: column; gap: 18px; margin: 0; padding: 0; }
.contact-list .k { font-family: var(--mono); font-size: 0.76rem; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-soft); }
.contact-list .v { font-size: 1.15rem; font-weight: 600; display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.contact-list .v .sel { user-select: all; }
.contact-list .v a { color: inherit; text-decoration: none; }
.contact-list .social a { font-weight: 500; font-size: 1rem; color: var(--gold-ink); }
.copy-btn { font: 500 0.8rem var(--mono); background: none; border: 1px solid var(--line); color: var(--ink-soft); border-radius: 4px; padding: 4px 8px; cursor: pointer; }
.copy-btn:hover { border-color: var(--gold); color: var(--gold-ink); }

/* Generic content (blog posts, other pages created later) */
.entry { padding-block: clamp(40px, 6vw, 72px); }
.entry-content > * + * { margin-top: 1em; }
.entry-content ul, .entry-content ol { padding-left: 1.3em; }

/* Footer */
.site-footer { background: var(--night); color: var(--night-soft); padding-block: 56px 28px; border-top: 4px solid var(--gold); }
.foot-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr)); gap: 32px; }
@media (max-width: 860px) { .foot-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .foot-grid { grid-template-columns: 1fr; } }
.site-footer h2 { color: var(--night-ink); font-family: var(--mono); font-size: 0.78rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 500; margin-bottom: 14px; }
.site-footer ul { list-style: none; display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 0; }
.site-footer a { color: var(--night-ink); text-decoration: none; }
.site-footer a:hover { color: var(--gold); text-decoration: underline; }
.foot-logo { height: 72px; width: auto; display: block; margin-bottom: 14px; }
.foot-bottom { margin-top: 44px; padding-top: 20px; border-top: 1px solid var(--night-line); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; font-size: 0.88rem; }
.foot-bottom nav { display: flex; flex-wrap: wrap; gap: 18px; }
.mb-sm { margin-bottom: 16px !important; }
.page-head .wrap > .stack { max-width: calc(800px - 2 * clamp(16px, 4vw, 32px)); margin-inline: auto; }
.gap-md { gap: 24px; }
.gap-lg { gap: 40px; }
.gap-xl { gap: 32px; }
.form-status .btn { line-height: 1.3; text-align: center; }

/* Publications page: each File block is a row with the title and a Download button */
.mt-sm { margin-top: 8px !important; }
.pub-list { display: flex; flex-direction: column; border-top: 2px solid var(--ink); max-width: 860px; }
.pub-list > * { border-bottom: 1px solid var(--line); }
.pub-empty { padding: 20px 0; }
.fu-main .wp-block-file { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; padding: 18px 0; margin: 0; font-size: 1rem; }
.fu-main .wp-block-file > a:not(.wp-block-file__button) { font-family: var(--display); font-weight: 600; font-size: 1.15rem; color: var(--ink); text-decoration: none; min-width: 0; flex: 1 1 280px; }
.fu-main .wp-block-file > a:not(.wp-block-file__button)::before { content: "File"; display: inline-block; font-family: var(--mono); font-size: 0.7rem; letter-spacing: .08em; color: var(--gold-ink); border: 1px solid var(--line); border-radius: 4px; padding: 2px 6px; margin-right: 12px; vertical-align: 3px; }
.fu-main .wp-block-file > a:not(.wp-block-file__button):hover { color: var(--gold-ink); text-decoration: underline; }
.fu-main .wp-block-file .wp-block-file__button { display: inline-flex; align-items: center; font-family: var(--body); font-weight: 600; font-size: 0.95rem; line-height: 1; padding: 12px 18px; border-radius: var(--radius); background: var(--gold); color: var(--on-gold); border: 1.5px solid var(--gold); text-decoration: none; margin: 0; }
.fu-main .wp-block-file .wp-block-file__button:hover { background: var(--gold-ink); border-color: var(--gold-ink); color: var(--paper); }
.fu-main .wp-block-file__embed { display: none; }
.fu-main .wp-block-file > a[href$=".pdf" i]:not(.wp-block-file__button)::before { content: "PDF"; }
.fu-main .wp-block-file > a[href$=".doc" i]:not(.wp-block-file__button)::before,
.fu-main .wp-block-file > a[href$=".docx" i]:not(.wp-block-file__button)::before { content: "Word"; }
.fu-main .wp-block-file > a[href$=".ppt" i]:not(.wp-block-file__button)::before,
.fu-main .wp-block-file > a[href$=".pptx" i]:not(.wp-block-file__button)::before { content: "Slides"; }
.fu-main .wp-block-file > a[href$=".xls" i]:not(.wp-block-file__button)::before,
.fu-main .wp-block-file > a[href$=".xlsx" i]:not(.wp-block-file__button)::before { content: "Excel"; }

/* =====================================================================
   Unity Store (WooCommerce)
   ===================================================================== */
.cart-link { display: inline-flex; align-items: center; gap: 6px; text-decoration: none; color: var(--ink); font-weight: 500; padding: 10px 6px; white-space: nowrap; }
.cart-link .count { display: inline-grid; place-items: center; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 999px; background: var(--gold-wash); border: 1px solid var(--gold); color: var(--gold-ink); font: 600 0.8rem var(--mono); }
.cart-link:hover { color: var(--gold-ink); }
.main-nav a, .header-cta, .cart-link { white-space: nowrap; }
.brand { flex-shrink: 0; }
.brand img { max-width: none; }
@media (max-width: 1320px) { .main-nav a { padding: 10px 7px; } .header-row { gap: 12px; } .brand img { height: 52px; } }
.fu-main .woocommerce-tabs ul.tabs li.active a { background: var(--ink) !important; color: var(--paper) !important; }

.subnav a[aria-current="page"] { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.crumbs { font-size: 0.9rem; color: var(--ink-soft); margin-bottom: 28px; }
.crumbs a { color: var(--ink-soft); text-decoration: none; }
.crumbs a:hover { color: var(--gold-ink); text-decoration: underline; }

/* Notices */
.fu-main .woocommerce-message, .fu-main .woocommerce-info, .fu-main .woocommerce-error,
.fu-main .wc-block-components-notice-banner { border: 1px solid var(--gold); border-top-width: 3px; background: var(--gold-wash); color: var(--ink); border-radius: var(--radius); padding: 14px 18px; margin: 0 0 24px; list-style: none; display: flex; flex-wrap: wrap; align-items: center; gap: 12px; justify-content: space-between; }
.fu-main .woocommerce-message::before, .fu-main .woocommerce-info::before, .fu-main .woocommerce-error::before { display: none; }
.fu-main .woocommerce-error { border-color: #b3261e; background: #fbeceb; }
.fu-main .woocommerce-message .button, .fu-main .woocommerce-info .button { order: 2; }

/* Toolbar */
.fu-store .woocommerce-result-count { margin: 0 0 24px; color: var(--ink-soft); font-size: 0.95rem; float: left; }
.fu-store .woocommerce-ordering { margin: 0 0 24px; float: right; }
.fu-store .woocommerce-ordering select { font: inherit; font-size: 0.95rem; color: var(--ink); background: var(--paper); border: 1.5px solid var(--line); border-radius: var(--radius); padding: 8px 12px; }
.fu-store ul.products { clear: both; }

/* Product grid */
.fu-main ul.products { list-style: none; margin: 0 !important; padding: 0 !important; display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px 24px; }
.fu-main ul.products::before, .fu-main ul.products::after { display: none !important; }
@media (max-width: 860px) { .fu-main ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 16px; } }
.fu-main ul.products li.product { width: auto !important; float: none !important; margin: 0 !important; padding: 0; display: flex; flex-direction: column; gap: 10px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); overflow: hidden; text-align: left; }
.fu-main ul.products li.product a.woocommerce-LoopProduct-link { display: flex; flex-direction: column; gap: 8px; text-decoration: none; color: inherit; flex: 1; }
.fu-main ul.products li.product img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; margin: 0 !important; display: block; background: var(--paper-2); border-bottom: 1px solid var(--line); }
.fu-main ul.products li.product .woocommerce-loop-product__title { font-family: var(--display); font-weight: 600; font-size: 1.1rem; line-height: 1.25; color: var(--ink); padding: 6px 16px 0 !important; margin: 0; }
.fu-main ul.products li.product .price { display: block; color: var(--gold-ink) !important; font: 600 1rem var(--mono) !important; padding: 0 16px; margin: 0 !important; }
.fu-main ul.products li.product .button { margin: 6px 16px 16px !important; align-self: flex-start; }
.fu-main ul.products li.product .added_to_cart { margin: -8px 16px 16px; font-weight: 600; font-size: 0.92rem; color: var(--gold-ink); }
.fu-main ul.products li.product .onsale { display: none; }
.woocommerce-loop-product__title { text-wrap: balance; }

/* Buttons from WooCommerce */
.fu-main .button, .fu-main button.button, .fu-main a.button, .fu-main input.button, .fu-main #respond input#submit,
.fu-main .checkout-button, .fu-main #place_order {
  display: inline-flex !important; align-items: center; justify-content: center; font-family: var(--body) !important; font-weight: 600 !important; font-size: 0.97rem !important; line-height: 1 !important;
  padding: 13px 20px !important; border-radius: var(--radius) !important; border: 1.5px solid var(--gold) !important; background: var(--gold) !important; color: var(--on-gold) !important; text-decoration: none; cursor: pointer;
}
.fu-main .button:hover, .fu-main #place_order:hover { background: var(--gold-ink) !important; border-color: var(--gold-ink) !important; color: var(--paper) !important; }
.fu-main .button.loading { opacity: .7; }
.fu-main .button.added::after { content: " \2713"; margin-left: 6px; }

/* Single product */
.fu-main div.product { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); gap: clamp(28px, 5vw, 56px); align-items: start; }
.fu-main div.product .woocommerce-product-gallery, .fu-main div.product .summary { width: auto !important; float: none !important; margin: 0 !important; }
.fu-main div.product .woocommerce-tabs, .fu-main div.product .related, .fu-main div.product .upsells { grid-column: 1 / -1; }
@media (max-width: 860px) { .fu-main div.product { grid-template-columns: 1fr; } }
.fu-main .woocommerce-product-gallery { position: relative; }
.fu-main .woocommerce-product-gallery__image img { border-radius: var(--radius); border: 1px solid var(--line); background: var(--paper-2); }
.fu-main .woocommerce-product-gallery .flex-control-thumbs { list-style: none; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; margin: 12px 0 0 !important; padding: 0; }
.fu-main .woocommerce-product-gallery .flex-control-thumbs li { width: auto !important; float: none !important; margin: 0 !important; }
.fu-main .woocommerce-product-gallery .flex-control-thumbs img { border-radius: 4px; border: 1px solid var(--line); opacity: .6; cursor: pointer; aspect-ratio: 1; object-fit: cover; }
.fu-main .woocommerce-product-gallery .flex-control-thumbs img.flex-active, .fu-main .woocommerce-product-gallery .flex-control-thumbs img:hover { opacity: 1; border-color: var(--gold); }
.fu-main .woocommerce-product-gallery__trigger { position: absolute; top: 12px; right: 12px; z-index: 5; background: var(--paper); border: 1px solid var(--line); border-radius: 50%; width: 38px; height: 38px; display: grid; place-items: center; text-decoration: none; }
.fu-main div.product .summary { display: flex; flex-direction: column; gap: 16px; }
.fu-main div.product .product_title { font-size: clamp(1.9rem, 3.6vw, 2.6rem); }
.fu-main div.product p.price { font: 600 1.4rem var(--mono) !important; color: var(--gold-ink) !important; margin: 0; }
.fu-main div.product .woocommerce-product-details__short-description { color: var(--ink-soft); }
.fu-main div.product form.cart { display: flex; flex-wrap: wrap; gap: 12px; align-items: stretch; margin: 8px 0 0 !important; }
.fu-main div.product form.cart::before, .fu-main div.product form.cart::after { display: none; }
.fu-main .quantity .qty { width: 5em; font: inherit; font-size: 1rem; text-align: center; border: 1.5px solid var(--line); border-radius: var(--radius); padding: 12px 8px; color: var(--ink); background: var(--paper); }
.fu-main div.product form.cart .button { padding: 15px 26px !important; font-size: 1rem !important; }
.fu-main .product_meta { font-size: 0.92rem; color: var(--ink-soft); border-top: 1px solid var(--line); padding-top: 14px; display: flex; flex-direction: column; gap: 4px; }
.fu-main .product_meta a { color: var(--gold-ink); }
.fu-main .woocommerce-tabs { border-top: 1px solid var(--line); padding-top: 28px; }
.fu-main .woocommerce-tabs ul.tabs { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 18px !important; padding: 0 !important; border: 0; }
.fu-main .woocommerce-tabs ul.tabs::before, .fu-main .woocommerce-tabs ul.tabs li::before, .fu-main .woocommerce-tabs ul.tabs li::after { display: none !important; }
.fu-main .woocommerce-tabs ul.tabs li { margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; }
.fu-main .woocommerce-tabs ul.tabs li a { display: block; padding: 8px 16px; border: 1px solid var(--line); border-radius: 999px; text-decoration: none; color: var(--ink); font-weight: 600; font-size: 0.95rem; }
.fu-main .woocommerce-tabs ul.tabs li.active a { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.fu-main .woocommerce-tabs .panel { border: 0; padding: 0; background: none; max-width: 70ch; }
.fu-main .woocommerce-tabs .panel > h2:first-child { display: none; }
.fu-main .related > h2, .fu-main .upsells > h2 { font-size: 1.6rem; margin: 40px 0 20px; }

/* Cart and checkout (WooCommerce blocks and classic) */
.store-page { min-width: 0; }
.store-page .wp-block-woocommerce-cart, .store-page .wp-block-woocommerce-checkout { max-width: none; }
.store-page .wc-block-components-button:not(.is-link), .store-page .wc-block-cart__submit-button, .store-page .wc-block-components-checkout-place-order-button {
  background: var(--gold) !important; color: var(--on-gold) !important; border-radius: var(--radius) !important; font-weight: 600; border: 1.5px solid var(--gold) !important; }
.store-page .wc-block-components-button:not(.is-link):hover { background: var(--gold-ink) !important; color: var(--paper) !important; }
.store-page .wc-block-components-title, .store-page .wc-block-components-checkout-step__title { font-family: var(--display); font-weight: 600; }
.store-page .wc-block-components-totals-item__label, .store-page .wc-block-components-product-name { color: var(--ink); }
.store-page .wc-block-components-product-name { font-family: var(--display); font-weight: 600; font-size: 1.05rem; text-decoration: none; }
.store-page .wc-block-formatted-money-amount, .store-page .wc-block-components-product-price { font-family: var(--mono); }
.store-page .wc-block-components-text-input input, .store-page .wc-block-components-combobox .components-combobox-control__input, .store-page .wc-blocks-components-select__select, .store-page .wc-block-components-textarea {
  border-color: var(--line) !important; border-radius: var(--radius) !important; }
.store-page .wc-block-components-text-input.is-active input:focus, .store-page .wc-block-components-text-input input:focus { border-color: var(--gold) !important; box-shadow: 0 0 0 2px rgba(192,155,55,.3) !important; }
.store-page .wc-block-components-sidebar-layout .wc-block-components-sidebar { background: var(--paper-2); border: 1px solid var(--line); border-radius: var(--radius); padding: 20px !important; }
.store-page a { color: var(--gold-ink); }
.store-page .wc-block-cart__empty-cart__title { font-family: var(--display); }
.store-page .wp-block-woocommerce-empty-cart-block .wp-block-separator { display: none; }
.store-page .wc-block-grid__product-title { font-family: var(--display); font-weight: 600; }
.site-footer li { overflow-wrap: anywhere; }
@media (max-width: 420px) { .header-row { gap: 10px; } .brand img { height: 40px !important; } .cart-link { padding-inline: 2px; } .menu-btn { padding: 8px 10px; } }
