/* Production additions (export.py parts/prod.css): the contact form, blog and legal pages. Tokens from site.css. */
.prod-lead{padding:clamp(56px,8vw,96px) 0;background:var(--cream,#faf6ec)}
.prod-lead-in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(28px,5vw,64px);align-items:start}
.prod-lead-copy p{color:var(--muted,#5b5548);font-size:17px;line-height:1.6;margin-top:14px}
.prod-lead-copy a{color:inherit;font-weight:800;border-bottom:2px solid var(--yellow,#feb713)}
.prod-form{background:#fff;border:1px solid var(--line,#e6dfcf);border-radius:16px;padding:clamp(20px,3vw,32px);box-shadow:var(--shadow,0 18px 40px rgba(0,0,0,.08));display:grid;gap:14px}
.pf-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.pf{display:grid;gap:6px}
.pf span{font-weight:800;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink,#171310)}
.pf input,.pf select,.pf textarea{font:inherit;font-size:16px;min-height:48px;padding:11px 14px;border:1.5px solid var(--line,#e6dfcf);border-radius:10px;background:#fff;color:var(--ink,#171310);width:100%}
.pf textarea{min-height:96px;resize:vertical}
.pf input:focus,.pf select:focus,.pf textarea:focus{outline:none;border-color:var(--yellow-deep,#e0a000);box-shadow:0 0 0 3px rgba(254,183,19,.28)}
.pf-bad{border-color:#c0503a!important}
.prod-form .btn{justify-self:start;min-height:52px}
.pf-note{font-size:13px;color:var(--muted,#5b5548)}
.pf-ok,.pf-err{font-weight:700;font-size:15px;padding:12px 14px;border-radius:10px}
.pf-ok{background:#eef7e4;color:#2f5d12}.pf-err{background:#fbeae6;color:#8a2f1d}
.pf-ok a,.pf-err a{color:inherit;text-decoration:underline}
.prod-form.is-sent .pf,.prod-form.is-sent .pf-row,.prod-form.is-sent .btn,.prod-form.is-sent .pf-note,.prod-form.is-sent .cf-turnstile{display:none}
#bkErr{margin:10px 0}
@media(max-width:860px){.prod-lead-in{grid-template-columns:1fr}}
@media(max-width:520px){.pf-row{grid-template-columns:1fr}.prod-form .btn{justify-self:stretch}}
.prod-article{padding:clamp(48px,7vw,88px) 0}
.prod-prose{max-width:760px;font-size:18px;line-height:1.7;color:var(--ink,#171310)}
.prod-prose h2{font-size:clamp(24px,3vw,32px);line-height:1.2;margin:1.6em 0 .5em}
.prod-prose h3{font-size:21px;margin:1.4em 0 .4em}
.prod-prose p,.prod-prose ul,.prod-prose ol,.prod-prose table{margin:0 0 1em}
.prod-prose ul,.prod-prose ol{padding-left:1.3em}
.prod-prose li{margin:.3em 0}
.prod-prose a{color:inherit;font-weight:700;border-bottom:2px solid var(--yellow,#feb713)}
.prod-prose img{max-width:100%;height:auto;border-radius:12px}
.prod-prose iframe{width:100%;aspect-ratio:16/9;height:auto;border:0;border-radius:12px}
.prod-prose table{border-collapse:collapse;width:100%;font-size:16px}.prod-prose td,.prod-prose th{border:1px solid var(--line,#e6dfcf);padding:8px 10px}
.prod-back{margin-top:2em;font-weight:700}
.prod-cards{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}
.prod-cards a{display:grid;gap:8px;height:100%;padding:22px;border:1px solid var(--line,#e6dfcf);border-radius:14px;background:#fff;color:var(--ink,#171310);text-decoration:none;transition:border-color .2s}
.prod-cards a:hover{border-color:var(--yellow,#feb713)}
.prod-cards .d{font-size:12.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted,#5b5548)}
.prod-cards b{font-size:19px;line-height:1.3}
.prod-cards .x{font-size:15px;color:var(--muted,#5b5548);line-height:1.5}
/* Blog, legal and 404 heroes: the page title is the H1, so it takes the large headline style (site H1s are the small kicker) */
.hero.prod-hero h1{display:block;font-family:var(--display);font-weight:400;font-size:clamp(32px,4.6vw,60px);line-height:1.04;letter-spacing:-.01em;text-transform:none;color:#fff;text-shadow:0 3px 22px rgba(0,0,0,.45);max-width:18ch}
.hero.prod-hero .hero-sub{color:rgba(255,255,255,.85)}
/* Old posts paste raw URLs as link text; let them wrap on phones (2 posts scrolled sideways at 390, 2026-10-22) */
.prod-prose a{overflow-wrap:anywhere}
.prod-pager{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:36px}
.prod-pager a{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line,#e6dfcf);border-radius:10px;font-weight:800;color:var(--ink,#171310);text-decoration:none;background:#fff}
.prod-pager a[aria-current]{background:var(--yellow,#feb713);border-color:var(--yellow,#feb713)}
/* Footer legal row (production) and the related-service box on every post */
.foot-links a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.prod-related{margin:2.2em 0 0;padding:20px 22px;border:1px solid var(--line,#e6dfcf);border-left:5px solid var(--yellow,#feb713);border-radius:12px;background:#fffaf0;display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px}
.prod-related span{flex-basis:100%;font-size:12.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted,#5b5548)}
.prod-related a:not(.btn){font-size:19px;font-weight:800;border-bottom:2px solid var(--yellow,#feb713)}
.prod-related .btn{margin-left:auto;border:0}
/* "More services in {city}" and "Related services" link rows (internal linking, 2026-10-22) */
.prod-alsolinks{padding:28px 0;border-top:1px solid var(--line,#e6dfcf);border-bottom:1px solid var(--line,#e6dfcf);background:#fff}
.prod-alsolinks .container{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:center}
.prod-alsolinks span{flex-basis:100%;font-size:12.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--muted,#5b5548)}
.prod-alsolinks a{font-weight:800;font-size:17px;color:var(--ink,#171310);text-decoration:none;border-bottom:2px solid var(--yellow,#feb713);min-height:44px;display:inline-flex;align-items:center}
.prod-related-svc{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:center;margin:0;width:100%}
/* phones: long city names ("Palm Beach Gardens", "Hallandale Beach") in .nw spans pushed section H2s past 390px (qa 2026-10-23) */
@media (max-width:480px){body .nw,body[data-city] .nw{white-space:normal}}
/* phones: the closing poster line keeps "Hallandale&nbsp;Beach" together; at 42px it ran 34px past 390 (qa 2026-10-23) */
@media (max-width:480px){.hm-close-line,.sv-close .sv-close-line{font-size:min(42px,9.6vw)}}
/* phones under 400px: the emergency block's long button label ("Water damage: what to do first") would not wrap and set the block to 357px */
@media (max-width:400px){.ce-btns .btn{white-space:normal;text-align:center}}
/* 360px phones: "Greenacres&nbsp;Homes" in the IAQ section title ran 3px past the edge at 34px */
@media (max-width:380px){.iaq-copy .sec-title{font-size:min(34px,8.6vw)}}
