body:has(> #ry-app) { margin:0; height:100vh; height:100dvh; display:flex; flex-direction:column; overflow:hidden; }
#ry-app { position:relative; flex:1 1 0; min-height:0; width:100%; }
#ry-legal { position:relative; flex:none; font:500 13px/1.45 "Avenir Next",Arial,sans-serif; color:#dce8f1; background:#08121d; text-align:left; }
#ry-legal *,#ry-legal { box-sizing:border-box; }
#ry-legal [hidden] { display:none!important; }
#ry-legal .ry-footer,#ry-legal .ry-notice { display:flex; gap:8px 24px; align-items:center; justify-content:center; flex-wrap:wrap; padding:8px 16px; margin:0; border:0; border-top:1px solid #29404e; background:#08121d; color:#c9d9e3; }
#ry-legal .ry-footer { padding-bottom:max(8px,env(safe-area-inset-bottom)); }
#ry-legal .ry-footer nav,#ry-legal .ry-buttons { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:4px 16px; }
#ry-legal a { color:#80e8f4; font:inherit; text-decoration:underline; text-underline-offset:3px; }
#ry-legal .ry-footer a.ry-developer { color:#76baff; font-weight:700; }
#ry-legal .ry-footer a.ry-developer:hover { color:#aad6ff; }
#ry-legal .ry-notice { background:#142a36; }
#ry-legal button { background:transparent; color:#daedf4; font-weight:600;line-height:1.4; font-family:inherit; font-size:13px; cursor:pointer; border:1px solid #617b89; border-radius:8px; min-height:36px; padding:6px 12px; }
#ry-legal button[data-choice="accept"] { color:#04111b; background:#60e4f6; border-color:#60e4f6; font-weight:700; }
#ry-legal :is(a,button):focus-visible { outline:3px solid #7fe7c4; outline-offset:2px; }
body:not(:has(> #ry-app)) #ry-legal .ry-notice { position:fixed; z-index:20; bottom:0; left:0; right:0; padding-bottom:max(8px,env(safe-area-inset-bottom)); }
body:not(:has(> #ry-app)) #ry-legal { padding-bottom:var(--ry-notice-height,0px); }
body:has(#download-dock) #ry-legal { margin-bottom:8rem; }
@media(max-width:600px) { #ry-legal .ry-notice,#ry-legal .ry-footer { gap:4px 12px; text-align:center; } #ry-legal .ry-footer { font-size:11px; } #ry-legal .ry-footer nav { gap:4px 10px; } }
@media(max-height:430px) { #ry-legal .ry-notice,#ry-legal .ry-footer { padding-block:3px; } }
@media print { #ry-legal .ry-notice { display:none!important; } }

.contact-directory {max-width:50rem;margin-inline:auto;padding-block:2.5rem;}
.contact-directory section {padding-block:1.25rem;}
.contact-directory h2 {font-size:clamp(1.35rem,3vw,1.85rem);}
