/*
Theme Name: Export Farmers Cooperative
Theme URI: https://exportfarmerscooperative.example
Author: HealthSmart Solutions Limited
Author URI: https://exportfarmerscooperative.example
Description: Landing page + Founding Member application for the Export Farmers Cooperative (an initiative of HealthSmart Solutions Limited) — connecting Zambian agriculture to the UAE and Europe. Activate to turn your front page into the landing page, application form and contact form.
Version: 3.0.0
Requires at least: 5.0
Tested up to: 6.6
Requires PHP: 7.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: export-farmers-cooperative
*/

/* ===================== LANDING PAGE STYLES ===================== */
*, *::before, *::after { box-sizing: border-box; }
:root {
  --bg:#f3f5ef; --band:#eef4ee; --surface:#ffffff;
  --text:#16231c; --muted:#55685c; --faint:#8a988c;
  --line:#dbe4d9; --line-2:#c6d3c8;
  --brand:#15803d; --brand-strong:#14532d; --brand-deep:#0f3d22; --brand-soft:#e7f4ec; --brand-line:#cfe6d8;
  --gold:#b17f16; --gold-light:#e8c766; --gold-soft:#f4ead2;
  --on-brand:#eafaf1;
  --maxw:1140px;
  --serif:"Fraunces", Georgia, "Times New Roman", serif;
  --sans:"Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --mono:"IBM Plex Mono", ui-monospace, Menlo, monospace;
}
html { scroll-behavior:smooth; scroll-padding-top:84px; -webkit-text-size-adjust:100%; }
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto} *{transition:none !important} }
body { margin:0; background:var(--bg); color:var(--text); font-family:var(--sans); font-size:17px; line-height:1.6; -webkit-font-smoothing:antialiased; }
img { max-width:100%; display:block; }

.lp-wrap { max-width:var(--maxw); margin:0 auto; padding:0 26px; }
.lp-eyebrow { font-family:var(--mono); font-size:.75rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); display:inline-flex; align-items:center; gap:10px; }
.lp-eyebrow::before { content:""; width:26px; height:2px; background:currentColor; display:inline-block; }
.lp h1,.lp h2,.lp h3 { text-wrap:balance; }

/* Buttons */
.lp-btn { display:inline-flex; align-items:center; gap:9px; font-family:var(--sans); font-weight:700; font-size:1.02rem; padding:15px 28px; border-radius:12px; cursor:pointer; text-decoration:none; border:1.6px solid transparent; transition:transform .08s, background .15s; }
.lp-btn:active { transform:translateY(1px); }
.lp-btn svg { width:19px; height:19px; }
.lp-btn-primary { background:var(--brand); color:#fff; box-shadow:0 8px 22px -8px rgba(21,128,61,.55); }
.lp-btn-primary:hover { background:#12823c; }
.lp-btn-ghost { background:transparent; color:var(--brand-strong); border-color:var(--line-2); }
.lp-btn-ghost:hover { background:var(--band); }
.lp-btn-white { background:#fff; color:var(--brand-strong); box-shadow:0 12px 30px -10px rgba(0,0,0,.45); }
.lp-btn-white:hover { background:var(--gold-soft); }
.lp-btn-wa { background:var(--brand); color:#fff; box-shadow:0 4px 14px rgba(21,128,61,.28); }
.lp-btn-wa:hover { background:#12823c; }

/* Header */
.lp-header { position:sticky; top:0; z-index:50; background:rgba(243,245,239,.88); backdrop-filter:saturate(1.4) blur(10px); border-bottom:1px solid var(--line); }
.lp-header .lp-wrap { display:flex; align-items:center; justify-content:space-between; gap:16px; padding-top:13px; padding-bottom:13px; }
.lp-brand { display:flex; align-items:center; gap:11px; }
.lp-brand .mark { width:30px; height:30px; color:var(--brand); flex:none; }
.lp-brand .name { font-weight:700; font-size:.94rem; line-height:1.1; }
.lp-brand .name small { display:block; font-weight:500; color:var(--faint); font-size:.72rem; letter-spacing:.05em; }
.lp-nav { display:flex; align-items:center; gap:8px; }
.lp-nav a.link { color:var(--brand-strong); text-decoration:none; font-weight:600; font-size:.95rem; padding:9px 14px; border-radius:10px; }
.lp-nav a.link:hover { background:var(--band); }
.lp-nav .lp-btn { padding:10px 20px; font-size:.95rem; }
@media (max-width:560px){ .lp-brand .name small{display:none} .lp-nav a.link{display:none} }

/* Hero */
.lp-hero-bg { background:linear-gradient(97deg, rgba(11,42,24,.93), rgba(11,42,24,.74) 46%, rgba(11,42,24,.40)), url("assets/img/hero.jpg") center/cover no-repeat; }
.lp-hero { padding:clamp(64px,10vw,120px) 0 clamp(52px,7vw,90px); }
.lp-hero-inner { max-width:660px; }
.lp-hero .eyebrow { color:var(--gold-light); }
.lp-hero h1 { font-family:var(--serif); font-weight:500; color:#fff; font-size:clamp(2.5rem,6vw,4.4rem); line-height:1.02; letter-spacing:-.022em; margin:18px 0 20px; }
.lp-hero h1 em { font-style:italic; color:var(--gold-light); }
.lp-hero .deck { color:rgba(255,255,255,.92); font-size:1.2rem; margin:0 0 28px; }
.lp-cta-row { display:flex; flex-wrap:wrap; gap:14px; align-items:center; }
.lp-cta-note { font-family:var(--mono); font-size:.8rem; color:rgba(255,255,255,.75); letter-spacing:.03em; }
.lp-stats { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; margin-top:36px; max-width:680px; }
.lp-stat { background:rgba(255,255,255,.09); border:1px solid rgba(255,255,255,.2); border-radius:14px; padding:16px 18px; }
.lp-stat .n { font-family:var(--serif); font-weight:600; color:#fff; font-size:1.5rem; line-height:1; letter-spacing:-.02em; }
.lp-stat .l { color:rgba(255,255,255,.8); font-size:.82rem; margin-top:6px; }

/* Tagline band */
.lp-tagline-bg { background:linear-gradient(0deg, rgba(11,42,24,.86), rgba(11,42,24,.6)), url("assets/img/tagline.jpg") center/cover no-repeat; }
.lp-tagline { padding:clamp(52px,7vw,84px) 0; text-align:center; }
.lp-tagline p { font-family:var(--serif); font-style:italic; font-weight:500; color:#fff; font-size:clamp(1.4rem,3vw,2.1rem); line-height:1.25; margin:0 auto; max-width:22ch; }

/* Sections */
.lp-section { padding:clamp(48px,7vw,86px) 0; }
.lp-band { background:var(--band); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.lp-head { max-width:60ch; margin-bottom:clamp(28px,4vw,44px); }
.lp-center.lp-head { margin-left:auto; margin-right:auto; text-align:center; }
.lp-center .lp-eyebrow { justify-content:center; }
.lp-head h2 { font-family:var(--serif); font-weight:500; font-size:clamp(1.9rem,3.8vw,2.8rem); line-height:1.06; letter-spacing:-.015em; margin:12px 0 12px; color:var(--brand-strong); }
.lp-head p { margin:0; color:var(--muted); font-size:1.12rem; }

/* Photo frames */
.lp-frame { border-radius:18px; overflow:hidden; box-shadow:0 26px 54px -30px rgba(20,50,32,.55); background:var(--band); }
.img-opportunity { background:url("assets/img/opportunity.jpg") center/cover no-repeat; }
.img-commitments { background:url("assets/img/commitments.jpg") center/cover no-repeat; }
.img-apply { background:url("assets/img/apply.jpg") center/cover no-repeat; }
.img-mosaic-1 { background:url("assets/img/mosaic-1.jpg") center/cover no-repeat; }
.img-mosaic-2 { background:url("assets/img/mosaic-2.jpg") center/cover no-repeat; }
.img-mosaic-3 { background:url("assets/img/mosaic-3.jpg") center/cover no-repeat; }
.img-mosaic-4 { background:url("assets/img/mosaic-4.jpg") center/cover no-repeat; }

/* Two-column intro (opportunity) */
.lp-split { display:grid; grid-template-columns:1fr; gap:clamp(28px,4vw,48px); align-items:center; }
@media (min-width:860px){ .lp-split { grid-template-columns:1.1fr .9fr; } .lp-split.rev > :first-child{order:2} }

/* Value cards */
.lp-cards { display:grid; gap:20px; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); margin-top:clamp(28px,4vw,44px); }
.lp-card { background:var(--surface); border:1px solid var(--line); border-radius:16px; padding:26px 24px; }
.lp-card .ic { width:46px; height:46px; border-radius:12px; background:var(--brand-soft); color:var(--brand); display:grid; place-items:center; margin-bottom:16px; }
.lp-card .ic svg { width:25px; height:25px; }
.lp-card h3 { margin:0 0 8px; font-size:1.18rem; font-weight:700; color:var(--text); }
.lp-card p { margin:0; color:var(--muted); font-size:.99rem; }

/* Commit rows */
.lp-commit { display:grid; gap:18px; }
.lp-commit .item { display:flex; gap:15px; align-items:flex-start; }
.lp-commit .n { flex:none; width:42px; height:42px; border-radius:11px; background:var(--gold-soft); color:var(--gold); display:grid; place-items:center; }
.lp-commit .n svg { width:22px; height:22px; }
.lp-commit h3 { margin:1px 0 5px; font-size:1.08rem; font-weight:700; }
.lp-commit p { margin:0; color:var(--muted); font-size:.98rem; }

/* Mosaic band */
.lp-mosaic-bg { background:var(--brand-deep); }
.lp-mosaic { padding:clamp(40px,6vw,72px) 0; }
.lp-mosaic .lp-eyebrow { color:var(--gold-light); margin-bottom:22px; }
.lp-mosaic-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:4px; }
.lp-mosaic-grid > div { aspect-ratio:4/3; }

/* Steps */
.lp-steps { display:grid; gap:14px; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); }
.lp-step { display:flex; gap:14px; align-items:baseline; padding:16px 18px; background:var(--surface); border:1px solid var(--line); border-radius:12px; }
.lp-step .num { font-family:var(--mono); color:var(--gold); font-size:.9rem; flex:none; }
.lp-step b { font-weight:700; }
.lp-step .d { display:block; color:var(--muted); font-size:.93rem; }

/* CTA band */
.lp-cta-bg { background:linear-gradient(150deg, rgba(15,61,34,.92), rgba(21,128,61,.74)), url("assets/img/cta.jpg") center/cover no-repeat; border-top:4px solid var(--gold); }
.lp-cta { padding:clamp(56px,8vw,96px) 0; text-align:center; }
.lp-cta .lp-eyebrow { color:var(--gold-light); justify-content:center; margin-bottom:14px; }
.lp-cta h2 { font-family:var(--serif); font-weight:500; color:#fff; font-size:clamp(1.9rem,4vw,2.8rem); line-height:1.06; letter-spacing:-.015em; margin:0 0 12px; }
.lp-cta p { color:rgba(234,250,241,.9); font-size:1.12rem; margin:0 auto 26px; max-width:44ch; }

/* Apply */
.lp-apply { background:var(--bg); }
.lp-apply-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:28px; align-items:start; }
.lp-apply-aside { display:flex; flex-direction:column; gap:18px; }
.lp-apply-photo { position:relative; aspect-ratio:4/5; border-radius:18px; overflow:hidden; box-shadow:0 26px 54px -30px rgba(20,50,32,.55); }
.lp-apply-photo .ov { position:absolute; inset:0; background:linear-gradient(0deg, rgba(11,42,24,.86), transparent 55%); }
.lp-apply-photo .cap { position:absolute; left:0; right:0; bottom:0; padding:24px; }
.lp-apply-photo .cap .k { font-family:var(--mono); font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-light); }
.lp-apply-photo .cap .t { font-family:var(--serif); color:#fff; font-size:1.6rem; font-weight:500; line-height:1.1; margin-top:6px; }
.lp-trust { background:var(--surface); border:1px solid var(--line); border-radius:18px; padding:22px 22px; box-shadow:0 26px 54px -30px rgba(20,50,32,.55); display:flex; flex-direction:column; gap:18px; }
.lp-trust .row { display:flex; gap:13px; align-items:flex-start; }
.lp-trust .ic { flex:none; width:38px; height:38px; border-radius:10px; background:var(--brand-soft); color:var(--brand); display:grid; place-items:center; }
.lp-trust .ic svg { width:20px; height:20px; }
.lp-trust b { display:block; font-size:1rem; font-weight:700; }
.lp-trust span.d { color:var(--muted); font-size:.92rem; }
.lp-apply-form .efc-scope { max-width:none; margin:0; padding:0; }
.lp-legal { text-align:center; color:var(--faint); font-size:12.5px; margin-top:40px; }

/* FAQ */
.lp-faq { max-width:780px; margin:0 auto; display:grid; gap:12px; }
.lp-faq details { background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:2px 20px; }
.lp-faq summary { cursor:pointer; padding:16px 0; font-weight:700; font-size:1.04rem; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:16px; }
.lp-faq summary::-webkit-details-marker { display:none; }
.lp-faq summary::after { content:"+"; font-family:var(--mono); color:var(--gold); font-size:1.4rem; line-height:1; }
.lp-faq details[open] summary::after { content:"–"; }
.lp-faq .a { padding:0 0 18px; color:var(--muted); font-size:1rem; }

/* Contact */
.lp-contact-grid { display:grid; grid-template-columns:1fr; gap:clamp(28px,4vw,48px); align-items:start; }
@media (min-width:860px){ .lp-contact-grid { grid-template-columns:.9fr 1.1fr; } }
.lp-contact h2 { font-family:var(--serif); font-weight:500; font-size:clamp(1.8rem,3.5vw,2.5rem); line-height:1.08; letter-spacing:-.015em; margin:12px 0 12px; color:var(--brand-strong); }
.lp-contact .intro { color:var(--muted); font-size:1.08rem; margin:0 0 22px; }
.lp-reassure { display:grid; gap:14px; margin-bottom:24px; }
.lp-reassure .row { display:flex; gap:13px; align-items:flex-start; }
.lp-reassure .ic { flex:none; width:38px; height:38px; border-radius:10px; background:var(--brand-soft); color:var(--brand); display:grid; place-items:center; }
.lp-reassure .ic svg { width:20px; height:20px; }
.lp-reassure b { display:block; font-weight:700; }
.lp-reassure span.d { color:var(--muted); font-size:.94rem; }
.lp-contact-form .efc-scope { max-width:none; margin:0; padding:0; }

/* Footer */
.lp-footer { border-top:1px solid var(--line); padding:34px 0 46px; }
.lp-footer .top { display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between; align-items:center; }
.lp-footer .fb { font-family:var(--mono); font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.lp-footer .desc { font-size:.9rem; color:var(--faint); max-width:52ch; }
.lp-footer .meta { display:grid; gap:8px; margin-top:18px; padding-top:18px; border-top:1px solid var(--line); }
.lp-footer .meta span { font-size:12.5px; color:var(--faint); }
.lp-footer .meta .org b { color:var(--muted); }

:focus-visible { outline:2.5px solid var(--brand); outline-offset:3px; border-radius:5px; }

/* ===================== EMBEDDED FORM STYLES ===================== */
/* =========================================================================
   EXPORT FARMERS COOPERATIVE — Founding Member Application Form
   Self-contained. No external dependencies. Safe to embed in WordPress.
   ---> To receive applications by email, set EFC_ENDPOINT in the <script>
        at the bottom of this file (search for "SET YOUR FORM ENDPOINT").
   ========================================================================= */

.efc-scope *, .efc-scope *::before, .efc-scope *::after { box-sizing: border-box; }

.efc-scope {
  /* Palette */
  --efc-green:        #15803d;
  --efc-green-dark:   #14532d;
  --efc-green-darker: #0f3d22;
  --efc-green-soft:   #e7f4ec;
  --efc-green-line:   #cfe6d8;
  --efc-gold:         #c98a12;
  --efc-gold-soft:    #fbf1dd;
  --efc-ink:          #1f2937;
  --efc-muted:        #5b6b60;
  --efc-faint:        #8a998f;
  --efc-card:         #ffffff;
  --efc-page:         #eef3ee;
  --efc-border:       #d7e0d9;
  --efc-border-strong:#b9c7bd;
  --efc-error:        #c0392b;
  --efc-error-soft:   #fdecea;
  --efc-radius:       16px;
  --efc-radius-sm:    11px;
  --efc-shadow:       0 10px 40px rgba(20, 60, 35, 0.10), 0 2px 8px rgba(20, 60, 35, 0.06);
  --efc-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, "Noto Sans", sans-serif;

  font-family: var(--efc-font);
  color: var(--efc-ink);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  display: block;
  max-width: 760px;
  margin: 0 auto;
  padding: 22px 16px 48px;
}

/* Reset a few things that themes may inject */
.efc-scope h1, .efc-scope h2, .efc-scope h3, .efc-scope p, .efc-scope fieldset, .efc-scope legend { margin: 0; padding: 0; border: 0; }
.efc-scope button { font-family: inherit; }
.efc-scope [hidden] { display: none !important; }  /* ensure hidden always wins over display rules below */

/* ---------- Card ---------- */
.efc-card {
  background: var(--efc-card);
  border: 1px solid var(--efc-border);
  border-radius: var(--efc-radius);
  box-shadow: var(--efc-shadow);
  overflow: hidden;
}

/* ---------- Header ---------- */
.efc-head {
  background: linear-gradient(155deg, var(--efc-green-dark) 0%, var(--efc-green) 100%);
  color: #fff;
  padding: 30px 28px 26px;
  position: relative;
}
.efc-head::after {
  content: "";
  position: absolute; left: 0; right: 0; bottom: 0; height: 4px;
  background: linear-gradient(90deg, var(--efc-gold), #e6b64c);
}
.efc-badge {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  color: #d9f0e2; margin-bottom: 12px;
}
.efc-badge svg { width: 18px; height: 18px; flex: none; }
.efc-head h1 { font-size: clamp(22px, 5vw, 30px); font-weight: 800; letter-spacing: -0.01em; line-height: 1.15; }
.efc-head .efc-sub { margin-top: 6px; font-size: clamp(15px, 3.4vw, 17px); font-weight: 600; color: #eafaf1; }
.efc-head .efc-tag { margin-top: 10px; font-size: 13.5px; color: #cfe9da; max-width: 60ch; }

/* ---------- Progress ---------- */
.efc-progress { padding: 18px 28px 0; }
.efc-progress[hidden] { display: none; }
.efc-progress-top { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 8px; }
.efc-progress-step { font-size: 12.5px; font-weight: 700; color: var(--efc-green-dark); text-transform: uppercase; letter-spacing: .05em; }
.efc-progress-pct { font-size: 12.5px; font-weight: 700; color: var(--efc-faint); }
.efc-track { height: 8px; background: var(--efc-green-soft); border-radius: 999px; overflow: hidden; }
.efc-fill { height: 100%; width: 0%; background: linear-gradient(90deg, var(--efc-green), #2fa35f); border-radius: 999px; transition: width .35s cubic-bezier(.4,0,.2,1); }
.efc-steplabel { margin-top: 9px; font-size: 13px; color: var(--efc-muted); font-weight: 600; }

/* ---------- Body / steps ---------- */
.efc-body { padding: 24px 28px 8px; }
.efc-step { display: none; animation: efc-in .35s ease; }
.efc-step.is-active { display: block; }
@keyframes efc-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .efc-step { animation: none; } .efc-fill { transition: none; } }

.efc-step-title { font-size: 20px; font-weight: 800; color: var(--efc-green-dark); letter-spacing: -0.01em; }
.efc-step-note { font-size: 14px; color: var(--efc-muted); margin-top: 5px; margin-bottom: 4px; }

/* Welcome (intro) */
.efc-welcome p { color: var(--efc-muted); font-size: 15.5px; margin-top: 14px; }
.efc-welcome p strong { color: var(--efc-ink); }
.efc-highlights { list-style: none; margin: 18px 0 4px; display: grid; gap: 10px; }
.efc-highlights li { position: relative; padding-left: 30px; font-size: 15px; color: var(--efc-ink); }
.efc-highlights li svg { position: absolute; left: 0; top: 2px; width: 20px; height: 20px; color: var(--efc-green); }
.efc-note {
  margin-top: 20px; background: var(--efc-gold-soft); border: 1px solid #eddcb6;
  border-radius: var(--efc-radius-sm); padding: 13px 15px; font-size: 13.5px; color: #7a5a12;
  display: flex; gap: 10px;
}
.efc-note svg { width: 18px; height: 18px; flex: none; margin-top: 1px; }

/* ---------- Fields ---------- */
.efc-field { margin-top: 18px; }
.efc-field:first-child { margin-top: 6px; }
.efc-label { display: block; font-size: 14.5px; font-weight: 700; color: var(--efc-ink); margin-bottom: 7px; }
.efc-req { color: var(--efc-error); font-weight: 700; margin-left: 2px; }
.efc-opt { color: var(--efc-faint); font-weight: 600; font-size: 12.5px; margin-left: 4px; }
.efc-help { font-size: 13px; color: var(--efc-muted); margin: -2px 0 8px; }

.efc-input, .efc-textarea, .efc-select {
  width: 100%; font-family: inherit; font-size: 16px; color: var(--efc-ink);
  background: #fff; border: 1.5px solid var(--efc-border-strong); border-radius: var(--efc-radius-sm);
  padding: 12px 14px; transition: border-color .15s, box-shadow .15s; -webkit-appearance: none; appearance: none;
}
.efc-textarea { min-height: 118px; resize: vertical; line-height: 1.5; }
.efc-select {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%235b6b60' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  background-repeat: no-repeat; background-position: right 12px center; padding-right: 40px; cursor: pointer;
}
.efc-input:focus, .efc-textarea:focus, .efc-select:focus {
  outline: none; border-color: var(--efc-green); box-shadow: 0 0 0 3.5px rgba(21,128,61,.16);
}
.efc-input::placeholder, .efc-textarea::placeholder { color: var(--efc-faint); }
.efc-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 18px; }
.efc-grid2 .efc-field { margin-top: 0; }  /* both columns align (override .efc-field:first-child) */
@media (max-width: 520px) { .efc-grid2 { grid-template-columns: 1fr; } }

.efc-counter { text-align: right; font-size: 12px; color: var(--efc-faint); margin-top: 4px; }

/* Choice groups (radio / checkbox) */
.efc-choices { display: grid; gap: 10px; margin-top: 2px; }
.efc-choice {
  display: flex; align-items: flex-start; gap: 12px; cursor: pointer;
  border: 1.5px solid var(--efc-border); border-radius: var(--efc-radius-sm);
  padding: 13px 15px; transition: border-color .15s, background .15s;
}
.efc-choice:hover { border-color: var(--efc-border-strong); background: #fafdfb; }
.efc-choice input { margin: 0; width: 20px; height: 20px; accent-color: var(--efc-green); flex: none; margin-top: 1px; cursor: pointer; }
.efc-choice.is-checked { border-color: var(--efc-green); background: var(--efc-green-soft); }
.efc-choice-text { font-size: 15px; color: var(--efc-ink); }
.efc-choice-text small { display: block; font-size: 12.5px; color: var(--efc-muted); font-weight: 500; margin-top: 2px; }

.efc-reveal { margin-top: 12px; }
.efc-reveal[hidden] { display: none; }

/* File upload */
.efc-upload {
  display: flex; align-items: center; gap: 14px; cursor: pointer;
  border: 1.5px dashed var(--efc-border-strong); border-radius: var(--efc-radius-sm);
  padding: 17px 16px; background: #fcfdfc; transition: border-color .15s, background .15s;
}
.efc-upload:hover { border-color: var(--efc-green); background: var(--efc-green-soft); }
.efc-upload-ic { width: 42px; height: 42px; flex: none; border-radius: 10px; background: var(--efc-green-soft); color: var(--efc-green); display: grid; place-items: center; }
.efc-upload-ic svg { width: 22px; height: 22px; }
.efc-upload-text b { display: block; color: var(--efc-ink); font-weight: 700; font-size: 14.5px; }
.efc-upload-text span { color: var(--efc-muted); font-size: 13px; }
.efc-file-preview { margin-top: 12px; display: flex; align-items: center; gap: 12px; border: 1px solid var(--efc-border); border-radius: var(--efc-radius-sm); padding: 10px 12px; background: #fff; }
.efc-file-preview img { width: 52px; height: 52px; object-fit: cover; border-radius: 8px; flex: none; }
.efc-file-thumb-doc { width: 52px; height: 52px; border-radius: 8px; background: var(--efc-green-soft); color: var(--efc-green); display: grid; place-items: center; flex: none; }
.efc-file-thumb-doc svg { width: 24px; height: 24px; }
.efc-file-meta { flex: 1; min-width: 0; }
.efc-file-meta b { display: block; font-size: 14px; color: var(--efc-ink); font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.efc-file-meta span { font-size: 12.5px; color: var(--efc-faint); }
.efc-file-remove { flex: none; background: none; border: 0; color: var(--efc-error); font-size: 13px; font-weight: 600; cursor: pointer; padding: 6px 8px; border-radius: 8px; }
.efc-file-remove:hover { background: var(--efc-error-soft); }
.efc-field.has-error .efc-upload { border-color: var(--efc-error); }

/* Declaration / commitment box */
.efc-commit {
  background: var(--efc-green-soft); border: 1px solid var(--efc-green-line);
  border-radius: var(--efc-radius-sm); padding: 16px 18px; margin-top: 6px;
}
.efc-commit h4 { margin: 0 0 8px; font-size: 14px; font-weight: 800; color: var(--efc-green-dark); }
.efc-commit ul { margin: 0; padding-left: 20px; display: grid; gap: 5px; }
.efc-commit li { font-size: 14px; color: var(--efc-ink); }

/* Errors */
.efc-err-msg { display: none; color: var(--efc-error); font-size: 13px; font-weight: 600; margin-top: 6px; }
.efc-field.has-error .efc-input,
.efc-field.has-error .efc-textarea,
.efc-field.has-error .efc-select { border-color: var(--efc-error); box-shadow: 0 0 0 3.5px rgba(192,57,43,.12); }
.efc-field.has-error .efc-err-msg { display: block; }
.efc-field.has-error .efc-choices { outline: none; }
.efc-field.has-error .efc-choice { border-color: #e6b3ad; }

.efc-formerror {
  display: none; align-items: center; gap: 9px; margin-top: 16px;
  background: var(--efc-error-soft); border: 1px solid #f2c4bd; color: #96261a;
  border-radius: var(--efc-radius-sm); padding: 12px 14px; font-size: 13.5px; font-weight: 600;
}
.efc-formerror.is-shown { display: flex; }
.efc-formerror svg { width: 18px; height: 18px; flex: none; }

/* ---------- Footer nav ---------- */
.efc-foot {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 18px 28px 26px; margin-top: 8px; border-top: 1px solid var(--efc-border);
}
.efc-btn {
  font-size: 15.5px; font-weight: 700; border-radius: var(--efc-radius-sm); padding: 13px 24px;
  cursor: pointer; border: 1.5px solid transparent; transition: transform .08s, background .15s, box-shadow .15s;
  display: inline-flex; align-items: center; gap: 8px;
}
.efc-btn:active { transform: translateY(1px); }
.efc-btn svg { width: 18px; height: 18px; }
.efc-btn-primary { background: var(--efc-green); color: #fff; box-shadow: 0 4px 14px rgba(21,128,61,.28); }
.efc-btn-primary:hover { background: #128239; }
.efc-btn-primary:disabled { background: #9db8a7; box-shadow: none; cursor: default; }
.efc-btn-ghost { background: #fff; color: var(--efc-green-dark); border-color: var(--efc-border-strong); }
.efc-btn-ghost:hover { background: #f4f8f5; }
.efc-btn-ghost[hidden] { display: none; }
.efc-btn-block { width: 100%; justify-content: center; }
.efc-foot.efc-foot-single { justify-content: stretch; }
.efc-spinner { width: 17px; height: 17px; border: 2.5px solid rgba(255,255,255,.4); border-top-color: #fff; border-radius: 50%; animation: efc-spin .7s linear infinite; }
@keyframes efc-spin { to { transform: rotate(360deg); } }

/* ---------- Thank you ---------- */
.efc-done { text-align: center; padding: 44px 28px 52px; display: none; }
.efc-done.is-active { display: block; }
.efc-done-ic { width: 74px; height: 74px; margin: 0 auto 20px; border-radius: 50%; background: var(--efc-green-soft); display: grid; place-items: center; }
.efc-done-ic svg { width: 40px; height: 40px; color: var(--efc-green); }
.efc-done h2 { font-size: 24px; font-weight: 800; color: var(--efc-green-dark); }
.efc-done p { max-width: 46ch; margin: 12px auto 0; color: var(--efc-muted); font-size: 15.5px; }

/* ---------- Footer credit line ---------- */
.efc-legal { text-align: center; font-size: 12px; color: var(--efc-faint); margin-top: 18px; padding: 0 10px; }

@media (max-width: 560px) {
  .efc-head, .efc-progress, .efc-body, .efc-foot { padding-left: 18px; padding-right: 18px; }
  .efc-btn { padding: 13px 18px; }
}
