:root{
  /* --- RGS brand palette, sampled from the logo artwork --- */
  --blue:#095AA6;        /* RGS brand blue */
  --blue-lt:#7FA9D1;     /* wordmark gradient, light end */
  --blue-pale:#DCE8F3;
  --navy:#04182C;        /* RGS blue driven deep - hero ground */
  --navy-2:#0A2743;      /* panel surface */
  --rule:#16405F;        /* hairline on dark */
  --red:#E01610;         /* RGS red, AA-safe on white for buttons */
  --red-pure:#FD1B14;    /* true logo red - accents on dark */
  --clinical:#F2F6FA;
  --paper:#FFFFFF;
  --ink:#0C1B29;
  --muted:#5B6B7B;

  --display:'Archivo',system-ui,sans-serif;
  --body:'Newsreader',Georgia,serif;
  --data:'IBM Plex Mono',ui-monospace,monospace;
  --wrap:1180px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--body);background:var(--paper);color:var(--ink);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
img,svg{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:3px solid var(--red);outline-offset:3px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
.mono{font-family:var(--data);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;font-weight:500}
h1,h2,h3,h4{font-family:var(--display);line-height:1.05;letter-spacing:-.02em;font-weight:800}
h2{font-size:clamp(1.7rem,3.6vw,2.7rem);margin-bottom:.5em}
h3{font-size:1.15rem;letter-spacing:-.01em;font-weight:700}
p{max-width:66ch}

/* ---------- brand header ---------- */
.masthead{background:var(--paper);border-bottom:3px solid var(--blue);position:relative}
.masthead .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:82px;flex-wrap:wrap}
.masthead .logo{height:50px;width:auto}
.mh-right{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.mh-right .tel{font-family:var(--data);font-weight:600;font-size:1.16rem;color:var(--blue);text-decoration:none;letter-spacing:.01em}
.mh-right .tel small{display:block;font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:500}
.mh-cta{background:var(--red);color:#fff;text-decoration:none;font-family:var(--display);font-weight:800;font-size:.93rem;padding:13px 22px;border-radius:2px}
.mh-cta:hover{filter:brightness(1.08)}

/* ---------- trust strip ---------- */
.trust{background:var(--clinical);border-bottom:1px solid #DCE3EA;padding:11px 0}
.trust .wrap{display:flex;gap:26px;align-items:center;justify-content:center;flex-wrap:wrap;font-family:var(--data);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:#4A5D70}
.trust b{color:var(--blue);font-weight:600}
.pulse{width:7px;height:7px;border-radius:50%;background:var(--red-pure);display:inline-block;margin-right:7px;vertical-align:middle;animation:blip 2.4s infinite}
@keyframes blip{0%,100%{opacity:.3}50%{opacity:1}}

/* ---------- hero ---------- */
.hero{background:var(--navy);color:#E4EDF5;position:relative;overflow:hidden;padding:52px 0 64px}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 62% 55% at 20% 6%,rgba(9,90,166,.42),transparent 70%);pointer-events:none}
.hero .wrap{position:relative;display:grid;grid-template-columns:1.08fr .92fr;gap:52px;align-items:start}
.eyebrow{color:var(--blue-lt);margin-bottom:20px}
.hero h1{font-size:clamp(2.1rem,4.6vw,3.5rem);color:#fff;margin-bottom:20px}
.hero h1 em{font-style:normal;color:var(--red-pure);display:block}
.hero .lede{font-size:1.13rem;color:#A9C0D6;max-width:50ch;margin-bottom:26px}

.terms{list-style:none;border-top:1px solid var(--rule);margin-bottom:26px}
.terms li{border-bottom:1px solid var(--rule);padding:13px 0;display:flex;gap:14px;align-items:baseline;font-size:.95rem;color:#C3D5E4}
.terms .k{font-family:var(--data);font-size:.68rem;letter-spacing:.12em;color:var(--red-pure);text-transform:uppercase;min-width:76px;flex-shrink:0}
.terms b{color:#fff}

/* signature: imaging-depth sector */
.sector{margin-top:8px}
.sweep{transform-origin:300px 14px;animation:sweep 5.5s cubic-bezier(.45,0,.55,1) infinite}
@keyframes sweep{0%{transform:rotate(-31deg)}50%{transform:rotate(31deg)}100%{transform:rotate(-31deg)}}

/* ---------- form ---------- */
.formcard{background:var(--navy-2);border:1px solid var(--rule);border-top:4px solid var(--red);border-radius:3px;padding:28px;position:sticky;top:16px}
.formcard h2{font-size:1.32rem;color:#fff;margin-bottom:6px}
.formcard .sub{font-size:.9rem;color:#93AEC6;margin-bottom:20px}
label{display:block;font-family:var(--data);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:#8FA9C0;margin:14px 0 6px;font-weight:500}
input,select,textarea{width:100%;background:#04182C;border:1px solid var(--rule);color:#EAF2F8;padding:11px 13px;font-family:var(--body);font-size:1rem;border-radius:2px}
input:focus,select:focus,textarea:focus{border-color:var(--blue-lt);outline:none}
select{cursor:pointer}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.btn{display:inline-block;width:100%;background:var(--red);color:#fff;border:0;padding:16px;font-family:var(--display);font-weight:800;font-size:1.05rem;letter-spacing:-.01em;cursor:pointer;border-radius:2px;margin-top:20px;transition:transform .12s,filter .12s}
.btn:hover{filter:brightness(1.1);transform:translateY(-1px)}
.btn.ghost{background:transparent;color:var(--blue-lt);border:1px solid var(--rule)}
.fineprint{font-family:var(--data);font-size:.63rem;line-height:1.65;color:#6E88A0;margin-top:14px;letter-spacing:.02em}
.step2{display:none}
.disclosure{font-family:var(--data);font-size:.62rem;line-height:1.7;color:#7C93A8;letter-spacing:.02em;max-width:62ch;margin:-12px 0 26px}
.phi-note{font-family:var(--data);font-size:.6rem;line-height:1.6;color:#7C93A8;margin-top:7px;letter-spacing:.02em}
.orbook{display:flex;align-items:center;gap:12px;margin-top:18px}
.orbook span{font-family:var(--data);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:#6E88A0;flex-shrink:0}
.orbook .btn{margin-top:0}
.stepbar{display:flex;gap:5px;margin-bottom:16px}
.stepbar i{height:2px;flex:1;background:var(--rule)}
.stepbar i.on{background:var(--red-pure)}

/* ---------- light sections ---------- */
section.light{padding:76px 0;border-bottom:1px solid #DFE6EC}
section.light.tint{background:var(--clinical)}
.tag{color:var(--muted);margin-bottom:18px;display:block}
.tag b{color:var(--blue)}
.lead{font-size:1.16rem;color:#39485A;max-width:60ch}
@media(min-width:1100px){
  .railed{position:relative}
  .railed::before{content:"";position:absolute;left:calc(50% - var(--wrap)/2 - 6px);top:0;bottom:0;width:1px;background:linear-gradient(180deg,transparent,var(--blue) 12%,var(--blue) 88%,transparent);opacity:.25}
}

/* lines / brands */
.lines{display:grid;grid-template-columns:repeat(auto-fit,minmax(158px,1fr));gap:1px;background:#D6E0EA;border:1px solid #D6E0EA;margin-top:22px}
.lines span{background:var(--paper);padding:19px 13px;text-align:center;font-family:var(--data);font-size:.74rem;letter-spacing:.04em;color:#54677A;display:flex;align-items:center;justify-content:center;min-height:64px;position:relative}
.lines .direct{background:#F2F7FC;color:var(--blue);font-weight:600}
.lines .more{color:#8B9AAA;font-style:italic}
.contrast{display:grid;grid-template-columns:1fr 1fr;margin-top:40px;border:1px solid #D6E0EA}
.contrast>div{padding:30px}
.contrast>div:first-child{border-right:1px solid #D6E0EA;background:#F7FAFC}
.contrast>div:last-child{border-top:3px solid var(--blue)}
.contrast h3{margin-bottom:14px;font-size:1rem}
.contrast ul{list-style:none;font-size:.96rem}
.contrast li{padding:9px 0 9px 22px;position:relative;border-bottom:1px dotted #D6E0EA;color:#374757}
.contrast li:last-child{border:0}
.contrast li::before{position:absolute;left:0;font-family:var(--data);font-size:.8rem;font-weight:600}
.contrast .no li::before{content:"\00d7";color:#9AA8B6}
.contrast .yes li::before{content:"\2192";color:var(--red)}

/* specialty cards */
.specs{display:grid;grid-template-columns:repeat(auto-fit,minmax(325px,1fr));gap:1px;background:#D6E0EA;border:1px solid #D6E0EA;margin-top:38px}
.spec{background:var(--paper);padding:28px;border-top:3px solid transparent;transition:background .2s,border-color .2s}
.spec:hover,.spec.active{background:#F7FBFF;border-top-color:var(--red)}
.spec .depth{font-family:var(--data);font-size:.66rem;letter-spacing:.1em;color:var(--muted);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #E2E9EF;padding-bottom:9px;margin-bottom:16px}
.spec .depth b{color:var(--blue);font-weight:600}
.spec h3{margin-bottom:11px}
.spec p{font-size:.95rem;color:#425364;margin-bottom:15px}
.spec dl{font-size:.87rem;border-top:1px dotted #D6E0EA;padding-top:13px}
.spec dt{font-family:var(--data);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:11px}
.spec dt:first-child{margin-top:0}
.spec dd{color:#374757;margin-top:3px}
.spec dd em{font-style:normal;color:var(--blue);font-weight:500}
.spec .pick{margin-top:18px;background:none;border:0;border-bottom:2px solid var(--red);font-family:var(--display);font-weight:700;font-size:.9rem;cursor:pointer;padding:3px 0;color:var(--ink)}
.spec .pick:hover{color:var(--red)}

/* price bands */
.bands{margin-top:38px;border-top:3px solid var(--blue)}
.band{display:grid;grid-template-columns:170px 1fr 180px;gap:22px;padding:19px 0;border-bottom:1px solid #DFE6EC;align-items:baseline}
.band .tier{font-family:var(--display);font-weight:700;font-size:1rem;color:var(--blue)}
.band .who{font-size:.94rem;color:#44556A}
.band .fig{font-family:var(--data);font-size:.98rem;font-weight:600;text-align:right;color:var(--ink);white-space:nowrap}

/* calculator */
.calc{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--rule);margin-top:38px;background:var(--navy-2);color:#DFEAF3}
.calc .in{padding:32px;border-right:1px solid var(--rule)}
.calc .out{padding:32px;background:var(--navy);display:flex;flex-direction:column;justify-content:center}
.calc h3{color:#fff;margin-bottom:6px}
.calc .hint{font-size:.86rem;color:#8CA6BE;margin-bottom:8px}
.readout{border-bottom:1px solid var(--rule);padding:15px 0}
.readout:last-of-type{border:0}
.readout .lbl{font-family:var(--data);font-size:.63rem;letter-spacing:.12em;text-transform:uppercase;color:#8CA6BE}
.readout .val{font-family:var(--data);font-size:1.75rem;font-weight:600;color:#fff;margin-top:5px}
.readout .val.pos{color:#5FD3A4}
.readout .val.neg{color:var(--red-pure)}
input[type=range]{accent-color:var(--red-pure);padding:0;background:transparent;border:0}
.rangeval{font-family:var(--data);font-size:.8rem;color:var(--red-pure);float:right}

/* steps */
.steps{counter-reset:s;margin-top:38px;display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.step{counter-increment:s;border-top:3px solid var(--blue);padding-top:18px}
.step::before{content:counter(s,decimal-leading-zero);font-family:var(--data);font-size:.72rem;color:var(--red);letter-spacing:.1em;display:block;margin-bottom:9px;font-weight:600}
.step h3{margin-bottom:8px;font-size:1.02rem}
.step p{font-size:.94rem;color:#44556A}

/* included */
.inc{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:26px;margin-top:38px}
.inc div{border-top:1px solid var(--blue);padding-top:15px}
.inc h3{font-size:.98rem;margin-bottom:7px}
.inc p{font-size:.91rem;color:#44556A}

/* credibility */
.cred{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1px;background:#D6E0EA;border:1px solid #D6E0EA;margin-top:30px}
.cred div{background:var(--paper);padding:24px 18px;text-align:center}
.cred .n{font-family:var(--display);font-weight:800;font-size:1.9rem;color:var(--blue);letter-spacing:-.03em}
.cred .l{font-family:var(--data);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:6px}

/* faq */
details{border-bottom:1px solid #DFE6EC;padding:19px 0}
summary{font-family:var(--display);font-weight:700;font-size:1.03rem;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:18px;align-items:baseline}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";font-family:var(--data);color:var(--red);font-size:1.2rem;flex-shrink:0}
details[open] summary::after{content:"\2013"}
details p{margin-top:12px;font-size:.98rem;color:#3C4C5E}

/* final cta */
.final{background:var(--navy);color:#E4EDF5;padding:76px 0;position:relative;overflow:hidden}
.final::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 55% 60% at 78% 50%,rgba(9,90,166,.4),transparent 70%)}
.final .wrap{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center}
.final h2{color:#fff}
.final p{color:#A9C0D6}

footer{background:#031222;color:#7D96AC;padding:44px 0 60px;font-size:.82rem}
.footlogo{background:#fff;display:inline-block;padding:14px 18px;border-radius:3px;margin-bottom:22px}
.footlogo img{height:42px;width:auto}
footer .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:34px;margin-bottom:8px}
footer a{color:var(--blue-lt);text-decoration:none}
footer a:hover{color:#fff}
footer h4{font-family:var(--data);font-size:.63rem;letter-spacing:.14em;text-transform:uppercase;color:#fff;font-weight:600;margin-bottom:12px}
footer ul{list-style:none;font-size:.85rem;line-height:2}
footer .reg{font-family:var(--data);font-size:.66rem;line-height:1.85;letter-spacing:.02em;border-top:1px solid var(--rule);padding-top:22px;margin-top:26px}
footer .reg{color:#5E7488}
footer strong{color:#A3BACE}

/* mobile sticky */
.sticky{display:none;position:fixed;bottom:0;left:0;right:0;background:var(--navy);border-top:2px solid var(--red);padding:9px;gap:9px;z-index:50}
.sticky a{flex:1;text-align:center;padding:13px;font-family:var(--display);font-weight:700;font-size:.92rem;text-decoration:none;border-radius:2px}
.sticky .call{background:transparent;color:#fff;border:1px solid var(--blue-lt)}
.sticky .quote{background:var(--red);color:#fff}

@media(max-width:900px){
  .hero .wrap,.final .wrap,.calc,.contrast,footer .cols{grid-template-columns:1fr}
  .calc .in{border-right:0;border-bottom:1px solid var(--rule)}
  .contrast>div:first-child{border-right:0;border-bottom:1px solid #D6E0EA}
  .steps{grid-template-columns:1fr}
  .band{grid-template-columns:1fr;gap:5px}
  .band .fig{text-align:left}
  .formcard{position:static}
  .sticky{display:flex}
  body{padding-bottom:66px}
  section.light{padding:54px 0}
  .masthead .wrap{min-height:66px;padding-top:12px;padding-bottom:12px}
  .masthead .logo{height:40px}
  .mh-cta{display:none}
}




/* speaking bots  */

.form-spinner{
  display:inline-block;
  width:16px;
  height:16px;
  margin-right:9px;
  vertical-align:-2px;

  border:2px solid rgba(255,255,255,.35);
  border-top-color:#fff;
  border-radius:50%;

  animation:form-spin .7s linear infinite;
}

@keyframes form-spin{
  to{
    transform:rotate(360deg);
  }
}

.form-error-message{
  border-left:3px solid var(--red);
  background:rgba(224,22,16,.12);
  padding:12px 14px;

  font-family:var(--data);
  font-size:.72rem;
  line-height:1.6;

  color:#E8EFF5;
}

.form-error-message strong{
  display:block;
  color:#fff;
  margin-bottom:3px;
}

.form-error-message span{
  color:#B8C9D7;
}

.success-check{
  width:42px;
  height:42px;

  display:flex;
  align-items:center;
  justify-content:center;

  border:2px solid #5FD3A4;
  border-radius:50%;

  color:#5FD3A4;

  font-family:var(--display);
  font-size:1.4rem;
  font-weight:800;

  margin-bottom:16px;
}