.estimate-intake { background: #f7f7f8; color: #204674; padding: 64px 24px 72px; }
.estimate-intake * { box-sizing: border-box; }
.estimate-intake [hidden] { display: none !important; }
.estimate-layout { max-width: 1200px; margin: auto; display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.45fr); gap: 56px; align-items: start; }
.estimate-intake h1, .estimate-intake h2 { font-family: Inter, sans-serif; }
.estimate-eyebrow { color: #a42838; font-size: 12px; letter-spacing: .15em; font-weight: 600; margin-bottom: 14px; }
.estimate-intake h1 { font-size: clamp(30px, 3vw, 40px); line-height: 1.15; font-weight: 600; letter-spacing: -.025em; margin: 0 0 20px; }
.estimate-intro > p:not(.estimate-eyebrow) { font-size: 16px; line-height: 1.8; color: #526479; }
.estimate-benefits { margin: 30px 0; padding: 0; list-style: none; }
.estimate-benefits li { display: flex; gap: 12px; margin: 18px 0; line-height: 1.6; }
.estimate-benefits span { color: #008566; font-weight: bold; }
.estimate-next { margin-top: 32px; padding-top: 24px; border-top: 1px solid #d9dfe6; }
.estimate-next h2 { font-size: 15px; font-weight: 600; margin-bottom: 8px; }
.estimate-next p { color: #526479; line-height: 1.75; }
.estimate-intake a { text-decoration: underline; text-underline-offset: 3px; }
.estimate-card { background: white; border: 1px solid #d9dfe6; border-radius: 16px; padding: 32px; min-width: 0; }
.estimate-form { display: grid; gap: 26px; }
.estimate-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.estimate-fields.three { grid-template-columns: 1.4fr .8fr 1fr; }
.estimate-intake label, .estimate-intake legend { display: block; font-size: 14px; font-weight: 500; }
.estimate-intake input:not([type=checkbox]):not([type=hidden]), .estimate-intake select, .estimate-intake textarea { display: block; width: 100%; min-height: 44px; margin-top: 8px; border: 1px solid #d9dfe6; border-radius: 7px; padding: 10px 12px; background: #fff; font: inherit; color: #204674; }
.estimate-intake textarea { resize: vertical; min-height: 140px; }
.estimate-intake input::placeholder, .estimate-intake textarea::placeholder { color: #6b7280; }
.estimate-intake :focus-visible { outline: 3px solid #204674; outline-offset: 3px; }
.estimate-hint { color: #64748b; font-size: 12px; line-height: 1.65; margin: 6px 0 0; }
.estimate-services { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 12px; }
.estimate-services label { display: flex; align-items: center; gap: 8px; border: 1px solid #e1e4e8; border-radius: 7px; min-height: 46px; padding: 10px; cursor: pointer; font-size: 13px; }
.estimate-services label:has(input:checked) { border-color: #a42838; background: #fff4f4; color: #842231; }
.estimate-intake input[type=checkbox] { width: 16px; height: 16px; accent-color: #a42838; flex: 0 0 auto; }
.estimate-intake .estimate-consent { display: flex; align-items: flex-start; gap: 12px; font-size: 12px; line-height: 1.8; color: #526479; }
.estimate-consent input { margin-top: 4px; }
.estimate-consents { display: grid; gap: 16px; padding: 18px; background: #fafafa; border: 1px solid #e1e4e8; border-radius: 8px; }
.estimate-submit { border: 0; background: #a42838; color: white; padding: 14px 24px; border-radius: 7px; font: inherit; font-weight: 600; cursor: pointer; justify-self: start; min-height: 48px; }
.estimate-submit:hover { background: #891e2f; }
.estimate-submit:disabled { opacity: .6; cursor: wait; }
.estimate-message { padding: 18px; border-radius: 8px; line-height: 1.7; }
.estimate-message[data-kind=error] { background: #fff4f4; border: 1px solid #e9a6ad; color: #842231; }
.estimate-message[data-kind=success] { background: #ecfdf5; border: 1px solid #a7dcc7; color: #065f46; }
.estimate-message h2 { font-weight: 600; margin-bottom: 5px; font-size: 17px; }
.estimate-booking { max-width: 1200px; margin: 32px auto 0; border-top: 1px solid #d9dfe6; padding-top: 24px; }
.estimate-booking summary { cursor: pointer; font-weight: 600; }
.estimate-booking p { margin: 12px 0; line-height: 1.75; }
.estimate-honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
@media (max-width: 900px) { .estimate-layout { grid-template-columns: 1fr; gap: 28px; max-width: 700px; } .estimate-intake { padding: 36px 20px 48px; } .estimate-next { margin-top: 20px; } .estimate-benefits { margin: 20px 0; } }
@media (max-width: 520px) { .estimate-intake { padding-left: 16px; padding-right: 16px; } .estimate-card { padding: 22px 18px; } .estimate-fields, .estimate-fields.three { grid-template-columns: 1fr; } .estimate-services { grid-template-columns: repeat(2, minmax(0, 1fr)); } .estimate-submit { width: 100%; } }
