/* DeSine Core — 2-step contact form (templates/forms/contact.php + form-contact.js).
   Builds on the theme's .form / .field / .btn styles. */

.ds-cf, .ds-cf * { min-width: 0; }
.ds-cf [hidden] { display: none !important; }
.ds-cf-step { display: grid; gap: 1.05rem; }
.ds-cf-step + .ds-cf-step { margin-top: 1.05rem; }
.ds-cf.is-js .ds-cf-step + .ds-cf-step { margin-top: 0; }
.ds-cf.is-js .ds-cf-step[data-cf-active="false"] { display: none; }

.ds-cf-progress {
	margin: 0 0 -.6rem; font-size: .75rem; font-weight: 800; letter-spacing: .1em;
	text-transform: uppercase; color: var(--accent-deep, #C7431F);
}
.ds-cf-h { margin: 0; font-size: var(--fs-h3, 1.17rem); line-height: 1.3; }
.ds-cf-h:focus { outline: none; }
.ds-cf-h:focus-visible { outline: 3px solid var(--accent, #F4633A); outline-offset: 3px; }

.ds-cf .field select { cursor: pointer; }

/* Buttons row */
.ds-cf-actions { display: flex; flex-wrap: wrap; gap: .8rem; align-items: center; }
.ds-cf-actions .btn { min-height: 44px; }
.ds-cf-actions--send { margin-top: .2rem; }

/* Estimate card */
.ds-cf-estimate {
	margin-top: .9rem; border: 1.5px solid var(--accent, #F4633A); background: var(--accent-soft, #FEEFE9);
	border-radius: var(--radius-lg, 16px); padding: 1.1rem 1.25rem; overflow-wrap: anywhere;
}
.ds-cf-estimate:empty { display: none; }
.ds-cf-est-service { margin: 0; font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-soft, #506274); }
.ds-cf-est-price { margin: .25rem 0 0; font-size: clamp(1.35rem, 3.2vw, 1.75rem); font-weight: 800; letter-spacing: -.02em; line-height: 1.2; color: var(--ink, #17242F); }
.ds-cf-est-price small { font-size: .95rem; font-weight: 600; color: var(--ink-soft, #506274); letter-spacing: 0; }
.ds-cf-est-range { margin: .35rem 0 0; font-size: .95rem; color: var(--ink, #17242F); }
.ds-cf-est-note { margin: .35rem 0 0; font-size: .9rem; color: var(--ink-soft, #506274); }
.ds-cf-est-final { margin: .7rem 0 0; padding-top: .6rem; border-top: 1px dashed rgba(199, 67, 31, .35); font-size: .85rem; font-weight: 600; color: var(--accent-deep, #C7431F); }

/* Summary of step 1 */
.ds-cf-summary {
	margin: .9rem 0 0; display: grid; grid-template-columns: max-content 1fr; gap: .35rem 1rem;
	font-size: .88rem; border: 1px solid var(--line, #E2E9F0); border-radius: var(--radius, 10px); padding: .9rem 1rem;
	background: var(--ground-alt, #F4F7FA);
}
.ds-cf-summary:empty { display: none; }
.ds-cf-summary dt { font-weight: 700; color: var(--ink-soft, #506274); }
.ds-cf-summary dd { margin: 0; color: var(--ink, #17242F); overflow-wrap: anywhere; white-space: pre-line; }
.ds-cf-summary dd.is-clamp { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; white-space: normal; }

.ds-cf-consent { margin: 0; font-size: .82rem; color: var(--ink-soft, #506274); }

@media (max-width: 767px) {
	.ds-cf-summary { grid-template-columns: 1fr; gap: .1rem; }
	.ds-cf-summary dd + dt { margin-top: .45rem; }
	.ds-cf-actions .btn { flex: 1 1 auto; }
	.ds-cf-actions--send .btn--primary { flex: 2 1 auto; }
	.ds-cf .field input, .ds-cf .field select, .ds-cf .field textarea { font-size: 16px; } /* no iOS zoom */
}

/* Narrow form column (e.g. tablet two-column row): stack the paired fields. */
.ds-cf { container-type: inline-size; }
@container (max-width: 460px) {
	.ds-cf .form-grid-2 { grid-template-columns: 1fr; }
}
