/* Red "Get a Free Estimate" card with the compact booking form (shared from the homepage). */
:root { --jm-red: #c5260e; --jm-ink: #222429; --jm-black: #111214; --jm-radius: 16px; }
.jm-quote-card {
  margin-top: 64px; background: var(--jm-red); border-radius: var(--jm-radius); padding: 24px 24px 20px;
  box-shadow: 0 18px 40px rgba(0, 0, 0, .22); position: relative; z-index: 2;
}
.jm-quote-card h2 { color: #fff; text-align: center; font-size: 32px; margin: 0 0 14px; }
.jm-compact-form, .jm-compact-form .wpforms-form { margin: 0 !important; padding: 0 !important; }
.jm-compact-form .wpforms-field-label,
.jm-compact-form .wpforms-field-sublabel,
.jm-compact-form .wpforms-required-label {
  position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
}
.jm-compact-form .wpforms-field { padding: 0 0 8px !important; margin: 0 !important; }
.jm-compact-form .wpforms-field-layout { padding: 0 !important; }
.jm-compact-form .wpforms-field-layout-columns { display: flex; gap: 8px; margin: 0 !important; }
.jm-compact-form .wpforms-layout-column { flex: 1 1 0; width: auto !important; padding: 0 !important; margin: 0 !important; }
/* Date + time pairs: stack the two date fields, each with its time beside it */
.jm-compact-form #wpforms-1617-field_18-container .wpforms-field-layout-columns { flex-direction: column; gap: 0; }
.jm-compact-form .wpforms-field-date-time .wpforms-field-row { display: flex; gap: 8px; }
.jm-compact-form .wpforms-field-date-time .wpforms-field-row-block { flex: 1 1 0; width: auto !important; padding: 0 !important; margin: 0 !important; }
.jm-compact-form .wpforms-field-address .wpforms-field-row { display: flex; gap: 8px; margin: 0 0 8px !important; }
.jm-compact-form .wpforms-field-address .wpforms-field-row:last-child { margin-bottom: 0 !important; }
.jm-compact-form .wpforms-field-address .wpforms-field-row-block { flex: 1 1 0; width: auto !important; padding: 0 !important; margin: 0 !important; }
.jm-compact-form input[type=text], .jm-compact-form input[type=email], .jm-compact-form input[type=tel],
.jm-compact-form select, .jm-compact-form textarea {
  width: 100% !important; max-width: none !important; height: 42px !important; min-height: 0 !important;
  border: 1px solid rgba(0, 0, 0, .12) !important; border-radius: 8px !important; background: #fff !important;
  font-size: 14px !important; padding: 8px 12px !important; box-shadow: none !important; color: var(--jm-ink) !important;
}
.jm-compact-form textarea { height: 70px !important; resize: vertical; }
.jm-compact-form ::placeholder { color: #8a8d94; opacity: 1; }
.jm-compact-form .wpforms-error { color: #fff !important; font-size: 12px !important; margin-top: 2px !important; }
.jm-compact-form input.wpforms-error, .jm-compact-form textarea.wpforms-error { border: 2px solid #ffd6cf !important; }
.jm-compact-form .wpforms-submit-container { padding: 6px 0 0 !important; margin: 0 !important; }
.jm-compact-form button.wpforms-submit {
  width: 100% !important; height: 46px !important; border-radius: 999px !important; background: var(--jm-black) !important;
  color: #fff !important; border: 0 !important; font-size: 16px !important; font-weight: 700 !important;
}
.jm-compact-form button.wpforms-submit:hover { background: #000 !important; }


/* WPForms' own styles are very specific; these win. */
.jm-quote-card .jm-compact-form .wpforms-field-layout-columns { display: flex !important; flex-wrap: nowrap !important; gap: 8px !important; }
.jm-quote-card .jm-compact-form .wpforms-layout-column { flex: 1 1 0 !important; width: auto !important; max-width: none !important; min-width: 0 !important; }
.jm-quote-card .jm-compact-form #wpforms-1617-field_18-container .wpforms-field-layout-columns { flex-direction: column !important; gap: 0 !important; }
.jm-quote-card .jm-compact-form .wpforms-field-row { display: flex !important; gap: 8px !important; max-width: none !important; width: 100% !important; }
.jm-quote-card .jm-compact-form .wpforms-field-row::before, .jm-quote-card .jm-compact-form .wpforms-field-row::after { display: none !important; }
.jm-quote-card .jm-compact-form .wpforms-field-row-block { flex: 1 1 0 !important; width: auto !important; max-width: none !important; min-width: 0 !important; float: none !important; margin: 0 !important; padding: 0 !important; }
.jm-quote-card .jm-compact-form .wpforms-field-address .wpforms-field-row { margin: 0 0 8px !important; }
.jm-quote-card .jm-compact-form .wpforms-field-address .wpforms-field-row:last-of-type { margin-bottom: 0 !important; }
.jm-quote-card .jm-compact-form input:not([type=hidden]):not([type=submit]),
.jm-quote-card .jm-compact-form select { height: 42px !important; line-height: 1.2 !important; box-sizing: border-box !important; }
.jm-quote-card .jm-compact-form select { padding-right: 28px !important; }

.jm-quote-card .jm-compact-form .wpforms-field-layout-columns,
.jm-quote-card .jm-compact-form .wpforms-field-row { flex-direction: row !important; }
.jm-quote-card .jm-compact-form #wpforms-1617-field_18-container .wpforms-field-layout-columns { flex-direction: column !important; }
@media (max-width: 380px) {
  .jm-quote-card .jm-compact-form .wpforms-field-address .wpforms-field-row { flex-wrap: wrap !important; }
}
@media (max-width: 767px) { .jm-quote-card { margin: 18px 0 0; padding: 22px 16px 18px; } }
@media (max-width: 480px) { .jm-compact-form .wpforms-field-address .wpforms-field-row { flex-wrap: wrap; } }
.jm-quote-card .jm-compact-form .pretty-select-wrapper { display: block !important; margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; height: 42px !important; }
.jm-quote-card .jm-compact-form .pretty-select-wrapper::after { top: 50% !important; transform: translateY(-50%); }
.entry-content .jm-quote-card { margin-top: 24px; }
body:not(.home) .jm-quote-card .jm-compact-form button.wpforms-submit { border-radius: 999px !important; }
body:not(.home) .jm-quote-card .wpforms-container input:not([type=hidden]):not([type=submit]), body:not(.home) .jm-quote-card .wpforms-container select, body:not(.home) .jm-quote-card .wpforms-container textarea { border-radius: 8px !important; border: 1px solid rgba(0,0,0,.12) !important; padding: 8px 12px !important; }

/* Sidebar copy of the estimate card: the red card IS the widget (no white box around it), and every field gets its own full-width row. */
body:not(.home) .sidebar .widget.widget-sticky-contact-form { background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; }
.sidebar .jm-quote-card.jm-sidebar-estimate { margin: 0; padding: 20px 16px 16px; box-shadow: 0 10px 24px rgba(0, 0, 0, .18); }
.sidebar .jm-quote-card.jm-sidebar-estimate h2 { font-size: 26px; }
.sidebar .jm-quote-card .jm-compact-form .wpforms-field-layout-columns,
.sidebar .jm-quote-card .jm-compact-form .wpforms-field-date-time .wpforms-field-row { flex-direction: column !important; gap: 0 !important; }
.sidebar .jm-quote-card .jm-compact-form .wpforms-field-date-time .wpforms-field-row-block { margin-bottom: 8px !important; }
.sidebar .jm-quote-card .jm-compact-form .wpforms-field-address .wpforms-field-row { flex-direction: column !important; gap: 8px !important; }
.sidebar .jm-quote-card .jm-compact-form .wpforms-field-date-time .wpforms-field-row-block { width: 100% !important; flex: 0 0 auto !important; }
.sidebar .jm-quote-card .jm-compact-form .wpforms-field-address .wpforms-field-row { flex-direction: row !important; flex-wrap: wrap !important; }
.sidebar .jm-quote-card .jm-compact-form .wpforms-field-address .wpforms-field-row-block { flex: 1 1 calc(50% - 4px) !important; }
.sidebar .jm-quote-card .jm-compact-form .wpforms-field-address .wpforms-field-row-block:first-child { flex-basis: 100% !important; }
.sidebar .jm-quote-card .jm-compact-form .city-state-zip-wrapper { display: flex !important; flex-wrap: wrap !important; gap: 8px !important; width: 100% !important; }
.sidebar .jm-quote-card .jm-compact-form .city-state-zip-wrapper > * { flex: 1 1 calc(50% - 4px) !important; width: auto !important; min-width: 0 !important; margin: 0 !important; }
.sidebar .jm-quote-card .jm-compact-form .city-state-zip-wrapper > :first-child { flex-basis: 100% !important; }
