/* GFI #256B Comment Builder. Styles follow the artifact (Epicur branding), light theme only.
   Every rule is scoped under .gfi256b so theme and Elementor styles don't leak in or out.
   Fonts are served from this plugin (SIL Open Font License; see fonts/FONT-LICENSES.txt). */
@font-face{font-family:"Fira Sans";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/fira-sans-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Fira Sans";font-style:italic;font-weight:400;font-display:swap;src:url(fonts/fira-sans-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:"Fira Sans";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/fira-sans-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Fira Sans";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/fira-sans-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Fira Sans";font-style:normal;font-weight:800;font-display:swap;src:url(fonts/fira-sans-latin-800-normal.woff2) format("woff2")}
@font-face{font-family:"Fira Mono";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/fira-mono-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Fira Mono";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/fira-mono-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(fonts/source-serif-4-latin-opsz-normal.woff2) format("woff2-variations"),url(fonts/source-serif-4-latin-opsz-normal.woff2) format("woff2")}

.gfi256b{
  --bg:#ffffff; --surface:#ffffff; --paper:#fcfcff; --fg:#262262; --muted:#55538a; --line:#dddce8;
  --accent:#262262; --accent-ink:#ffffff; --yes:#262262; --yes-soft:#efeef7; --yes-ink:#ffffff; --pend:#51bcde; --pend-soft:#ebf8fc; --pend-ink:#161349; --no:#e55032; --no-soft:#f3f3f3; --no-ink:#ffffff; --accent-soft:#eef8fc; --mark:#e55032; --mark-soft:#f3f3f3; --hl:#84d2e7; --cta:#e55032; --danger:#c2412a; --shadow:0 2px 10px rgba(38,34,98,.08);
  --display:"Fira Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --body:"Fira Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --letter:"Source Serif 4",Georgia,"Times New Roman",serif;
  --mono:"Fira Mono",ui-monospace,Consolas,monospace;
  background:var(--bg);color:var(--fg);font-family:var(--body);font-size:16px;line-height:1.6;text-align:left;
}
.gfi256b *,.gfi256b *::before,.gfi256b *::after{box-sizing:border-box}
.gfi256b [hidden]{display:none!important}
.gfi256b .gfi-wrap{max-width:780px;margin:0 auto;padding:28px 20px 64px;display:flex;flex-direction:column;gap:40px}
.gfi256b a{color:var(--accent);text-decoration:underline}
.gfi256b :focus-visible{outline:3px solid var(--mark);outline-offset:2px}
.gfi256b p{margin:0}
.gfi256b .mono{font-family:var(--mono);font-size:.86em}
.gfi256b .logo{display:block;height:46px;width:auto;max-width:100%;margin:0 0 16px}
.gfi256b .eyebrow{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;font-family:var(--mono);font-size:13px;color:var(--muted)}
.gfi256b .chip{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;background:var(--mark-soft);color:var(--fg);font-weight:500}
.gfi256b .chip b{font-variant-numeric:tabular-nums}

/* Headings: reset theme/Elementor heading styles */
.gfi256b h1,.gfi256b h2,.gfi256b h3,.gfi256b h4{color:var(--fg);font-family:var(--display);text-transform:none;letter-spacing:normal;padding:0}
.gfi256b h1{font-weight:800;font-size:clamp(30px,5.4vw,46px);line-height:1.08;letter-spacing:-.02em;margin:14px 0;text-wrap:balance}
.gfi256b h1 em{font-style:normal;background:linear-gradient(transparent 62%,var(--hl) 62%);padding:0 2px}
.gfi256b h2{font-weight:800;font-size:24px;line-height:1.2;margin:0;text-wrap:balance}
.gfi256b h3{font-size:16px;line-height:1.4;margin:0;font-weight:600}
.gfi256b h4{font-size:13px;line-height:1.4;margin:0;font-weight:600}

/* Header */
.gfi256b .lead{font-size:18px;color:var(--muted);max-width:62ch;margin:0}
.gfi256b .sponsor{margin:0 0 14px;font-size:12.5px;font-style:italic;line-height:1.5;color:var(--muted);max-width:68ch}
.gfi256b .notgfi{margin:0 0 14px;padding:10px 14px;border-left:4px solid var(--pend);background:var(--accent-soft);border-radius:0 8px 8px 0;font-size:15px;max-width:62ch}
.gfi256b .central{margin:6px 0 0;padding:12px 14px;border-left:4px solid var(--pend);background:var(--accent-soft);border-radius:0 10px 10px 0}
.gfi256b .central .lead{color:var(--fg)!important}
.gfi256b .tagline{margin:14px 0 0}
.gfi256b .tagline a{display:inline-block;font-size:19px;font-weight:800;color:#fff;background:var(--cta);box-shadow:var(--shadow);padding:10px 16px;border-radius:10px;text-decoration:none;line-height:1.35}
.gfi256b .tagline a:hover{filter:brightness(1.08);color:#fff}

/* Sections */
.gfi256b section{display:flex;flex-direction:column;gap:16px}
.gfi256b .changes{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr));gap:12px}
.gfi256b .change{background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);padding:16px 18px;display:flex;flex-direction:column;gap:6px;min-width:0}
.gfi256b .change p{color:var(--muted);font-size:15px}
.gfi256b .change .cite{font-family:var(--mono);font-size:12px;color:var(--accent)}
.gfi256b .note{font-size:14px;color:var(--muted);margin:0}

/* 503A vs 503B table */
.gfi256b .tblwrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.gfi256b table.cmp{border-collapse:collapse;width:100%;min-width:520px;font-size:14px;line-height:1.45;margin:0;border:0;background:transparent}
.gfi256b table.cmp th,.gfi256b table.cmp td{text-align:left;vertical-align:top;padding:10px 14px;border:0;border-top:1px solid var(--line);background:transparent;color:var(--fg)}
.gfi256b table.cmp thead th{border-top:0;font-size:13px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;color:var(--accent);font-weight:500}
.gfi256b table.cmp tbody th{font-weight:600;width:28%}
.gfi256b table.cmp td:last-child{background:var(--accent-soft)}
.gfi256b table.cmp tbody tr:nth-child(odd)>*{background-color:transparent}
.gfi256b table.cmp tbody tr>td:last-child{background:var(--accent-soft)}
@media (max-width:560px){
  .gfi256b table.cmp{min-width:0}.gfi256b table.cmp thead{display:none}
  .gfi256b table.cmp tr{display:block;border-top:1px solid var(--line)}.gfi256b table.cmp tr:first-child{border-top:0}
  .gfi256b table.cmp tbody th{display:block;width:auto;border-top:0;padding-bottom:2px}
  .gfi256b table.cmp td{display:block;border-top:0;padding-top:4px}
  .gfi256b table.cmp td::before{content:attr(data-l);display:block;font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--accent)}
}

/* Callouts and flow */
.gfi256b .callout{margin:10px 0 0;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--fg);font-size:15px;line-height:1.55;box-shadow:var(--shadow)}
.gfi256b .callout ul.cons{margin:6px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:6px}
.gfi256b .example{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--mark);box-shadow:var(--shadow);border-radius:0 10px 10px 0;padding:12px 16px;font-size:15px;line-height:1.55}
.gfi256b .flow{display:flex;flex-direction:column;gap:14px}
.gfi256b .ftop{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:10px;align-items:center}
.gfi256b .fbox{background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);padding:12px 14px;font-size:14px;line-height:1.45;color:var(--fg)}
.gfi256b .fk{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:4px;font-weight:500}
.gfi256b .farrow{color:var(--muted);font-size:20px;text-align:center}
.gfi256b .fq{background:var(--fg);color:var(--bg);border-radius:10px;padding:14px 16px;font-weight:600;font-size:14px;line-height:1.4;text-align:center}
.gfi256b .branches{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px}
.gfi256b .br{display:flex;flex-direction:column;gap:0;min-width:0}
.gfi256b .br .bh{border-radius:10px 10px 0 0;padding:10px 14px;display:flex;flex-direction:column}
.gfi256b .br.yes .bh{color:var(--yes-ink);background:var(--yes)}
.gfi256b .br.pend .bh{color:var(--pend-ink);background:var(--pend)}
.gfi256b .br.no .bh{color:var(--no-ink);background:var(--no)}
.gfi256b .br .bh b{font-size:15px}
.gfi256b .br p{margin:0;padding:10px 14px;font-size:14px;line-height:1.45;border:1px solid var(--line);border-top:0;position:relative;flex:1}
.gfi256b .br p:last-child{border-radius:0 0 10px 10px}
.gfi256b .br.yes p{background:var(--yes-soft)}.gfi256b .br.pend p{background:var(--pend-soft)}.gfi256b .br.no p{background:var(--no-soft)}
.gfi256b .bottom{background:var(--fg);color:var(--bg);border-radius:10px;padding:16px 18px;font-size:15px;line-height:1.55;display:flex;flex-direction:column;gap:8px}
.gfi256b .bottom p+p{margin-top:6px}
.gfi256b .fine-src{margin:0;font-size:12px;color:var(--muted)}
@media (max-width:640px){.gfi256b .ftop{grid-template-columns:1fr}.gfi256b .farrow{transform:rotate(90deg)}}

/* Builder steps */
.gfi256b .step{display:grid;grid-template-columns:40px 1fr;gap:4px 14px}
.gfi256b .step>.num{grid-row:span 2;width:34px;height:34px;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font-weight:800;font-variant-numeric:tabular-nums}
.gfi256b .step>.body,.gfi256b .step>.head{grid-column:2}
.gfi256b .step>.body{min-width:0;display:flex;flex-direction:column;gap:14px}
.gfi256b .step>.head{display:flex;flex-direction:column;gap:2px}
.gfi256b .step>.head p{color:var(--muted);font-size:15px}
.gfi256b .keynote{margin:0;padding:12px 14px;border-radius:10px;background:var(--accent-soft);border:1px solid var(--accent);font-size:15px}
.gfi256b .points{display:flex;flex-direction:column;gap:8px}
.gfi256b .pt{display:grid;grid-template-columns:22px 1fr;gap:12px;align-items:start;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);padding:14px 16px;cursor:pointer;margin:0;font-weight:400}
.gfi256b .pt.on{border-color:var(--accent);background:var(--accent-soft)}
.gfi256b .pt input[type=checkbox],.gfi256b .ack input[type=checkbox]{width:20px;height:20px;margin:2px 0 0;accent-color:var(--accent);appearance:auto;-webkit-appearance:checkbox;flex:none}
.gfi256b .pt .t{font-weight:600;display:flex;flex-wrap:wrap;gap:6px 10px;align-items:baseline}
.gfi256b .pt .tag{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}
.gfi256b .pt .d{color:var(--muted);font-size:15px;margin-top:2px}

/* Privacy, disclosure and acknowledgement */
.gfi256b .privacy{font-size:12.5px;font-style:italic;line-height:1.5;color:var(--muted);display:flex;flex-direction:column;gap:5px;padding:0}
.gfi256b .privacy h4{font-style:normal;color:var(--muted)}
.gfi256b .disclose{margin:0;font-size:12.5px;font-style:italic;line-height:1.5;color:var(--muted)}
.gfi256b .ack{display:flex;gap:10px;align-items:flex-start;font-size:13px;font-style:italic;color:var(--muted);cursor:pointer;margin:0;font-weight:400}
.gfi256b .ack input[type=checkbox]{width:18px;height:18px;margin-top:1px}
.gfi256b .accuracy{margin:0;font-size:12.5px;font-style:italic;line-height:1.5;color:var(--muted)}

/* Form controls: reset theme/Elementor form styles */
.gfi256b label.f{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:14px;min-width:0;margin:0;color:var(--fg)}
.gfi256b label.f span.h{font-weight:400;color:var(--muted)}
.gfi256b .gfi-wrap input[type=text],.gfi256b .gfi-wrap select,.gfi256b .gfi-wrap textarea{font:inherit;font-family:var(--body);font-weight:400;font-size:16px;color:var(--fg);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:10px 12px;width:100%;max-width:none;height:auto;min-height:0;box-shadow:none;margin:0}
.gfi256b .gfi-wrap textarea{min-height:160px;resize:vertical;line-height:1.55}
.gfi256b .gfi-wrap input[type=text]:focus,.gfi256b .gfi-wrap select:focus,.gfi256b .gfi-wrap textarea:focus{border-color:var(--accent)}
.gfi256b .grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:14px}
.gfi256b .hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.gfi256b .prompts{display:flex;flex-wrap:wrap;gap:8px}
.gfi256b .prompts button{font:inherit;font-size:13px;line-height:1.5;border:1px dashed var(--line);background:transparent;color:var(--muted);border-radius:999px;padding:4px 12px;cursor:pointer;text-transform:none;letter-spacing:normal;box-shadow:none;text-align:left;white-space:normal}
.gfi256b .prompts button:hover,.gfi256b .prompts button:focus{color:var(--fg);border-color:var(--accent);background:transparent}

/* Buttons */
.gfi256b .row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.gfi256b .btn{font:inherit;font-weight:600;font-size:15px;line-height:1.3;border-radius:8px;padding:11px 18px;border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);cursor:pointer;text-transform:none;letter-spacing:normal;box-shadow:none;text-decoration:none}
.gfi256b .btn:hover,.gfi256b .btn:focus{background:var(--accent);color:var(--accent-ink);filter:brightness(1.15)}
.gfi256b .btn.ghost,.gfi256b .btn.ghost:hover,.gfi256b .btn.ghost:focus{background:transparent;color:var(--accent);filter:none}
.gfi256b .btn.ghost:hover{background:var(--accent-soft)}
.gfi256b .btn:disabled,.gfi256b .btn:disabled:hover{opacity:.5;cursor:not-allowed;filter:none}
.gfi256b .status{font-size:14px;color:var(--muted)}
.gfi256b .status.err{color:var(--danger)}
.gfi256b .captcha:empty{display:none}

/* Letter */
.gfi256b .paper{background:var(--paper);border:1px solid var(--line);border-radius:4px;box-shadow:0 1px 0 var(--line),0 12px 30px -18px rgba(0,0,0,.35);padding:clamp(18px,5vw,48px)}
.gfi256b .gfi-wrap .paper textarea{font-family:var(--letter);font-size:17px;line-height:1.65;background:transparent;border:0;padding:0;min-height:520px;color:var(--fg);border-radius:0}
.gfi256b .paper textarea:focus-visible{outline:none}
.gfi256b .paper:focus-within{border-color:var(--accent)}
.gfi256b .empty{font-family:var(--letter);color:var(--muted);font-size:17px;margin:0}

/* Submit and footer */
.gfi256b ol.submit{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:8px}
.gfi256b .addr{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:14px 16px;font-family:var(--mono);font-size:13px;line-height:1.6;white-space:pre-line}
.gfi256b .fine{border-top:1px solid var(--line);padding-top:18px;font-size:12px;font-style:italic;color:var(--muted);display:flex;flex-direction:column;gap:6px}
@media (prefers-reduced-motion:no-preference){.gfi256b .pt,.gfi256b .btn{transition:background .15s,border-color .15s}}
