/* RDK Geo public product site. P01 controls and current brand; independent from app CSS. */
.rsite { --paper:#F7F8F5; --ink:#1E1E1E; --muted:#555A53; --line:#E0E1DC; --terra:#D26E29; --terra-text:#9D4717; --signal:#8DD229; margin:0; color:var(--ink); background:var(--paper); font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; font-size:16px; line-height:1.6; }
.rsite *, .rsite *::before, .rsite *::after { box-sizing:border-box; }
.rsite a { color:inherit; text-underline-offset:4px; }
.rsite a, .rsite button { -webkit-tap-highlight-color:transparent; }
.rsite :focus-visible { outline:3px solid var(--terra); outline-offset:5px; }
.rsite img { max-width:100%; height:auto; }
.rsite svg { flex-shrink:0; }
.rsite h1,.rsite h2,.rsite h3,.rsite p { margin:0; }
.rsite h1 { font-size:clamp(38px,4.6vw,64px); line-height:1.06; letter-spacing:-.055em; font-weight:650; text-wrap:balance; }
.rsite h2 { font-size:clamp(30px,3.4vw,46px); line-height:1.14; letter-spacing:-.04em; font-weight:620; text-wrap:balance; }
.rsite h3 { font-size:21px; line-height:1.3; letter-spacing:-.018em; font-weight:600; }
.rsite .site-wrap { width:min(1200px,calc(100% - 80px)); margin-inline:auto; }
.rsite .site-kicker { color:var(--terra-text); font-size:12px; font-weight:650; letter-spacing:.1em; text-transform:uppercase; margin-bottom:15px; }
.rsite .site-lede { color:var(--muted); font-size:clamp(17px,1.7vw,20px); line-height:1.65; max-width:660px; }
.rsite .site-btn { display:inline-flex; gap:22px; align-items:center; justify-content:center; min-height:56px; padding:14px 23px; border:1px solid var(--ink); border-radius:10px; text-decoration:none; font-size:15px; font-weight:600; transition:background .2s, color .2s; }
.rsite .site-btn-primary { background:var(--terra); border-color:var(--terra); color:var(--ink); }
.rsite .site-btn-primary:hover { background:#E17E36; }
.rsite .site-btn-secondary:hover { background:var(--ink); color:var(--paper); }
.rsite .site-actions { display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin-top:28px; }
.rsite .site-link { display:inline-flex; gap:15px; align-items:center; min-height:44px; font-weight:550; }
.rsite .site-skip { position:absolute; left:20px; top:-100px; z-index:30; background:var(--ink); color:white; padding:15px; }
.rsite .site-skip:focus { top:10px; }
.rsite-header { position:sticky; top:0; z-index:20; background:#F7F8F5; border-bottom:1px solid #E0E1DC; font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; color:#1E1E1E; }
.rsite-header * { box-sizing:border-box; }
.rsite-header-inner { min-height:80px; width:min(1320px,calc(100% - 64px)); margin:auto; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.rsite-brand { min-height:44px; display:inline-flex; align-items:center; gap:10px; font-size:19px; letter-spacing:-.04em; text-decoration:none; white-space:nowrap; color:inherit; }
.rsite-brand svg { width:34px; height:36px; }
.rsite-nav { display:flex; gap:27px; align-items:center; }
.rsite-nav a { text-decoration:none; color:#555A53; font-size:14px; min-height:44px; display:flex; align-items:center; }
.rsite-nav a:hover,.rsite-nav a[aria-current=page] { color:#9D4717; }
.rsite-login { padding-left:21px; border-left:1px solid #E0E1DC; }
.rsite-nav a.rsite-contact { background:#1E1E1E; color:#F7F8F5; border-radius:10px; padding:10px 17px; min-height:46px; }
.rsite-header a:focus-visible,.rsite-header summary:focus-visible { outline:3px solid #D26E29; outline-offset:4px; }
.rsite-menu { display:none; }
.rsite .site-hero { padding:38px 0 30px; text-align:center; }
.rsite .site-hero h1 { max-width:950px; margin:auto; }
.rsite .site-hero .site-lede { margin:20px auto 0; max-width:620px; }
.rsite .site-hero .site-actions { justify-content:center; margin-top:25px; }
.rsite .site-hero strong { color:var(--terra-text); font-weight:inherit; }
.rsite .site-demo-wrap { margin:28px auto 0; text-align:left; }
.rsite .site-section { padding-block:100px; }
.rsite .site-section-head { display:flex; align-items:flex-end; justify-content:space-between; gap:35px; margin-bottom:44px; }
.rsite .site-section-head p { color:var(--muted); max-width:440px; }
.rsite .site-features { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:34px; }
.rsite .site-feature { border-top:1px solid var(--line); padding-top:25px; }
.rsite .site-feature p { margin-top:13px; color:var(--muted); font-size:16px; }
.rsite .site-feature .site-link { font-size:14px; margin-top:16px; }
.rsite .site-icon { display:block; width:32px; height:32px; color:var(--terra-text); margin-bottom:20px; }
.rsite .site-icon svg { width:100%; height:100%; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.rsite .site-dark { background:var(--ink); color:var(--paper); }
.rsite .site-dark .site-kicker { color:#EAA36E; }
.rsite .site-dark .site-lede,.rsite .site-dark p { color:#C4C9C5; }
.rsite .site-split { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
.rsite .site-split h2 { margin-bottom:22px; }
.rsite .site-split .site-link { margin-top:22px; }
.rsite .site-data-stack { position:relative; padding:40px; border:1px solid #4A4F49; }
.rsite .site-data-label { color:#C4C9C5; font-size:12px; letter-spacing:.1em; text-transform:uppercase; margin-bottom:24px; }
.rsite .site-data-row { display:flex; align-items:center; gap:18px; padding:19px 0; border-top:1px solid #4A4F49; }
.rsite .site-data-row > span:first-child { color:#EAA36E; font-family:ui-monospace,monospace; font-size:12px; }
.rsite .site-data-row div { flex:1; }
.rsite .site-data-row strong { display:block; font-size:19px; font-weight:500; }
.rsite .site-data-row small { color:#C4C9C5; }
.rsite .site-check { color:var(--signal); font-size:18px; }
.rsite .site-note { font-size:13px; color:var(--muted); margin-top:22px; }
.rsite .site-team-diagram { display:grid; grid-template-columns:1fr 1fr; gap:20px; padding:36px; background:#EFEFEC; }
.rsite .site-team-node { background:#FFF; border:1px solid var(--line); padding:25px 20px; }
.rsite .site-team-node svg { width:38px; height:38px; margin-bottom:24px; fill:none; stroke:var(--terra-text); stroke-width:1.4; }
.rsite .site-team-node strong { display:block; font-size:20px; }
.rsite .site-team-node small { color:var(--muted); }
.rsite .site-team-flow { grid-column:1/-1; border-top:1px solid #C4C9C5; padding-top:20px; text-align:center; font-size:14px; color:var(--muted); }
.rsite .site-app-band { border-block:1px solid var(--line); padding:48px 0; display:flex; align-items:center; justify-content:space-between; gap:40px; }
.rsite .site-app-band h2 { font-size:32px; }
.rsite .site-app-band p { color:var(--muted); margin-top:10px; }
.rsite .site-help-links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; }
.rsite .site-help-link { text-decoration:none; border-top:1px solid var(--line); padding-top:20px; }
.rsite .site-help-link strong { display:flex; justify-content:space-between; font-size:21px; font-weight:600; }
.rsite .site-help-link p { margin-top:12px; color:var(--muted); }
.rsite .site-help-link:hover strong { color:var(--terra-text); }
.rsite-footer { background:#EFEFEC; padding:65px 0 24px; color:#1E1E1E; font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; font-size:14px; line-height:1.6; }
.rsite-footer * { box-sizing:border-box; }
.rsite-footer-inner { width:min(1200px,calc(100% - 80px)); margin:auto; }
.rsite-footer-grid { display:grid; grid-template-columns:2fr repeat(3,1fr); gap:50px; }
.rsite-footer p { color:#555A53; max-width:280px; margin-top:16px; }
.rsite-footer h2 { font-size:13px; font-weight:650; margin:0 0 15px; letter-spacing:.04em; }
.rsite-footer nav a { display:block; min-height:44px; color:#555A53; text-decoration:none; }
.rsite-footer nav a:hover { color:#9D4717; text-decoration:underline; }
.rsite-footer :focus-visible { outline:3px solid #D26E29; outline-offset:3px; }
.rsite-footer-bottom { margin-top:50px; padding-top:22px; border-top:1px solid #C4C9C5; display:flex; justify-content:space-between; gap:20px; color:#555A53; font-size:12px; }
.rsite .site-page-intro { padding:78px 0 65px; border-bottom:1px solid var(--line); }
.rsite .site-page-intro h1 { max-width:850px; }
.rsite .site-page-intro .site-lede { margin-top:25px; }
.rsite .site-resource { display:grid; grid-template-columns:1fr 1.3fr; gap:100px; padding-block:65px; border-bottom:1px solid var(--line); }
.rsite .site-resource h2 { font-size:34px; }
.rsite .site-resource h3 { font-size:19px; margin-bottom:10px; }
.rsite .site-resource p { color:var(--muted); }
.rsite .site-resource ul { padding-left:21px; margin:20px 0; color:var(--muted); }
.rsite .site-resource li { margin-bottom:10px; }
.rsite .site-resource-list { display:grid; gap:27px; }
.rsite .site-resource-intro { max-width:360px; }
.rsite .site-resource-intro > p { margin-top:15px; }
.rsite .site-story { max-width:830px; margin:auto; }
.rsite .site-story p { color:var(--muted); font-size:19px; margin-top:24px; }
.rsite .site-story h2 { margin-top:50px; }
.rsite .site-principles { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:40px; margin-top:55px; }
.rsite .site-principles article { border-top:1px solid var(--line); padding-top:22px; }
.rsite .site-principles p { color:var(--muted); margin-top:12px; }
.rsite .site-contact-options { display:grid; grid-template-columns:1fr 1fr; gap:50px; }
.rsite .site-contact-options article { border-top:1px solid var(--line); padding-top:27px; }
.rsite .site-contact-options p { color:var(--muted); margin-top:18px; }
@media (max-width:1050px) { .rsite-nav { gap:17px; } .rsite .site-split { gap:40px; } .rsite .site-resource { gap:50px; } .rsite-header-inner { width:calc(100% - 40px); gap:15px; } }
@media (max-width:820px) {
 .rsite .site-wrap,.rsite-footer-inner { width:calc(100% - 40px); }
 .rsite-header-inner { min-height:68px; }
 .rsite-header-inner > .rsite-nav { display:none; }
 .rsite-menu { display:block; }
 .rsite-menu summary { list-style:none; display:flex; gap:13px; align-items:center; min-height:44px; padding:8px 0 8px 14px; cursor:pointer; font-size:14px; }
 .rsite-menu summary::-webkit-details-marker { display:none; }
 .rsite-menu summary svg { width:22px; height:22px; }
 .rsite-menu .rsite-nav { position:absolute; top:100%; left:0; right:0; display:flex; flex-direction:column; gap:0; align-items:stretch; padding:16px 20px 24px; background:#F7F8F5; border-bottom:1px solid #C4C9C5; box-shadow:0 16px 18px #1E1E1E0D; }
 .rsite-menu .rsite-nav a { min-height:48px; font-size:16px; }
 .rsite-menu .rsite-login { border:none; padding:0; }
 .rsite-menu .rsite-contact { justify-content:center; margin-top:12px; }
 .rsite .site-hero { padding-top:42px; }
 .rsite .site-section { padding-block:64px; }
 .rsite .site-features,.rsite .site-help-links,.rsite .site-principles { grid-template-columns:1fr; gap:30px; }
 .rsite .site-section-head,.rsite .site-app-band { flex-direction:column; align-items:flex-start; gap:25px; }
 .rsite .site-split,.rsite .site-resource,.rsite .site-contact-options { grid-template-columns:1fr; gap:36px; }
 .rsite .site-data-stack,.rsite .site-team-diagram { padding:25px; }
 .rsite .site-page-intro { padding:50px 0; }
 .rsite .site-resource { padding-block:45px; }
 .rsite-footer-grid { grid-template-columns:1fr 1fr; gap:35px; }
 .rsite-footer-grid > div { grid-column:1/-1; }
 .rsite-footer-bottom { flex-direction:column; gap:8px; }
}
@media (max-width:380px) { .rsite .site-actions { align-items:stretch; flex-direction:column; } .rsite .site-btn { width:100%; } .rsite .site-team-diagram { gap:10px; padding:16px; } .rsite .site-team-node { padding:18px 13px; } .rsite .site-team-node strong { font-size:17px; } }
@media (prefers-reduced-motion:reduce) { .rsite *, .rsite *::before, .rsite *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; } }
.guide-tools { width:min(1200px,calc(100% - 40px)); margin:auto; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:24px 0; }
.guide-tools-title { font-size:15px; font-weight:600; }
@media(max-width:540px) { .guide-tools { align-items:flex-start; flex-direction:column; gap:10px; } }
