/* The one site footer (tools/footer.py), the same on the captured Elementor pages and the generated pages. Every rule is
   scoped to .rr-footer and sets its own type, so neither Elementor's kit styles nor rr-pages.css change how it looks. */
.rr-footer{--rrf-bg:#071d3b;--rrf-ink:#fff;--rrf-soft:#c3cbd8;--rrf-dim:#8d9ab0;--rrf-line:rgba(255,255,255,.12);--rrf-red:#d92f35;
  background:var(--rrf-bg);color:var(--rrf-soft);font:400 15px/1.6 Manrope,Arial,sans-serif;letter-spacing:0;text-align:left;
  position:relative;overflow:hidden;width:100%;margin:0;padding:0;box-sizing:border-box}
.rr-footer *,.rr-footer *::before,.rr-footer *::after{box-sizing:border-box}
.rr-footer .rrf-wrap{max-width:1240px;margin:0 auto;padding:56px 32px 28px}
.rr-footer p,.rr-footer ul,.rr-footer address{margin:0;padding:0;font-style:normal}
.rr-footer ul{list-style:none}
.rr-footer li{margin:0;padding:0;list-style:none}
.rr-footer a{color:var(--rrf-ink);text-decoration:none;font-weight:500;transition:color .15s}
.rr-footer a:hover{color:#ffb8bb;text-decoration:underline;text-underline-offset:4px}
.rr-footer a:focus-visible,.rr-footer button:focus-visible{outline:2px solid #fff;outline-offset:3px;border-radius:3px}

.rr-footer .rrf-top{display:grid;grid-template-columns:minmax(260px,320px) 1fr;gap:40px 72px;align-items:start;padding-bottom:40px}

/* Brand: logo, tagline, one line about us, how to reach us, and the estimate button. */
.rr-footer .rrf-brand{position:relative}
.rr-footer .rrf-logo{display:inline-block;margin-left:-13px}
.rr-footer .rrf-logo img{display:block;width:210px;max-width:100%;height:auto}
.rr-footer .rrf-tag{margin-top:26px;font:italic 500 22px/1.25 Fraunces,Georgia,serif;color:#fff;letter-spacing:-.01em}
.rr-footer .rrf-about{margin-top:10px;font-size:14px;line-height:1.6;color:var(--rrf-soft);max-width:30em}
.rr-footer .rrf-contact{display:grid;gap:6px;margin-top:22px;font-size:14px;line-height:1.55}
.rr-footer .rrf-contact a{font-weight:600}
.rr-footer .rrf-reach{display:flex;flex-wrap:wrap;gap:0 10px}
.rr-footer .rrf-reach [aria-hidden]{color:var(--rrf-dim)}
.rr-footer a.rrf-cta{display:inline-flex;align-items:center;gap:8px;min-height:48px;margin-top:24px;padding:0 22px;border-radius:6px;
  background:var(--rrf-red);color:#fff;font:800 12px/1 Manrope,Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;text-decoration:none}
.rr-footer a.rrf-cta:hover{background:#b5232a;color:#fff;text-decoration:none}

/* Link groups: one folding row each, an accordion that opens one group at a time (footer.py gives them name="rrf"). */
.rr-footer .rrf-cols{display:block;border-top:1px solid var(--rrf-line)}
.rr-footer .rrf-col{border-bottom:1px solid var(--rrf-line)}
.rr-footer .rrf-h{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:56px;margin:0;padding:0 2px;cursor:pointer;
  list-style:none;font:800 12px/1.2 Manrope,Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#fff;transition:color .15s}
.rr-footer .rrf-h::-webkit-details-marker{display:none}
.rr-footer .rrf-h:hover{color:#ffb8bb}
.rr-footer .rrf-h:focus-visible{outline:2px solid #fff;outline-offset:2px;border-radius:3px}
.rr-footer .rrf-chev{flex:none;width:9px;height:9px;margin-right:4px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;
  transform:translateY(-2px) rotate(45deg);transition:transform .2s}
.rr-footer .rrf-col[open] .rrf-chev{transform:translateY(2px) rotate(-135deg)}
.rr-footer .rrf-col ul{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:0 24px;padding:0 2px 18px}
.rr-footer .rrf-col a{display:inline-flex;align-items:center;min-height:36px;font-size:15px;color:var(--rrf-soft)}
.rr-footer .rrf-col a:hover{color:#fff}
.rr-footer .rrf-col a.rrf-all{color:#fff;font-weight:700}
.rr-footer .rrf-col[open] ul{animation:rrf-in .2s ease-out}
@keyframes rrf-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.rr-footer .rrf-chev{transition:none}.rr-footer .rrf-col[open] ul{animation:none}}

/* The legal line: copyright, licence and the policies. */
.rr-footer .rrf-legal{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 32px;
  padding-top:24px;border-top:1px solid var(--rrf-line);font-size:13px;line-height:1.6;color:var(--rrf-dim)}
.rr-footer .rrf-legal p span{display:inline-block;margin-left:10px}
.rr-footer .rrf-legal ul{display:flex;flex-wrap:wrap;gap:4px 22px}
.rr-footer .rrf-legal a,.rr-footer .rrf-prefs{display:inline-flex;align-items:center;min-height:32px;font:600 13px/1.2 Manrope,Arial,sans-serif;color:var(--rrf-soft)}
.rr-footer .rrf-prefs{margin:0;padding:0;border:0;background:none;cursor:pointer;letter-spacing:0;text-transform:none;border-radius:0}
.rr-footer .rrf-prefs:hover{color:#ffb8bb;text-decoration:underline;text-underline-offset:4px;background:none}

@media (max-width:1320px){
  .rr-footer .rrf-top{grid-template-columns:minmax(250px,290px) 1fr;gap:48px 48px}
  .rr-footer .rrf-tag{font-size:20px}
}
@media (max-width:1100px){
  .rr-footer .rrf-top{grid-template-columns:1fr;gap:36px}
  .rr-footer .rrf-tag{font-size:22px}
}
@media (max-width:900px){
  .rr-footer .rrf-wrap{padding:56px 24px 24px}
  .rr-footer .rrf-legal{flex-direction:column;align-items:flex-start}
  .rr-footer .rrf-legal p span{display:block;margin:2px 0 0}
}
@media (max-width:640px){
  .rr-footer .rrf-wrap{padding:48px 20px 24px}
  .rr-footer .rrf-logo{margin-left:-12px}
  .rr-footer .rrf-logo img{width:190px}
  .rr-footer .rrf-tag{font-size:20px}
  .rr-footer .rrf-col ul{grid-template-columns:1fr 1fr;column-gap:16px}
  /* Phones: every link a full 44px row. */
  .rr-footer .rrf-col a,.rr-footer .rrf-contact a,.rr-footer .rrf-legal a,.rr-footer .rrf-prefs{min-height:44px}
  .rr-footer .rrf-contact{gap:0}
  .rr-footer .rrf-contact>span:first-child{margin-bottom:6px}
  .rr-footer .rrf-reach{gap:0 12px}
  .rr-footer a.rrf-cta{display:flex;justify-content:center;min-height:52px}
  .rr-footer .rrf-legal ul{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;width:100%}
}
