/* Adam Roofing Callback Popup — brand: #e65644 (accent) on #000422 (navy) */
.adam-cb[hidden] { display: none; }
.adam-cb {
	position: fixed; inset: 0; z-index: 99999;
	display: flex; align-items: center; justify-content: center; padding: 16px;
	font-family: inherit;
}
.adam-cb__backdrop { position: absolute; inset: 0; background: rgba(0, 4, 34, .72); }
.adam-cb__card {
	position: relative; width: 100%; max-width: 560px; max-height: calc(100vh - 32px); overflow: auto;
	background: #fff; color: #000422; border-top: 6px solid #e65644; border-radius: 4px;
	padding: 36px 36px 28px; box-shadow: 0 24px 60px rgba(0, 4, 34, .45);
	animation: adam-cb-in .28s ease-out both;
}
.adam-cb__close {
	position: absolute; top: 8px; right: 12px; width: 40px; height: 40px;
	background: none; border: 0; cursor: pointer; font-size: 30px; line-height: 1; color: #000422;
}
.adam-cb__close:hover, .adam-cb__close:focus-visible { color: #e65644; }
.adam-cb__eyebrow { margin: 0 0 6px; font-size: 14px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: #e65644; }
.adam-cb__title { margin: 0 0 6px; text-transform: none; font-family: 'Work Sans', sans-serif; font-weight: 600; font-size: 32px; line-height: 1.1; color: #000422; }
.adam-cb__sub { margin: 0 0 22px; color: #55587a; }
.adam-cb__row { margin-bottom: 14px; }
.adam-cb__row--half { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.adam-cb label { display: block; margin-bottom: 4px; font-size: 14px; font-weight: 600; color: #000422; }
.adam-cb label span { color: #e65644; }
.adam-cb input[type=text], .adam-cb input[type=tel], .adam-cb input[type=email], .adam-cb textarea {
	width: 100%; box-sizing: border-box; padding: 12px 14px; font: inherit; color: #000422;
	background: #fff; border: 1px solid #c9cbdc; border-radius: 4px;
}
.adam-cb textarea { resize: vertical; min-height: 84px; }
.adam-cb input:focus, .adam-cb textarea:focus { outline: 2px solid #e65644; outline-offset: 1px; border-color: #e65644; }
.adam-cb input[aria-invalid=true] { border-color: #b3261e; }
.adam-cb__submit {
	width: 100%; padding: 14px 20px; font: inherit; font-weight: 600; color: #fff;
	background: #e65644; border: 0; border-radius: 4px; cursor: pointer; transition: background .2s;
}
.adam-cb__submit:hover, .adam-cb__submit:focus-visible { background: #000422; }
.adam-cb__submit[disabled] { opacity: .65; cursor: progress; }
.adam-cb__status { min-height: 1.4em; margin: 12px 0 0; font-weight: 600; }
.adam-cb__status.is-error { color: #b3261e; }
.adam-cb__status.is-ok { color: #1a7f37; }
.adam-cb__alt { margin: 14px 0 0; padding-top: 14px; border-top: 1px solid #e5e6f0; font-size: 15px; text-align: center; color: #55587a; }
.adam-cb__alt a { color: #e65644; font-weight: 600; text-decoration: none; }
.adam-cb__alt a:hover { text-decoration: underline; }
.adam-cb__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
body.adam-cb-open { overflow: hidden; }
@keyframes adam-cb-in { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
@media (max-width: 520px) {
	.adam-cb { padding: 0; align-items: stretch; }
	.adam-cb__card { max-width: none; max-height: none; border-radius: 0; padding: 32px 20px 24px; }
	.adam-cb__row--half { grid-template-columns: 1fr; }
	.adam-cb__title { font-size: 26px; }
}
@media (prefers-reduced-motion: reduce) { .adam-cb__card { animation: none; } }
