/* ==========================================================================
   Site header (inc/02-header.php)
   Thin availability strip that scrolls away, then a sticky navy bar whose
   phone button is never hidden. Mobile menu = checkbox disclosure, no JS.
   ========================================================================== */

/* Skip link */
.rskip{
  position:absolute;left:-9999px;top:0;z-index:100;
  background:var(--signal,#d6000a);color:#fff;padding:.8rem 1.2rem;
  font:800 .85rem/1 "Archivo",system-ui,sans-serif;letter-spacing:.05em;text-transform:uppercase;
}
.rskip:focus{left:0}

/* --- Availability strip ------------------------------------------------- */
.rtop{background:var(--navy-900);color:var(--tx-inv-mute);font-size:var(--t-xs);font-weight:600}
.rtop .rwrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:2.4rem;flex-wrap:wrap}
.rtop__now{display:flex;align-items:center;gap:.5rem;color:#fff}
.rtop__dot{
  width:.5rem;height:.5rem;flex:none;background:var(--signal);
  box-shadow:0 0 0 0 rgba(214,0,10,.7);animation:rpulse 2s infinite;
}
.rtop__zone{color:var(--tx-inv-mute)}

/* --- Sticky bar --------------------------------------------------------- */
/* Not sticky: the phone lives in the fixed bottom call bar instead, which
   keeps the CTA reachable without a bar eating the top of every screen. */
.rhdr{
  position:relative;z-index:50;
  background:var(--ink);color:var(--tx-inv);
  border-bottom:1px solid var(--rule-inv);
}
.rhdr__bar{
  display:flex;align-items:center;gap:clamp(1rem,2vw,2.25rem);
  min-height:4.25rem;
}

/* Logo — official PNG, white lettering, for dark surfaces only */
.rimas .rlogo{display:block;width:auto;max-width:100%}
.rhdr__logo{display:inline-flex;align-items:center;flex:none}
.rhdr__logo .rlogo{height:38px}

/* Navigation */
.rhdr__nav{margin-left:auto;align-self:stretch}
.rhdr__nav > ul{display:flex;align-items:stretch;height:100%;gap:clamp(.9rem,1.6vw,1.9rem)}
.rhdr__nav > ul > li{display:flex;align-items:center;position:relative}
.rhdr__nav a{
  display:inline-flex;align-items:center;gap:.4rem;position:relative;padding:.35rem 0;
  font-size:var(--t-sm);font-weight:700;letter-spacing:.01em;color:var(--tx-inv);
  transition:color .16s var(--ease);
}
.rhdr__nav > ul > li > a::after{
  content:"";position:absolute;left:0;right:0;bottom:-.1rem;height:2px;
  background:var(--signal);transform:scaleX(0);transform-origin:left;
  transition:transform .18s var(--ease);
}
.rhdr__nav a:hover{color:#fff}
.rhdr__nav > ul > li > a:hover::after,
.rhdr__nav > ul > li > a[aria-current="page"]::after,
.rhdr__nav > ul > li.is-current > a::after{transform:scaleX(1)}
.rhdr__nav a[aria-current="page"],.rhdr__nav > ul > li.is-current > a{color:#fff}

/* Services dropdown — opens on hover and on keyboard focus, no JS */
.rhdr__caret{
  width:.4rem;height:.4rem;flex:none;border-right:2px solid currentColor;border-bottom:2px solid currentColor;
  transform:translateY(-2px) rotate(45deg);transition:transform .18s var(--ease);
}
.rhdr__sub{
  position:absolute;top:100%;left:-1rem;min-width:13rem;z-index:60;
  background:var(--navy-900);border:1px solid var(--rule-inv-2);
  padding:.35rem 0;
  /* Not visibility:hidden — that would drop the links out of the tab order and
     :focus-within could never fire. Transparent but focusable instead. */
  opacity:0;pointer-events:none;transform:translateY(-.35rem);
  transition:opacity .16s var(--ease),transform .16s var(--ease);
}
.rhdr__has-sub:hover > .rhdr__sub,
.rhdr__has-sub:focus-within > .rhdr__sub{opacity:1;pointer-events:auto;transform:translateY(0)}
.rhdr__has-sub:hover > a > .rhdr__caret,
.rhdr__has-sub:focus-within > a > .rhdr__caret{transform:translateY(1px) rotate(225deg)}
.rhdr__sub li{display:block}
.rhdr__sub a{display:block;padding:.62rem 1.1rem;font-weight:700;color:var(--tx-inv-mute)}
.rhdr__sub a:hover,.rhdr__sub a[aria-current="page"]{background:var(--ink-2);color:#fff}
.rhdr__sub a[aria-current="page"]{box-shadow:inset 3px 0 0 var(--signal)}

/* Phone */
.rhdr__actions{flex:none;display:flex;align-items:center;gap:.6rem}
.rimas .rhdr__tel{padding:.7rem 1.1rem;font-size:.95rem;letter-spacing:.01em}

/* Mobile disclosure – the checkbox stays focusable but invisible */
.rhdr__toggle{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}
.rhdr__burger{display:none}

@media (max-width:1040px){
  .rhdr__bar{flex-wrap:wrap;gap:.6rem .7rem;min-height:3.9rem}
  .rhdr__logo .rlogo{height:30px}

  .rhdr__burger{
    order:3;display:inline-flex;align-items:center;gap:.55rem;cursor:pointer;
    padding:.62rem .7rem;border:2px solid var(--rule-inv-2);color:var(--tx-inv);
    font-size:.7rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  }
  .rhdr__burger-tx{display:none}
  .rhdr__burger-box{display:grid;gap:3px;width:1rem}
  .rhdr__burger-box span{display:block;height:2px;background:currentColor;transition:transform .2s var(--ease),opacity .2s var(--ease)}
  .rhdr__toggle:focus-visible + .rhdr__burger{outline:3px solid var(--signal);outline-offset:2px}
  .rhdr__toggle:checked + .rhdr__burger{background:var(--signal);border-color:var(--signal);color:#fff}
  .rhdr__toggle:checked + .rhdr__burger .rhdr__burger-box span:nth-child(1){transform:translateY(5px) rotate(45deg)}
  .rhdr__toggle:checked + .rhdr__burger .rhdr__burger-box span:nth-child(2){opacity:0}
  .rhdr__toggle:checked + .rhdr__burger .rhdr__burger-box span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}

  .rhdr__actions{order:2;margin-left:auto}
  .rimas .rhdr__tel{padding:.6rem .8rem;font-size:.85rem;gap:.45rem}

  /* Panel: full width row under the bar, collapsed by default */
  .rhdr__nav{
    order:4;margin-left:0;flex:1 0 100%;
    display:grid;grid-template-rows:0fr;
    transition:grid-template-rows .22s var(--ease);
  }
  .rhdr__nav > ul{overflow:hidden;min-height:0;display:block;height:auto}
  .rhdr__toggle:checked ~ .rhdr__nav{grid-template-rows:1fr}
  .rhdr__nav > ul > li{display:block;border-top:1px solid var(--rule-inv)}
  .rhdr__nav a{display:block;padding:.85rem 0;font-size:1rem}
  .rhdr__nav > ul > li > a::after{display:none}
  .rhdr__nav a[aria-current="page"],.rhdr__nav > ul > li.is-current > a{color:var(--signal)}

  /* The submenu is simply nested and always visible inside the panel */
  .rhdr__caret{display:none}
  .rhdr__sub{
    position:static;opacity:1;visibility:visible;transform:none;
    background:transparent;border:0;padding:0 0 .5rem;
  }
  .rhdr__sub li{border-top:0}
  .rhdr__sub a{
    padding:.55rem 0 .55rem 1.15rem;font-size:.95rem;
    color:var(--tx-inv-mute);border-left:2px solid var(--rule-inv);
  }
  .rhdr__sub a[aria-current="page"]{background:transparent;border-left-color:var(--signal);box-shadow:none;color:var(--signal)}
}

@media (max-width:560px){
  .rtop__zone{display:none}
  .rtop .rwrap{min-height:2.1rem}
}
/* Below this the logo, the phone number and the burger stop fitting on one row,
   so the logo shrinks rather than the number: the number is the conversion. */
@media (max-width:460px){
  .rhdr__logo .rlogo{height:25px}
  .rimas .rhdr__tel{padding:.55rem .7rem;font-size:.8rem}
}

@media (prefers-reduced-motion:reduce){
  .rhdr__nav{transition:none}
}
