:root { --ink:#0e0f0f; --graphite:#151718; --strong:#1a1b1c; --canvas:#f1f0e9; --subtle:#e8e5db; --paper:#fafaf9; --muted:#5c5c57; --line:#ccc9bd; --red:#ed1b24; --red-dark:#bf1010; --blue:#03ABF3; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--canvas); font-family:"Manrope",sans-serif; font-weight:500; }
h1,h2,h3,h4,p { margin-top:0; }
h1,h2,h3,h4 { font-family:"Barlow Condensed",sans-serif; font-weight:600; }
img { max-width:100%; }
a { color:inherit; text-decoration:none; }
.site-container { width:min(1280px,calc(100% - 48px)); margin-inline:auto; }
.eyebrow { margin-bottom:16px; color:var(--red-dark); font-size:12px; font-weight:700; line-height:16px; letter-spacing:.08em; text-transform:uppercase; }
.on-dark .eyebrow { color:#f54646; }
.section-title { margin-bottom:16px; font-size:40px; line-height:44px; text-transform:uppercase; }
.section-intro { max-width:720px; margin-bottom:0; color:var(--muted); font-size:18px; line-height:29px; }
.on-dark .section-title { color:var(--paper); }
.on-dark .section-intro { color:var(--line); }
.section-pad { padding:72px 0; }
.btn-rgs { display:inline-flex; min-height:52px; align-items:center; justify-content:center; padding:0 24px; border:1px solid transparent; border-radius:2px; font-size:13px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; transition:background .2s,border-color .2s,color .2s; }
.btn-rgs:hover { transform:none; }
.btn-rgs-primary { background:var(--red); color:#000; }
.btn-rgs-primary:hover { background:var(--blue); color:#000; }
.btn-rgs-light { background:var(--paper); border-color:var(--muted); color:var(--ink); }
.btn-rgs-outline { background:var(--paper); border-color:var(--muted); color:var(--ink); }
.text-link { color:var(--red-dark); font-size:13px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.on-dark .text-link { color:#f54646; }
.grid-texture { background-image:linear-gradient(rgba(250,250,249,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(250,250,249,.035) 1px,transparent 1px); background-size:64px 64px; }
.utility { min-height:40px; background:#101213; color:var(--line); font-size:14px; }
.utility .site-container { display:flex; min-height:40px; align-items:center; justify-content:space-between; }
.utility-contacts { display:flex; gap:26px; }
.utility a { display:inline-flex; gap:10px; align-items:center; }
.utility img { width:18px; height:18px; }
.navbar-rgs { min-height:92px; background:var(--ink); }
.navbar-rgs .navbar-brand img { width:116px; height:auto; }
.navbar-rgs .nav-link { padding:14px 8px!important; color:var(--paper)!important; font-size:13px; font-weight:700; letter-spacing:.04em; }
.navbar-rgs .nav-link:hover { color:var(--blue)!important; }
.navbar-rgs .nav-link.active { color:#f54646!important; }
.navbar-toggler { border-color:rgba(255,255,255,.35); }
.hero { position:relative; min-height:651px; display:flex; align-items:center; overflow:hidden; background:var(--graphite) url("../../01_Images/Homepage/rgs-image-homepage-hero-background-1440x651.png") center/cover no-repeat; }
.hero::before { content:""; position:absolute; inset:0; background:rgba(15,17,18,.52); }
.hero::after { content:""; position:absolute; inset:0; background-image:linear-gradient(rgba(250,250,249,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(250,250,249,.06) 1px,transparent 1px); background-size:64px 64px; opacity:.65; }
.hero .site-container { position:relative; z-index:1; padding-top:70px; padding-bottom:70px; }
.hero h1 { max-width:660px; margin-bottom:24px; color:var(--paper); font-size:72px; font-weight:800; line-height:.95; letter-spacing:-.01em; text-transform:uppercase; }
.hero-copy { max-width:620px; margin-bottom:24px; color:var(--line); font-size:18px; line-height:29px; }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; }
.hero-visual { box-shadow:0 14px 28px rgba(0,0,0,.34); }
.hero-visual>img { width:100%; aspect-ratio:516/387; object-fit:cover; }
.ticker { position:relative; height:72px; overflow:hidden; display:flex; align-items:center; border-left:6px solid var(--red); background:#101213; color:var(--red); font-family:"Barlow Condensed",sans-serif; font-size:22px; font-weight:600; white-space:nowrap; }
.ticker-track { display:inline-flex; gap:48px; width:max-content; animation:ticker 24s linear infinite; }
@keyframes ticker { to { transform:translateX(-50%); } }
.applications { background:var(--canvas); padding:80px 0; }
.application-layout { display:grid; grid-template-columns:520px 1fr; gap:60px; margin-top:32px; }
.application-preview { display:flex; min-height:621px; flex-direction:column; border:1px solid var(--line); background:var(--paper); }
.application-preview>img { width:100%; height:390px; object-fit:cover; }
.preview-copy { flex:1; display:flex; flex-direction:column; justify-content:space-between; padding:26px 30px 28px; border-top:6px solid var(--red); }
.preview-title { display:flex; gap:16px; align-items:center; }
.preview-title h3 { margin:0; font-size:32px; line-height:36px; text-transform:uppercase; }
.icon-wrap { width:40px; height:40px; flex:0 0 40px; display:grid; place-items:center; border-radius:2px; background:var(--subtle); }
.icon-wrap img { width:28px; max-height:28px; }
.application-row { width:100%; min-height:120px; display:grid; grid-template-columns:40px 40px 1fr 24px; gap:16px; align-items:center; padding:20px 22px 20px 24px; border:0; border-bottom:1px solid var(--subtle); background:transparent; text-align:left; color:var(--ink); }
.application-row.active { border-left:4px solid var(--red); background:var(--subtle); }
.application-row:hover { background:#eeece4; }
.application-number { color:var(--muted); font-size:13px; font-weight:700; }
.application-row.active .application-number { color:var(--blue); }
.application-row h4 { margin:0 0 6px; font-size:24px; line-height:28px; text-transform:uppercase; }
.application-row p { margin:0; color:var(--muted); font-size:14px; line-height:21px; }
.application-arrow { color:var(--red-dark); font-size:22px; }
.services { position:relative; background:var(--strong); }
.services-layout { position:relative; display:grid; grid-template-columns:440px 1fr; gap:64px; }
.service-list { border-bottom:1px solid var(--muted); }
.service-row { min-height:100px; display:grid; grid-template-columns:240px 1fr auto; gap:20px; align-items:center; padding:20px; border-top:1px solid var(--muted); color:var(--paper); }
.service-name { display:flex; gap:24px; align-items:center; }
.service-name img { width:32px; height:32px; }
.service-name h3 { margin:0; font-size:24px; line-height:28px; text-transform:uppercase; }
.service-row p { margin:0; color:var(--line); font-size:16px; line-height:26px; }
.charger-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:32px; }
.charger-card { position:relative; padding:32px; background:#1d2021; color:var(--paper); }
.charger-media { position:relative; display:block; height:224px; overflow:hidden; }
.charger-media::before { content:""; position:absolute; z-index:1; inset:0 0 4px; background:rgba(3,171,243,.28); opacity:0; pointer-events:none; transition:opacity .3s ease; }
.charger-media img { width:100%; height:220px; object-fit:cover; }
.charger-bar { position:absolute; z-index:2; right:0; bottom:0; left:0; height:4px; overflow:hidden; background:var(--red); }
.charger-bar::after { content:""; position:absolute; inset:0; background:var(--blue); transform:scaleX(0); transform-origin:left center; transition:transform .38s ease-out; }
.charger-meta { display:flex; justify-content:space-between; margin-top:20px; }
.charger-card h3 { margin:20px 0; font-size:32px; line-height:36px; transition:color .3s ease; }
.charger-card .charger-meta .eyebrow, .charger-card .charger-meta .text-link { transition:color .3s ease; }
.charger-card p:last-child { margin:0; color:var(--line); font-size:14px; }
.charger-card:is(:hover,:focus-visible) .charger-media::before { opacity:1; }
.charger-card:is(:hover,:focus-visible) .charger-bar::after { transform:scaleX(1); }
.charger-card:is(:hover,:focus-visible) h3,
.charger-card:is(:hover,:focus-visible) .charger-meta .eyebrow,
.charger-card:is(:hover,:focus-visible) .charger-meta .text-link { color:var(--blue); }
.charger-card:focus-visible { outline:3px solid var(--blue); outline-offset:3px; }
.quote { padding:96px 0; background:#dcd8cd; }
.quote-layout { display:grid; grid-template-columns:400px 1fr; }
.quote-lead { padding:48px 40px; background:#222526; color:var(--paper); }
.quote-lead h2 { font-size:40px; line-height:44px; text-transform:uppercase; }
.quote-lead p { color:var(--line); line-height:26px; }
.quote-rule { width:64px; height:6px; margin:24px 0; background:var(--red); }
.quote-form { position:relative; padding:48px; border-top:6px solid var(--red); background:var(--paper); }
.quote-form h3 { margin-bottom:12px; font-size:32px; }
.form-label { font-size:14px; font-weight:700; }
.form-control,.form-select { min-height:48px; border-color:var(--line); border-radius:2px; background:#fff; }
textarea.form-control { min-height:108px; }
.why-rgs { padding:96px 0; }
.pillar-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:48px; }
.pillar { padding-top:24px; border-top:1px solid var(--line); }
.pillar-number { color:var(--red); font-size:12px; font-weight:700; }
.pillar h3 { margin:16px 0; font-size:24px; line-height:28px; text-transform:uppercase; }
.pillar p:last-child { color:var(--muted); line-height:26px; }
.brands { overflow:hidden; background:var(--strong); }
.brand-marquee { overflow:hidden; margin:48px 0; }
.brand-track { display:flex; gap:20px; width:max-content; animation:brands 35s linear infinite; }
.brand-logo { width:198px; height:120px; display:grid; place-items:center; border:1px solid #454849; background:#101213; }
.brand-logo img { width:158px; max-height:50px; object-fit:contain; }
@keyframes brands { to { transform:translateX(calc(-50% - 10px)); } }
.local { padding:96px 0; background:var(--subtle); }
.local-layout { display:grid; grid-template-columns:1fr 500px; gap:64px; align-items:center; }
.local-photo img { width:100%; height:264px; object-fit:cover; display:block; }
.local-rail { height:56px; display:flex; align-items:center; padding:0 24px; background:var(--red); color:var(--paper); font:600 24px/28px "Barlow Condensed",sans-serif; }
.final-cta { position:relative; padding:80px 0; border-top:8px solid var(--red); background:var(--graphite); }
.final-layout { display:grid; grid-template-columns:1fr 4px 244px; gap:44px; align-items:center; }
.final-divider { height:132px; background:var(--red); }
.final-actions { display:flex; flex-direction:column; align-items:flex-end; gap:16px; }
.final-actions .text-link:hover,.final-actions .text-link:focus-visible { color:var(--blue); }
.scope { margin:16px 0 0; color:var(--paper); font-size:12px; line-height:17px; }
.footer { padding:72px 0 28px; background:var(--ink); color:var(--paper); }
.footer-main { display:grid; grid-template-columns:minmax(0,1.65fr) repeat(4,minmax(0,1fr)); gap:48px; padding-bottom:64px; }
.footer-logo { width:229px; margin-bottom:24px; }
.footer p { color:var(--line); font-size:14px; line-height:21px; }
.footer h3 { margin-bottom:20px; color:var(--paper); font-size:20px; text-transform:uppercase; }
.footer h3 a { color:inherit; font:inherit; text-decoration:none; }
.footer h3 a:hover { color:var(--red); }
.footer ul { margin:0; padding:0; list-style:none; }
.footer li+li { margin-top:12px; }
.footer li a { color:var(--line); font-size:14px; }
.footer li a:hover { color:#f54646; }
.footer-bottom { display:flex; justify-content:space-between; gap:24px; padding-top:24px; border-top:1px solid #353738; color:var(--line); font-size:12px; }
.footer-legal { display:flex; gap:24px; }
.reveal { opacity:0; transform:translateY(18px); transition:opacity .6s ease,transform .6s ease; }
.reveal.visible { opacity:1; transform:none; }
@media (max-width:1199.98px) {
	.navbar-rgs .navbar-collapse { padding:20px 0; }
	.application-layout,.services-layout { grid-template-columns:1fr; gap:40px; }
	.footer-main { grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px; }
	.application-preview { display:none; }
	.service-row { grid-template-columns:220px 1fr auto; }
	.quote-layout { grid-template-columns:330px 1fr; }
	.pillar-grid { grid-template-columns:repeat(2,1fr); }
	.local-layout { grid-template-columns:1fr 420px; }
	.final-layout { grid-template-columns:1fr 4px 220px; }
}
@media (max-width:767.98px) {
	.site-container { width:min(100% - 32px,1280px); }
	.section-pad,.applications,.quote,.why-rgs,.local { padding:64px 0; }
	.section-title { font-size:34px; line-height:38px; }
	.utility { display:none; }
	.navbar-rgs { min-height:76px; }
	.hero { min-height:auto; }
	.hero .site-container { padding-top:56px; padding-bottom:56px; }
	.hero h1 { font-size:48px; line-height:.98; }
	.hero-visual { margin-top:40px; }
	.application-row { grid-template-columns:40px 32px 1fr; min-height:112px; padding:18px 14px; }
	.application-row p,.application-arrow { display:none; }
	.service-row { grid-template-columns:1fr; gap:12px; padding:24px 8px; }
	.service-row .text-link { justify-self:start; }
	.charger-grid,.quote-layout,.pillar-grid,.local-layout,.final-layout,.footer-main { grid-template-columns:1fr; }
	.quote-lead,.quote-form { padding:32px 24px; }
	.pillar-grid { gap:32px; }
	.local-photo { margin-top:8px; }
	.final-divider { width:64px; height:4px; }
	.final-actions { align-items:flex-start; }
	.footer-main { gap:40px; }
	.footer-bottom { flex-direction:column; }
	.footer-legal { flex-wrap:wrap; }
}

@media (prefers-reduced-motion:reduce) {
  .charger-media::before, .charger-bar::after, .charger-card h3, .charger-card .charger-meta .eyebrow, .charger-card .charger-meta .text-link { transition:none; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .ticker-track,.brand-track { animation:none; } .reveal { opacity:1; transform:none; } }