/* =========================================================
   Digitech Core — form builder styles.
   Builds on the theme's .eform / .field design; everything here is
   specific to builder features (widths, errors, choices, logic).
   ========================================================= */

.dav-form { position: relative; }

/* 12-column grid so fields can be 25 / 33 / 50 / 100% wide. */
.dav-form .dav-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 1.5rem;
}
.dav-form .dav-grid > .dav-field { grid-column: span 6; }
.dav-form .dav-grid > .dav-w-100 { grid-column: span 12; }
.dav-form .dav-grid > .dav-w-50 { grid-column: span 6; }
.dav-form .dav-grid > .dav-w-33 { grid-column: span 4; }
.dav-form .dav-grid > .dav-w-25 { grid-column: span 3; }
@media (max-width: 700px) {
  .dav-form .dav-grid > .dav-field { grid-column: span 12 !important; }
}

/* Fieldsets used for radio/checkbox groups reset the browser chrome. */
fieldset.dav-field { border: 0; margin: 0; padding: 0; min-width: 0; }
fieldset.dav-field > legend { padding: 0; float: left; width: 100%; margin-bottom: .6rem; }
fieldset.dav-field > legend + * { clear: both; }

.dav-set__help { margin: -.75rem 0 1.25rem; color: var(--fg-faint, #8d8ca8); font-size: .85rem; clear: both; }

/* Help and error text. */
.dav-field__help { margin: 0; font-size: .78rem; color: var(--fg-faint, #8d8ca8); line-height: 1.45; }
.dav-field__error { margin: 0; font-size: .8rem; font-weight: 500; color: #ff9d9d; line-height: 1.4; }
.dav-field__error::before { content: "⚠ "; }
.dav-field__error[hidden] { display: none; }
.dav-field.has-error .dav-choice .quest-check-box,
.dav-field.has-error input[type="file"] { border-color: #ff6b6b; }
.dav-field.has-error input,
.dav-field.has-error select,
.dav-field.has-error textarea { border-color: #ff6b6b; }

/* Status line. */
.dav-form .eform__status.is-success { color: var(--accent, #cfd4f5); }
.dav-form .eform__status.is-success p { margin: 0; }
.dav-form .eform__status.is-error { color: #ff9d9d; }
.dav-form-success { text-align: left; }
.dav-form-success h3 { margin-bottom: .75rem; }

/* Radio / checkbox choices (pill style shared with the design's questionnaire). */
.dav-choices { display: flex; flex-wrap: wrap; gap: .75rem; }
.dav-choice, .dav-check { position: relative; display: inline-flex; cursor: pointer; }
.dav-choice input, .dav-check input {
  position: absolute; width: 1px; height: 1px; opacity: 0; margin: 0;
}
.dav-choice .quest-check-box, .dav-check .quest-check-box {
  display: inline-flex; align-items: center; gap: .6rem;
  padding: .7rem 1rem; border: 1px solid var(--line-soft, rgba(150,170,255,.12)); border-radius: 8px;
  background: rgba(150, 170, 255, .04); color: var(--fg-dim, #b3b2c8); font-size: .88rem;
  transition: border-color .25s ease, background-color .25s ease, color .25s ease;
}
.dav-choice .quest-check-indicator, .dav-check .quest-check-indicator {
  width: 16px; height: 16px; flex: 0 0 16px; border: 1px solid var(--line, rgba(150,170,255,.2)); border-radius: 4px; position: relative;
}
.dav-choice input[type="radio"] + .quest-check-box .quest-check-indicator { border-radius: 50%; }
.dav-choice input:checked + .quest-check-box,
.dav-check input:checked + .quest-check-box {
  border-color: var(--accent, #cfd4f5); background: rgba(207, 212, 245, .08); color: var(--fg, #f2f2f8);
}
.dav-choice input:checked + .quest-check-box .quest-check-indicator,
.dav-check input:checked + .quest-check-box .quest-check-indicator {
  background: var(--accent-2, #6d3ce8); border-color: var(--accent-2, #6d3ce8);
}
.dav-choice input:checked + .quest-check-box .quest-check-indicator::after,
.dav-check input:checked + .quest-check-box .quest-check-indicator::after {
  content: ""; position: absolute; left: 5px; top: 1px; width: 4px; height: 9px;
  border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg);
}
.dav-choice input:focus-visible + .quest-check-box,
.dav-check input:focus-visible + .quest-check-box { outline: 2px solid var(--accent, #cfd4f5); outline-offset: 2px; }
/* Required-field asterisk, in the same red as field errors. */
.dav-form .field__label i,
.dav-check .quest-check-box i { color: #ff6b6b; font-style: normal; }

/* File input. */
.dav-field input[type="file"] {
  padding: .75rem; border: 1px dashed var(--line, rgba(150,170,255,.2)); border-radius: 6px; cursor: pointer;
}
.dav-field input[type="file"]::file-selector-button {
  margin-right: .9rem; padding: .45rem .9rem; border: 0; border-radius: 100px;
  background: var(--accent-2, #6d3ce8); color: #fff; font: inherit; cursor: pointer;
}

/* Conditional logic: hidden only once JavaScript is running (no-JS shows everything). */
.js .is-logic-hidden, .dav-field[hidden], .dav-set[hidden] { display: none !important; }

/* Honeypot — off-screen, not display:none (some bots skip hidden fields). */
.dav-hp, .dav-hp[hidden] { display: none !important; } /* never rendered, so browser autofill skips it */

/* Submit button while sending. */
.dav-form__submit[aria-busy="true"] { opacity: .7; cursor: progress; }

/* Admin-only hints on the front end. */
.dav-form-missing {
  padding: 1rem 1.25rem; border: 1px dashed #e0a800; border-radius: 8px;
  color: #ffd66b; background: rgba(224, 168, 0, .08); font-size: .9rem;
}
.dav-block-placeholder { padding: 1rem; border: 1px dashed #999; text-align: center; }

.screen-reader-text {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* Configure page: a video length the selected package has no price for. */
.seg-btn.is-unavailable { opacity: .4; cursor: not-allowed; }
