/* ===========================================================================
   About the project — the Farmer FIRST programme and the project behind this
   estimation system.

   Same design language as the Contact and Quick Estimate pages: the shared
   `--hui-*` tokens from ui.css, Space Grotesk for headings, Manrope for text,
   cream cards on the site's paper background. Loaded only by about.php.
   Namespaced `ab-` so it cannot collide with Bootstrap 3 or jQuery UI, both of
   which are still loaded elsewhere on this site.

   Presentation only — nothing here touches the prediction pipeline.
   =========================================================================== */

.ab-wrap {
    max-width: 1180px;
    margin: 0 auto;
    padding: 46px 28px 72px;
}

/* --- hero ----------------------------------------------------------------- */

.ab-hero {
    position: relative;
    overflow: hidden;
    padding: 46px 48px 44px;
    border-radius: 26px;
    background: linear-gradient(135deg, var(--hui-green-3), var(--hui-green-2));
    color: #fff;
    box-shadow: 0 26px 60px -34px rgba(13, 68, 44, .9);
}

/* Two faint rings, echoing the ones on the Quick Estimate panel. Decorative,
   so they are pushed off the corner and never intercept a click. */
.ab-hero::after {
    content: "";
    position: absolute;
    top: -210px;
    right: -140px;
    width: 440px;
    height: 440px;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 50%;
    box-shadow: 0 0 0 56px rgba(255, 255, 255, .028),
                0 0 0 112px rgba(255, 255, 255, .02);
    pointer-events: none;
}

.ab-hero > * { position: relative; z-index: 1; }

.ab-eyebrow {
    margin: 0 0 12px;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--hui-gold);
}

.ab-hero h1 {
    font-family: var(--hui-display);
    margin: 0 0 14px;
    font-size: 33px;
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: -.02em;
}

.ab-lead {
    margin: 0;
    max-width: 78ch;
    font-size: 15.5px;
    line-height: 1.75;
    color: rgba(255, 255, 255, .8);
}

/* --- figures -------------------------------------------------------------- */

.ab-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 14px;
    margin-top: 26px;
}

.ab-stat {
    padding: 18px 20px;
    border-radius: 16px;
    background: rgba(255, 255, 255, .09);
    border: 1px solid rgba(255, 255, 255, .16);
}

.ab-stat b {
    display: block;
    font-family: var(--hui-display);
    font-size: 24px;
    font-weight: 600;
    letter-spacing: -.02em;
    color: #fff;
}

.ab-stat span {
    display: block;
    margin-top: 4px;
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: .02em;
    color: rgba(255, 255, 255, .7);
}

/* The same strip on a cream card, used for the national Farmer FIRST figures
   so they cannot be mistaken for this project's own numbers. */
.ab-stats-inset .ab-stat {
    background: #f2f6ef;
    border-color: #dbe6d3;
}

.ab-stats-inset .ab-stat b { color: var(--hui-green); }
.ab-stats-inset .ab-stat span { color: #4c6b3d; }

/* --- sections ------------------------------------------------------------- */

.ab-section {
    margin-top: 22px;
    padding: 32px 34px;
    background: var(--hui-cream);
    border: 1px solid var(--hui-line);
    border-radius: 22px;
    box-shadow: 0 1px 2px rgba(13, 68, 44, .04);
}

.ab-section h2 {
    font-family: var(--hui-display);
    margin: 0 0 4px;
    font-size: 22px;
    font-weight: 600;
    letter-spacing: -.015em;
    color: var(--hui-green);
}

/* Short gold rule under each heading — the accent the rest of the site uses
   sparingly, rather than another band of colour. */
.ab-section h2::after {
    content: "";
    display: block;
    width: 44px;
    height: 3px;
    margin: 12px 0 20px;
    border-radius: 2px;
    background: var(--hui-gold);
}

.ab-sub {
    margin: -14px 0 20px;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--hui-muted);
}

.ab-prose p {
    margin: 0 0 16px;
    font-size: 15px;
    line-height: 1.8;
    color: #34473c;
    text-align: justify;
}

.ab-prose p:last-child { margin-bottom: 0; }
.ab-prose b { color: var(--hui-ink); }

/* --- objectives ----------------------------------------------------------- */

.ab-goals {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 14px;
}

.ab-goal {
    display: flex;
    gap: 14px;
    padding: 20px 22px;
    background: #fff;
    border: 1px solid var(--hui-line);
    border-radius: 18px;
    font-size: 14.5px;
    line-height: 1.7;
    color: #34473c;
}

.ab-goal svg {
    width: 22px;
    height: 22px;
    flex: none;
    margin-top: 1px;
    color: var(--hui-olive);
}

/* --- fact list ------------------------------------------------------------ */

.ab-facts {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
    gap: 2px;
    background: var(--hui-line);
    border: 1px solid var(--hui-line);
    border-radius: 18px;
    overflow: hidden;
}

.ab-fact {
    padding: 16px 20px;
    background: #fff;
}

.ab-fact dt {
    margin: 0 0 5px;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #8a9a8e;
}

.ab-fact dd {
    margin: 0;
    font-size: 14.5px;
    line-height: 1.6;
    font-weight: 600;
    color: var(--hui-ink);
    word-break: break-word;
}

.ab-fact dd a {
    color: var(--hui-green-2) !important;
    text-decoration: none !important;
}

.ab-fact dd a:hover { text-decoration: underline !important; }

/* The project title deserves the full row rather than a third of one. */
.ab-fact-wide { grid-column: 1 / -1; }

/* --- tables --------------------------------------------------------------- */

/* Wide institutional tables scroll inside their own box; the page itself must
   never scroll sideways on a phone. */
.ab-tablewrap {
    overflow-x: auto;
    border: 1px solid var(--hui-line);
    border-radius: 18px;
    background: #fff;
    -webkit-overflow-scrolling: touch;
}

.ab-table {
    width: 100%;
    min-width: 620px;
    border-collapse: collapse;
    font-size: 14px;
}

.ab-table th {
    padding: 13px 18px;
    text-align: left;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #4c6b3d;
    background: #f2f6ef;
    border-bottom: 1px solid var(--hui-line);
    white-space: nowrap;
}

.ab-table td {
    padding: 14px 18px;
    vertical-align: top;
    line-height: 1.6;
    color: #34473c;
    border-bottom: 1px solid #eef1e8;
}

.ab-table tr:last-child td { border-bottom: none; }
.ab-table tbody tr:hover td { background: #fbfcf8; }

.ab-table .ab-num {
    width: 46px;
    font-weight: 700;
    color: #a3b09a;
}

.ab-table .ab-who { font-weight: 700; color: var(--hui-ink); white-space: nowrap; }
.ab-table .ab-role { color: #6f8a5c; font-weight: 600; }

/* An empty cell in the source document (a merged cell in the original table).
   Shown as a dash rather than left blank, so the row does not read as broken. */
.ab-blank { color: #c3ccbe; }

.ab-tnote {
    margin: 14px 0 0;
    font-size: 12.5px;
    line-height: 1.65;
    color: var(--hui-muted);
}

/* --- outcome lists -------------------------------------------------------- */

.ab-numlist {
    margin: 0;
    padding: 0;
    list-style: none;
    counter-reset: ab;
}

.ab-numlist li {
    position: relative;
    counter-increment: ab;
    padding: 0 0 16px 44px;
    font-size: 14.5px;
    line-height: 1.75;
    color: #34473c;
}

.ab-numlist li:last-child { padding-bottom: 0; }

.ab-numlist li::before {
    content: counter(ab);
    position: absolute;
    left: 0;
    top: 1px;
    display: grid;
    place-items: center;
    width: 27px;
    height: 27px;
    border-radius: 50%;
    background: #f2f6ef;
    border: 1px solid #dbe6d3;
    font-family: var(--hui-display);
    font-size: 12.5px;
    font-weight: 600;
    color: var(--hui-green);
}

/* --- acknowledgement ------------------------------------------------------ */

.ab-ack {
    margin-top: 22px;
    padding: 26px 30px;
    border-radius: 22px;
    border: 1px solid var(--hui-line);
    border-left: 4px solid var(--hui-gold);
    background: #fff;
}

.ab-ack h2 {
    font-family: var(--hui-display);
    margin: 0 0 10px;
    font-size: 17px;
    font-weight: 600;
    color: var(--hui-green);
}

.ab-ack p {
    margin: 0;
    font-size: 14px;
    line-height: 1.8;
    color: var(--hui-muted);
}

/* --- responsive ----------------------------------------------------------- */

@media (max-width: 700px) {
    .ab-wrap { padding: 26px 16px 52px; }
    .ab-hero { padding: 30px 22px 28px; border-radius: 20px; }
    .ab-hero h1 { font-size: 25px; }
    .ab-lead { font-size: 14.5px; }
    .ab-section { padding: 24px 20px; border-radius: 18px; }
    .ab-section h2 { font-size: 19px; }
    .ab-prose p { text-align: left; }
    .ab-ack { padding: 22px 20px; }
}
