/* The contact bar owns its row. The content scrolls above it, including the estimate form. */
html { height: 100%; }
body { display: grid; grid-template-rows: minmax(0, 1fr) auto; height: 100vh; height: 100dvh; min-height: 0; margin: 0; overflow: hidden; }
.pss-page { min-height: 0; min-width: 0; overflow: auto; scroll-padding-block: 110px 18px; }
.pss-dock { background: #0c1015; color: #fff; border-top: 1px solid #544a32; padding: 5px max(12px, env(safe-area-inset-right)) calc(5px + env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)); }
.pss-dock-inner { display: flex; align-items: center; justify-content: center; gap: 8px; max-width: 740px; margin: 0 auto; }
.pss-dock a { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; border-radius: 9px; padding: 0 20px; color: #f4f4f2; font: 700 15px/1.15 system-ui, sans-serif; text-decoration: none; white-space: nowrap; }
.pss-dock svg { width: 18px; height: 18px; flex: none; }
.pss-dock a:focus-visible { outline: 2px solid #fff; outline-offset: -3px; }
.pss-dock .pss-quote { background: #e4ba60; color: #151209; }
.pss-dock a:hover { background: #282e36; }
.pss-dock .pss-quote:hover { background: #f4d391; }
#contact-form { scroll-margin-top: 8px; }
@media (max-width: 650px) {
  .pss-dock-inner { display: grid; grid-template-columns: 1fr .82fr 1.35fr; gap: 4px; }
  .pss-dock a { font-size: 14px; padding: 0 4px; gap: 5px; }
  .pss-page { scroll-padding-top: 88px; }
}
@media (max-width: 360px) { .pss-dock a { font-size: 13px; } .pss-dock svg { width: 15px; } }
@media print {
  html, body, .pss-page { display: block; height: auto; overflow: visible; }
  .pss-dock { display: none; }
}
.contact-wrap > *, .contact-wrap .field { min-width: 0; }
.contact-list a { overflow-wrap: anywhere; }
@media (max-width: 650px) {
  .contact-wrap, .contact-wrap .form { grid-template-columns: minmax(0, 1fr); }
  .contact-wrap .contact-card { position: static; }
}

/* Compact service shortcuts beneath the homepage's main estimate button. */
.pss-specialties { display:flex; flex-wrap:wrap; gap:6px 14px; margin:18px 0; }
.pss-specialty { color:#f1d49a; font-size:.9rem; font-weight:650; text-decoration:underline; text-underline-offset:4px; }
.pss-specialty:hover, .pss-specialty:focus-visible { color:#fff; }

.pss-analytics-choice[hidden] { display:none; }
.pss-analytics-choice { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:4px 14px; padding:5px 12px; background:#171a1d; color:#e9eae9; font-size:13px; border-bottom:1px solid #444; }
.pss-analytics-choice a { color:#f1d49a; text-decoration:underline; }
.pss-choice-buttons { display:inline-flex; gap:6px; }
.pss-choice-buttons button { color:#fff; font:inherit; background:transparent; border:1px solid #696b70; border-radius:5px; padding:4px 9px; min-height:32px; cursor:pointer; }

.pss-financing-note { margin:12px 0; line-height:1.5; }
.pss-financing-note a { color:#f1d49a; text-decoration:underline; text-underline-offset:3px; }
.pss-financing-option { scroll-margin-top:110px; padding:14px 16px; border-left:3px solid #d5ad59; background:#17191d; border-radius:5px; }
.pss-financing-option > strong { color:#f1d49a; }
.pss-financing-option p { margin:4px 0; font-size:.95rem; }
.pss-financing-option label { display:flex; align-items:center; gap:10px; min-height:44px; cursor:pointer; }
.pss-financing-option input { width:18px; height:18px; flex-shrink:0; accent-color:#e3bd6d; }
