:root { --ink:#24213a; --muted:#615e70; --brand:#483272; --brand-dark:#30254d; --accent:#0d8d91; --pale:#f5f2fa; --line:#e8e4ee; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:#fff; font-family:system-ui,-apple-system,"Segoe UI",sans-serif; line-height:1.65; }
body, html { margin-top:0 !important; }
.site-main { padding-top:88px; }
.site-main > .container { padding-bottom:5rem; }
.site-nav { background:#f4f1f8; border-bottom:1px solid #ded8e7; box-shadow:none; }
.brand { display:inline-flex; align-items:center; gap:.55rem; color:var(--brand-dark); font-weight:800; letter-spacing:.04em; }
.brand:hover,.brand:focus { color:var(--brand); }
.site-nav .nav-link { color:var(--ink); font-weight:600; padding:.85rem .8rem !important; }
.site-nav .nav-link:hover,.site-nav .nav-link:focus { color:var(--brand); background:rgba(72,50,114,.06); border-radius:.35rem; }
.nav-cta { margin-left:1rem; }
.btn { border-radius:.65rem; font-weight:700; padding:.7rem 1.2rem; }
.btn-primary { background:var(--brand); border-color:var(--brand); }
.btn-primary:hover,.btn-primary:focus { background:var(--brand-dark); border-color:var(--brand-dark); }
.btn-outline-primary { color:var(--brand); border-color:var(--brand); }
.btn-outline-primary:hover { background:var(--brand); border-color:var(--brand); }
.dropdown-menu { border:1px solid var(--line); border-radius:.9rem; box-shadow:0 20px 45px rgba(27,20,51,.12); padding:.7rem; min-width:19rem; }
.dropdown-item { border-radius:.45rem; padding:.45rem .7rem; white-space:normal; }
.dropdown-item:hover { background:var(--pale); color:var(--brand); }
.skip-link { position:absolute; top:-100px; left:1rem; z-index:1100; background:#fff; padding:.5rem 1rem; }
.skip-link:focus { top:1rem; }
.hero { position:relative; overflow:hidden; background:linear-gradient(125deg,#f6f3fa 0%,#f7fbfb 100%); border:1px solid var(--line); border-radius:1.5rem; margin:1.2rem 0 3.5rem; padding:clamp(2rem,5vw,5rem); }
.hero:after { content:""; position:absolute; width:19rem; height:19rem; border-radius:50%; background:rgba(13,141,145,.09); right:-5rem; top:-6rem; pointer-events:none; }
.hero-content { position:relative; z-index:1; max-width:48rem; }
.eyebrow { display:inline-block; color:var(--accent); font-size:.8rem; font-weight:800; text-transform:uppercase; letter-spacing:.12em; margin-bottom:1rem; }
h1,h2,h3 { color:var(--brand-dark); line-height:1.17; letter-spacing:-.025em; font-weight:750; }
.hero h1 { font-size:clamp(2.3rem,5vw,4.5rem); max-width:17ch; margin-bottom:1.2rem; }
.hero p { font-size:clamp(1.08rem,1.7vw,1.3rem); max-width:57ch; color:var(--muted); margin-bottom:1.7rem; }
.hero-actions { display:flex; flex-wrap:wrap; gap:.75rem; }
.section-heading { max-width:47rem; margin:0 0 2rem; }
.section-heading h2 { font-size:clamp(1.8rem,3vw,2.8rem); }
.feature-grid,.module-grid,.price-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.2rem; margin:1.5rem 0 3rem; }
.feature-card,.module-card,.price-card,.quote-card { background:#fff; border:1px solid var(--line); border-radius:1rem; padding:1.65rem; box-shadow:0 10px 28px rgba(27,20,51,.035); }
.feature-card h3,.module-card h2,.price-card h2 { font-size:1.2rem; margin:.5rem 0; }
.feature-card p,.module-card p,.price-card p { color:var(--muted); margin-bottom:.4rem; }
.module-card a { color:var(--brand); font-weight:700; text-decoration:none; }
.module-card a:hover { text-decoration:underline; }
.module-icon { display:inline-grid; place-items:center; width:2.75rem; height:2.75rem; border-radius:.7rem; background:var(--pale); color:var(--brand); font-size:1.25rem; }
.content-section { margin:4rem 0; }
.content-section .row { align-items:center; row-gap:.75rem; }
.row.content-section { --bs-gutter-x:1.25rem; margin-top:.75rem; margin-bottom:.75rem; margin-left:calc(var(--bs-gutter-x) * -.5); margin-right:calc(var(--bs-gutter-x) * -.5); }
.content-section h2 { font-size:clamp(1.65rem,2.5vw,2.4rem); margin:0 0 1rem; }
.content-section .lead { font-size:1.15rem; color:var(--brand-dark); font-weight:550; }
.content-section p { max-width:68ch; }
.content-section img { display:block; width:auto; max-width:100%; height:auto; border-radius:.5rem; box-shadow:none; }
.content-section .col-md-auto { width:216px; max-width:100%; flex:0 0 216px; }
.content-section .col { min-width:0; }
.cta-panel { background:#edf6f5; color:var(--ink); border:1px solid #d9eae8; border-radius:1.3rem; padding:clamp(2rem,4vw,3.5rem); margin-top:4rem; display:flex; align-items:center; justify-content:space-between; gap:2rem; }
.cta-panel h2,.cta-panel p { color:var(--brand-dark); margin:0; }
.cta-panel p { color:var(--muted); margin-top:.45rem; }
.cta-panel .btn { background:var(--brand); color:#fff; border-color:var(--brand); flex-shrink:0; }
.cta-panel .btn:hover { background:var(--brand-dark); color:#fff; }
.site-footer { background:#f4f1f8; color:var(--brand-dark); border-top:1px solid var(--line); padding:3rem 0 1.2rem; }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr; gap:2rem; }
.footer-grid strong { display:block; margin-bottom:.7rem; }
.footer-grid p { color:var(--muted); }
.footer-grid a { display:block; color:var(--brand); text-decoration:none; margin:.35rem 0; }
.footer-grid a:hover { color:var(--brand-dark); text-decoration:underline; }
.footer-bottom { color:var(--muted); border-top:1px solid #ded8e7; margin-top:2.5rem; padding-top:1rem; font-size:.85rem; }
.solution-list { border-top:1px solid var(--line); }
.solution-row { display:grid; grid-template-columns:4rem minmax(0,1fr) auto; align-items:start; gap:1.5rem; padding:1.65rem .25rem; border-bottom:1px solid var(--line); }
.solution-number { color:var(--accent); font-size:.9rem; font-weight:800; letter-spacing:.08em; padding-top:.25rem; }
.solution-row h3 { font-size:1.35rem; margin:0 0 .45rem; }
.solution-row p { color:var(--muted); margin:0; }
.solution-row a { color:var(--brand); font-weight:700; text-decoration:none; padding-top:.25rem; white-space:nowrap; }
.solution-row a:hover { text-decoration:underline; }
.home-product { background:#faf9fc; border-radius:1.3rem; padding:clamp(1.5rem,3vw,3rem); }
.process-list { list-style:none; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2rem; padding:1.5rem 0 0; margin:0; border-top:1px solid var(--line); }
.process-list li { display:flex; gap:1rem; }
.process-list li > span { color:var(--accent); font-size:.9rem; font-weight:800; }
.process-list h3 { font-size:1.15rem; margin:0 0 .5rem; }
.process-list p { color:var(--muted); margin:0; }
.price-card.featured { border:2px solid var(--brand); }
.price-scope { color:var(--muted); font-size:1.08rem; margin-bottom:1.4rem; }
.price-scope strong { color:var(--brand-dark); }
.price-value { font-size:2rem; color:var(--brand-dark); font-weight:800; line-height:1.1; }
.price-note { color:var(--muted); font-size:.9rem; }
.price-details { max-width:58rem; margin:2.5rem 0 1.5rem; padding-top:1.5rem; border-top:1px solid var(--line); }
.price-details h2 { font-size:1.5rem; margin-bottom:1rem; }
.price-details p { color:var(--muted); }
.notice { border-left:4px solid var(--accent); background:#f1f8f8; padding:1rem 1.3rem; border-radius:.3rem; }
@media(max-width:991px) { .nav-cta{margin:.5rem 0 1rem;} .site-nav .nav-link{padding:.55rem 0 !important;} .site-nav .navbar-collapse{max-height:calc(100vh - 75px);overflow:auto;} .feature-grid,.module-grid,.price-grid{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media(max-width:700px) { .site-main{padding-top:72px;} .hero{padding:2rem 1.4rem;margin-top:.7rem;} .feature-grid,.module-grid,.price-grid,.footer-grid{grid-template-columns:1fr;} .content-section .col-md-auto{width:100%;flex:0 0 auto;} .cta-panel{display:block;} .cta-panel .btn{margin-top:1.3rem;} }
@media(max-width:700px) { .solution-row{grid-template-columns:2rem minmax(0,1fr);gap:.75rem;} .solution-row a{grid-column:2;padding-top:0;} .process-list{grid-template-columns:1fr;gap:1.5rem;} }

/* A quieter, product-led presentation. */
.site-nav { box-shadow:none; }
.site-main > .container { padding-bottom:4rem; }
.hero { background:#f8f7fa; border-radius:.6rem; padding:clamp(1.8rem,3vw,3rem); margin:1.3rem 0 3rem; }
.hero:after { display:none; }
.hero h1 { font-size:clamp(2rem,3.5vw,3.25rem); max-width:24ch; }
.hero p { margin-bottom:0; }
.home-intro { padding:clamp(3rem,5vw,5rem) 0 clamp(2.5rem,4vw,4rem); border-bottom:1px solid var(--line); }
.home-intro h1 { font-size:clamp(2.7rem,4.5vw,4.4rem); max-width:15ch; margin:0 0 1.35rem; }
.home-intro > p { color:var(--muted); font-size:clamp(1.15rem,1.8vw,1.45rem); line-height:1.55; max-width:54rem; }
.home-intro-links { display:flex; gap:2rem; flex-wrap:wrap; margin-top:2rem; }
.home-intro-visual { display:none; margin:0; }
.home-intro-visual img { display:block; width:100%; height:auto; border:0; }
.home-intro-visual figcaption { color:var(--muted); font-size:.78rem; margin-top:.55rem; }
.home-intro-links a,.home-note a,.home-customers a,.home-endnote a { color:var(--brand); font-weight:700; text-decoration:none; }
.home-intro-links a:hover,.home-note a:hover,.home-customers a:hover,.home-endnote a:hover { text-decoration:underline; }
.home-solutions { margin-top:5rem; }
.home-note { display:grid; grid-template-columns:1fr 1.3fr; gap:4rem; background:#f7f5f9; padding:clamp(2rem,4vw,4rem); margin:5rem 0; }
.home-note h2 { max-width:16ch; font-size:clamp(1.8rem,3vw,2.7rem); }
.home-note p { color:var(--muted); font-size:1.12rem; max-width:42rem; }
.home-customers { margin:5rem 0 3rem; }
.home-customers .section-heading { margin-bottom:0; }
.home-endnote { border-top:1px solid var(--line); padding-top:2rem; color:var(--muted); }
.module-directory { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 2rem; border-top:1px solid var(--line); }
.module-entry { display:flex; justify-content:space-between; gap:1rem; border-bottom:1px solid var(--line); padding:1rem .2rem; color:var(--ink); text-decoration:none; font-weight:600; }
.module-entry span:last-child { color:var(--accent); }
.module-entry:hover { color:var(--brand); background:#faf9fc; }
@media(max-width:700px) { .home-intro{padding-top:3rem;} .home-note{grid-template-columns:1fr;gap:1rem;margin:3rem 0;} .module-directory{grid-template-columns:1fr;} }

/* Use wide desktop screens while keeping individual text lines readable. */
@media(min-width:1200px) {
  .site-nav > .container,
  .site-main > .container,
  .site-footer > .container { width:calc(100% - 5rem); max-width:1400px; }
  .hero { padding-left:clamp(3rem,5vw,6rem); padding-right:clamp(3rem,5vw,6rem); }
  .hero-content { max-width:62rem; }
  .section-heading { max-width:58rem; }
  .content-section > p,
  .content-section > .lead,
  .content-section > h2 { max-width:58rem; }
  .content-section .row { flex-wrap:nowrap; }
  .content-section .row > .col { flex:1 1 auto; }
  .module-directory { column-gap:clamp(2rem,5vw,5rem); }
}
@media(min-width:1100px) {
  .home-intro { display:grid; grid-template-columns:minmax(31rem,.9fr) minmax(31rem,1.1fr); column-gap:clamp(3rem,5vw,6rem); align-items:center; }
  .home-intro .eyebrow,.home-intro h1,.home-intro > p,.home-intro-links { grid-column:1; }
  .home-intro-visual { display:block; grid-column:2; grid-row:1 / span 4; }
}
.module-entry { display:grid; grid-template-columns:2.8rem minmax(0,1fr) 1rem; align-items:center; gap:.9rem; padding:1rem .35rem; }
.module-entry-icon { display:grid; place-items:center; width:2.55rem; height:2.55rem; border-radius:.6rem; background:#eee9f5; color:var(--brand); font-size:1rem; }
.module-entry-text { display:grid; gap:.15rem; }
.module-entry-text strong { font-size:1rem; color:var(--brand-dark); }
.module-entry-text small { font-size:.85rem; line-height:1.4; color:var(--muted); font-weight:400; }
.module-entry-arrow { font-size:1.1rem; justify-self:end; }
.module-entry:hover .module-entry-icon { background:#e2d9ef; }
.module-group-practice { background:#f7f5fa; padding:clamp(1.5rem,3vw,3rem); border-left:4px solid #8a74ae; }
.module-group-practice .section-heading { margin-bottom:1.3rem; }
.module-group-practice .section-heading p { color:var(--muted); }
.buspass-highlight { display:grid; grid-template-columns:3.5rem minmax(0,1fr) 1.5rem; gap:1.2rem; align-items:center; padding:1.4rem; margin:0 0 1.8rem; background:#edf7f6; border-left:4px solid var(--accent); color:var(--ink); text-decoration:none; }
.buspass-highlight:hover { background:#e5f2f1; color:var(--ink); }
.buspass-icon { display:grid; place-items:center; width:3.2rem; height:3.2rem; border-radius:50%; background:#d7ebea; color:#087a7e; font-size:1.35rem; }
.buspass-highlight > span:nth-child(2) { display:grid; gap:.12rem; }
.buspass-highlight small { color:#087a7e; font-size:.72rem; text-transform:uppercase; font-weight:800; letter-spacing:.08em; }
.buspass-highlight strong { color:var(--brand-dark); font-size:1.2rem; }
.buspass-highlight > span:nth-child(2) > span { color:var(--muted); font-size:.92rem; }
.buspass-highlight > span:last-child { color:#087a7e; font-size:1.3rem; }
@media(max-width:700px) { .buspass-highlight{grid-template-columns:2.5rem minmax(0,1fr);gap:.8rem;padding:1rem;} .buspass-icon{width:2.4rem;height:2.4rem;font-size:1rem;} .buspass-highlight > span:last-child{display:none;} }
.sofia-wide { display:grid; grid-template-columns:2.8rem minmax(0,1fr) 1rem; align-items:center; gap:1rem; padding:1.25rem 1.4rem; margin:1.25rem 0; background:#f5f1f9; border-left:3px solid #8a74ae; color:var(--brand-dark); text-decoration:none; }
.sofia-wide:hover { background:#eee8f5; color:var(--brand-dark); }
.sofia-wide-csn { background:#edf7f6; border-left-color:var(--accent); }
.sofia-wide-csn:hover { background:#e5f2f1; }
.sofia-wide-icon { color:var(--brand); font-size:1.2rem; }
.sofia-wide-csn .sofia-wide-icon { color:#087a7e; }
.sofia-wide > span:nth-child(2) { display:grid; gap:.15rem; }
.sofia-wide strong { font-size:1.08rem; }
.sofia-wide small { color:var(--muted); font-size:.9rem; line-height:1.4; }
.sofia-wide > span:last-child { color:var(--accent); justify-self:end; }
.apl-approval { max-width:72rem; margin:2.5rem 0; padding:1.75rem 2rem; background:#f5f1f9; border-left:4px solid #8a74ae; }
.apl-approval h2 { margin-bottom:1rem; }
.apl-approval .apl-source-note { margin:1.3rem 0 0; font-size:.86rem; color:var(--muted); }
.apl-approval .apl-source-note a { color:var(--brand); }
@media(max-width:700px) { .apl-approval{padding:1.25rem;} }
.role-section { max-width:76rem; border-top:1px solid var(--line); }
.role-story { display:grid; grid-template-columns:3rem minmax(0,1fr); gap:1.3rem; padding:2rem .25rem; border-bottom:1px solid var(--line); }
.role-index { color:var(--accent); font-size:.9rem; font-weight:800; padding-top:.35rem; }
.role-story h2 { margin-bottom:.75rem; }
.role-story p { color:var(--muted); margin-bottom:1rem; }
.role-links { display:flex; flex-wrap:wrap; gap:.5rem 1.4rem; }
.role-links a { color:var(--brand); font-weight:700; text-decoration:none; }
.role-links a:hover { text-decoration:underline; }
@media(max-width:700px) { .role-story{grid-template-columns:2rem minmax(0,1fr);gap:.7rem;padding:1.5rem 0;} }
.demo-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(2rem,5vw,5rem); }
.demo-options article { padding-top:1.5rem; border-top:2px solid #ded8e7; }
.demo-options article:nth-child(2) { border-top-color:#addad7; }
.demo-options h2 { margin-bottom:1rem; }
.demo-options p { color:var(--muted); }
.demo-options a,.contact-about a { color:var(--brand); font-weight:700; text-decoration:none; }
.demo-options a:hover,.contact-about a:hover { text-decoration:underline; }
.contact-about { max-width:55rem; }
@media(max-width:700px) { .demo-options{grid-template-columns:1fr;gap:2rem;} }
