.roof-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.roof-tile{position:relative;min-height:134px;display:flex;flex-direction:column;align-items:center;text-align:center;justify-content:center;gap:5px;padding:12px 8px}.roof-tile input{position:absolute;left:10px;top:10px;width:16px;height:16px}.roof-art{width:100px;height:64px;fill:#f1e5df;stroke:var(--ink);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.roof-art .roof{fill:#cf8a72;stroke:var(--accent)}.roof-art .line{fill:none}.roof-tile:has(input:checked) .roof-art{fill:white}.roof-tile span{font-size:13px;line-height:1.35}.roof-fields{border:1px solid var(--line);border-radius:8px;padding:18px;margin:15px 0}.roof-fields h3{margin:0 0 15px;display:flex;align-items:center;justify-content:space-between}.roof-fields .grid{gap:14px}.full{grid-column:1/-1}.scope{list-style:none;padding:0}.scope li{position:relative;padding:10px 0 10px 28px;border-bottom:1px solid var(--line);font-size:15px}.scope li:before{content:'✓';position:absolute;left:0;color:var(--accent);font-weight:bold}.faq{margin-top:52px;max-width:900px}.faq details{border-bottom:1px solid var(--line);background:white}.faq summary{padding:20px 22px;cursor:pointer;font-weight:600}.faq details p{padding:0 22px 20px;margin:0;color:var(--muted);font-size:15px}.faq summary:hover{color:var(--accent)}.budget-number{font-size:29px;line-height:1.25;margin:14px 0 8px}.budget-card .year{font-size:18px;color:white;font-weight:650;margin:10px 0}.estimate-details{margin:20px 0}.estimate-details summary{cursor:pointer;font-weight:600;color:var(--accent)}.estimate-details .cost-row{border-bottom:1px solid var(--line);padding:8px 0}.estimate-details .cost-row span{color:var(--muted)}.estimate-details ul{font-size:14px;padding-left:22px;color:var(--muted)}.estimate-details .cost-row strong{white-space:normal;text-align:right}.review-total strong{font-size:27px}.review-total p{margin:3px 0;font-size:14px}.tag{font-size:11px;font-weight:650;border:1px solid #64748b;border-radius:4px;display:inline-block;padding:3px 7px;letter-spacing:.4px;margin:0 0 14px}.upload-status{font-size:14px;color:var(--muted)}.roof-count{font-size:13px;color:var(--muted)}.inline-link{padding:0;min-height:24px;border:0;color:var(--accent);text-decoration:underline}.success-id{overflow-wrap:anywhere;font-size:13px}.review-block dd ul{margin:0;padding-left:17px}.legal-page{max-width:900px}.legal-page article{padding:28px;background:white;border:1px solid var(--line);border-radius:10px;margin:20px 0}.legal-page table{border-collapse:collapse;width:100%;font-size:14px}.legal-page td,.legal-page th{padding:12px;text-align:left;border-bottom:1px solid var(--line)}.mobile-estimate{display:none}.error-summary:focus{outline:2px solid #ad281e}.photo img{background:var(--paper)}
@media(max-width:740px){.roof-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.roof-tile{min-height:124px}.roof-art{width:92px}.roof-fields{padding:14px}.mobile-estimate{display:block;background:var(--soft);border:1px solid #ecd1c7;border-radius:7px;padding:12px 14px;font-size:13px;margin-bottom:18px}.mobile-estimate strong{display:block;font-size:18px;color:var(--accent)}.faq{margin-top:35px}.faq summary{padding:17px}.actions{flex-wrap:wrap}.actions .primary{white-space:normal}.budget-number{font-size:30px}.legal-page table{font-size:12px}.legal-page td,.legal-page th{padding:7px}}
