/* Rispri / shared navigation — native disclosures with progressive enhancement. */
.rl-header { --nav-ink:#102e36; --nav-teal:#006b67; position:sticky; top:0; z-index:1000; background:#fcfcf8; color:var(--nav-ink); border-bottom:1px solid #dce3df; font-family:Inter,Arial,sans-serif; }
.rl-header *, .rl-header *::before, .rl-header *::after { box-sizing:border-box; }
.rl-header-inner { position:relative; max-width:1500px; margin:auto; padding:19px 40px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.rl-brand { display:flex; align-items:center; gap:12px; text-decoration:none; flex-shrink:0; color:var(--nav-ink); }
.rl-brand img { width:44px; height:44px; object-fit:contain; filter:brightness(0) saturate(100%); }
.rl-brand strong { display:block; color:var(--nav-ink); font-size:23px; line-height:1.2; font-weight:750; letter-spacing:-1px; }
.rl-brand small { display:block; margin-top:5px; color:#526561; font-size:8px; font-weight:600; letter-spacing:1.15px; line-height:1.5; }
.rl-nav { display:flex; align-items:center; gap:5px; }
.rl-nav-group { position:static; }
.rl-nav-group summary, .rl-nav-link { display:flex; align-items:center; gap:8px; padding:13px 11px; color:var(--nav-ink); font-size:13px; line-height:1.5; font-weight:600; cursor:pointer; list-style:none; text-decoration:none; border-radius:0; white-space:nowrap; position:relative; }
.rl-nav-group summary::-webkit-details-marker { display:none; }
.rl-nav-group summary::after { content:'+'; font-size:15px; color:#53756d; font-weight:400; }
.rl-nav-group[open] summary::after { content:'−'; }
.rl-nav-group summary::before, .rl-nav-link::before { content:''; position:absolute; bottom:3px; left:11px; right:11px; height:2px; background:var(--nav-teal); transform:scaleX(0); transform-origin:left; transition:transform .22s; }
.rl-nav-group[open] summary::before, .rl-nav-group summary:hover::before, .rl-nav-link:hover::before { transform:scaleX(1); }
.rl-nav-group[open] summary, .rl-nav-group summary:hover, .rl-nav-link:hover { color:var(--nav-teal); }
.rl-nav-panel { position:absolute; top:100%; left:24px; right:24px; width:auto; display:grid; grid-template-columns:320px 1fr; padding:12px; border:1px solid #dce3df; border-top:0; background:#fcfcf8; box-shadow:0 35px 55px #0e302c22; max-height:calc(100dvh - 110px); overflow-y:auto; animation:rl-enter .22s ease-out; }
.rl-feature { position:relative; min-height:360px; overflow:hidden; background:#102e36; color:white; text-decoration:none; display:flex; align-items:flex-end; }
.rl-feature img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.35; transition:transform .6s; }
.rl-feature::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,transparent,#09282b 95%); }
.rl-feature:hover img { transform:scale(1.035); }
.rl-feature-content { position:relative; z-index:1; padding:30px; display:flex; flex-direction:column; gap:18px; }
.rl-header .rl-overline { margin:0; font:600 10px/1.5 Inter,Arial,sans-serif; letter-spacing:1.9px; text-transform:uppercase; color:#57706a; }
.rl-feature-content .rl-overline { color:#9be1ca; }
.rl-feature-content strong { font-size:34px; font-weight:500; line-height:1.07; letter-spacing:-1.4px; color:#fff; }
.rl-feature-content > span:not(.rl-overline) { font-size:13px; line-height:1.7; color:#c8dbd5; }
.rl-feature-content b { font-size:12px; font-weight:600; color:#b9f2d8; margin-top:8px; }
.rl-directory { padding:25px 30px 15px; display:flex; flex-direction:column; }
.rl-directory-links { display:grid; grid-template-columns:1fr 1fr; column-gap:30px; margin-top:17px; flex:1; align-content:start; }
.rl-directory-links > a { display:flex; align-items:center; gap:11px; padding:16px 0; border-bottom:1px solid #dce3df; color:var(--nav-ink); text-decoration:none; font-size:13px; line-height:1.5; font-weight:500; transition:color .2s; }
.rl-link-number { font-size:9px; color:#748a82; font-variant-numeric:tabular-nums; }
.rl-link-arrow { margin-left:auto; color:#649383; transition:transform .2s; }
.rl-directory-links > a:hover, .rl-directory-links > a[aria-current="page"] { color:var(--nav-teal); }
.rl-directory-links > a:hover .rl-link-arrow { transform:translate(2px,-2px); }
.rl-directory-links > a[aria-current="page"] { font-weight:750; }
.rl-panel-footer { margin-top:26px; display:flex; justify-content:space-between; gap:15px; font-size:11px; color:#687a73; }
.rl-panel-footer a { color:var(--nav-teal); font-weight:600; text-decoration:none; }
.rl-contact { display:inline-flex; gap:20px; align-items:center; margin-left:12px; padding:13px 19px; background:var(--nav-ink); color:#fff; border-radius:2px; text-decoration:none; font-size:12px; font-weight:600; white-space:nowrap; transition:background .2s; }
.rl-contact span { color:#9ae3c6; font-size:19px; line-height:1; }
.rl-contact:hover { background:#006b67; color:#fff; }
.rl-header :focus-visible { outline:2px solid #087e77; outline-offset:4px; }
.rl-menu-toggle { display:none; border:1px solid #bbc9c2; border-radius:2px; color:var(--nav-ink); background:transparent; padding:11px 14px; font:500 13px Inter,Arial,sans-serif; cursor:pointer; }
.rl-menu-toggle[hidden] { display:none; }
@keyframes rl-enter { from { opacity:0; transform:translateY(-8px); } to { opacity:1; transform:none; } }
@media (max-width:1200px) and (min-width:1101px) { .rl-header-inner { padding:16px 24px; gap:12px; } .rl-nav-group summary,.rl-nav-link { padding:12px 7px; font-size:12px; } .rl-brand small { font-size:7px; letter-spacing:.7px; } .rl-contact { margin-left:5px; padding:12px; } }
@media (max-width:1100px) {
 .rl-header-inner { flex-wrap:wrap; padding:15px 22px; gap:12px; }
 .rl-menu-toggle:not([hidden]) { display:inline-flex; align-items:center; gap:14px; }
 .rl-nav { flex-basis:100%; display:flex; flex-direction:column; align-items:stretch; max-height:calc(100dvh - 90px); overflow-y:auto; padding:6px 0 16px; }
 .rl-header[data-enhanced] .rl-nav { display:none; }
 .rl-header[data-enhanced][data-menu-open] .rl-nav { display:flex; }
 .rl-nav-group summary,.rl-nav-link { padding:15px 2px; justify-content:space-between; font-size:20px; letter-spacing:-.5px; border-bottom:1px solid #dce3df; }
 .rl-nav-panel { position:static; display:block; width:auto; max-height:none; padding:0; border:0; margin:5px 0 12px; box-shadow:none; }
 .rl-feature { display:none; }
 .rl-directory { padding:12px 4px; }
 .rl-directory-links { gap:0 22px; margin-top:8px; }
 .rl-directory-links > a { padding:13px 0; font-size:13px; }
 .rl-panel-footer { display:none; }
 .rl-contact { justify-content:space-between; margin:12px 0 0; padding:16px; font-size:14px; }
}
@media (max-width:540px) { .rl-directory-links { grid-template-columns:1fr; } .rl-brand strong { font-size:21px; } .rl-brand img { width:38px; height:38px; } .rl-brand small { font-size:6.5px; letter-spacing:.9px; } }
@media (prefers-reduced-motion:reduce) { .rl-header *, .rl-header *::before { animation:none!important; transition:none!important; } }
