/* Rinaldi Services v3.5 — Professional Sitewide Visual System
   Presentation-only layer. Existing application behavior, routing, data,
   permissions, forms, and specialized SystemForge/Arcade experiences remain intact. */

:root{
  --rs35-navy-950:#071a2a;
  --rs35-navy-900:#0a2236;
  --rs35-navy-850:#0d2a42;
  --rs35-navy-800:#12344f;
  --rs35-blue-700:#1e5f91;
  --rs35-blue-600:#2b75ac;
  --rs35-blue-500:#3f8bc0;
  --rs35-sky-100:#eaf5fc;
  --rs35-slate-900:#142535;
  --rs35-slate-700:#405568;
  --rs35-slate-600:#607487;
  --rs35-slate-500:#7b8d9d;
  --rs35-surface:#f5f8fb;
  --rs35-surface-2:#eef3f7;
  --rs35-white:#fff;
  --rs35-line:#d8e2ea;
  --rs35-line-strong:#c5d3df;
  --rs35-success:#23744f;
  --rs35-warning:#9a681d;
  --rs35-danger:#a13b3b;
  --rs35-radius-sm:10px;
  --rs35-radius:16px;
  --rs35-radius-lg:22px;
  --rs35-radius-xl:30px;
  --rs35-shadow-xs:0 2px 8px rgba(7,31,50,.045);
  --rs35-shadow-sm:0 8px 24px rgba(7,31,50,.07);
  --rs35-shadow:0 18px 48px rgba(7,31,50,.10);
  --rs35-shadow-lg:0 28px 80px rgba(7,31,50,.15);
}

/* ------------------------------------------------------------
   Base site surfaces — intentionally exclude branded experiences
   ------------------------------------------------------------ */
body:not([data-page="systemforge"]):not([data-page="arcade"]){
  --navy:var(--rs35-navy-900);
  --navy2:var(--rs35-navy-800);
  --blue:var(--rs35-blue-700);
  --sky:var(--rs35-blue-500);
  --ink:var(--rs35-slate-900);
  --muted:var(--rs35-slate-600);
  --paper:var(--rs35-surface);
  --line:var(--rs35-line);
  --shadow:var(--rs35-shadow);
  --radius:var(--rs35-radius-lg);
  background:
    radial-gradient(circle at 12% 0%,rgba(63,139,192,.045),transparent 24rem),
    var(--rs35-surface);
  color:var(--rs35-slate-900);
  font-feature-settings:"kern" 1,"liga" 1,"calt" 1;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

body:not([data-page="systemforge"]):not([data-page="arcade"]) main{
  min-height:52vh;
}

body:not([data-page="systemforge"]):not([data-page="arcade"]) ::selection{
  background:#bfe1f6;
  color:var(--rs35-navy-950);
}

body:not([data-page="systemforge"]):not([data-page="arcade"]) :focus-visible{
  outline:3px solid rgba(43,117,172,.34);
  outline-offset:3px;
}

body:not([data-page="systemforge"]):not([data-page="arcade"]) .container{
  width:min(1220px,92%);
}

body:not([data-page="systemforge"]):not([data-page="arcade"]) h1,
body:not([data-page="systemforge"]):not([data-page="arcade"]) h2,
body:not([data-page="systemforge"]):not([data-page="arcade"]) h3,
body:not([data-page="systemforge"]):not([data-page="arcade"]) h4{
  text-wrap:balance;
}

body:not([data-page="systemforge"]):not([data-page="arcade"]) p{
  text-wrap:pretty;
}

/* Skip link */
.skip-link{
  position:fixed;
  left:1rem;
  top:-100px;
  z-index:5000;
  padding:.72rem 1rem;
  border-radius:0 0 12px 12px;
  background:#fff;
  color:var(--rs35-navy-900);
  box-shadow:var(--rs35-shadow);
  font-weight:850;
  transition:top .15s ease;
}
.skip-link:focus{top:0}

/* ------------------------------------------------------------
   Shared public header
   ------------------------------------------------------------ */
body:not([data-page="systemforge"]):not([data-page="arcade"]) .site-header{
  position:sticky;
  top:0;
  z-index:100;
  border-bottom:1px solid rgba(197,211,223,.78);
  background:rgba(255,255,255,.92);
  box-shadow:0 4px 18px rgba(7,31,50,.035);
  backdrop-filter:blur(18px) saturate(145%);
}

body:not([data-page="systemforge"]):not([data-page="arcade"]) .site-header::before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:3px;
  background:linear-gradient(90deg,var(--rs35-blue-700),#61a9d7 55%,transparent 95%);
}

body:not([data-page="systemforge"]):not([data-page="arcade"]) .nav{
  min-height:82px;
  height:auto;
  gap:1.25rem;
}

body:not([data-page="systemforge"]):not([data-page="arcade"]) .brand{
  gap:.78rem;
  color:var(--rs35-navy-900);
  font-size:1.13rem;
  font-weight:900;
  letter-spacing:-.025em;
}

body:not([data-page="systemforge"]):not([data-page="arcade"]) .brand img{
  width:46px;
  height:46px;
  padding:2px;
  border:1px solid #d1dde7;
  border-radius:13px;
  background:#fff;
  box-shadow:0 5px 16px rgba(7,31,50,.09);
}

body:not([data-page="systemforge"]):not([data-page="arcade"]) .nav-links{
  gap:.18rem;
}

body:not([data-page="systemforge"]):not([data-page="arcade"]) .nav-links>a{
  position:relative;
  padding:.68rem .72rem;
  border-radius:10px;
  color:#31495d;
  font-size:.91rem;
  font-weight:760;
  transition:background .16s ease,color .16s ease;
}

body:not([data-page="systemforge"]):not([data-page="arcade"]) .nav-links>a::after{
  content:"";
  position:absolute;
  left:.72rem;
  right:.72rem;
  bottom:.34rem;
  height:2px;
  border-radius:999px;
  background:var(--rs35-blue-600);
  transform:scaleX(0);
  transform-origin:center;
  transition:transform .16s ease;
}

body:not([data-page="systemforge"]):not([data-page="arcade"]) .nav-links>a:hover,
body:not([data-page="systemforge"]):not([data-page="arcade"]) .nav-links>a.active{
  background:#f0f5f9;
  color:var(--rs35-navy-900);
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .nav-links>a.active::after{
  transform:scaleX(1);
}

body:not([data-page="systemforge"]):not([data-page="arcade"]) .nav-signin{
  color:var(--rs35-navy-800);
  padding:.58rem .72rem;
  border-radius:10px;
  text-decoration:none;
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .nav-signin:hover{
  background:#f0f5f9;
  text-decoration:none;
}

body:not([data-page="systemforge"]):not([data-page="arcade"]) .account-menu-btn{
  min-height:40px;
  border:1px solid var(--rs35-line-strong);
  border-radius:11px;
  background:#fff;
  color:var(--rs35-navy-800);
  box-shadow:var(--rs35-shadow-xs);
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .account-menu-btn:hover{
  background:#f5f8fb;
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .account-dropdown{
  min-width:220px;
  border:1px solid var(--rs35-line);
  border-radius:15px;
  padding:.5rem;
  box-shadow:0 20px 56px rgba(7,31,50,.16);
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .account-dropdown a,
body:not([data-page="systemforge"]):not([data-page="arcade"]) .account-dropdown button{
  border-radius:10px;
  padding:.72rem .76rem;
}

/* ------------------------------------------------------------
   Buttons and controls
   ------------------------------------------------------------ */
body:not([data-page="systemforge"]):not([data-page="arcade"]) .btn{
  min-height:44px;
  border-radius:11px;
  padding:.76rem 1.08rem;
  font-weight:850;
  letter-spacing:-.005em;
  box-shadow:none;
  transform:none;
  transition:background .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease;
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .btn:hover{
  transform:translateY(-1px);
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .btn-primary{
  border:1px solid #184d75;
  background:linear-gradient(135deg,var(--rs35-blue-700),#174e78);
  color:#fff;
  box-shadow:0 8px 18px rgba(30,95,145,.18);
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .btn-primary:hover{
  background:linear-gradient(135deg,#2775ad,#164b72);
  box-shadow:0 11px 25px rgba(30,95,145,.24);
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .btn-secondary{
  border:1px solid var(--rs35-line-strong);
  background:#fff;
  color:var(--rs35-navy-800);
  box-shadow:var(--rs35-shadow-xs);
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .btn-secondary:hover{
  border-color:#9db6c9;
  background:#f6f9fb;
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .btn-light{
  border:1px solid rgba(255,255,255,.65);
  background:#fff;
  color:var(--rs35-navy-900);
  box-shadow:0 12px 30px rgba(2,17,30,.16);
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .btn-danger{
  border-color:#e0bcbc;
  background:#fff7f7;
  color:var(--rs35-danger);
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .btn-sm{
  min-height:38px;
  padding:.58rem .82rem;
  font-size:.86rem;
}

body:not([data-page="systemforge"]):not([data-page="arcade"]) .input,
body:not([data-page="systemforge"]):not([data-page="arcade"]) .select,
body:not([data-page="systemforge"]):not([data-page="arcade"]) .textarea{
  min-height:46px;
  border:1px solid var(--rs35-line-strong);
  border-radius:11px;
  background:#fff;
  color:var(--rs35-slate-900);
  box-shadow:inset 0 1px 1px rgba(7,31,50,.025);
  transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .textarea{min-height:120px}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .input:hover,
body:not([data-page="systemforge"]):not([data-page="arcade"]) .select:hover,
body:not([data-page="systemforge"]):not([data-page="arcade"]) .textarea:hover{
  border-color:#aebfcd;
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .input:focus,
body:not([data-page="systemforge"]):not([data-page="arcade"]) .select:focus,
body:not([data-page="systemforge"]):not([data-page="arcade"]) .textarea:focus{
  border-color:#639ac0;
  box-shadow:0 0 0 4px rgba(43,117,172,.11);
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .form-field label{
  margin-bottom:.42rem;
  color:#2a4053;
  font-size:.85rem;
  font-weight:800;
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .form-help{
  color:#6a7e8f;
  line-height:1.5;
}

/* ------------------------------------------------------------
   Home hero
   ------------------------------------------------------------ */
body[data-page="home"] .hero{
  min-height:620px;
  isolation:isolate;
  background:
    radial-gradient(circle at 75% 18%,rgba(92,177,226,.20),transparent 20rem),
    linear-gradient(118deg,#071d30 0%,#0b2c49 48%,#16567f 100%);
}
body[data-page="home"] .hero::before{
  z-index:-2;
  background:
    linear-gradient(rgba(255,255,255,.032) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.032) 1px,transparent 1px);
  background-size:44px 44px;
  -webkit-mask-image:linear-gradient(90deg,#000 0%,rgba(0,0,0,.72) 58%,transparent 92%);
  mask-image:linear-gradient(90deg,#000 0%,rgba(0,0,0,.72) 58%,transparent 92%);
}
body[data-page="home"] .hero::after{
  content:"";
  position:absolute;
  z-index:-1;
  width:min(430px,36vw);
  aspect-ratio:1;
  right:max(3vw,calc((100vw - 1220px)/2));
  top:50%;
  transform:translateY(-50%);
  border:1px solid rgba(255,255,255,.14);
  border-radius:38px;
  background:
    linear-gradient(145deg,rgba(255,255,255,.12),rgba(255,255,255,.035)),
    url("../images/rs-logo.png") center/62% auto no-repeat;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.17),0 35px 80px rgba(1,13,24,.25);
  backdrop-filter:blur(4px);
  opacity:.96;
}
body[data-page="home"] .hero-content{
  max-width:720px;
  margin-left:0;
  padding:7rem 0;
}
body[data-page="home"] .hero-content>div:first-child{
  width:max-content;
  max-width:100%;
  padding:.5rem .7rem .5rem .55rem;
  border:1px solid rgba(255,255,255,.14);
  border-radius:18px;
  background:rgba(255,255,255,.065);
  backdrop-filter:blur(8px);
}
body[data-page="home"] .hero-content>div:first-child img{
  width:64px!important;
  height:64px!important;
  border-radius:14px!important;
  box-shadow:0 9px 22px rgba(0,0,0,.20)!important;
}
body[data-page="home"] .hero-content h1{
  max-width:700px;
  margin:.2rem 0 1.15rem;
  font-size:clamp(2.75rem,5.1vw,5rem);
  line-height:.98;
  letter-spacing:-.052em;
}
body[data-page="home"] .hero-content p{
  max-width:680px;
  color:#dbe9f3;
  font-size:1.13rem;
  line-height:1.72;
}
body[data-page="home"] .hero-actions{margin-top:1.8rem}

/* ------------------------------------------------------------
   General page heroes and sections
   ------------------------------------------------------------ */
body:not([data-page="systemforge"]):not([data-page="arcade"]) .page-hero{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding:5.2rem 0 4rem;
  background:
    radial-gradient(circle at 78% 10%,rgba(91,176,225,.18),transparent 20rem),
    linear-gradient(120deg,var(--rs35-navy-950),#0d3555 60%,#175c88);
  color:#fff;
  border-bottom:1px solid rgba(255,255,255,.08);
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .page-hero::after{
  content:"";
  position:absolute;
  z-index:-1;
  width:420px;
  height:420px;
  right:-130px;
  bottom:-300px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:50%;
  box-shadow:0 0 0 70px rgba(255,255,255,.025),0 0 0 140px rgba(255,255,255,.018);
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .page-hero .eyebrow{
  color:#8acdf2;
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .page-hero h1{
  max-width:900px;
  margin:.45rem 0 .75rem;
  font-size:clamp(2.45rem,5vw,4.7rem);
  line-height:1;
  letter-spacing:-.048em;
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .page-hero p{
  max-width:800px;
  margin:.75rem 0 0;
  color:#d7e6f0;
  font-size:1.08rem;
  line-height:1.68;
}

body:not([data-page="systemforge"]):not([data-page="arcade"]) .section{
  padding:5.6rem 0;
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .section-white{
  background:#fff;
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .section:not(.section-white):not(.section-dark){
  background:var(--rs35-surface);
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .section-dark{
  position:relative;
  overflow:hidden;
  background:linear-gradient(128deg,#071c2e,#0c324f 70%,#104a70);
  color:#fff;
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .section-dark::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:radial-gradient(circle at 88% 25%,rgba(83,168,217,.15),transparent 25rem);
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .section-dark>.container{position:relative;z-index:1}

body:not([data-page="systemforge"]):not([data-page="arcade"]) .eyebrow{
  color:var(--rs35-blue-700);
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.145em;
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .section-title{
  max-width:900px;
  margin:.48rem 0 1rem;
  font-size:clamp(2rem,3.5vw,3.25rem);
  line-height:1.08;
  letter-spacing:-.04em;
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .section-lead{
  max-width:780px;
  color:var(--rs35-slate-600);
  font-size:1.06rem;
  line-height:1.72;
}

/* ------------------------------------------------------------
   Cards, service catalog, stats, CTA
   ------------------------------------------------------------ */
body:not([data-page="systemforge"]):not([data-page="arcade"]) .card{
  border:1px solid var(--rs35-line);
  border-radius:var(--rs35-radius-lg);
  background:#fff;
  box-shadow:var(--rs35-shadow-xs);
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .card h3{
  color:#193247;
  letter-spacing:-.018em;
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .value-card,
body:not([data-page="systemforge"]):not([data-page="arcade"]) .service-card,
body:not([data-page="systemforge"]):not([data-page="arcade"]) .v31-link-card{
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .value-card:hover,
body:not([data-page="systemforge"]):not([data-page="arcade"]) .service-card:hover,
body:not([data-page="systemforge"]):not([data-page="arcade"]) .v31-link-card:hover{
  transform:translateY(-3px);
  border-color:#bfd0dd;
  box-shadow:var(--rs35-shadow-sm);
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .icon-badge{
  width:48px;
  height:48px;
  border:1px solid #d2e5f2;
  border-radius:14px;
  background:linear-gradient(145deg,#edf7fd,#e2f0f9);
  color:var(--rs35-blue-700);
  box-shadow:inset 0 1px 0 #fff;
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .service-grid{
  gap:1.2rem;
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .service-card{
  min-height:280px;
  padding:1.45rem;
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .service-card .category{
  color:var(--rs35-blue-700);
  font-size:.7rem;
  letter-spacing:.11em;
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .service-card .price{
  color:var(--rs35-navy-800);
  font-size:1.38rem;
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .service-division{
  margin-top:3.25rem;
  padding-top:3.25rem;
  border-top:1px solid var(--rs35-line);
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .service-division-header{
  margin-bottom:1.5rem;
  padding:1.65rem 1.75rem;
  border:1px solid #d6e3ec;
  border-radius:22px;
  background:linear-gradient(135deg,#f3f8fb,#fff);
  box-shadow:var(--rs35-shadow-xs);
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .service-division-header.wedding{
  border-color:#e7dbd0;
  background:linear-gradient(135deg,#fffaf5,#fff);
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .service-toolbar{
  align-items:center;
  margin:1.8rem 0 2.2rem;
  padding:.7rem;
  border:1px solid var(--rs35-line);
  border-radius:16px;
  background:#f8fafc;
}

body:not([data-page="systemforge"]):not([data-page="arcade"]) .stats{
  gap:1rem;
  margin-top:2.2rem;
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .stat{
  padding:1.65rem;
  border:1px solid rgba(255,255,255,.15);
  border-radius:18px;
  background:rgba(255,255,255,.055);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .stat strong{
  margin-bottom:.18rem;
  font-size:2.1rem;
  letter-spacing:-.04em;
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .cta-band{
  position:relative;
  overflow:hidden;
  padding:2.35rem 2.5rem;
  border:1px solid rgba(255,255,255,.09);
  border-radius:26px;
  background:linear-gradient(125deg,#0a2944,#155a87);
  box-shadow:0 24px 58px rgba(7,31,50,.17);
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .cta-band::after{
  content:"";
  position:absolute;
  width:220px;
  height:220px;
  right:-90px;
  top:-120px;
  border-radius:50%;
  background:rgba(111,199,239,.11);
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .cta-band>*{position:relative;z-index:1}

/* ------------------------------------------------------------
   Notices, status, empty states
   ------------------------------------------------------------ */
body:not([data-page="systemforge"]):not([data-page="arcade"]) .notice{
  border:1px solid #c9dce9;
  border-left:4px solid var(--rs35-blue-600);
  border-radius:13px;
  background:#f1f8fc;
  color:#254a65;
  box-shadow:var(--rs35-shadow-xs);
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .notice-warning{
  border-color:#ead2a6;
  border-left-color:#c58a2b;
  background:#fff9ed;
  color:#6e4b16;
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .notice-danger{
  border-color:#e7c2c2;
  border-left-color:#b54a4a;
  background:#fff5f5;
  color:#713333;
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .empty{
  padding:2.35rem;
  border:1px dashed #b9cad7;
  border-radius:18px;
  background:#fbfcfd;
  color:#65798a;
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .badge,
body:not([data-page="systemforge"]):not([data-page="arcade"]) .v31-badge,
body:not([data-page="systemforge"]):not([data-page="arcade"]) .ops-status{
  border:1px solid rgba(31,62,84,.08);
  font-weight:850;
}

/* ------------------------------------------------------------
   Tables and data-heavy areas
   ------------------------------------------------------------ */
body:not([data-page="systemforge"]):not([data-page="arcade"]) .table-wrap{
  border:1px solid var(--rs35-line);
  border-radius:16px;
  background:#fff;
  box-shadow:var(--rs35-shadow-xs);
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) table{
  background:#fff;
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) th,
body:not([data-page="systemforge"]):not([data-page="arcade"]) td{
  padding:.88rem .9rem;
  border-bottom-color:#e6edf2;
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) th{
  background:#f4f7f9;
  color:#41596c;
  font-size:.78rem;
  font-weight:850;
  letter-spacing:.035em;
  text-transform:uppercase;
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) tbody tr:hover td{
  background:#fbfdfe;
}

/* ------------------------------------------------------------
   Authentication / account pages
   ------------------------------------------------------------ */
body:not([data-page="systemforge"]):not([data-page="arcade"]) .auth-shell{
  max-width:560px;
  margin:4rem auto;
  padding:2.2rem;
  border:1px solid var(--rs35-line);
  border-radius:24px;
  background:#fff;
  box-shadow:var(--rs35-shadow);
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .tabs{
  padding:.3rem;
  border:1px solid #dce5ec;
  border-radius:13px;
  background:#f2f5f8;
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .tabs button{
  min-height:42px;
  border-radius:10px;
  color:#556b7d;
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .tabs button.active{
  color:var(--rs35-navy-800);
  box-shadow:0 4px 12px rgba(7,31,50,.07);
}

/* ------------------------------------------------------------
   Customer portal
   ------------------------------------------------------------ */
body[data-page="customer-dashboard"] .customer-portal-nav-v308,
body[data-page="profile"] .customer-portal-nav-v308,
body[data-page="messages"] .customer-portal-nav-v308,
body[data-page="notifications"] .customer-portal-nav-v308,
body[data-page="appointments"] .customer-portal-nav-v308{
  gap:.5rem;
  padding:.55rem;
  border:1px solid var(--rs35-line);
  border-radius:16px;
  background:#fff;
  box-shadow:var(--rs35-shadow-xs);
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .customer-portal-tab-v308{
  min-height:50px;
  border:0;
  border-radius:11px;
  background:transparent;
  color:#496075;
  font-weight:800;
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .customer-portal-tab-v308:hover{
  background:#f1f5f8;
  box-shadow:none;
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .customer-portal-tab-v308.is-active{
  background:linear-gradient(135deg,var(--rs35-navy-800),var(--rs35-blue-700));
  color:#fff;
  box-shadow:0 8px 18px rgba(20,74,112,.18);
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .customer-dashboard-grid{
  gap:1.2rem;
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .customer-dashboard-section{
  margin-top:1.35rem;
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .ops-card,
body:not([data-page="systemforge"]):not([data-page="arcade"]) .ops-row{
  border-color:var(--rs35-line);
  border-radius:15px;
  box-shadow:var(--rs35-shadow-xs);
}

/* ------------------------------------------------------------
   Admin / staff workspace
   ------------------------------------------------------------ */
body[data-page="admin"] .dashboard-workspace{
  grid-template-columns:270px minmax(0,1fr);
  gap:1.35rem;
}
body[data-page="admin"] .dashboard-sidebar{
  top:94px;
  padding:.65rem;
  border:1px solid #173b56;
  border-radius:18px;
  background:linear-gradient(180deg,#0b263c,#0a2032);
  box-shadow:0 18px 46px rgba(7,31,50,.15);
}
body[data-page="admin"] .dashboard-sidebar-title{
  margin:0 0 .45rem;
  padding:.7rem .72rem .85rem;
  border-bottom:1px solid rgba(255,255,255,.10);
  color:#fff;
}
body[data-page="admin"] .dashboard-search{
  border-bottom:1px solid rgba(255,255,255,.09);
  background:transparent;
}
body[data-page="admin"] .dashboard-search .input{
  border-color:rgba(255,255,255,.14);
  background:rgba(255,255,255,.085);
  color:#fff;
  box-shadow:none;
}
body[data-page="admin"] .dashboard-search .input::placeholder{color:#a8bdcc}
body[data-page="admin"] #dashboardNav .dashboard-nav-group{
  border-color:rgba(255,255,255,.08);
  background:transparent;
}
body[data-page="admin"] #dashboardNav .dashboard-nav-group-toggle{
  background:transparent;
  color:#d5e4ef;
}
body[data-page="admin"] #dashboardNav .dashboard-nav-group-toggle:hover,
body[data-page="admin"] #dashboardNav .dashboard-nav-group-open>.dashboard-nav-group-toggle,
body[data-page="admin"] #dashboardNav .dashboard-nav-group-search-open>.dashboard-nav-group-toggle{
  background:rgba(255,255,255,.075);
  color:#fff;
}
body[data-page="admin"] #dashboardNav .dashboard-nav-group-items{
  background:transparent;
}
body[data-page="admin"] #dashboardNav .dashboard-nav-button{
  color:#b9ccd9;
  border-radius:9px;
  font-weight:740;
}
body[data-page="admin"] #dashboardNav .dashboard-nav-button:hover{
  background:rgba(255,255,255,.07);
  color:#fff;
}
body[data-page="admin"] #dashboardNav .dashboard-nav-button.active{
  background:#fff;
  color:#0c304c;
  box-shadow:0 5px 14px rgba(0,0,0,.18);
}
body[data-page="admin"] .dashboard-content{
  min-width:0;
}
body[data-page="admin"] .dashboard-pane.dashboard-pane-active{
  animation:rs35PaneIn .16s ease-out;
}
@keyframes rs35PaneIn{from{opacity:.25;transform:translateY(5px)}to{opacity:1;transform:none}}
body[data-page="admin"] .admin-panel{
  margin-bottom:2.7rem;
}
body[data-page="admin"] .admin-section-head{
  align-items:center;
  padding-bottom:1rem;
  border-bottom:1px solid var(--rs35-line);
}
body[data-page="admin"] .admin-metrics{
  gap:1rem;
}
body[data-page="admin"] .metric-card{
  min-height:112px;
  padding:1.15rem 1.2rem;
  border:1px solid var(--rs35-line);
  border-radius:17px;
  background:linear-gradient(145deg,#fff,#f8fafc);
  box-shadow:var(--rs35-shadow-xs);
}
body[data-page="admin"] .metric-card span{
  color:#718494;
  font-size:.75rem;
  font-weight:850;
  letter-spacing:.06em;
  text-transform:uppercase;
}
body[data-page="admin"] .metric-card strong{
  color:var(--rs35-navy-800);
  font-size:2.15rem;
  letter-spacing:-.04em;
}

/* ------------------------------------------------------------
   Public trust/legal/policy pages
   ------------------------------------------------------------ */
body:not([data-page="systemforge"]):not([data-page="arcade"]) .legal-stack{
  gap:1.15rem;
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .legal-stack .card,
body:not([data-page="systemforge"]):not([data-page="arcade"]) .policy-list.card{
  padding:1.5rem 1.6rem;
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) hr.soft{
  border-top-color:var(--rs35-line);
}
body:not([data-page="systemforge"]):not([data-page="arcade"]) .v31-public-grid{
  gap:1.15rem;
}

/* ------------------------------------------------------------
   Maintenance and restricted-access modes
   ------------------------------------------------------------ */
body[data-page="maintenance"],
body[data-page="restricted-access"]{
  min-height:100vh;
  background:
    radial-gradient(circle at 16% 10%,rgba(76,151,199,.18),transparent 25rem),
    linear-gradient(145deg,#061a2b,#0b3454 70%,#15567f);
}
body[data-page="maintenance"] .maintenance-page,
body[data-page="restricted-access"] .maintenance-page{
  min-height:100vh;
  padding:clamp(1.2rem,4vw,3rem);
}
body[data-page="maintenance"] .maintenance-card,
body[data-page="restricted-access"] .maintenance-card{
  border:1px solid rgba(255,255,255,.35);
  border-radius:28px;
  background:rgba(255,255,255,.97);
  box-shadow:0 36px 90px rgba(2,16,29,.27);
}
body[data-page="maintenance"] .maintenance-logo,
body[data-page="restricted-access"] .maintenance-logo{
  border:1px solid #d7e2ea;
  border-radius:16px;
  box-shadow:var(--rs35-shadow-sm);
}

/* ------------------------------------------------------------
   Contact v3.4.2 harmonization
   ------------------------------------------------------------ */
.rinaldi-contact-launcher-v342{
  border:1px solid rgba(255,255,255,.28);
  background:linear-gradient(135deg,#1d6596,#0a2b46);
  box-shadow:0 14px 36px rgba(4,27,44,.25),inset 0 1px 0 rgba(255,255,255,.18);
}
.rinaldi-contact-launcher-v342:hover{
  background:linear-gradient(135deg,#2779ad,#0a2b46);
}
.rinaldi-contact-dialog-v342{
  border-radius:26px;
  box-shadow:0 38px 110px rgba(2,20,36,.40);
}
.contact-page-hero-v342{
  background:
    radial-gradient(circle at 82% 25%,rgba(81,178,230,.18),transparent 24rem),
    linear-gradient(120deg,#071b2c 0%,#0a304e 58%,#175a84 100%);
}
.contact-method-v342,
.contact-page-guidance-v342,
.contact-setting-card-v342{
  border-radius:20px;
  box-shadow:var(--rs35-shadow-xs);
}

/* ------------------------------------------------------------
   Shared footer — applies to normal pages, Arcade, and SystemForge
   so the footer remains the same across the website.
   ------------------------------------------------------------ */
.footer{
  position:relative;
  margin-top:0;
  padding:4rem 0 1.7rem;
  border-top:1px solid #143751;
  background:
    radial-gradient(circle at 18% 0%,rgba(53,131,181,.12),transparent 24rem),
    #061a2a;
  color:#c9d9e5;
}
.footer::before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:3px;
  background:linear-gradient(90deg,#2877aa,#62b2dd 45%,transparent 85%);
}
.footer-grid{
  grid-template-columns:1.45fr 1fr 1fr 1fr;
  gap:clamp(1.5rem,3vw,3rem);
}
.footer-grid>div>strong{
  display:block;
  margin-bottom:.82rem;
  color:#fff;
  font-size:.75rem;
  font-weight:900;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.footer-grid p{
  margin:.65rem 0 0;
  color:#a9bece;
  line-height:1.75;
}
.footer-grid a{
  position:relative;
  display:inline-block;
  padding:.12rem 0;
  color:#d9e6ef;
  text-decoration:none;
  transition:color .15s ease,transform .15s ease;
}
.footer-grid a:hover{
  color:#fff;
  transform:translateX(2px);
}
.footer-brand{
  gap:.85rem;
  color:#fff;
  font-size:1.1rem;
  font-weight:900;
}
.footer-brand img{
  width:52px;
  padding:2px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:14px;
  background:rgba(255,255,255,.04);
}
.footer small{color:#809aad}
.footer hr{border-color:#183a53!important}

/* ------------------------------------------------------------
   Responsive refinements
   ------------------------------------------------------------ */
@media(max-width:1100px){
  body[data-page="home"] .hero::after{right:4%;width:34vw;opacity:.78}
  body[data-page="home"] .hero-content{max-width:650px}
  body:not([data-page="systemforge"]):not([data-page="arcade"]) .nav-links>a{padding:.65rem .55rem;font-size:.88rem}
}

@media(max-width:980px){
  body:not([data-page="systemforge"]):not([data-page="arcade"]) .nav{min-height:74px}
  body:not([data-page="systemforge"]):not([data-page="arcade"]) .nav-links{
    top:74px;
    left:2.5%;
    right:2.5%;
    padding:.75rem;
    border:1px solid var(--rs35-line);
    border-radius:0 0 18px 18px;
    background:rgba(255,255,255,.98);
    box-shadow:0 22px 50px rgba(7,31,50,.15);
    backdrop-filter:blur(16px);
  }
  body:not([data-page="systemforge"]):not([data-page="arcade"]) .nav-links>a,
  body:not([data-page="systemforge"]):not([data-page="arcade"]) .mobile-nav-button{
    min-height:44px;
    padding:.7rem .8rem;
    border-radius:10px;
  }
  body:not([data-page="systemforge"]):not([data-page="arcade"]) .nav-links>a::after{display:none}
  body:not([data-page="systemforge"]):not([data-page="arcade"]) .menu-btn{
    display:flex;
    width:42px;
    height:42px;
    border-color:var(--rs35-line);
    background:#f4f7f9;
  }
  body[data-page="home"] .hero{min-height:560px}
  body[data-page="home"] .hero::after{opacity:.30;right:-8%;width:44vw}
  body[data-page="home"] .hero-content{max-width:720px;padding:5.8rem 0}
  body[data-page="admin"] .dashboard-workspace{grid-template-columns:1fr}
  body[data-page="admin"] .dashboard-sidebar{
    position:sticky;
    top:74px;
    z-index:30;
    border-color:var(--rs35-line);
    background:rgba(255,255,255,.97);
    box-shadow:var(--rs35-shadow-sm);
  }
  body[data-page="admin"] .dashboard-search{border-bottom-color:var(--rs35-line)}
  body[data-page="admin"] .dashboard-search .input{border-color:var(--rs35-line-strong);background:#fff;color:var(--rs35-slate-900)}
  body[data-page="admin"] .dashboard-search .input::placeholder{color:#7a8d9c}
  body[data-page="admin"] #dashboardNav .dashboard-nav-group{border-color:var(--rs35-line);background:#fff}
  body[data-page="admin"] #dashboardNav .dashboard-nav-group-toggle{color:#385166}
  body[data-page="admin"] #dashboardNav .dashboard-nav-group-toggle:hover,
  body[data-page="admin"] #dashboardNav .dashboard-nav-group-open>.dashboard-nav-group-toggle,
  body[data-page="admin"] #dashboardNav .dashboard-nav-group-search-open>.dashboard-nav-group-toggle{background:#edf4f8;color:#143b58}
  body[data-page="admin"] #dashboardNav .dashboard-nav-group-items{background:#fff}
  body[data-page="admin"] #dashboardNav .dashboard-nav-button{color:#455e71;border:1px solid var(--rs35-line)}
  body[data-page="admin"] #dashboardNav .dashboard-nav-button:hover{background:#f0f5f8;color:#153d5a}
  body[data-page="admin"] #dashboardNav .dashboard-nav-button.active{background:var(--rs35-navy-800);color:#fff}
  .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:720px){
  body:not([data-page="systemforge"]):not([data-page="arcade"]) .section{padding:4.3rem 0}
  body:not([data-page="systemforge"]):not([data-page="arcade"]) .page-hero{padding:4.25rem 0 3.4rem}
  body[data-page="home"] .hero{min-height:auto}
  body[data-page="home"] .hero::after{display:none}
  body[data-page="home"] .hero::before{-webkit-mask-image:none;mask-image:none;opacity:.55}
  body[data-page="home"] .hero-content{padding:4.8rem 0}
  body[data-page="home"] .hero-content>div:first-child{width:auto}
  body[data-page="home"] .hero-content h1{font-size:clamp(2.5rem,12vw,3.7rem)}
  body:not([data-page="systemforge"]):not([data-page="arcade"]) .cta-band{padding:1.7rem}
  body:not([data-page="systemforge"]):not([data-page="arcade"]) .auth-shell{margin:2rem auto;padding:1.5rem}
  body:not([data-page="systemforge"]):not([data-page="arcade"]) .service-toolbar{padding:.55rem}
  .footer{padding-top:3.2rem}
}

@media(max-width:560px){
  body:not([data-page="systemforge"]):not([data-page="arcade"]) .container{width:min(94%,1220px)}
  body:not([data-page="systemforge"]):not([data-page="arcade"]) .brand span{font-size:1rem}
  body:not([data-page="systemforge"]):not([data-page="arcade"]) .brand img{width:42px;height:42px}
  body:not([data-page="systemforge"]):not([data-page="arcade"]) .page-hero h1{font-size:clamp(2.25rem,11vw,3.25rem)}
  body:not([data-page="systemforge"]):not([data-page="arcade"]) .service-card{min-height:auto}
  body:not([data-page="systemforge"]):not([data-page="arcade"]) .card{border-radius:18px}
  .footer-grid{grid-template-columns:1fr}
}

@media(prefers-reduced-motion:reduce){
  body:not([data-page="systemforge"]):not([data-page="arcade"]) *,
  body:not([data-page="systemforge"]):not([data-page="arcade"]) *::before,
  body:not([data-page="systemforge"]):not([data-page="arcade"]) *::after{
    scroll-behavior:auto!important;
    transition-duration:.001ms!important;
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
  }
}

@media print{
  .site-header,.footer,.rinaldi-contact-launcher-v342{display:none!important}
  body{background:#fff!important}
  .card,.table-wrap{box-shadow:none!important}
}
