/* Grafax website refresh. Shared layout; existing forms and navigation retained. */
:root { --green-deep:#173f2c; --green:#28553a; --paper:#faf9f3; --field:#eff1e7; --line:#d7ddd0; }
body { -webkit-font-smoothing:antialiased; }
.wrap,.nav-inner { max-width:1240px; padding-left:40px; padding-right:40px; }
nav { box-shadow:none; }
.nav-inner { min-height:82px; }
.logo { font-size:1.5rem; letter-spacing:-.6px; }
.nav-links { gap:24px; }
.nav-links a,.nav-dropdown-toggle { font-size:1rem; }
.nav-cta { padding:11px 17px; border-radius:2px; }
.kicker { color:#596943; font-family:var(--body); font-size:1rem; font-weight:600; letter-spacing:.13em; margin-bottom:16px; }
h1,h2,h3 { color:var(--green-deep); letter-spacing:-.035em; }
h2 { font-size:clamp(1.9rem,3.2vw,2.75rem); }
h3 { letter-spacing:-.025em; }
.btn { border-radius:2px; padding:14px 22px; min-height:48px; font-size:1rem; }
.btn-primary { background:var(--green-deep); }
.hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:24px; }
.gx-text-link { font-size:1rem; font-weight:600; text-decoration:underline; text-underline-offset:6px; text-decoration-thickness:1px; }
.gx-skip { position:fixed; top:-80px; left:20px; z-index:100; padding:12px 20px; background:white; }
.gx-skip:focus { top:12px; }
.gx-home-hero { display:grid; grid-template-columns:1fr 1fr; background:var(--green-deep); }
.gx-hero-copy { padding:70px 48px 42px max(40px,calc((100vw - 1160px)/2)); color:#f5f5e9; align-self:center; }
.gx-hero-copy .kicker { color:#d8c783; margin-bottom:26px; }
.gx-hero-copy h1 { font-size:clamp(2.5rem,4.4vw,4.4rem); color:#f7f7ed; line-height:1.08; margin:0 0 26px; max-width:13ch; }
.gx-hero-copy > p:not(.kicker) { font-size:1.03rem; line-height:1.75; max-width:42ch; color:#dce5d9; margin-bottom:30px; }
.gx-hero-copy .btn-primary { background:#ead593; color:#193d2b; }
.gx-hero-copy .btn-primary:hover { background:#f7e8b9; }
.gx-hero-copy .gx-text-link { color:#f4f5e9; }
.gx-hero-note { margin-top:48px; padding-top:20px; border-top:1px solid #46634f; font-size:1rem; color:#cad8c8; line-height:1.8; }
.gx-hero-photo { position:relative; margin:0; min-height:560px; }
.gx-hero-photo img { position:absolute; width:100%; height:100%; object-fit:cover; object-position:45% center; }
.gx-hero-photo figcaption { position:absolute; right:24px; bottom:22px; background:var(--paper); color:var(--green-deep); padding:9px 15px; font-size:1rem; }
.gx-products,.gx-connected { padding-top:88px; padding-bottom:88px; }
.gx-section-head { display:flex; justify-content:space-between; align-items:flex-end; gap:44px; margin-bottom:36px; }
.gx-section-head h2 { max-width:none; margin:0; }
.gx-section-head > p { max-width:35ch; color:#5b655a; font-size:1rem; }
.gx-product-layout { display:grid; grid-template-columns:1.05fr 1fr; gap:42px; }
.gx-feed-feature { text-decoration:none; display:block; color:inherit; background:#edf0e5; }
.gx-feature-image { position:relative; overflow:hidden; }
.gx-feature-image img { width:100%; height:300px; object-fit:cover; display:block; }
.gx-image-label { position:absolute; top:18px; left:18px; color:#fff; background:var(--green-deep); padding:7px 11px; font-size:1rem; font-weight:600; letter-spacing:.1em; }
.gx-feature-copy { display:flex; justify-content:space-between; gap:24px; padding:28px; }
.gx-feature-copy h3 { font-size:1.7rem; margin-bottom:10px; }
.gx-feature-copy p { font-size:1rem; margin-bottom:18px; color:#53604f; max-width:36ch; }
.gx-link-arrow { font-size:1.7rem; }
.gx-feed-feature:hover h3,.gx-product-list a:hover h3 { text-decoration:underline; text-underline-offset:5px; }
.gx-product-list { display:flex; flex-direction:column; }
.gx-product-list > a { flex:1; display:grid; grid-template-columns:112px 1fr 20px; align-items:center; gap:24px; padding:23px 0; border-bottom:1px solid var(--line); text-decoration:none; color:inherit; }
.gx-product-list > a:first-child { padding-top:0; }
.gx-product-list img { width:112px; height:116px; object-fit:cover; }
.gx-product-list .kicker { margin-bottom:7px; font-size:1rem; }
.gx-product-list h3 { font-size:1.36rem; margin-bottom:8px; }
.gx-product-list p:not(.kicker) { font-size:1rem; color:#5b655a; }
.gx-farmer-band { background:#e9eddf; padding:72px 0; }
.gx-farmer-grid { display:grid; grid-template-columns:1fr 1fr; gap:76px; align-items:center; }
.gx-farmer-grid figure { margin:0; }
.gx-farmer-grid img { display:block; width:100%; height:440px; object-fit:cover; }
.gx-farmer-grid h2 { margin-bottom:22px; }
.gx-farmer-grid p:not(.kicker) { color:#52604f; font-size:1rem; max-width:43ch; margin-bottom:18px; }
.gx-farmer-grid .btn { margin-top:8px; margin-bottom:24px; }
.gx-farmer-grid .gx-text-link { display:block; }
.gx-core-steps { list-style:none; padding:0; display:grid; grid-template-columns:repeat(3,1fr); gap:40px; margin:45px 0; }
.gx-core-steps li { position:relative; padding-top:20px; border-top:1px solid #b8c5b0; }
.gx-core-steps li:not(:last-child)::after { content:'→'; position:absolute; right:0; top:20px; color:#718566; }
.gx-core-steps span { color:#748468; font-size:1rem; }
.gx-core-steps h3 { font-size:1.4rem; margin:16px 0 10px; }
.gx-core-steps p { font-size:1rem; color:#5b655a; }
.gx-future { display:flex; align-items:center; justify-content:space-between; gap:48px; padding:30px 34px; background:#eef1e7; border-left:3px solid #91a17b; }
.gx-status { display:inline-block; font-size:1rem; letter-spacing:.12em; font-weight:600; color:#526449; margin-bottom:14px; }
.gx-future h3 { font-size:1.35rem; margin-bottom:12px; }
.gx-future p { max-width:74ch; font-size:1rem; color:#5b655a; }
.gx-future > a { flex-shrink:0; }
.gx-about-band { background:var(--green-deep); padding:66px 0; }
.gx-about-grid { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
.gx-about-band h2 { color:#f5f4e7; margin:0; }
.gx-about-band .kicker { color:#d8c783; }
.gx-about-band p:not(.kicker) { color:#d5dfcf; margin-bottom:22px; }
.gx-about-band a { color:#f2e3ad; }
.gx-home-contact { padding-top:72px; padding-bottom:72px; display:flex; justify-content:space-between; align-items:center; gap:36px; }
.gx-home-contact h2 { font-size:2rem; margin-bottom:14px; }
.gx-home-contact p:not(.kicker) { font-size:1rem; color:#5b655a; }
.gx-product-hero { padding:54px 0; }
.gx-product-hero > .wrap { display:grid; grid-template-columns:1.1fr 1fr; gap:56px; align-items:center; }
.gx-product-hero h1 { font-size:clamp(2.1rem,3.5vw,3.2rem); max-width:20ch; }
.gx-product-hero .lede { font-size:1rem; line-height:1.75; }
.gx-product-hero .gx-product-photo { margin:0; }
.gx-product-photo img { display:block; width:100%; height:360px; object-fit:cover; }
.gx-product-photo figcaption { padding:10px 0 0; font-size:1rem; color:#586550; }
.page-hero:not(.gx-product-hero) { padding:56px 0; }
.page-hero:not(.gx-product-hero) h1 { font-size:clamp(2.1rem,4vw,3.4rem); }
.page-hero .lede { max-width:65ch; }
.photo-frame { box-shadow:none; }
.principle-card,.evidence-panel { box-shadow:none; }
.circular-diagram-frame { max-width:none; padding:0; border:0; box-shadow:none; background:transparent; }
.circular-diagram-caption { text-align:left; max-width:82ch; margin:20px auto 0; line-height:1.7; }
.circular-callouts { grid-template-columns:repeat(2,1fr); }
.catalog-table { font-size:1rem; }
.catalog-table th,.catalog-table td { overflow-wrap:anywhere; }
[id] { scroll-margin-top:100px; }
@media(max-width:1000px) {
 .nav-links { gap:15px; }
 .wrap,.nav-inner { padding-left:28px; padding-right:28px; }
 .gx-hero-copy { padding:48px 32px; }
 .gx-hero-photo { min-height:530px; }
 .gx-hero-copy h1 { font-size:3rem; }
 .gx-farmer-grid { gap:40px; }
 .gx-product-layout { gap:26px; }
 .gx-product-list > a { grid-template-columns:84px 1fr 16px; gap:16px; }
 .gx-product-list img { width:84px; height:100px; }
 .gx-home-contact { align-items:flex-start; flex-direction:column; }
}
@media(max-width:820px) {
 .gx-home-hero { grid-template-columns:1fr; }
 .gx-hero-copy { padding:48px 28px 32px; }
 .gx-hero-copy h1 { max-width:20ch; font-size:clamp(2.4rem,7vw,3.4rem); }
 .gx-hero-copy > p:not(.kicker) { max-width:55ch; }
 .gx-hero-photo { min-height:310px; }
 .gx-hero-photo img { object-position:center 47%; }
 .gx-hero-note { margin-top:32px; }
 .gx-section-head { align-items:flex-start; flex-direction:column; gap:18px; }
 .gx-section-head > p { max-width:50ch; }
 .gx-product-layout,.gx-farmer-grid,.gx-about-grid,.gx-product-hero > .wrap { grid-template-columns:1fr; }
 .gx-feature-image img { height:320px; }
 .gx-product-list > a:first-child { padding-top:15px; }
 .gx-farmer-grid img { height:300px; }
 .gx-farmer-grid { gap:32px; }
 .gx-about-grid { gap:28px; }
 .gx-future { align-items:flex-start; flex-direction:column; gap:22px; }
 .gx-product-hero > .wrap { gap:28px; }
 .gx-product-photo img { height:300px; }
 .gx-product-hero { padding:36px 0; }
 .nav-links { max-height:calc(100dvh - 82px); overflow:auto; }
}
@media(max-width:520px) {
 .wrap,.nav-inner { padding-left:22px; padding-right:22px; }
 .nav-inner { min-height:72px; }
 .gx-hero-copy { padding:38px 22px 28px; }
 .gx-hero-copy .hero-actions { gap:20px; }
 .gx-hero-photo { min-height:260px; }
 .gx-products,.gx-connected { padding-top:54px; padding-bottom:54px; }
 .gx-feature-image img { height:240px; }
 .gx-feature-copy { padding:23px; }
 .gx-product-list > a { grid-template-columns:76px 1fr 16px; }
 .gx-product-list img { width:76px; height:94px; }
 .gx-product-list h3 { font-size:1.24rem; }
 .gx-farmer-band,.gx-about-band { padding:46px 0; }
 .gx-core-steps { grid-template-columns:1fr; gap:24px; margin:30px 0; }
 .gx-core-steps li { display:grid; grid-template-columns:35px 1fr; gap:4px 12px; }
 .gx-core-steps h3 { margin:0; font-size:1.25rem; }
 .gx-core-steps p { grid-column:2; }
 .gx-core-steps li:not(:last-child)::after { display:none; }
 .gx-future { padding:24px; }
 .gx-home-contact { padding-top:48px; padding-bottom:48px; }
 .circular-callouts { grid-template-columns:1fr; }
 .catalog-table th,.catalog-table td { padding:10px 7px; font-size:1rem; }
 .gx-product-hero h1 { font-size:2rem; }
 .gx-product-photo img { height:245px; }
 .hero-actions { gap:16px; }
}
@media (min-width:821px) and (max-width:1050px) {
 .nav-toggle { display:block; }
 .nav-links { display:none; position:absolute; top:100%; left:0; right:0; flex-direction:column; align-items:stretch; gap:0; background:var(--paper); border-bottom:1px solid var(--line); padding:12px 28px 20px; }
 .nav-links.open { display:flex; }
 .nav-links a { padding:12px 0; }
 .nav-dropdown-toggle { width:100%; justify-content:space-between; padding:12px 0; }
 .nav-dropdown-panel { position:static; box-shadow:none; margin:0 0 8px; }
}
.gx-mobile-flow { display:none; }
@media(max-width:640px) {
 .circular-diagram-frame { display:none; }
 .gx-mobile-flow { display:block; margin:28px 0; }
 .gx-mobile-flow ol { list-style:none; padding:0; }
 .gx-mobile-flow ol li { display:flex; gap:20px; padding:22px 0; border-top:1px solid var(--line); }
 .gx-mobile-flow ol span { color:#7c8a70; font-size:1rem; padding-top:4px; }
 .gx-mobile-flow h3 { font-size:1.3rem; margin:0 0 8px; }
 .gx-mobile-flow p,.gx-mobile-flow li { font-size:1rem; color:#53634d; }
 .gx-mobile-future { background:#e9eddf; padding:24px; border-left:3px solid #91a17b; }
 .gx-mobile-future ul { padding:12px 0 12px 18px; }
 .gx-mobile-future li { padding:6px 0; }
 .gx-mobile-future a { display:inline-block; margin-top:18px; font-size:1rem; }
}

/* Keep the original rotating hero and field motif. */
/* HERO — cinematic slideshow */
.hero-cinematic{position:relative;min-height:clamp(520px,78vh,780px);display:flex;align-items:flex-end;background:var(--green-hero);overflow:hidden}
.hero-slideshow{position:absolute;inset:0}
.hero-slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity 1.4s ease}
.hero-slide.is-active{opacity:1}
.hero-cinematic-shade{position:absolute;inset:0;background:linear-gradient(105deg,rgba(15,46,26,0.88) 0%,rgba(15,46,26,0.55) 38%,rgba(15,46,26,0.18) 68%,rgba(15,46,26,0.08) 100%)}
.hero-wave-wrap{position:absolute;left:0;bottom:0;width:min(78%,920px);z-index:2;pointer-events:none;line-height:0}
.hero-wave-wrap svg{display:block;width:100%;height:auto}
.hero-cinematic-content{position:relative;z-index:3;width:100%;max-width:1100px;margin:0 auto;padding:0 24px 56px;color:#fff;display:flex;flex-direction:column;justify-content:flex-end;min-height:inherit}
.hero-tagline{margin:0;font-family:var(--display);font-weight:700;line-height:1.05;color:#fff}
.hero-tagline-feed{display:block;font-size:clamp(1.1rem,2.2vw,1.35rem);font-weight:600;color:var(--gold-soft);letter-spacing:0.04em;margin-bottom:10px;text-transform:uppercase}
.hero-tagline-main{display:block;font-size:clamp(2.5rem,6.5vw,4.5rem);max-width:14ch;margin-bottom:4px}
.hero-tagline-main .tagline-xx{display:inline;color:var(--gold);padding:0 2px}
.hero-tagline-sub{display:block;margin-top:18px;font-size:clamp(1rem,2vw,1.15rem);color:#e6efe8;max-width:36ch;line-height:1.45}
.hero-cinematic .kicker{color:var(--gold-soft);margin-bottom:10px}
.hero-cinematic h1{font-size:clamp(2.35rem,5.8vw,4rem);max-width:13ch;color:#fff;line-height:1.08}
.hero-cinematic h1 em{font-style:italic;font-weight:700}
.hero-cinematic .hero-lede{font-size:clamp(1.05rem,2.1vw,1.28rem);max-width:44ch;margin:18px 0 28px;color:#e6efe8}
.hero-cinematic .btn-primary{background:#fff;color:var(--green-deep)}
.hero-cinematic .btn-primary:hover{background:var(--gold-soft);color:var(--green-deep)}
.hero-cinematic .btn-ghost{border:2px solid rgba(255,255,255,0.92);color:#fff}
.hero-cinematic .btn-ghost:hover{background:rgba(255,255,255,0.12);color:#fff}
.hero-dots{display:flex;gap:10px;margin-top:32px}
.hero-dot{width:10px;height:10px;border-radius:50%;border:0;padding:0;background:rgba(255,255,255,0.35);cursor:pointer}
.hero-dot.is-active{background:#fff;transform:scale(1.15)}
.hero-dot:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
@media(max-width:640px){
  .hero-cinematic{min-height:clamp(480px,72vh,640px)}
  .hero-cinematic-content{padding-bottom:40px}
  .hero-wave-wrap{width:100%}
}

.hero-cinematic { min-height:clamp(540px,76vh,800px); background:#123822; }
.hero-cinematic-content { max-width:1240px; padding:80px 40px 42px; }
.hero-cinematic h1.hero-tagline { max-width:none; margin-bottom:0; }
.hero-tagline-main { max-width:none; font-size:clamp(2.4rem,5.8vw,4.5rem); }
.hero-tagline-sub { font-size:1rem; }
.gx-carousel-actions { margin-top:24px; }
.hero-cinematic .hero-dots { align-items:center; margin-top:24px; }
.hero-pause { font:inherit; font-size:1rem; color:white; background:transparent; border:1px solid #ffffff70; border-radius:3px; padding:4px 10px; margin-left:8px; cursor:pointer; }
@media(max-width:640px) {
 .hero-cinematic { min-height:580px; }
 .hero-cinematic-content { padding:80px 22px 30px; }
 .hero-wave-wrap { width:100%; }
 .hero-tagline-main { font-size:clamp(2.1rem,8.2vw,3rem); }
 .hero-cinematic .hero-actions { gap:12px; }
 .hero-cinematic .btn { padding:12px 15px; font-size:1rem; }
}
@media(prefers-reduced-motion:reduce) { .hero-slide { transition:none; } }

.nav-links > a[href$="approach.html"] { text-decoration:underline; text-underline-offset:6px; text-decoration-thickness:1px; }

/* A quieter contact page. */
.gx-contact-clean .contact-hero { padding:36px 0 28px; text-align:left; }
.gx-contact-clean .contact-hero h1 { margin:20px 0 14px; font-size:clamp(2.2rem,4vw,3.1rem); }
.gx-contact-clean .contact-hero p { margin-left:0; margin-right:0; }
.gx-contact-clean .contact-page { padding:12px 0 64px; }
.gx-contact-clean .contact-layout { grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr); gap:72px; align-items:start; }
.gx-contact-clean .contact-details { padding-top:16px; }
.gx-contact-block { margin-bottom:30px; }
.gx-contact-clean .gx-contact-block h2 { font-family:var(--body); font-size:1rem; font-weight:600; letter-spacing:0; margin:0 0 9px; }
.gx-contact-block p,.gx-contact-block a { font-size:1rem; line-height:1.8; }
.gx-contact-block p { color:#596653; }
.gx-contact-clean .contact-card { padding:28px; border:1px solid var(--line); border-radius:4px; box-shadow:none; }
.gx-contact-clean .contact-form label { font-size:1rem; }
.gx-contact-clean .contact-submit { width:auto; min-width:160px; padding:12px 24px; }
.gx-contact-clean [hidden] { display:none !important; }
@media(max-width:820px) {
 .gx-contact-clean .contact-layout { grid-template-columns:1fr; gap:32px; }
 .gx-contact-clean .contact-card { grid-row:1; }
 .gx-contact-clean .contact-details { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
 .gx-contact-block { margin:0; }
}
@media(max-width:480px) {
 .gx-contact-clean .contact-card { padding:22px 18px; }
 .gx-contact-clean .contact-details { grid-template-columns:1fr; }
}

/* Align list markers with the heading; keep headings readable on dark sections. */
.pledge-list li { padding:14px 0 14px 30px; }
.pledge-list li::before { top:19px; width:14px; height:14px; }
.impact .pledge-list li strong { color:#fff; }
.circular-showcase { padding-top:28px; }

.gx-story-nav { display:flex; gap:28px; flex-wrap:wrap; padding-top:20px; padding-bottom:20px; border-bottom:1px solid var(--line); font-size:1rem; }
.gx-story-nav a { text-decoration:none; }
.gx-story-nav a[aria-current="page"] { font-weight:600; text-decoration:underline; text-underline-offset:6px; }

/* Readable supporting text and navigation across all pages. */
body { font-size:1.1rem; }
.breadcrumb { font-size:1.05rem; line-height:1.6; }
.kicker,.gx-product-list .kicker,.gx-image-label { font-size:1.05rem; letter-spacing:.08em; }
.gx-status { font-size:1.15rem; font-weight:700; letter-spacing:.08em; }
.nav-inner { max-width:1440px; gap:28px; }
.nav-links { gap:24px; align-items:center; }
.nav-links a,.nav-dropdown-toggle { font-size:1.12rem; font-weight:600; }
.nav-dropdown-panel { min-width:220px; }
.nav-links .nav-cta { white-space:nowrap; }
.gx-product-photo figcaption,.photo-frame figcaption,.circular-diagram-caption { font-size:1rem; line-height:1.6; }
@media (min-width:1051px) and (max-width:1240px) {
 .nav-inner { position:relative; flex-wrap:wrap; }
 .nav-toggle { display:block; }
 .nav-links { display:none; position:absolute; top:100%; left:0; right:0; flex-direction:column; align-items:stretch; gap:0; background:var(--paper); border-bottom:1px solid var(--line); padding:12px 28px 20px; max-height:calc(100dvh - 82px); overflow:auto; }
 .nav-links.open { display:flex; }
 .nav-links a { padding:12px 0; }
 .nav-dropdown-toggle { width:100%; justify-content:space-between; padding:12px 0; }
 .nav-dropdown-panel { position:static; box-shadow:none; margin:0 0 8px; }
}
@media(max-width:1240px) { .nav-links { align-items:stretch; } }

/* Grafax brand palette: Zambian green, orange, black and restrained red. */
:root { --green:#147F55; --green-deep:#173f2c; --green-hero:#173f2c; --gold:#F99815; --gold-soft:#ffe3b9; --ink:#202420; --brand-black:#000000; --brand-red:#D40829; --paper:#faf9f3; --field:#eef3eb; }
.logo,.logo span { color:var(--brand-black); }
.nav-links a:hover,.nav-dropdown-toggle:hover { color:var(--green); }
.nav-cta,.btn-primary,.contact-submit { background:var(--green); color:#fff; }
.nav-cta:hover,.btn-primary:hover,.contact-submit:hover { background:var(--green-deep); color:#fff; }
.hero-tagline-main .tagline-xx,.principle-number { color:var(--gold); }
.pledge-list li::before { color:var(--gold); }
.timeline-dot { background:var(--gold); }
a:focus-visible,button:focus-visible { outline:3px solid var(--gold); outline-offset:4px; }
input:focus,select:focus,textarea:focus { outline-color:var(--green); border-color:var(--green); }
input[aria-invalid="true"],textarea[aria-invalid="true"] { border-color:var(--brand-red); }

/* Selected Grafax maize-X identity. */
.logo { display:block; flex-shrink:0; line-height:0; }
.logo img { display:block; width:230px; height:auto; }
.footer-brand { margin-bottom:28px; }
.footer-brand a { display:inline-block; background:var(--paper); padding:16px 20px; border-radius:3px; }
.footer-brand img { display:block; width:230px; height:auto; }
.footer-brand p { margin:14px 0 0; font-size:1.1rem; color:#f5f5e9; }
@media(max-width:520px) { .logo img { width:185px; } }

.logo img,.footer-brand img { mix-blend-mode:multiply; }

/* Transparent logo rendering; white wordmark on the dark footer. */
.logo img,.footer-brand img { mix-blend-mode:normal; }
.footer-brand a { background:transparent; padding:0; }
.footer-brand img { filter:brightness(0) invert(1); }
.hero-cinematic h1.hero-tagline { max-width:20ch; }

.footer-brand img { filter:none; }
