/*! RP Theme — site header + navigation
    Generated from the approved R&P homepage. Do not hand-edit:
    change the homepage source and re-run the extractor. */
.site-header{background:var(--red);position:relative;z-index:40;transition:box-shadow .3s ease}
/* once the page is under way the header carries a soft shadow, lifting it off the content */
.site-header.is-pinned{box-shadow:0 8px 28px rgba(20,24,27,.14)}
/* desktop: the header scrolls away with the page at first, then after a short scroll slides
   back in, pinned to the top. It stays in the page flow throughout (sticky, never fixed), so
   nothing beneath it moves when it pins, and the slide is a transform, so nothing reflows */
@media(min-width:1201px){
  .site-header.is-pinned{position:sticky;top:0;top:var(--wp-admin--admin-bar--height,0px);
    animation:rpHeaderIn .45s cubic-bezier(.22,.61,.36,1)}
  .site-header.is-pinned.is-instant{animation:none}
}
@keyframes rpHeaderIn{from{transform:translateY(-100%)}to{transform:translateY(0)}}
/* vertical padding only: a `padding:17px 0` shorthand here used to cancel the container's
   side gutters, pinning the logo and menu button to the screen edges below 1300px */
.header-row{display:flex;align-items:center;justify-content:space-between;gap:32px;padding-top:17px;padding-bottom:17px}
.logo img{height:52px;width:auto}
.nav{display:flex;align-items:center;gap:30px}
.nav a{color:var(--white);font-size:15px;font-weight:500}
/* a tablet in landscape gets the desktop nav: give its words a fingertip of height */
.nav a:not(.btn){position:relative;padding:10px 0;-webkit-tap-highlight-color:transparent}
/* the menu words underline in white as the pointer arrives, the line drawn out from the left */
.nav>a:not(.btn)::after,.nav-item>a::after{content:"";position:absolute;left:0;right:0;bottom:6px;height:2px;
  background:var(--white);transform:scaleX(0);transform-origin:left center;transition:transform .32s cubic-bezier(.22,.61,.36,1)}
.nav>a:not(.btn):focus-visible::after,.nav>a:not(.btn):active::after,
.nav-item>a:focus-visible::after,.nav-item>a:active::after,.nav-item.is-open>a::after{transform:scaleX(1)}
@media(hover:hover){.nav>a:not(.btn):hover::after,.nav-item:hover>a::after{transform:scaleX(1)}}
/* dropdowns: the parent word stays a link; the chevron beside it is the button that opens its
   menu for a keyboard, a screen reader or a touch screen, and a pointer simply hovers */
.nav-item{display:flex;align-items:center}
.nav-toggle{display:flex;align-items:center;justify-content:center;width:22px;height:40px;margin-left:3px;padding:0;
  background:transparent;border:0;color:var(--white);cursor:pointer;-webkit-tap-highlight-color:transparent}
.nav-toggle .ico,.mnav-toggle .ico{stroke-width:2;transition:transform .28s cubic-bezier(.22,.61,.36,1)}
.nav-item.is-open>.nav-toggle .ico{transform:rotate(180deg)}
@media(hover:hover){.nav-item:hover>.nav-toggle .ico{transform:rotate(180deg)}}
/* the menu hangs from the header's lower edge (the header row is its containing block), lined
   up under its word; it fades and rises in, and lingers a moment as the pointer leaves */
.nav-sub{position:absolute;top:100%;z-index:5;min-width:240px;margin-left:-24px;padding:10px 0;background:var(--white);
  box-shadow:0 24px 48px rgba(20,24,27,.16);opacity:0;visibility:hidden;transform:translateY(8px);
  transition:opacity .2s ease .08s,transform .24s cubic-bezier(.22,.61,.36,1) .08s,visibility 0s linear .32s}
/* a strip above the menu bridges the gap from its word, so the pointer never falls through */
.nav-sub::before{content:"";position:absolute;left:0;right:0;bottom:100%;height:28px}
.nav-item.is-open>.nav-sub{opacity:1;visibility:visible;transform:none;transition-delay:0s}
@media(hover:hover){.nav-item:hover>.nav-sub{opacity:1;visibility:visible;transform:none;transition-delay:0s}}
.nav .nav-sub a{display:block;padding:11px 24px;color:var(--ink);font-size:15px;white-space:nowrap;
  transition:background-color .15s,box-shadow .15s}
.nav .nav-sub a:active{background:var(--gray-soft);box-shadow:inset 3px 0 0 var(--red)}
@media(hover:hover){.nav .nav-sub a:hover{background:var(--gray-soft);box-shadow:inset 3px 0 0 var(--red)}}
.nav .nav-sub a:focus-visible{outline:3px solid var(--red);outline-offset:-3px}
.burger{display:none;background:transparent;border:1px solid rgba(255,255,255,.6);color:var(--white);
  width:44px;height:44px;align-items:center;justify-content:center;cursor:pointer;
  -webkit-tap-highlight-color:transparent;transition:background-color .15s}
.burger:active{background:rgba(255,255,255,.14)}
.burger .burger__close,.burger[aria-expanded="true"] .burger__open{display:none}
.burger[aria-expanded="true"] .burger__close{display:inline}
/* the mobile drawer: a charcoal panel that slides in from the left over a dimmed,
   softly blurred page, under a red brand line. It carries the logo and its own close
   button, the menu set large in the display face, and the ways to reach the firm.
   The panel is out of view and out of the tab order (visibility) until it opens */
.mnav{display:none;position:fixed;top:0;left:0;bottom:0;z-index:4;width:min(420px,88vw);flex-direction:column;
  background:var(--charcoal-deep);border-top:3px solid var(--red);box-shadow:30px 0 70px rgba(0,0,0,.34);
  overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
  transform:translateX(-102%);visibility:hidden;
  transition:transform .55s cubic-bezier(.77,0,.18,1),visibility 0s linear .55s}
.mnav.is-open{transform:none;visibility:visible;transition:transform .55s cubic-bezier(.77,0,.18,1),visibility 0s}
/* while it is open the header rises over everything on the page (the back-to-top
   button, the WordPress toolbar) and the page beneath stops scrolling */
html.mnav-open,html.mnav-open body{overflow:hidden}
html.mnav-open .site-header{z-index:100000}
/* the dimmed layer over the page (added by the script): a tap on it only closes the
   drawer, so a thumb reaching past the menu never opens whatever lies beneath */
.mnav-shade{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3;cursor:pointer;
  background:rgba(12,15,18,.58);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);
  opacity:0;visibility:hidden;transition:opacity .45s ease,visibility 0s linear .45s;-webkit-tap-highlight-color:transparent}
.mnav-shade.is-on{opacity:1;visibility:visible;transition:opacity .45s ease,visibility 0s}
.mnav__head{display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:16px var(--pad);border-bottom:1px solid rgba(255,255,255,.09)}
.mnav__logo img{height:46px;width:auto}
.mnav__close{display:flex;align-items:center;justify-content:center;flex:none;width:44px;height:44px;padding:0;
  background:transparent;border:1px solid rgba(255,255,255,.3);color:var(--white);cursor:pointer;
  -webkit-tap-highlight-color:transparent;transition:background-color .2s,border-color .2s}
.mnav__close .ico{transition:transform .5s cubic-bezier(.22,.61,.36,1)}
.mnav.is-open .mnav__close .ico{transform:rotate(90deg)}
.mnav__close:active{background:rgba(255,255,255,.1)}
@media(hover:hover){.mnav__close:hover{border-color:var(--white)}}
.mnav__list{flex:1 0 auto;padding:10px 0 18px}
/* the top-level words: the display face, a fingertip and more tall, a red bar drawn
   down their left edge for the page in hand and as they are pressed */
.mnav__list>a,.mnav-item>a{position:relative;display:flex;align-items:center;min-height:58px;padding:10px var(--pad);
  font-family:"Playfair Display",Georgia,serif;font-size:21px;font-weight:500;line-height:1.25;color:var(--white);
  border-bottom:1px solid rgba(255,255,255,.08);-webkit-tap-highlight-color:transparent;transition:background-color .2s}
.mnav__list>a::before,.mnav-item>a::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;
  background:var(--red);transform:scaleY(0);transition:transform .3s cubic-bezier(.22,.61,.36,1)}
.mnav__list>a[aria-current]::before,.mnav-item>a[aria-current]::before,
.mnav__list>a:active::before,.mnav-item>a:active::before{transform:scaleY(1)}
.mnav__list>a:active,.mnav-item>a:active{background:rgba(255,255,255,.04)}
@media(hover:hover){.mnav__list>a:hover::before,.mnav-item>a:hover::before{transform:scaleY(1)}
  .mnav__list>a:hover,.mnav-item>a:hover{background:rgba(255,255,255,.04)}}
/* each word steps in after the panel, one after another; closing needs no delay */
.mnav__list>*,.mnav__foot{opacity:0;transform:translateX(-18px);
  transition:opacity .35s ease,transform .5s cubic-bezier(.22,.61,.36,1)}
.mnav.is-open .mnav__list>*,.mnav.is-open .mnav__foot{opacity:1;transform:none}
.mnav.is-open .mnav__list>:nth-child(1){transition-delay:.14s}
.mnav.is-open .mnav__list>:nth-child(2){transition-delay:.19s}
.mnav.is-open .mnav__list>:nth-child(3){transition-delay:.24s}
.mnav.is-open .mnav__list>:nth-child(4){transition-delay:.29s}
.mnav.is-open .mnav__list>:nth-child(5){transition-delay:.34s}
.mnav.is-open .mnav__list>:nth-child(6){transition-delay:.39s}
.mnav.is-open .mnav__list>:nth-child(n+7){transition-delay:.44s}
.mnav.is-open .mnav__foot{transition-delay:.46s}
/* a parent's own link fills its row; the square at the row's end opens the pages
   beneath it, filling red while they show */
.mnav-item{position:relative}
.mnav-item.has-sub>a{padding-right:calc(var(--pad) + 58px)}
.mnav-toggle{position:absolute;top:7px;right:calc(var(--pad) - 6px);display:flex;align-items:center;justify-content:center;
  width:44px;height:44px;padding:0;background:transparent;border:1px solid rgba(255,255,255,.2);color:var(--white);cursor:pointer;
  -webkit-tap-highlight-color:transparent;transition:background-color .2s,border-color .2s}
.mnav-toggle:active{background:rgba(255,255,255,.1)}
.mnav-item.is-open>.mnav-toggle{background:var(--red);border-color:var(--red)}
.mnav-item.is-open>.mnav-toggle .ico{transform:rotate(180deg)}
.mnav-sub{display:none;padding:6px 0 14px;background:rgba(255,255,255,.03);border-bottom:1px solid rgba(255,255,255,.08)}
.mnav-item.is-open>.mnav-sub{display:block;animation:rpSubIn .32s cubic-bezier(.22,.61,.36,1)}
@keyframes rpSubIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.mnav .mnav-sub a{display:flex;align-items:center;gap:14px;min-height:46px;padding:8px var(--pad) 8px calc(var(--pad) + 2px);
  font-size:15.5px;font-weight:500;color:rgba(255,255,255,.74);-webkit-tap-highlight-color:transparent;transition:color .2s}
.mnav .mnav-sub a::before{content:"";flex:none;width:14px;height:1px;background:rgba(255,255,255,.38);
  transition:width .25s cubic-bezier(.22,.61,.36,1),background-color .25s}
.mnav .mnav-sub a[aria-current],.mnav .mnav-sub a:active{color:var(--white)}
.mnav .mnav-sub a[aria-current]::before,.mnav .mnav-sub a:active::before{width:22px;background:var(--red)}
@media(hover:hover){.mnav .mnav-sub a:hover{color:var(--white)}
  .mnav .mnav-sub a:hover::before{width:22px;background:var(--red)}}
/* the ways to reach the firm, closing the panel */
.mnav__foot{display:grid;gap:6px;padding:24px var(--pad) 30px;padding-bottom:calc(30px + env(safe-area-inset-bottom));
  border-top:1px solid rgba(255,255,255,.09)}
.mnav__label{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.52);margin-bottom:4px}
.mnav__line{display:flex;align-items:center;gap:12px;min-height:40px;font-size:15px;color:var(--white);
  -webkit-tap-highlight-color:transparent;transition:opacity .2s}
.mnav__line .ico{color:rgba(255,255,255,.6);flex:none}
.mnav__line:active{opacity:.7}
.mnav__foot .btn{justify-content:center;margin-top:12px}
@supports(padding:max(0px)){
  .mnav__head,.mnav__list>a,.mnav-item>a,.mnav__foot{padding-left:max(var(--pad),env(safe-area-inset-left))}
}

@media(max-width:1200px){
  .site-header{position:sticky;top:0;top:var(--wp-admin--admin-bar--height,0px)}
  .nav{display:none}
  .burger{display:flex}
  .mnav{display:flex}
}
@media(max-width:640px){
  .site-header{top:0}
}
