/* ── BLOCK RENDERER STYLES ─────────────────────────────── */
:root{
  --red:#c8401a;--green:#7ab648;--black:#1a1a1a;
  --bg:#F8F7F4;--mid:#e8e6e1;--muted:#888580;
  --fh:'Bebas Neue',sans-serif;--fb:'Abel',sans-serif;
}

/* Kicker */
.block-kicker{font-family:var(--fh);letter-spacing:0.18em;text-transform:uppercase;line-height:1}

/* Heading */
.block-heading{font-family:var(--fh);line-height:0.92;letter-spacing:0.01em}

/* Subheading */
.block-subheading{font-family:var(--fh);letter-spacing:0.02em;line-height:1.05}

/* Text */
.block-text{font-family:var(--fb);line-height:1.65}

/* Image */
.block-image img{width:100%;display:block}
.block-image figcaption{font-family:var(--fb);font-size:12px;color:var(--muted);margin-top:6px}
.block-image-ph{
  background:var(--mid);height:200px;display:flex;align-items:center;
  justify-content:center;font-family:var(--fb);font-size:11px;
  letter-spacing:0.14em;text-transform:uppercase;color:var(--muted)
}

/* Divider */
.block-divider{border:none;border-top:1px solid var(--mid)}

/* CTA */
.block-cta-heading{font-family:var(--fh);line-height:0.93;letter-spacing:0.01em;margin-bottom:10px}
.block-cta-body{font-family:var(--fb);line-height:1.6;color:var(--muted);margin-bottom:20px}
.block-cta-btn{
  display:inline-block;font-family:var(--fb);letter-spacing:0.16em;
  text-transform:uppercase;color:#fff;cursor:pointer;
  border:none;text-decoration:none;transition:opacity 0.2s;padding:14px 36px
}
.block-cta-btn:hover{opacity:0.87}

/* Table */
.block-table{width:100%;border-collapse:collapse;font-family:var(--fb);font-size:15px}
.block-table td{padding:11px 14px;border-bottom:1px solid var(--mid);vertical-align:top}
.block-table td:first-child{
  font-size:10px;letter-spacing:0.12em;text-transform:uppercase;
  color:var(--muted);white-space:nowrap;width:1%;padding-right:24px
}
.block-table.bordered td{border:1px solid var(--mid)}

/* Columns */
.block-columns{display:grid;gap:20px}
.block-columns.col-2{grid-template-columns:1fr 1fr}
.block-columns.col-3{grid-template-columns:1fr 1fr 1fr}

@media(max-width:640px){
  .block-columns.col-2,.block-columns.col-3{grid-template-columns:1fr}
}

/* ── Input blocks (facilitator setup) ─────────────────── */

/* Card wrapper */
.field-card{
  background:var(--color-white);
  border:1px solid var(--color-card-border);
  padding:var(--space-xl);
}

/* Section heading inside a card */
.field-section-heading{
  font-family:var(--fh);
  font-size:0.85rem;
  letter-spacing:0.08em;
  color:var(--color-section);
  margin-bottom:var(--space-lg);
  padding-bottom:0.75rem;
  border-bottom:1px solid var(--color-divider);
}

/* Uppercase label above a field */
.field-label{
  display:block;
  font-family:var(--fb);
  font-size:0.75rem;
  text-transform:uppercase;
  letter-spacing:0.1em;
  color:var(--color-label);
  margin-bottom:var(--space-sm);
}

/* Required asterisk */
.field-required{color:var(--red)}

/* Underline text input — required variant (heavier border) */
.field-input{
  width:100%;
  border:none;
  border-bottom:2px solid var(--black);
  padding:0.625rem 0;
  font-family:var(--fb);
  font-size:1.05rem;
  color:var(--black);
  background:transparent;
  outline:none;
  box-sizing:border-box;
}

/* Underline text input — optional variant (lighter border) */
.field-input-opt{
  width:100%;
  border:none;
  border-bottom:1px solid var(--color-field-border);
  padding:0.625rem 0;
  font-family:var(--fb);
  font-size:1.05rem;
  color:var(--black);
  background:transparent;
  outline:none;
  box-sizing:border-box;
}

/* Boxed input (datetime, select) */
.field-input-box{
  width:100%;
  border:1px solid var(--color-card-border);
  padding:0.75rem;
  font-family:var(--fb);
  font-size:var(--text-base);
  color:var(--black);
  box-sizing:border-box;
  border-radius:0;
  background:var(--color-white);
}
select.field-input-box{cursor:pointer}

/* Validation error message */
.field-error{
  display:none;
  font-family:var(--fb);
  font-size:0.8rem;
  color:var(--color-error);
  margin-top:var(--space-xs);
}

/* Item row number pill */
.field-item-num{
  font-family:var(--fh);
  font-size:var(--text-base);
  color:var(--red);
  min-width:24px;
  text-align:right;
  border-right:2px solid var(--red);
  padding-right:10px;
  line-height:44px;
}

/* Item row input */
.field-item-input{
  flex:1;
  border:none;
  border-bottom:1px solid var(--color-card-border);
  padding:10px 0;
  font-family:var(--fb);
  font-size:var(--text-base);
  color:var(--black);
  background:transparent;
  outline:none;
}

/* Remove / close button (items, fields) */
.field-remove-btn{
  background:none;
  border:none;
  color:var(--color-field-border);
  font-size:1.25rem;
  cursor:pointer;
  padding:0 4px;
  line-height:1;
}

/* Dashed "add" button */
.field-add-btn{
  background:none;
  border:2px dashed var(--color-card-border);
  color:var(--color-section);
  font-family:var(--fb);
  font-size:var(--text-sm);
  text-transform:uppercase;
  letter-spacing:0.08em;
  padding:10px 20px;
  cursor:pointer;
  width:100%;
  text-align:left;
}

/* Preset quick-add chip */
.field-preset-btn{
  background:var(--bg);
  border:1px solid var(--color-card-border);
  font-family:var(--fb);
  font-size:0.85rem;
  color:var(--color-preset-text);
  padding:0.375rem 0.875rem;
  cursor:pointer;
}
.field-preset-btn:hover{border-color:var(--red);color:var(--red)}

/* Custom field row (built by JS) */
.field-row{
  border:1px solid var(--color-card-border);
  background:var(--color-field-row-bg);
  padding:var(--space-md);
  display:grid;
  gap:0.75rem;
}

@media(max-width:640px){
  .field-card{padding:var(--space-lg)}
}
