/* DWR Services LLC — sitewide visual/accessibility enhancements
   Added 2026-09-10. Existing image files and image data are intentionally untouched. */
:root {
  --dwr-navy:#17335c;
  --dwr-navy-deep:#0f2747;
  --dwr-blue:#244f80;
  --dwr-green:#6fa93b;
  --dwr-green-dark:#557f2f;
  --dwr-ink:#263442;
  --dwr-muted:#5d6976;
  --dwr-line:#dce4eb;
  --dwr-soft:#f4f7fa;
  --dwr-soft-green:#f4f8ef;
  --dwr-white:#fff;
  --dwr-shadow:0 12px 32px rgba(15,39,71,.10);
}
html { scroll-padding-top:1rem; }
body {
  color:var(--dwr-ink);
  background:#fff;
  font-size:16px;
  line-height:1.68;
  text-rendering:optimizeLegibility;
}
.container { max-width:1160px; }
header {
  position:relative !important;
  border-bottom:1px solid var(--dwr-line) !important;
  box-shadow:0 4px 18px rgba(15,39,71,.07);
  background:#fff !important;
}
.dwr-topbar {
  background:var(--dwr-navy-deep);
  color:#fff;
  font-size:.9rem;
}
.dwr-topbar-inner {
  max-width:1160px;
  margin:0 auto;
  min-height:38px;
  padding:.35rem 1.5rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
}
.dwr-topbar a { color:#fff; text-decoration:none; font-weight:800; white-space:nowrap; }
.dwr-topbar a:hover { text-decoration:underline; }
.logo-wrap { padding:.85rem 1rem .45rem !important; }
.logo-wrap img { max-width:245px !important; }
.site-nav { padding:0 1rem .75rem !important; }
.dropdown a { border-radius:6px; }
.dropdown a[aria-current="page"] { background:var(--dwr-soft-green); color:var(--dwr-green-dark); }
.promo-banner {
  background:linear-gradient(90deg,var(--dwr-navy-deep),var(--dwr-navy)) !important;
  padding:.7rem 1rem !important;
}
.promo-banner img { box-shadow:0 5px 16px rgba(0,0,0,.16); }
main { background:linear-gradient(#fff 0,#fff 72%,#fbfcfd 100%); }
.hero,
.page-heading {
  margin-top:1.7rem;
  padding:clamp(1.5rem,3vw,2.35rem) !important;
  background:linear-gradient(135deg,#f7faff 0%,#fff 58%,#f5f9f0 100%);
  border:1px solid var(--dwr-line);
  border-radius:16px;
  box-shadow:var(--dwr-shadow);
}
.hero h1,
.page-heading h1,
h1.page-heading,
.gallery-section .page-heading {
  color:var(--dwr-navy) !important;
  font-size:clamp(1.85rem,3.4vw,2.7rem) !important;
  line-height:1.15 !important;
  letter-spacing:-.025em;
  max-width:22ch;
}
.hero p { max-width:72ch !important; font-size:1.04rem !important; }
.dwr-hero-lead { font-size:1.12rem !important; color:#3d4b59 !important; }
.dwr-cta-row { display:flex; flex-wrap:wrap; gap:.8rem; margin-top:1.25rem; }
.dwr-btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:.78rem 1.18rem;
  border-radius:8px;
  text-decoration:none;
  font-weight:800;
  line-height:1.2;
  transition:transform .15s ease,box-shadow .15s ease,background .15s ease;
}
.dwr-btn:hover { transform:translateY(-1px); }
.dwr-btn-primary { background:var(--dwr-green); color:#fff; box-shadow:0 7px 18px rgba(111,169,59,.22); }
.dwr-btn-primary:hover { background:var(--dwr-green-dark); }
.dwr-btn-secondary { border:1px solid var(--dwr-navy); color:var(--dwr-navy); background:#fff; }
.dwr-btn-secondary:hover { background:#f3f7fb; }
.dwr-trust-strip {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.75rem;
  margin:1.1rem 0 2rem;
}
.dwr-trust-item {
  padding:1rem 1.05rem;
  border:1px solid var(--dwr-line);
  border-radius:10px;
  background:#fff;
  box-shadow:0 5px 18px rgba(15,39,71,.055);
}
.dwr-trust-item strong { display:block; color:var(--dwr-navy); margin-bottom:.18rem; }
.dwr-trust-item span { color:var(--dwr-muted); font-size:.92rem; }
.cta-section {
  border:0 !important;
  border-left:5px solid var(--dwr-green) !important;
  background:var(--dwr-soft-green);
  border-radius:10px;
  padding:1.35rem 1.5rem !important;
  margin:1.5rem 0 2rem !important;
}
.services-section h2,.area-section h2,.faq-section h2,.seo-intro h2 { font-size:clamp(1.35rem,2.2vw,1.7rem) !important; }
.services-grid { gap:1.15rem !important; }
.service-card {
  background:#fff !important;
  border:1px solid var(--dwr-line) !important;
  border-top:4px solid var(--dwr-green) !important;
  border-left:1px solid var(--dwr-line) !important;
  border-radius:12px !important;
  box-shadow:0 7px 22px rgba(15,39,71,.07);
  padding:1.35rem 1.4rem !important;
}
.service-card h3 { font-size:1.14rem !important; }
.service-card a { color:var(--dwr-navy); font-weight:700; text-decoration-thickness:1px; text-underline-offset:3px; }
.service-card a:hover { color:var(--dwr-green-dark); }
.area-section { padding-top:1.5rem !important; }
.area-grid { gap:.9rem !important; }
.area-card {
  background:var(--dwr-soft);
  border:1px solid var(--dwr-line);
  border-radius:10px;
  padding:1rem;
}
.area-card h3 { margin-bottom:.35rem !important; }
.faq-section { border-top:0 !important; }
.faq-item {
  border:1px solid var(--dwr-line) !important;
  border-radius:10px;
  padding:1rem 1.15rem !important;
  margin:.7rem 0;
  background:#fff;
}
.seo-intro {
  background:#fff;
  border:1px solid var(--dwr-line);
  border-radius:12px;
  padding:1.35rem 1.5rem;
  box-shadow:0 7px 22px rgba(15,39,71,.055);
}
.gallery-section { padding-top:1.4rem !important; }
.gallery-grid,.row { row-gap:1.2rem; }
.gallery-card {
  border:1px solid var(--dwr-line) !important;
  border-radius:12px !important;
  overflow:hidden;
  background:#fff;
  box-shadow:0 8px 24px rgba(15,39,71,.08) !important;
  transition:transform .15s ease,box-shadow .15s ease;
}
.gallery-card:hover { transform:translateY(-2px); box-shadow:0 13px 30px rgba(15,39,71,.12) !important; }
.card-body { padding:1rem 1.05rem 1.1rem !important; }
.card-title { color:var(--dwr-navy) !important; }
.btn-view,.phone-cta {
  border-radius:8px !important;
  font-weight:800 !important;
  box-shadow:none !important;
}
.btn-view { background:var(--dwr-navy) !important; color:#fff !important; }
.btn-view:hover { background:var(--dwr-navy-deep) !important; }
.phone-cta { background:var(--dwr-green) !important; }
.phone-cta:hover { background:var(--dwr-green-dark) !important; }
.dwr-breadcrumb {
  max-width:1160px;
  margin:1rem auto 0;
  padding:0 1.5rem;
  color:var(--dwr-muted);
  font-size:.9rem;
}
.dwr-breadcrumb a { color:var(--dwr-navy); text-decoration:none; font-weight:700; }
.dwr-breadcrumb a:hover { text-decoration:underline; }
.dwr-bottom-cta {
  max-width:1160px;
  margin:2.2rem auto 0;
  padding:0 1.5rem;
}
.dwr-bottom-cta-inner {
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:1rem 1.5rem;
  padding:1.35rem 1.5rem;
  border-radius:14px;
  background:var(--dwr-navy);
  color:#fff;
  box-shadow:var(--dwr-shadow);
}
.dwr-bottom-cta strong { display:block; font-size:1.2rem; margin-bottom:.15rem; }
.dwr-bottom-cta span { color:#d9e3ef; }
.dwr-bottom-cta .dwr-btn-primary { white-space:nowrap; }
.dwr-services-page { padding:2rem 0 0; }
.dwr-services-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin:1.2rem 0 2rem; }
.dwr-service-panel { border:1px solid var(--dwr-line); border-radius:12px; padding:1.25rem; background:#fff; box-shadow:0 7px 22px rgba(15,39,71,.06); }
.dwr-service-panel h2 { color:var(--dwr-navy); font-size:1.2rem; margin-bottom:.55rem; }
.dwr-service-panel p { color:var(--dwr-muted); margin-bottom:.65rem; }
.dwr-service-panel a { color:var(--dwr-green-dark); font-weight:800; }
.dwr-process { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; counter-reset:steps; margin:1.15rem 0 2rem; }
.dwr-step { counter-increment:steps; border-left:4px solid var(--dwr-green); background:var(--dwr-soft); padding:1.15rem 1.2rem; border-radius:8px; }
.dwr-step::before { content:"0" counter(steps); display:block; font-weight:900; color:var(--dwr-green-dark); font-size:.86rem; margin-bottom:.25rem; }
.dwr-step h3 { color:var(--dwr-navy); margin-bottom:.25rem; }
footer { margin-top:2.5rem !important; }
.footer-inner { max-width:1160px !important; }
.footer-col a { text-underline-offset:3px; }
:focus-visible { outline:3px solid #93c95f !important; outline-offset:3px !important; }
@media (min-width:769px) {
  .site-nav { align-items:center; }
  .menu-btn { display:none !important; }
  .dropdown {
    position:static !important;
    opacity:1 !important;
    visibility:visible !important;
    transform:none !important;
    min-width:0 !important;
    margin:0 !important;
    display:flex !important;
    align-items:center;
    gap:.3rem;
    border:0 !important;
    box-shadow:none !important;
    overflow:visible !important;
    background:transparent !important;
  }
  .dropdown a {
    border:0 !important;
    padding:.65rem .9rem !important;
    font-size:1rem !important;
  }
}
@media (max-width:900px) {
  .dwr-trust-strip { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .dwr-services-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:768px) {
  .dwr-topbar-inner { justify-content:center; text-align:center; flex-wrap:wrap; gap:.15rem .75rem; padding:.4rem 1rem; }
  .logo-wrap img { max-width:220px !important; }
  .hero,.page-heading { border-radius:12px; margin-top:1rem; padding:1.35rem !important; }
  .hero h1,.page-heading h1,h1.page-heading,.gallery-section .page-heading { font-size:1.75rem !important; }
  .dwr-bottom-cta-inner { grid-template-columns:1fr; text-align:center; }
  .dwr-bottom-cta .dwr-btn { width:100%; }
  .dwr-breadcrumb { margin-top:.7rem; padding:0 1.25rem; }
}
@media (max-width:560px) {
  .dwr-trust-strip,.dwr-services-grid,.dwr-process { grid-template-columns:1fr; }
  .dwr-cta-row .dwr-btn { width:100%; }
  .dwr-topbar span { font-size:.82rem; }
}
@media (prefers-reduced-motion:reduce) {
  .dwr-btn,.gallery-card { transition:none !important; }
  .dwr-btn:hover,.gallery-card:hover { transform:none !important; }
}
