/* =====================================================================
   Revenue Cycle Solutions — Design System
   Brand: Montserrat | Primary #265D76 | Bright #006FA1 | Accent #ED7D31
   Foundation mockup (run 1). Tokens refine against Brand Foundations doc.
   ===================================================================== */

:root {
  /* Brand */
  --primary:        #265D76;  /* deep teal-blue (shared anchor) */
  --primary-dark:   #1a4456;
  --primary-deep:   #122e3b;  /* dark sections */
  --bright:         #006FA1;  /* RCS bright blue */
  --accent:         #ED7D31;  /* RCS orange — CTAs */
  --accent-dark:    #d96a1f;

  /* Ink & neutrals */
  --ink:            #16242c;
  --body:          #3f4d56;
  --muted:         #6c7a83;
  --line:          #e3eaee;
  --bg:            #ffffff;
  --bg-soft:       #f4f8fa;
  --bright-tint:   #e7f2f8;
  --accent-tint:   #fdefe3;

  --radius:        10px;
  --radius-lg:     16px;
  --shadow:        0 1px 3px rgba(18,46,59,.08), 0 8px 24px rgba(18,46,59,.06);
  --shadow-lg:     0 12px 40px rgba(18,46,59,.14);
  --container:     1140px;
  --space:         clamp(3.5rem, 7vw, 6rem);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: 'Montserrat', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  color: var(--body);
  background: var(--bg);
  line-height: 1.65;
  font-size: 17px;
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4 { color: var(--ink); font-weight: 800; line-height: 1.18; margin: 0 0 .6em; letter-spacing: -0.01em; }
h1 { font-size: clamp(2.1rem, 4.6vw, 3.35rem); }
h2 { font-size: clamp(1.6rem, 3.2vw, 2.4rem); }
h3 { font-size: clamp(1.2rem, 2vw, 1.45rem); font-weight: 700; }
p { margin: 0 0 1.1rem; }
a { color: var(--bright); text-decoration: none; }
a:hover { text-decoration: underline; }
strong { color: var(--ink); font-weight: 700; }
img { max-width: 100%; height: auto; display: block; }

.container { width: 100%; max-width: var(--container); margin: 0 auto; padding: 0 1.5rem; }
.section { padding: var(--space) 0; }
.section--soft { background: var(--bg-soft); }
.section--deep { background: var(--primary-deep); color: #cddbe2; }
.section--deep h2, .section--deep h3, .section--deep h4 { color: #fff; }
.section--primary { background: var(--primary); color: #d7e6ed; }
.section--primary h2, .section--primary h3 { color: #fff; }
.eyebrow { text-transform: uppercase; letter-spacing: .14em; font-size: .8rem; font-weight: 700; color: var(--bright); margin: 0 0 1rem; }
.section--deep .eyebrow, .section--primary .eyebrow { color: var(--accent); }
.lead { font-size: 1.18rem; color: var(--body); }
.center { text-align: center; }
.measure { max-width: 760px; }
.measure.center { margin-left: auto; margin-right: auto; }

/* Buttons */
.btn { display: inline-block; font-weight: 700; font-size: 1rem; padding: .95rem 1.7rem; border-radius: var(--radius); border: 2px solid transparent; cursor: pointer; transition: .18s ease; text-decoration: none; }
.btn--accent { background: var(--accent); color: #fff; box-shadow: 0 6px 18px rgba(237,125,49,.32); }
.btn--accent:hover { background: var(--accent-dark); text-decoration: none; transform: translateY(-1px); }
.btn--primary { background: var(--primary); color: #fff; }
.btn--primary:hover { background: var(--primary-dark); text-decoration: none; }
.btn--ghost { background: transparent; color: #fff; border-color: rgba(255,255,255,.6); }
.btn--ghost:hover { background: rgba(255,255,255,.12); text-decoration: none; }

/* Header / nav */
.site-header { position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,.96); backdrop-filter: blur(8px); border-bottom: 1px solid var(--line); }
.nav { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: 76px; }
.nav__logo img { height: 44px; width: auto; }
.nav__links { display: flex; align-items: center; gap: 1.35rem; list-style: none; margin: 0; padding: 0; }
.nav__links a { color: var(--ink); font-weight: 600; font-size: .96rem; }
.nav__links a:hover { color: var(--bright); text-decoration: none; }
.nav__cta { margin-left: .5rem; }
.nav__toggle { display: none; background: none; border: 0; font-size: 1.6rem; color: var(--primary); cursor: pointer; }

/* Hero */
.hero {
  position: relative;
  overflow: hidden;
  color: #d7e6ed;
  padding: clamp(4rem, 8vw, 7rem) 0;
  background:
    radial-gradient(circle at 85% 18%, rgba(0,111,161,.32), transparent 55%),
    radial-gradient(circle at 10% 92%, rgba(38,93,118,.45), transparent 60%),
    linear-gradient(160deg, var(--primary-deep) 0%, var(--primary) 78%);
}
.hero::after {
  content: ""; position: absolute; right: -90px; bottom: -90px;
  width: 600px; height: 600px;
  background: url('img/rcs-icon.png') center / contain no-repeat;
  opacity: .12; pointer-events: none;
}
.hero .container { position: relative; z-index: 1; }
.hero .eyebrow { color: var(--accent); }
.hero h1 { color: #fff; max-width: 16ch; }
.hero p { font-size: 1.2rem; max-width: 60ch; }
.hero__sub { color: #9fc0d0; font-weight: 600; }
.hero__actions { margin-top: 2rem; display: flex; gap: 1rem; flex-wrap: wrap; }

/* Grids & cards */
.grid { display: grid; gap: 1.5rem; }
.grid--2 { grid-template-columns: repeat(2, 1fr); }
.grid--3 { grid-template-columns: repeat(3, 1fr); }
.grid--4 { grid-template-columns: repeat(4, 1fr); }
.card { background: var(--bg); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 1.8rem; box-shadow: var(--shadow); }
.card h3 { margin-top: 0; }

/* Stat / metric blocks */
.stat { text-align: center; padding: 1.4rem 1rem; }
.stat__num { font-size: clamp(2.4rem, 5vw, 3.4rem); font-weight: 800; color: var(--bright); line-height: 1; letter-spacing: -.02em; }
.section--deep .stat__num, .section--primary .stat__num { color: var(--accent); }
.stat__label { font-size: .98rem; color: var(--muted); margin-top: .5rem; }
.section--deep .stat__label, .section--primary .stat__label { color: #aebfc7; }

/* Source-attribution bar (the 78/14/4/4 data) */
.attrib { display: grid; grid-template-columns: repeat(4,1fr); gap: 1rem; margin: 2rem 0; }
.attrib__item { background: #fff; border: 1px solid var(--line); border-top: 4px solid var(--bright); border-radius: var(--radius); padding: 1.5rem 1.2rem; text-align: center; }
.attrib__item--big { border-top-color: var(--accent); }
.attrib__pct { font-size: 2.4rem; font-weight: 800; color: var(--ink); line-height: 1; }
.attrib__item--big .attrib__pct { color: var(--accent); }
.attrib__desc { font-size: .9rem; color: var(--muted); margin-top: .5rem; }

/* Lists */
.ticks { list-style: none; padding: 0; margin: 1.2rem 0; display: grid; gap: .7rem; }
.ticks li { position: relative; padding-left: 1.9rem; }
.ticks li::before { content: ""; position: absolute; left: 0; top: .5em; width: 11px; height: 11px; border-radius: 3px; background: var(--bright); }
.ticks--accent li::before { background: var(--accent); }
.pills { display: flex; flex-wrap: wrap; gap: .6rem; margin: 1.2rem 0; padding: 0; list-style: none; }
.pills li { background: var(--bright-tint); color: var(--primary-dark); font-weight: 600; font-size: .92rem; padding: .45rem 1rem; border-radius: 999px; }

/* Compare (traditional vs RCS) */
.compare { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.compare__col { border-radius: var(--radius-lg); padding: 1.8rem; }
.compare__col--bad { background: #fff; border: 1px solid var(--line); }
.compare__col--good { background: var(--primary); color: #e6f0f5; }
.compare__col--good h3 { color: #fff; }
.compare__col ul { list-style: none; padding: 0; margin: 1rem 0 0; display: grid; gap: .6rem; }
.compare__col--bad li { padding-left: 1.6rem; position: relative; }
.compare__col--bad li::before { content: "\00d7"; position: absolute; left: 0; color: #c0392b; font-weight: 800; }
.compare__col--good li { padding-left: 1.6rem; position: relative; }
.compare__col--good li::before { content: "\2713"; position: absolute; left: 0; color: var(--accent); font-weight: 800; }

/* Definition (AEO glossary) */
.def { background: var(--bright-tint); border-left: 4px solid var(--bright); border-radius: 0 var(--radius) var(--radius) 0; padding: 1.2rem 1.4rem; margin: 1.4rem 0; }
.def dt { font-weight: 800; color: var(--ink); }
.def dd { margin: .3rem 0 0; }

/* CTA band */
.cta-band { background: linear-gradient(135deg, var(--primary) 0%, var(--bright) 100%); color: #fff; border-radius: var(--radius-lg); padding: clamp(2.5rem,5vw,3.5rem); text-align: center; }
.cta-band h2 { color: #fff; }
.flow { font-weight: 700; color: var(--primary); font-size: 1.05rem; }
.section--deep .flow, .cta-band .flow { color: #fff; }

/* Footer */
.site-footer { background: var(--primary-deep); color: #9fb3bd; padding: 3.5rem 0 2rem; font-size: .95rem; }
.site-footer a { color: #cddbe2; }
.footer__grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 2rem; }
.site-footer h4 { color: #fff; font-size: .85rem; text-transform: uppercase; letter-spacing: .1em; margin-bottom: 1rem; }
.site-footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .5rem; }
.footer__logo { height: 46px; margin-bottom: 1rem; }
.footer__bottom { border-top: 1px solid rgba(255,255,255,.12); margin-top: 2.5rem; padding-top: 1.5rem; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 1rem; font-size: .85rem; color: #7d929c; }

/* Image placeholder (swap with iStock when delivered) */
.imgph { position: relative; background: repeating-linear-gradient(45deg, #e8f1f6, #e8f1f6 14px, #dcebf2 14px, #dcebf2 28px); border: 2px dashed #93b9cc; border-radius: var(--radius-lg); display: flex; flex-direction: column; gap: .6rem; align-items: center; justify-content: center; text-align: center; color: #54788a; font-size: .9rem; font-weight: 600; min-height: 280px; padding: 1.4rem; }
.imgph::before { content: "IMAGE PLACEHOLDER"; font-size: .68rem; font-weight: 800; letter-spacing: .1em; color: #fff; background: var(--accent); border-radius: 999px; padding: .35rem .85rem; }

/* Responsive */
@media (max-width: 900px) {
  .grid--3, .grid--4, .attrib { grid-template-columns: repeat(2,1fr); }
  .compare, .footer__grid { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  .nav__links { display: none; }
  .nav__toggle { display: block; }
  .nav__links.open { display: flex; position: absolute; top: 76px; left: 0; right: 0; flex-direction: column; background: #fff; border-bottom: 1px solid var(--line); padding: 1rem 1.5rem; gap: 1rem; }
  .grid--2, .grid--3, .grid--4, .attrib { grid-template-columns: 1fr; }
}
.skip { position: absolute; left: -999px; }
.skip:focus { left: 1rem; top: 1rem; background: #fff; padding: .6rem 1rem; z-index: 100; border-radius: 6px; }

/* === Interior pages (run 1 additions) ============================== */

/* Sub-hero — compact branded banner for non-home pages (logomark watermark) */
.subhero { position: relative; overflow: hidden; color: #d7e6ed; padding: clamp(3rem,6vw,4.75rem) 0;
  background: radial-gradient(circle at 88% 12%, rgba(0,111,161,.30), transparent 55%),
    linear-gradient(160deg, var(--primary-deep) 0%, var(--primary) 82%); }
.subhero::after { content:""; position:absolute; right:-70px; bottom:-120px; width:430px; height:430px;
  background:url('img/rcs-icon.png') center/contain no-repeat; opacity:.10; pointer-events:none; }
.subhero .container { position: relative; z-index: 1; }
.subhero .eyebrow { color: var(--accent); }
.subhero h1 { color: #fff; max-width: 24ch; }
.subhero p { color: rgba(255,255,255,.86); font-size: 1.15rem; max-width: 64ch; margin-bottom: 0; }

/* Leadership / team */
.team { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.5rem; margin-top: 2rem; }
.team__member { background:#fff; border:1px solid var(--line); border-radius: var(--radius-lg); overflow:hidden; box-shadow: var(--shadow); }
.team__photo { background: repeating-linear-gradient(45deg,#eef4f7,#eef4f7 12px,#e6eef2 12px,#e6eef2 24px);
  aspect-ratio: 4/3; display:flex; align-items:center; justify-content:center; color:#7c98a5; font-size:.76rem; font-weight:600; text-align:center; padding:1rem; }
.team__body { padding: 1.4rem 1.5rem 1.6rem; }
.team__name { font-weight: 800; color: var(--ink); font-size: 1.15rem; }
.team__role { color: var(--bright); font-weight: 700; font-size: .82rem; text-transform: uppercase; letter-spacing: .05em; margin: .15rem 0 .8rem; }
.team__body p { font-size: .92rem; margin-bottom: .7rem; }

/* Blog */
.posts { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.5rem; margin-top: 2rem; }
.post-card { display:flex; flex-direction:column; background:#fff; border:1px solid var(--line); border-radius: var(--radius-lg); overflow:hidden; box-shadow: var(--shadow); transition:.18s ease; }
.post-card:hover { box-shadow: var(--shadow-lg); transform: translateY(-2px); }
.post-card__body { padding: 1.5rem; }
.post-card__cat { font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--accent); }
.post-card h3 { font-size: 1.1rem; margin: .4rem 0 .5rem; }
.post-card p { font-size: .9rem; color: var(--muted); margin: 0; }

/* Careers / jobs (populated from the HR Google Sheet) */
.jobs { display: grid; gap: 1rem; margin-top: 1.5rem; }
.job { display:flex; align-items:center; justify-content:space-between; gap:1rem; background:#fff;
  border:1px solid var(--line); border-left:4px solid var(--bright); border-radius: var(--radius); padding: 1.25rem 1.6rem; box-shadow: var(--shadow); }
.job__title { font-weight: 700; color: var(--ink); font-size: 1.08rem; }
.job__meta { font-size: .86rem; color: var(--muted); margin-top: .2rem; }
.jobs__empty { background: var(--bg-soft); border:1px dashed #b9cdd6; border-radius: var(--radius); padding: 2rem; text-align:center; color: var(--muted); }

/* Forms */
.form { display: grid; gap: 1.1rem; max-width: 640px; }
.form label { font-weight: 600; color: var(--ink); font-size: .9rem; display:block; margin-bottom: .35rem; }
.form input, .form select, .form textarea { width:100%; font: inherit; color: var(--ink); padding: .8rem .9rem; border:1px solid #cdd9df; border-radius: var(--radius); background:#fff; }
.form input:focus, .form select:focus, .form textarea:focus { outline:none; border-color: var(--bright); box-shadow:0 0 0 3px rgba(0,111,161,.15); }
.form textarea { min-height: 130px; resize: vertical; }
.form__row { display:grid; grid-template-columns: 1fr 1fr; gap: 1.1rem; }
.form__note { font-size: .82rem; color: var(--muted); }

/* Alternative paths (contact) */
.altpaths { display:grid; grid-template-columns: repeat(3,1fr); gap:1.2rem; margin-top:1.5rem; }

/* Prose (legal / long-form) */
.prose { max-width: 800px; }
.prose h2 { font-size: 1.4rem; margin-top: 2.2rem; }
.prose h3 { font-size: 1.1rem; margin-top: 1.5rem; }
.prose p, .prose li { color: var(--body); }
.prose ul, .prose ol { padding-left: 1.3rem; margin-bottom: 1.1rem; }
.prose li { margin-bottom: .4rem; }
.legal-meta { color: var(--muted); font-size: .9rem; }

@media (max-width: 900px) {
  .team, .posts, .altpaths { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 720px) {
  .team, .posts, .altpaths, .form__row { grid-template-columns: 1fr; }
  .job { flex-direction: column; align-items: flex-start; }
}

/* Rich job board (Careers — expandable role cards from the HR sheet) */
.jobcard { background:#fff; border:1px solid var(--line); border-left:4px solid var(--bright); border-radius: var(--radius); box-shadow: var(--shadow); overflow:hidden; }
.jobcard.is-open { border-left-color: var(--accent); box-shadow: var(--shadow-lg); }
.jobcard__head { width:100%; display:flex; align-items:center; justify-content:space-between; gap:1rem; background:none; border:0; cursor:pointer; text-align:left; padding:1.2rem 1.6rem; font:inherit; }
.jobcard__head:hover .jobcard__title { color: var(--bright); }
.jobcard__title { display:block; font-weight:700; color:var(--ink); font-size:1.12rem; }
.jobcard__meta { display:block; font-size:.86rem; color:var(--muted); margin-top:.25rem; }
.jobcard__chev { color:var(--bright); font-size:1.05rem; transition:transform .18s ease; flex:none; }
.jobcard.is-open .jobcard__chev { transform:rotate(180deg); color:var(--accent); }
.jobcard__detail { padding:.4rem 1.6rem 1.7rem; border-top:1px solid var(--line); }
.jobcard__detail h4 { color:var(--ink); font-size:.8rem; text-transform:uppercase; letter-spacing:.06em; margin:1.5rem 0 .5rem; }
.jobcard__detail ul { margin:.3rem 0 0; padding-left:1.2rem; }
.jobcard__detail li { margin-bottom:.4rem; }
.jobcard__detail p { margin:0 0 .8rem; }
.jobcard__tags { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1.3rem; }
.jobcard__tag { background:var(--bright-tint); color:var(--primary-dark); font-weight:600; font-size:.78rem; padding:.3rem .8rem; border-radius:999px; }
.jobcard__detail .btn { margin-top:1.5rem; }
