/*! RP Theme — site footer
    Generated from the approved R&P homepage. Do not hand-edit:
    change the homepage source and re-run the extractor. */
.site-footer{background:linear-gradient(165deg,var(--gray) 0%,var(--white) 72%);color:var(--body);padding:84px 0 0;font-size:15px}
/* the logo, Expertise, About R&P, and Get in touch with the newsletter sign-up beneath it */
.foot-grid{display:grid;grid-template-columns:1.15fr .75fr .75fr 1.25fr;gap:50px;padding-bottom:64px}
/* with a column left empty, the rest share the row rather than leave a gap */
.foot-grid--3{grid-template-columns:1.2fr .8fr 1.25fr}
.foot-grid--2{grid-template-columns:1.25fr 1.25fr}
.foot-grid h4{font-family:"Instrument Sans",sans-serif;color:var(--ink);font-size:13px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;margin-bottom:18px}
.foot-grid ul{list-style:none;display:flex;flex-direction:column;gap:9px}
.foot-grid ul a{position:relative;display:inline-block;
  transition:transform .26s cubic-bezier(.22,.61,.36,1),color .2s ease}
.foot-grid ul a::before{content:"";position:absolute;left:-17px;top:calc(50% - 1px);
  width:11px;height:2px;background:var(--red);transform:scaleX(0);transform-origin:left center;
  transition:transform .26s cubic-bezier(.22,.61,.36,1)}
.foot-grid ul a:focus-visible{transform:translateX(17px);color:var(--ink)}
@media(hover:hover){.foot-grid ul a:hover{transform:translateX(17px);color:var(--ink)}}
.foot-grid ul a:focus-visible::before{transform:scaleX(1)}
@media(hover:hover){.foot-grid ul a:hover::before{transform:scaleX(1)}
.foot-grid a:hover{color:var(--ink)}}
.foot-grid a:active{color:var(--ink)}
.foot-logo img{height:86px;width:auto}
.foot-mission{margin:20px 0 24px;max-width:36ch}
.social-row{display:flex;gap:11px}
.social-row a{width:42px;height:42px;background:var(--red);display:flex;align-items:center;justify-content:center;color:var(--white);
  -webkit-tap-highlight-color:transparent;transition:background-color .15s}
.social-row a:active{background:var(--red-dark)}
@media(hover:hover){.social-row a:hover{background:var(--red-dark)}}
.foot-office{margin-bottom:16px}
.foot-office b{color:var(--ink);display:block;margin-bottom:3px}
.foot-office b a{color:inherit}
.foot-office span{font-size:14px;color:var(--muted);display:block}
/* newsletter: the sign-up under the contact details, compact enough to hold one row */
/* its margin collapses into the contact block's 16px: 26px is the gap the design shows */
.foot-news{margin-top:26px}
.foot-grid .foot-news h4{margin-bottom:10px}
.foot-news__text{margin:0 0 18px;max-width:36ch;line-height:1.55}
.foot-news__form{display:flex;flex-wrap:wrap;gap:12px;align-items:stretch}
.foot-news__form input[type=email]{flex:1 1 150px;min-width:0;min-height:46px;margin:0;padding:0 14px;
  border:1px solid var(--line);border-radius:0;background:var(--white);color:var(--ink);font:inherit;font-size:16px;
  -webkit-appearance:none;appearance:none;box-shadow:none;transition:border-color .15s}
.foot-news__form input[type=email]::placeholder{color:var(--muted);opacity:1}
.foot-news__form input[type=email]:focus{border-color:var(--ink)}
.foot-news__form .btn{flex:0 0 auto;justify-content:center;min-height:46px;padding:0 18px;font-size:14px;gap:10px}
.foot-news__form .btn svg{width:16px;height:16px}
/* the honeypot: there for bots, invisible to people and to assistive technology */
.foot-news__hp{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.foot-news__legal{margin:18px 0 0;font-size:12px;line-height:1.6;color:var(--muted)}
.foot-news__legal a{text-decoration:underline;text-underline-offset:2px}
.foot-news__note{margin:0 0 14px;padding:12px 16px;background:var(--white);border-left:3px solid var(--charcoal);
  color:var(--ink);font-size:14px;line-height:1.55}
.foot-news__note--err{border-left-color:var(--red)}
.legal-bar{border-top:1px solid var(--line);padding:24px 0;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:14px;color:var(--muted)}
/* where the page meets the screen edge, the right-hand links stop short of the back-to-top
   button (80px from the edge) instead of sitting under it; on a wide screen, already clear */
.legal-bar{padding-right:max(0px,calc(88px - (100vw - min(100vw,var(--container))) / 2 - var(--pad)))}
/* each link's target reaches 10px above and below its words, so wrapped rows keep 20px apart;
   a dot, which is no part of any target, sits between neighbours */
.legal-links{display:flex;flex-wrap:wrap;gap:20px 19px}
.legal-links a{position:relative;display:inline-block;padding:10px 0;margin:-10px 0}
.legal-links a+a::before{content:"\00B7";position:absolute;left:-12px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}
.legal-links a:active{color:var(--ink)}
@media(hover:hover){.legal-links a:hover{color:var(--ink)}}
/* touch: footer links stack a fingertip apart, the social squares grow to 44px */
@media(pointer:coarse){
  .foot-grid ul{gap:0}
  .foot-grid ul a{padding:9px 0}
  .foot-office a{display:inline-block;padding:8px 0}
  .social-row a{width:44px;height:44px}
}

@media(max-width:1200px){
  .foot-grid{grid-template-columns:1fr 1fr;gap:40px}
}
@media(max-width:640px){
  .foot-grid{grid-template-columns:1fr;gap:34px}
  .foot-news__form .btn{flex:1 1 100%}
  .legal-bar{flex-direction:column;gap:6px;padding-bottom:25px;padding-right:0}
  .legal-bar{padding-bottom:calc(max(14px,env(safe-area-inset-bottom)) + 11px)}
  .legal-bar .legal-links{padding-right:64px}
}
