* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: Arial, sans-serif; color: #111827; background: #fff; line-height: 1.6; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
.container { width: min(1120px, calc(100% - 2rem)); margin: 0 auto; }
.topbar { background: #050505; color: #fff; font-size: .92rem; }
.topbar-inner, .site-header-inner, .landing-header-inner, .hero-actions, .button-row, .cta-actions, .contact-actions { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.topbar-inner { padding: .7rem 0; flex-wrap: wrap; }
.topbar-links { display: flex; flex-wrap: wrap; gap: 1.25rem; }
.site-header, .landing-header { position: sticky; top: 0; z-index: 30; background: rgba(255,255,255,.97); border-bottom: 1px solid #e5e7eb; backdrop-filter: blur(12px); }
.site-header-inner, .landing-header-inner { min-height: 5.25rem; }
.logo img, .footer-logo { height: 4rem; width: auto; }
.site-nav { display: flex; align-items: center; gap: 1.5rem; }
.site-nav a { font-weight: 700; color: #374151; }
.site-nav a.active, .site-nav a:hover { color: #c1121f; }
.nav-toggle { display: none; border: 0; background: none; font-weight: 700; cursor: pointer; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; padding: .9rem 1.35rem; border-radius: .75rem; font-weight: 700; border: 2px solid transparent; transition: .2s ease; }
.button:hover { transform: translateY(-1px); }
.button-primary { background: #c1121f; color: #fff; }
.button-primary:hover { background: #a60f1a; }
.button-secondary { border-color: #fff; color: #fff; }
.button-secondary.dark { border-color: #c1121f; color: #c1121f; }
.button-secondary.dark:hover { background: #fff1f2; }
.button-full { width: 100%; }
.hero, .landing-hero, .service-hero { position: relative; overflow: hidden; color: #fff; background-size: cover; background-position: center; }
.hero::before, .landing-hero::before, .service-hero::before { content: ''; position: absolute; inset: 0; background: linear-gradient(120deg, rgba(0,0,0,.92), rgba(0,0,0,.7) 60%, rgba(0,0,0,.45)); }
.hero-content, .landing-hero-content, .service-hero-content { position: relative; z-index: 1; }
.hero { padding: 6rem 0; background-image: url('https://images.unsplash.com/photo-1706741843463-11efe018ea1b'); }
.hero-grid, .landing-grid, .two-column, .service-detail-grid, .contact-grid, .feature-split, .stats-grid, .service-list-item, .split-cta { display: grid; gap: 2rem; }
.hero-grid, .landing-grid, .two-column, .feature-split, .split-cta, .service-list-item { grid-template-columns: repeat(2, minmax(0,1fr)); }
.service-detail-grid { grid-template-columns: minmax(0,2fr) minmax(280px,1fr); }
.contact-grid { grid-template-columns: minmax(0,1.1fr) minmax(340px,.9fr); }
.eyebrow { display: inline-block; margin-bottom: 1rem; padding: .5rem .85rem; border-radius: 999px; background: rgba(193,18,31,.18); border: 1px solid rgba(193,18,31,.8); color: #ff7c85; font-weight: 700; font-size: .92rem; }
.hero h1, .landing-hero h1, .service-hero h1, .page-intro h1 { margin: 0 0 1rem; font-size: clamp(2.5rem, 5vw, 4.5rem); line-height: 1.1; }
.hero p, .landing-hero p, .service-hero p, .page-intro p, .section-intro p { font-size: 1.08rem; color: #d1d5db; }
.hero-card, .form-panel, .card, .testimonial, .info-card, .service-card, .service-side-card, .list-card, .stat-card { background: #fff; color: #111827; border-radius: 1.25rem; box-shadow: 0 18px 40px rgba(15,23,42,.12); }
.hero-card, .form-panel, .service-side-card, .info-card { padding: 2rem; }
.hero-image { border-radius: 1.25rem; min-height: 420px; box-shadow: 0 30px 60px rgba(0,0,0,.25); object-fit: cover; }
.section { padding: 5rem 0; }
.section-alt { background: #f8fafc; }
.section-dark { background: linear-gradient(135deg,#111827,#020617); color: #fff; }
.section-red { background: linear-gradient(135deg,#c1121f,#991b1b); color: #fff; }
.section-intro, .page-intro, .center-intro { margin-bottom: 2.5rem; }
.center-intro { text-align: center; }
.section-intro h2, .page-intro h2, .center-intro h2 { margin: 0 0 .75rem; font-size: clamp(2rem,4vw,3rem); line-height: 1.15; }
.section-intro p, .page-intro p, .center-intro p { color: #4b5563; max-width: 760px; }
.section-dark .section-intro p, .section-red .section-intro p, .section-dark .center-intro p, .section-red .center-intro p { color: #f3f4f6; }
.stats-row, .services-grid, .trust-grid, .testimonial-grid, .faq-grid, .city-grid, .landing-benefits, .landing-signs, .landing-service-grid, .extra-services-grid { display: grid; gap: 1.5rem; }
.stats-row { grid-template-columns: repeat(4, minmax(0,1fr)); }
.services-grid { grid-template-columns: repeat(4, minmax(0,1fr)); }
.trust-grid, .landing-benefits, .landing-service-grid, .extra-services-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
.testimonial-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
.city-grid { grid-template-columns: repeat(6, minmax(0,1fr)); }
.service-card, .testimonial, .list-card, .card { padding: 1.6rem; border: 1px solid #e5e7eb; }
.service-card h3, .testimonial h3, .card h3, .info-card h3, .service-side-card h3, .list-card h3 { margin-top: 0; }
.icon-badge { width: 3.5rem; height: 3.5rem; border-radius: 1rem; display: inline-flex; align-items: center; justify-content: center; background: #fee2e2; color: #c1121f; font-size: 1.6rem; font-weight: 800; margin-bottom: 1rem; }
.service-link, .text-link { color: #c1121f; font-weight: 700; }
.service-link:hover, .text-link:hover { text-decoration: underline; }
.check-list, .bullet-list, .simple-list, .footer-grid ul { list-style: none; padding: 0; margin: 0; }
.check-list li, .bullet-list li, .simple-list li, .service-feature-list li, .faq-item, .contact-points li, .footer-grid li { margin-bottom: .85rem; }
.check-list li::before, .bullet-list li::before, .service-feature-list li::before, .contact-points li::before { content: '•'; color: #c1121f; font-weight: 800; display: inline-block; width: 1rem; }
.service-list-item { align-items: center; }
.service-list-item + .service-list-item { margin-top: 3rem; }
.service-list-item img, .service-detail-image, .about-image { width: 100%; border-radius: 1.25rem; min-height: 360px; object-fit: cover; box-shadow: 0 18px 40px rgba(15,23,42,.16); }
.feature-box, .faq-item, .map-card, .city-chip { background: #f8fafc; border: 1px solid #e5e7eb; border-radius: 1rem; }
.feature-box, .faq-item, .map-card { padding: 1.4rem; }
.faq-item summary { cursor: pointer; font-weight: 700; }
.faq-item p { margin: .85rem 0 0; color: #4b5563; }
.quote-form { display: grid; gap: 1rem; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1rem; }
.form-grid.compact { grid-template-columns: 1fr; }
.quote-form label { display: grid; gap: .45rem; font-weight: 700; color: #111827; }
.quote-form input, .quote-form textarea, .quote-form select { width: 100%; padding: .9rem 1rem; border: 1px solid #cbd5e1; border-radius: .8rem; font: inherit; background: #fff; }
.form-note { margin: 0; font-size: .86rem; color: #6b7280; text-align: center; }
.flash { margin-bottom: 1rem; padding: 1rem 1.1rem; border-radius: .85rem; font-weight: 700; }
.flash-success { background: #dcfce7; color: #166534; }
.flash-error { background: #fee2e2; color: #991b1b; }
.service-side-stack, .contact-stack { display: grid; gap: 1.5rem; }
.map-card { min-height: 320px; display: grid; place-items: center; text-align: center; }
.city-chip { padding: 1rem; text-align: center; font-weight: 700; }
.site-footer, .landing-footer { background: #050505; color: #fff; }
.site-footer { padding-top: 3.5rem; }
.footer-grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: 2rem; }
.footer-grid p, .footer-grid li, .footer-bottom p { color: #d1d5db; }
.footer-grid h3 { color: #f87171; }
.footer-bottom { padding: 2rem 0; margin-top: 2rem; border-top: 1px solid #1f2937; text-align: center; }
.landing-footer { padding: 1.75rem 0; text-align: center; }
.rating { color: #facc15; font-weight: 700; }
.back-link { display: inline-block; margin-bottom: 1rem; color: #f87171; font-weight: 700; }
.not-found { min-height: 60vh; display: grid; place-items: center; text-align: center; }
@media (max-width: 960px) {
  .hero-grid, .landing-grid, .two-column, .service-detail-grid, .contact-grid, .feature-split, .service-list-item, .split-cta, .footer-grid { grid-template-columns: 1fr; }
  .services-grid, .trust-grid, .testimonial-grid, .landing-benefits, .landing-service-grid, .extra-services-grid, .stats-row, .city-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .site-nav { position: absolute; left: 1rem; right: 1rem; top: calc(100% + .5rem); display: none; flex-direction: column; align-items: stretch; padding: 1rem; border-radius: 1rem; background: #fff; box-shadow: 0 18px 40px rgba(15,23,42,.14); }
  .site-nav.is-open { display: flex; }
  .nav-toggle { display: inline-flex; }
}
@media (max-width: 640px) {
  .topbar-inner, .site-header-inner, .landing-header-inner, .hero-actions, .button-row, .cta-actions, .contact-actions { flex-direction: column; align-items: stretch; }
  .services-grid, .trust-grid, .testimonial-grid, .landing-benefits, .landing-service-grid, .extra-services-grid, .stats-row, .city-grid, .form-grid { grid-template-columns: 1fr; }
  .hero, .landing-hero, .service-hero, .section, .site-footer { padding-top: 4rem; padding-bottom: 4rem; }
}

.visually-hidden { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
