/* ═══════════════════════════════════════════════════════════════
   AtlasConvert — Forms (shortcode renderer)
   4 design templates × 2 layouts. Sharp edges, no border-radius.
   v2.5.0
═══════════════════════════════════════════════════════════════ */

.ac-form-wrap { box-sizing: border-box; margin: 1.5em 0; }
.ac-form-wrap *, .ac-form-wrap *::before, .ac-form-wrap *::after { box-sizing: border-box; }
.ac-form-error { padding: 14px; border: 1px solid #991b1b; background: #fef2f2; color: #991b1b; font-size: 13px; }

.ac-form-inner { padding: 18px 20px; }

.ac-form-heading {
    margin: 0 0 4px !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
}
.ac-form-subheading {
    margin: 0 0 14px !important;
    font-size: 13px !important;
    line-height: 1.45 !important;
    opacity: 0.85;
}

.ac-form-fields {
    display: flex; flex-direction: column; gap: 10px;
}
.ac-form-row { display: flex; flex-direction: column; gap: 4px; }
.ac-form-row--checkbox, .ac-form-row--consent { gap: 0; }

.ac-form-label {
    font-size: 12px; font-weight: 600; line-height: 1.3; opacity: 0.85;
    letter-spacing: 0.02em;
}
.ac-form-required { color: #dc2626; font-weight: 700; }
.ac-form-help { font-size: 11px; opacity: 0.65; margin-top: 2px; line-height: 1.4; }

.ac-form-input {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid rgba(0,0,0,0.18);
    background: #ffffff;
    color: #1f2024;
    font-size: 14px; line-height: 1.3;
    border-radius: 0;
    outline: none;
    font-family: inherit;
}
.ac-form-input:focus {
    border-color: #1a3a5c;
    box-shadow: 0 0 0 2px rgba(26,58,92,0.18);
}
.ac-form-textarea { min-height: 120px; resize: vertical; }
.ac-form-select { appearance: auto; }

.ac-form-checkbox-item, .ac-form-consent-item, .ac-form-radio-item {
    display: flex; align-items: flex-start; gap: 8px; font-size: 13px; cursor: pointer;
    line-height: 1.45;
}
.ac-form-checkbox-item input, .ac-form-consent-item input, .ac-form-radio-item input { margin-top: 3px; }
.ac-form-radiogroup { display: flex; flex-direction: column; gap: 6px; margin-top: 4px; }

.ac-form-button {
    padding: 10px 16px;
    border: 0;
    cursor: pointer;
    font-size: 12px !important;
    font-weight: 700 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    line-height: 1.2 !important;
    border-radius: 0;
    transition: opacity .15s ease, background .15s ease;
    font-family: inherit;
}
.ac-form-button:hover { opacity: 0.92; }
.ac-form-button:disabled { opacity: 0.6; cursor: progress; }

.ac-form-consent {
    margin: 10px 0 0; font-size: 11px; line-height: 1.5; opacity: 0.75;
}

.ac-form-feedback {
    margin: 12px 0 0;
    padding: 10px 12px;
    font-size: 13px; line-height: 1.45;
    border: 1px solid transparent;
    border-radius: 0;
}
.ac-form-feedback--success { border-color: #166534; background: #f0fdf4; color: #166534; }
.ac-form-feedback--error   { border-color: #991b1b; background: #fef2f2; color: #991b1b; }
.ac-form-field-error { font-size: 11px; color: #991b1b; margin-top: 2px; }

/* ─── LAYOUT: inline (email + button on one row) ─────────── */
/* v2.5.8 — fixed button bloat. In inline layout the field row was
   label+input stacked, so `align-self: stretch` made the button match
   the COMBINED height. Hide labels (placeholder serves as label),
   then the button stretches to just the input height. Also reduced
   button padding so it doesn't dwarf the input in narrow sidebars. */
.ac-form-layout-inline .ac-form-fields {
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 0;
}
.ac-form-layout-inline .ac-form-row {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
}
/* Hide labels visually (still readable by screen-readers) */
.ac-form-layout-inline .ac-form-label {
    position: absolute !important;
    width: 1px !important; height: 1px !important;
    padding: 0 !important; margin: -1px !important;
    overflow: hidden !important; clip: rect(0,0,0,0) !important;
    white-space: nowrap !important; border: 0 !important;
}
.ac-form-layout-inline .ac-form-input {
    height: 38px;
}
.ac-form-layout-inline .ac-form-button {
    flex: 0 0 auto;
    height: 38px;
    padding: 0 14px;
    font-size: 11px;
    align-self: auto;
    white-space: nowrap;
}
.ac-form-layout-inline .ac-form-row + .ac-form-row .ac-form-input {
    border-left: 0; margin-left: -1px;
}
/* Wrap to two lines on very narrow columns (<300px) so input stays usable */
@media (max-width: 380px) {
    .ac-form-layout-inline .ac-form-fields { flex-wrap: wrap; }
    .ac-form-layout-inline .ac-form-button { width: 100%; margin-top: 6px; }
}

/* ─── DESIGN: atlasbase (default) ───────────────────────── */
.ac-form-template-atlasbase .ac-form-inner {
    background: #1a3a5c; color: #ffffff;
    border: 1px solid #14304d;
}
.ac-form-template-atlasbase .ac-form-heading,
.ac-form-template-atlasbase .ac-form-label { color: #ffffff; }
.ac-form-template-atlasbase .ac-form-subheading { color: rgba(255,255,255,0.78); }
.ac-form-template-atlasbase .ac-form-button { background: #ffffff; color: #1a3a5c; }
.ac-form-template-atlasbase .ac-form-button:hover { background: #f2f2f2; }
.ac-form-template-atlasbase .ac-form-input { background: rgba(255,255,255,0.96); }

/* ─── DESIGN: midnight ──────────────────────────────────── */
.ac-form-template-midnight .ac-form-inner {
    background: #1f2024; color: #ffffff;
    border: 1px solid #343a40;
}
.ac-form-template-midnight .ac-form-heading,
.ac-form-template-midnight .ac-form-label { color: #ffffff; }
.ac-form-template-midnight .ac-form-subheading { color: rgba(255,255,255,0.7); }
.ac-form-template-midnight .ac-form-button { background: #1a3a5c; color: #ffffff; }
.ac-form-template-midnight .ac-form-button:hover { background: #14304d; }
.ac-form-template-midnight .ac-form-input {
    background: #2a2c31; color: #ffffff; border-color: #444;
}
.ac-form-template-midnight .ac-form-input::placeholder { color: rgba(255,255,255,0.4); }

/* ─── DESIGN: terminal ─────────────────────────────────── */
.ac-form-template-terminal .ac-form-inner {
    background: #f2f2f2; color: #1f2024;
    border-top: 2px solid #1a3a5c; border-bottom: 2px solid #1a3a5c;
    font-family: ui-monospace, "SF Mono", "Cascadia Mono", "Menlo", "Consolas", monospace;
}
.ac-form-template-terminal .ac-form-heading {
    font-size: 12px; text-transform: uppercase; letter-spacing: 0.14em;
    color: #1a3a5c; margin: 0 0 2px;
}
.ac-form-template-terminal .ac-form-subheading {
    font-size: 12px; color: #5e5e69; margin: 0 0 12px;
}
.ac-form-template-terminal .ac-form-label { color: #1a3a5c; }
.ac-form-template-terminal .ac-form-input { font-family: inherit; border-color: #1a3a5c; }
.ac-form-template-terminal .ac-form-button { background: #1a3a5c; color: #ffffff; font-family: inherit; }

/* ─── DESIGN: minimal ──────────────────────────────────── */
.ac-form-template-minimal .ac-form-inner {
    background: transparent; color: inherit; padding: 8px 0;
}
.ac-form-template-minimal .ac-form-heading { color: #1a3a5c; }
.ac-form-template-minimal .ac-form-subheading { color: #5e5e69; }
.ac-form-template-minimal .ac-form-input {
    border: 0; border-bottom: 1.5px solid #1a3a5c;
    padding: 8px 0; background: transparent;
}
.ac-form-template-minimal .ac-form-input:focus { box-shadow: none; border-bottom-color: #166534; }
.ac-form-template-minimal .ac-form-button {
    background: #1a3a5c; color: #ffffff;
    margin-top: 8px; align-self: flex-start;
}
