/* ============================================================
   v3 site.css: tokens and shared components for the redesigned
   public site. Ported from Wireframes\Website\site.css plus the
   shared parts of homepage-command.html and
   internal-page-prototype.html.

   Naming: every class starts rt-. Shared components are rt-<name>;
   page-only classes live in pages\<page>.css as rt-<page>-<name>.
   Modifiers and states are prefixed too (rt-btn-ghost, rt-on,
   rt-open), so nothing here can meet a bare class from the v2
   styles or the portal.

   Every rule is class-scoped. Element-level type lives in base.css,
   which is skipped in legacy mode, so the header, offer and footer
   must stand on their own: they set their own font, colors and
   link colors rather than inheriting them.

   Mobile first; desktop from 900px; full nav from 1000px.
   ============================================================ */

:root{
  --rt-slate:#3d5a7a;--rt-slate-deep:#2f4762;
  --rt-red:#dc2626;--rt-red-lit:#ff5a5f;
  --rt-ink:#0f172a;--rt-body:#475569;--rt-muted:#64748b;
  --rt-line:#e2e8f0;--rt-soft:#f8fafc;
  --rt-night:#0c1626;--rt-night-2:#15233a;--rt-night-line:#27395a;
  --rt-ok:#15803d;
  --rt-font:'Inter',-apple-system,'Segoe UI',sans-serif;
  --rt-serif:'Fraunces',Georgia,serif;
  --rt-mono:ui-monospace,Consolas,menlo,monospace;
}

/* ── layout + small parts ───────────────────────────────────── */
.rt-in{max-width:1160px;margin:0 auto;padding:0 20px}
.rt-narrow{max-width:820px}
.rt-eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--rt-slate)}
.rt-dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--rt-red-lit);animation:rt-beat 1.8s infinite}
@keyframes rt-beat{0%{box-shadow:0 0 0 0 rgba(255,90,95,.55)}70%{box-shadow:0 0 0 10px rgba(255,90,95,0)}100%{box-shadow:0 0 0 0 rgba(255,90,95,0)}}
.rt-btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 22px;border-radius:10px;border:1px solid var(--rt-slate);background:var(--rt-slate);color:#fff;font-family:var(--rt-font);font-weight:700;font-size:15px;line-height:1.2;text-decoration:none;white-space:nowrap;cursor:pointer}
.rt-btn:hover{background:var(--rt-slate-deep);color:#fff}
.rt-btn-ghost{background:#fff;color:var(--rt-slate)}
.rt-btn-ghost:hover{background:var(--rt-soft);color:var(--rt-slate)}
.rt-btn-light{background:#fff;color:var(--rt-night);border-color:#fff}
.rt-btn-light:hover{background:#e8edf4;color:var(--rt-night);border-color:#e8edf4}
.rt-btn-line{background:transparent;color:#fff;border-color:#5b7093}
.rt-btn-line:hover{background:transparent;color:#fff;border-color:#fff}
.rt-link{font-weight:700;font-size:14.5px;color:var(--rt-slate);text-decoration:none}
.rt-link:hover{text-decoration:underline;color:var(--rt-slate)}
.rt-lede{font-size:17px;max-width:60ch;margin-top:10px}
.rt-fine{font-size:13px;color:var(--rt-muted)}

/* ── header ─────────────────────────────────────────────────── */
/* Scrolls away on phones so a page's own rail can stick; sticky from
   900px. .rt-nav-stick keeps it sticky at every width (homepage). */
.rt-nav{position:relative;z-index:20;background:var(--rt-night);border-bottom:1px solid var(--rt-night-line);font-family:var(--rt-font);line-height:1.55}
.rt-nav.rt-nav-stick{position:sticky;top:0;background:rgba(12,22,38,.95);backdrop-filter:blur(8px)}
.rt-nav .rt-in{display:flex;align-items:center;gap:18px;height:62px}
.rt-logo{display:block;line-height:0}
.rt-logo img{display:block;height:32px;width:auto;max-width:none}
.rt-links{display:none;gap:24px;margin-left:18px;font-size:14px;font-weight:500}
.rt-links a{color:#d5deeb;text-decoration:none;padding:4px 0}
.rt-links a:hover{color:#fff}
.rt-links a.rt-on{color:#fff;font-weight:700;box-shadow:0 2px 0 var(--rt-red-lit)}
.rt-nav-cta{margin-left:auto;display:flex;align-items:center;gap:16px}
.rt-nav-cta .rt-signin{display:none;font-size:14px;font-weight:600;text-decoration:none;color:#fff}
.rt-nav-cta .rt-signin:hover{color:#fff;text-decoration:underline}
.rt-nav-cta .rt-btn{display:none;min-height:40px;padding:0 16px;font-size:14px}
.rt-burger{display:grid;place-items:center;width:44px;height:44px;margin-right:-10px;background:none;border:0;padding:0;cursor:pointer}
.rt-burger i{display:block;width:22px;height:14px;border-top:2px solid #fff;border-bottom:2px solid #fff;position:relative}
.rt-burger i:after{content:"";position:absolute;left:0;right:0;top:4px;border-top:2px solid #fff}
.rt-menu{display:none;position:absolute;left:0;right:0;top:100%;background:var(--rt-night);border-bottom:1px solid var(--rt-night-line);padding:8px 20px 18px}
.rt-nav.rt-open .rt-menu{display:block}
.rt-menu a{display:block;padding:13px 0;border-bottom:1px solid var(--rt-night-line);text-decoration:none;font-weight:600;color:#fff}
.rt-menu a:hover{color:#fff}
.rt-menu a.rt-on{color:var(--rt-red-lit)}
.rt-menu a.rt-menu-sub{padding-left:16px;font-weight:500;color:#c7d5e8}

/* ── page hero ──────────────────────────────────────────────── */
.rt-hero{position:relative;background:var(--rt-night);color:#fff;overflow:hidden}
.rt-hero-bg{position:absolute;inset:0;background:url(../img/sacramento-dusk.jpg) center 30%/cover no-repeat;filter:brightness(1.2)}
.rt-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,22,38,.94) 30%,rgba(12,22,38,.62))}
.rt-hero .rt-in{position:relative;z-index:1;padding-top:28px;padding-bottom:34px}
.rt-hero .rt-eyebrow{color:#c7d5e8}
.rt-hero h1{color:#fff;margin-top:12px}
.rt-hero h1 em{display:block;color:var(--rt-red-lit)}
.rt-hero .rt-sub{font-size:17px;color:#d5deeb;max-width:54ch;margin-top:14px}
.rt-hero-cta{display:none;gap:12px;margin-top:24px;flex-wrap:wrap}

/* ── sections ───────────────────────────────────────────────── */
.rt-sec{padding:44px 0;border-bottom:1px solid var(--rt-line)}
.rt-sec-alt{background:var(--rt-soft)}
.rt-sec-dark{background:radial-gradient(ellipse at 15% 20%,#1b2944 0,transparent 55%),radial-gradient(ellipse at 90% 100%,#2a1a26 0,transparent 45%),var(--rt-night);color:#d5deeb;border-bottom-color:var(--rt-night-line)}
.rt-sec-dark h2,.rt-sec-dark h3{color:#fff}
.rt-sec-dark .rt-eyebrow{color:#c7d5e8}
.rt-sec-dark em{color:var(--rt-red-lit)}
.rt-sec-dark .rt-ticks li{color:#fff;border-top-color:var(--rt-night-line)}
.rt-sec-dark .rt-ticks li:before{border-color:var(--rt-red-lit)}
.rt-sec-dark .rt-practice{background:rgba(255,255,255,.05);color:#e2e8f0;border-left-color:var(--rt-red-lit)}
.rt-sec-dark .rt-practice small{color:var(--rt-red-lit)}
.rt-sec-dark .rt-practice-t{color:#fff}
.rt-sec-dark .rt-card{background:var(--rt-night-2);border-color:var(--rt-night-line)}
.rt-sec-dark .rt-card p{color:#c7d2e3}
.rt-sec-dark .rt-num{color:var(--rt-red-lit)}
.rt-sec-dark .rt-link{color:#fff}
.rt-head{margin-bottom:24px}
.rt-head h2{margin-top:10px}
.rt-grid{display:grid;gap:16px}
.rt-card{border:1px solid var(--rt-line);border-radius:16px;padding:20px;background:#fff}
.rt-card h3{margin-bottom:6px}
.rt-card p{font-size:15px}
.rt-num{font-family:var(--rt-mono);font-size:12.5px;letter-spacing:.1em;color:var(--rt-red);font-weight:700;margin-bottom:8px}
.rt-ticks{list-style:none;margin:14px 0 0;padding:0}
.rt-ticks li{position:relative;padding:8px 0 8px 26px;border-top:1px solid #e9eef4;font-size:15px;color:var(--rt-ink);font-weight:500}
.rt-ticks li:before{content:"";position:absolute;left:2px;top:14px;width:12px;height:7px;border-left:2px solid var(--rt-red);border-bottom:2px solid var(--rt-red);transform:rotate(-45deg)}
.rt-practice{border-left:3px solid var(--rt-red);background:var(--rt-soft);border-radius:0 14px 14px 0;padding:16px 18px;font-size:15px;color:var(--rt-ink)}
.rt-sec-alt .rt-practice{background:#fff}
.rt-practice small{display:block;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--rt-red);margin-bottom:6px}
.rt-practice-t{font-family:var(--rt-mono);font-weight:700;color:var(--rt-slate)}
.rt-ph{display:grid;place-items:center;text-align:center;border:1px dashed #aab4c2;border-radius:12px;background:repeating-linear-gradient(135deg,#f1f5f9 0 12px,#f8fafc 12px 24px);color:#64748b;font-size:13px;padding:14px}

/* ── tables that turn into stacked rows on phones ───────────── */
.rt-table{width:100%;border-collapse:collapse;font-size:14.5px}
.rt-table th{text-align:left;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--rt-muted);padding:10px 12px;border-bottom:1px solid #cbd5e1}
.rt-table td{padding:12px;border-bottom:1px solid var(--rt-line);vertical-align:top}
.rt-table td:first-child{font-weight:700;color:var(--rt-ink)}
.rt-table tr.rt-grp td{background:var(--rt-night);color:#fff;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:8px 12px}
.rt-table small{display:block;color:var(--rt-muted);font-size:13px;font-weight:400}
.rt-mark{display:inline-block;font-size:11.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;border-radius:99px;padding:2px 9px;margin-right:6px}
.rt-mark-y{background:#dcfce7;color:#15803d}
.rt-mark-h{background:#fef3c7;color:#a16207}
.rt-mark-n{background:#f1f5f9;color:#64748b}
@media(max-width:699px){
  .rt-table-stack thead{display:none}
  .rt-table-stack tr{display:block;border-bottom:1px solid var(--rt-line);padding:12px 0}
  .rt-table-stack tr.rt-grp{padding:0;border:0;margin-top:14px}
  .rt-table-stack td{display:block;border:0;padding:3px 0}
  .rt-table-stack tr.rt-grp td{padding:8px 12px}
  .rt-table-stack td[data-l]:before{content:attr(data-l);display:block;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--rt-muted);margin-top:6px}
}

/* ── questions (details/summary) ────────────────────────────── */
.rt-faq details{border-bottom:1px solid var(--rt-line);padding:16px 0}
.rt-faq summary{cursor:pointer;font-weight:700;color:var(--rt-ink);font-size:16.5px;list-style:none;display:flex;justify-content:space-between;gap:14px}
.rt-faq summary::-webkit-details-marker{display:none}
.rt-faq summary:after{content:"+";font-weight:400;font-size:22px;line-height:1;color:var(--rt-slate)}
.rt-faq details[open] summary:after{content:"\2212"}
.rt-faq details p{margin-top:10px;max-width:68ch}

/* ── offer (Site3Offer.ascx) ────────────────────────────────── */
/* Sits on the dark colored field so the page does not end on white. */
.rt-offer{padding:54px 0;background:#eef2f7;border-top:1px solid var(--rt-line);font-family:var(--rt-font);line-height:1.55;color:var(--rt-body)}
.rt-offer > .rt-in{background:radial-gradient(ellipse at 18% 10%,#1b2944 0,transparent 55%),radial-gradient(ellipse at 88% 100%,#2a1a26 0,transparent 45%),var(--rt-night);border-radius:24px;padding:44px 20px;max-width:1096px;width:calc(100% - 28px);box-shadow:0 24px 50px rgba(15,23,42,.18)}
.rt-offer-head{text-align:center;margin-bottom:26px}
.rt-offer h2{margin:0;font-size:27px;line-height:1.1;font-weight:900;letter-spacing:-.035em;color:#fff}
.rt-offer h2 em{font-family:var(--rt-serif);font-style:italic;font-weight:400;color:var(--rt-red-lit)}
.rt-doors{display:grid;gap:14px;max-width:880px;margin:0 auto}
.rt-door{border:1px solid var(--rt-night-line);border-radius:18px;padding:24px;display:flex;flex-direction:column;background:rgba(255,255,255,.05)}
.rt-door h3{margin:0 0 10px;font-size:20px;line-height:1.25;font-weight:800;letter-spacing:-.02em;color:#fff}
.rt-door p{margin:0 0 20px;color:#c7d2e3}
.rt-door .rt-btn{margin-top:auto}
.rt-door .rt-btn-ghost{background:transparent;color:#fff;border-color:#5b7093}
.rt-door .rt-btn-ghost:hover{background:transparent;color:#fff;border-color:#fff}
.rt-door-main{background:#fff;border-color:#fff;box-shadow:0 20px 44px rgba(0,0,0,.35)}
.rt-door-main h3{color:var(--rt-ink)}
.rt-door-main p{color:var(--rt-body)}
.rt-offer-foot{text-align:center;margin:22px 0 0;font-size:14px;color:#b8c6da}
.rt-offer-foot a{color:#fff}
.rt-offer-foot .rt-link{color:#fff}

/* ── footer (Site3Footer.ascx) ──────────────────────────────── */
/* border-top/margin reset: v2 chrome.css styles the bare <footer>
   element, and it loads in legacy mode. */
.rt-foot{background:var(--rt-night);color:#aab8cc;font-family:var(--rt-font);font-size:14px;line-height:1.55;padding:38px 0 96px;border-top:0;margin:0}
.rt-foot-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.rt-foot-brand p{margin:12px 0 0}
.rt-foot h4{margin:0 0 8px;font-size:12px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:#fff}
.rt-foot-col a{display:block;padding:3px 0;color:#aab8cc;text-decoration:none}
.rt-foot-col a:hover{color:#fff}
.rt-foot .rt-logo img{height:36px}
.rt-social{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.rt-social a{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--rt-night-line);border-radius:10px;color:#aab8cc}
.rt-social a:hover{color:#fff;border-color:#5b7093}
.rt-social svg{display:block;width:16px;height:16px;fill:currentColor}
.rt-legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 24px;margin-top:26px;padding-top:16px;border-top:1px solid var(--rt-night-line);font-size:12.5px}
.rt-legal a{color:#aab8cc;text-decoration:none}
.rt-legal a:hover{color:#fff;text-decoration:underline}

/* phone bottom bar; hidden while the offer is on screen */
.rt-thumb{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:1.5fr 1fr;gap:8px;padding:10px 14px 14px;background:rgba(255,255,255,.96);border-top:1px solid var(--rt-line);transition:transform .25s;font-family:var(--rt-font)}
.rt-thumb.rt-away{transform:translateY(110%)}
.rt-thumb .rt-btn{min-height:46px;padding:0 10px;font-size:14px}

/* ── hero motion (opt in: <section class="rt-hero rt-hero-live">) ──
   The dusk background drifts slowly; the copy rises in on load.
   Off for anyone who asks for reduced motion (see the media query below). */
@keyframes rt-drift{from{transform:scale(1.06) translate3d(0,0,0)}to{transform:scale(1.14) translate3d(-2.5%,-1.5%,0)}}
@keyframes rt-rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.rt-hero-live .rt-hero-bg{animation:rt-drift 30s ease-in-out infinite alternate;will-change:transform}
.rt-hero-live .rt-in > *{animation:rt-rise .8s cubic-bezier(.2,.7,.2,1) both}
.rt-hero-live .rt-in > :nth-child(2){animation-delay:.1s}
.rt-hero-live .rt-in > :nth-child(3){animation-delay:.22s}
.rt-hero-live .rt-in > :nth-child(4){animation-delay:.34s}

/* ── video player (pop-up) ──────────────────────────────────────
   The v2 chrome.css modal, renamed. site.js block 4b drives it by id:
   #videoModal, #videoModalVideo, [data-open-video], [data-close-video]. */
.rt-video{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px}
.rt-video[hidden]{display:none}
.rt-video-backdrop{position:absolute;inset:0;background:rgba(12,22,38,.88);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);cursor:pointer}
.rt-video-box{position:relative;z-index:1;width:100%;max-width:960px;background:#000;border-radius:14px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.55)}
.rt-video-close{position:absolute;top:10px;right:10px;z-index:2;width:40px;height:40px;display:flex;align-items:center;justify-content:center;padding:0;border:1px solid rgba(255,255,255,.25);border-radius:50%;background:rgba(12,22,38,.6);color:#fff;cursor:pointer}
.rt-video-close:hover{background:rgba(12,22,38,.9)}
.rt-video-frame{position:relative;aspect-ratio:16/9;background:#000}
.rt-video-frame video{position:absolute;inset:0;width:100%;height:100%;border:0}

/* a still that opens the film: <a class="rt-film" data-open-video> with
   img + .rt-film-play (the centered button) + .rt-film-label */
a.rt-film{position:relative;display:block;aspect-ratio:16/9;border-radius:16px;overflow:hidden;border:1px solid var(--rt-line);background:#000;text-decoration:none}
a.rt-film img{display:block;width:100%;height:100%;object-fit:cover;border:0;border-radius:0;transition:transform .4s ease,filter .4s ease}
a.rt-film:hover img{transform:scale(1.02);filter:brightness(.88)}
.rt-film-play{position:absolute;left:50%;top:50%;width:76px;height:76px;margin:-38px 0 0 -38px;border-radius:50%;background:var(--rt-red);box-shadow:0 10px 30px rgba(0,0,0,.35),0 0 0 8px rgba(255,255,255,.2);transition:transform .2s ease}
.rt-film-play:before{content:"";position:absolute;left:31px;top:24px;border-left:20px solid #fff;border-top:14px solid transparent;border-bottom:14px solid transparent}
a.rt-film:hover .rt-film-play,a.rt-film:focus-visible .rt-film-play{transform:scale(1.07)}
/* hook_2.jpg carries its own title and logo at the center, so its button sits below them */
.rt-film-play-low{top:76%}
.rt-film-label{position:absolute;left:16px;bottom:14px;font-size:13px;font-weight:700;color:#fff;background:rgba(12,22,38,.8);border-radius:99px;padding:7px 14px}
.rt-film-label small{font-size:12px;font-weight:600;opacity:.75;margin-left:4px}

/* ── breakpoints ────────────────────────────────────────────── */
@media(min-width:700px){
  .rt-grid-c2{grid-template-columns:repeat(2,1fr)}
  .rt-grid-c3{grid-template-columns:repeat(3,1fr)}
}
@media(min-width:900px){
  .rt-in{padding:0 32px}
  .rt-nav{position:sticky;top:0;background:rgba(12,22,38,.95);backdrop-filter:blur(8px)}
  .rt-nav-cta .rt-btn{display:inline-flex}
  .rt-nav-cta .rt-signin{display:block}
  .rt-thumb{display:none}
  .rt-foot{padding-bottom:38px}
  .rt-foot-grid{grid-template-columns:1.3fr 1fr 1fr 1.4fr}
  .rt-hero .rt-in{padding-top:56px;padding-bottom:64px}
  .rt-hero .rt-sub{font-size:19px}
  .rt-hero-cta{display:flex}
  .rt-sec{padding:84px 0}
  .rt-head{margin-bottom:36px}
  .rt-lede{font-size:18.5px;max-width:none}
  .rt-grid{gap:20px}
  .rt-grid-c4{grid-template-columns:repeat(4,1fr)}
  .rt-split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
  .rt-offer{padding:96px 0}
  .rt-offer > .rt-in{padding:72px 48px;width:calc(100% - 64px)}
  .rt-offer h2{font-size:38px}
  .rt-doors{grid-template-columns:1fr 1fr;gap:20px}
  .rt-door{padding:32px}
}
@media(min-width:1000px){
  .rt-links{display:flex}
  .rt-burger{display:none}
  .rt-nav.rt-open .rt-menu{display:none}
}
@media (prefers-reduced-motion:reduce){
  .rt-dot,.rt-thumb,a.rt-film img,.rt-film-play,.rt-hero-live .rt-hero-bg,.rt-hero-live .rt-in > *{animation:none!important;transition:none!important}
}
