/* Shared customer experience improvements. Brand blue remains the accent. */
:root { --se-action:#0876a6; --se-action-hover:#075d84; --se-ink:#132c3c; --se-focus:#075f90; }
html { scroll-padding-top:7rem; }
body { overflow-wrap:break-word; }
main, .container, .wrap, .form-section, .lead-form, .contact-form, .review-card, .card { min-width:0; }
.container, .wrap { width:100%; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible {
  outline:3px solid var(--se-focus); outline-offset:3px; box-shadow:0 0 0 3px #fff;
}
.btn-primary, a.btn-primary, .cta-btn, .form-submit, .lead-form button[type=submit], .form-section button[type=submit] {
  background:var(--se-action)!important; border-color:var(--se-action)!important; color:#fff!important;
}
.btn-primary:hover, a.btn-primary:hover, .cta-btn:hover, .form-submit:hover { background:var(--se-action-hover)!important; }
.btn, .btn-primary, .btn-secondary, .cta-btn, button[type=submit], summary { min-height:44px; }
button:disabled, input:disabled { cursor:wait; }
img, video { max-width:100%; }
input:not([type=checkbox]):not([type=radio]), select, textarea { max-width:100%; }
textarea { min-height:120px; resize:vertical; }
.se-form-status { color:var(--se-ink); background:#eef6fa; border:1px solid #b6d7e7; border-radius:12px; padding:1rem 1.15rem; margin:1rem 0; line-height:1.55; }
.se-form-status:empty { display:none; }
.se-form-status.is-error { color:#861e20; background:#fff3f2; border-color:#e0a8a5; }
.se-form-success { border:1px solid #9bc9b3; background:#eef8f2; border-radius:16px; padding:clamp(1.3rem,3vw,2.4rem); color:#174a35; }
.se-form-success h2,.se-form-success h3 { color:#174a35; margin-bottom:.7rem; }
.se-form-success a,.se-form-status a { text-decoration:underline; text-underline-offset:3px; }
.se-form-consent { display:block; margin:1rem 0; padding:1rem; border:1px solid #d8e2e7; border-radius:10px; background:#f7fafb; color:#233e4d; font-size:.9rem; line-height:1.5; }
.se-form-consent label { display:flex!important; align-items:flex-start; gap:.7rem; font-weight:400!important; cursor:pointer; }
.se-form-consent input[type=checkbox] { width:20px!important; height:20px!important; flex:0 0 20px; margin:.12rem 0 0!important; accent-color:var(--se-action); }
.se-form-consent span { flex:1; }
.se-field-help { font-size:.88rem; line-height:1.5; color:#425966; margin:.4rem 0 .8rem; }
.se-privacy-note { color:#425966; font-size:.85rem; line-height:1.5; margin:.8rem 0; }
.se-privacy-note a { text-decoration:underline; }
.se-summary-list { display:grid; gap:.65rem; list-style:none; margin:1rem 0; }
.se-summary-list li { border-bottom:1px solid #d9e4e9; padding:.65rem 0; }
.se-inline-link { text-decoration:underline; text-underline-offset:4px; color:#086998; }
.service-card,.review-card,.project-card { border-radius:16px; }
.review-card p,.card p { max-width:65ch; }
.faq-question, summary { cursor:pointer; }
[hidden] { display:none!important; }
@media (max-width:767px) {
  input,select,textarea { font-size:16px!important; }
  .hero h1 { font-size:clamp(2.25rem,9.5vw,3.5rem); line-height:1.1; }
  .hero p { font-size:1.05rem; }
  .hero .btn,.hero .cta-btn { white-space:normal; text-align:center; }
  .form-row,.form-grid { grid-template-columns:minmax(0,1fr)!important; }
  .mobile-cta,.mobile-sticky-cta,.sticky-cta { padding-bottom:max(.75rem,env(safe-area-inset-bottom)); }
  footer { padding-bottom:max(5rem,calc(4rem + env(safe-area-inset-bottom))); }
  .se-form-consent { padding:.8rem; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto!important; }
  .fade-in { opacity:1!important; transform:none!important; transition:none!important; }
  *,*::before,*::after { animation-duration:.01ms!important; transition-duration:.01ms!important; }
}
/* Keep homepage navigation and photo dialogs usable at narrow sizes. */
.mobile-nav { overflow-y:auto; overscroll-behavior:contain; padding-bottom:max(1.5rem,env(safe-area-inset-bottom)); }
#project-gallery .filter-btn, .lightbox-close, .exit-popup-close { min-width:44px; min-height:44px; }
#project-gallery .filter-btn.active, .lightbox-close { background:var(--se-action); border-color:var(--se-action); color:#fff; }
#project-gallery .project-service-badge { color:var(--se-action-hover); }
#project-gallery .project-card { cursor:default; }
#project-gallery .gallery-results { text-align:center; margin:0; color:var(--se-ink); }
.lightbox-content { width:min(1100px,95vw); }
.estimate-calculator-wrapper fieldset.form-group { border:0; padding:0; min-width:0; }
.estimate-calculator-wrapper legend { padding:0; font-weight:600; margin-bottom:.75rem; }
