/* Launch refinements: retain the original brand and desktop composition. */
html { -webkit-text-size-adjust:100%; }
body { overflow-wrap:break-word; }
[hidden] { display:none!important; }
.container > *, .form-row > *, .property-grid > *, .header-inner > * { min-width:0; }
.quote-form input, .quote-form textarea { font-size:16px!important; }
.quote-form input { scroll-margin-top:120px; }
.quote-form label { line-height:1.5; }
.checkboxes label { min-height:44px; cursor:pointer; }
.form-notice a { text-decoration:underline; text-underline-offset:3px; }
#form-status:not(:empty) { margin-top:18px; padding:15px; background:#e7eddf; border-left:3px solid #496a35; color:#25391d; font-size:1rem; }
.mobile-actions { display:none; }
.plan-upload { margin:22px 0; padding:20px; border:1px dashed #849775; border-radius:4px; background:#eaf0e4; }
.plan-upload label { display:block; margin-bottom:8px; }
.optional-label { font-weight:400; }
.plan-upload p { color:#425337; font-size:.875rem; line-height:1.55; margin:8px 0 12px; }
.plan-upload input[type=file] { display:block; width:100%; min-width:0; max-width:100%; padding:10px; background:white; }
.plan-upload input::file-selector-button { border:1px solid #526e40; border-radius:3px; background:#dce8d3; color:#1d3212; min-height:44px; margin:0 10px 4px 0; padding:8px 12px; font:inherit; cursor:pointer; }
.plan-upload a { text-decoration:underline; overflow-wrap:anywhere; }
.plan-upload button { min-height:44px; padding:8px 12px; border:1px solid #526e40; background:transparent; color:#253b19; border-radius:3px; }
.plan-upload input[aria-invalid=true] { border:2px solid #9f2929; }
#plan-feedback { overflow-wrap:anywhere; }
#plan-feedback:empty { display:none; }
@media(max-width:600px) { .plan-upload { padding:15px 12px; } }
.text-link, .card-link, .footer-inner a { min-height:44px; align-content:center; }
.site-header { z-index:30; }
@media(max-width:850px) {
  .quote-grid, .about-grid { grid-template-columns:1fr; }
  .quote-form { width:100%; max-width:620px; }
  .quote-copy h2, .about-copy h2 { font-size:clamp(2rem,5vw,3rem); }
  .about-copy>p:not(.eyebrow) { font-size:1rem; }
  nav { max-height:calc(100dvh - 90px); overflow-y:auto; box-shadow:0 16px 30px #0005; }
}
@media(max-width:600px) {
  :root { scroll-padding-top:96px; }
  body { padding-bottom:calc(66px + env(safe-area-inset-bottom)); }
  .container { width:calc(100% - 36px); }
  .header-inner { min-height:76px; gap:8px; }
  .brand-name { font-size:clamp(.85rem,3.8vw,1.1rem); white-space:nowrap; }
  .menu-toggle { min-width:72px; min-height:44px; flex-shrink:0; }
  .hero h1 { font-size:clamp(2rem,8.5vw,3.4rem); }
  .hero-content { padding-top:34px; }
  .hero-photo { height:auto; aspect-ratio:16/10; }
  .hero-photo video { position:absolute; inset:0; }
  .hero-photo:after { background:linear-gradient(180deg,#080b09 0%,transparent 22%,transparent 85%,#080b09); }
  .hero-actions .button { gap:12px; }
  .hero-note { font-size:.875rem; }
  .service-card { padding:24px; }
  .facts-grid strong { font-size:clamp(.9rem,3.5vw,1.1rem); }
  .facts-grid span { font-size:.85rem; }
  .section { padding-block:54px; }
  .quote-form { padding:24px 18px; }
  .quote-copy h2, .about-copy h2, .property-section h2, h2 { font-size:clamp(1.85rem,7.6vw,2.6rem); }
  .quote-form label, .quote-form legend, .checkboxes label { font-size:.9375rem; }
  .checkboxes label { align-items:flex-start; padding-block:10px; }
  .checkboxes input { margin-top:2px; }
  .form-submit { justify-content:center; font-size:1rem; }
  .form-notice { font-size:.8125rem; }
  .process-list li { gap:14px; }
  .mobile-actions { display:grid; grid-template-columns:1fr 1.6fr; gap:10px; position:fixed; z-index:40; bottom:0; inset-inline:0; padding:9px 18px calc(9px + env(safe-area-inset-bottom)); background:#0b110cf5; border-top:1px solid #35482b; }
  .mobile-actions a { display:flex; justify-content:center; align-items:center; min-height:46px; gap:14px; border:1px solid #516746; border-radius:3px; font-size:.9375rem; font-weight:700; }
  .mobile-actions a:last-child { background:#99bb80; color:#10180e; border-color:#99bb80; }
  body:has(.quote-form :focus) .mobile-actions { display:none; }
  .footer-inner > div { flex-wrap:wrap; }
}
@media(max-width:380px) {
  .brand-mark { width:42px; }
  .hero h1 { font-size:8.3vw; }
  .property-grid { grid-template-columns:1fr; }
  .hero .eyebrow { font-size:.68rem; }
}
@media print { .mobile-actions { display:none; } body { padding-bottom:0; } }
