/* Prometheus Modern: an independent Cassiopeia child-template design. */
:root {
  --pg-ink:#102c32;
  --pg-accent:#a33725;
  --pg-copper:#ef9b79;
  --pg-muted:#53666a;
  --pg-line:#d7ded9;
  --pg-paper:#fff;
  --pg-warm:#f4f2ec;
  --body-bg:var(--pg-warm);
  --body-color:var(--pg-ink);
  --cassiopeia-color-primary:var(--pg-ink);
  --cassiopeia-color-link:var(--pg-accent);
  --cassiopeia-color-hover:#772717;
  --link-color:var(--pg-accent);
  --link-hover-color:#772717;
  --cassiopeia-font-family-body:"Inter","Segoe UI",Arial,sans-serif;
  --cassiopeia-font-family-headings:"Inter","Segoe UI",Arial,sans-serif;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:2rem; }
body { margin:0; background:var(--pg-warm); color:var(--pg-ink); font-family:var(--cassiopeia-font-family-body); line-height:1.75; -webkit-font-smoothing:antialiased; }
img { max-width:100%; height:auto; }
a { text-underline-offset:.23em; text-decoration-thickness:1px; }
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible { outline:3px solid #bd5b38; outline-offset:5px; }
h1,h2,h3,h4 { color:var(--pg-ink); font-family:var(--cassiopeia-font-family-headings); line-height:1.12; letter-spacing:-.045em; font-weight:600; }
/* A compact masthead; the parent template still supplies the accessible menu. */
.container-header { display:grid; grid-template-columns:minmax(28px,1fr) minmax(200px,290px) minmax(0,990px) minmax(28px,1fr); align-items:center; background:#fff; box-shadow:none; border-bottom:1px solid var(--pg-line); }
.container-header .container-topbar { grid-column:1/-1; background:var(--pg-ink); padding:.45rem max(28px,calc((100% - 1280px)/2)); color:#c9d7d4; font-size:.7rem; letter-spacing:.055em; }
.pg-utility { display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.container-header .pg-utility a { color:#fff; text-decoration:none; }
.container-header .pg-utility a:hover { text-decoration:underline; }
.container-header > .grid-child { width:100%; max-width:none; padding:1.45rem 0; }
.container-header > .grid-child:not(.container-nav) { grid-column:2; }
.container-header .navbar-brand { margin:0; padding:0; }
.container-header .navbar-brand img { display:block; width:218px; }
.container-header .container-nav { grid-column:3; display:flex; justify-content:flex-end; align-items:center; gap:2rem; }
.container-header nav { flex:0 1 auto; margin:0; padding:0; }
.container-header .mod-menu { color:var(--pg-ink); }
.container-header .mod-menu > li > a,.container-header .mod-menu > li > button { color:var(--pg-ink); text-decoration:none; }
.container-header .metismenu .metismenu-item { padding:.5rem 0; font-size:.87rem; margin:0 0 0 1.7rem; }
.container-header .metismenu > li:first-child { margin-left:0; }
.container-header .metismenu > li.active > a { color:var(--pg-accent); font-weight:700; }
.container-header .metismenu > li > a::after { background:var(--pg-accent); height:2px; }
.container-header .navbar-toggler { color:var(--pg-ink); border:1px solid var(--pg-line); padding:.65rem .8rem; font-size:1.1rem; border-radius:3px; }
.container-header .container-search { margin:0; }
.container-search label { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.container-search form { display:flex; align-items:center; }
.container-search .form-control { width:145px; background:var(--pg-warm); border:1px solid var(--pg-line); border-radius:4px; font-size:.8rem; padding:.65rem .8rem; }
/* Shared article layouts retain a readable measure, including legacy pages. */
.site-grid { display:grid; grid-template-columns:[main-start] minmax(0,1fr) [main-end]; grid-template-areas:none !important; width:100%; max-width:1336px; margin-inline:auto; padding-inline:28px; column-gap:3rem; row-gap:0; }
.site-grid > .grid-child { grid-area:auto; grid-column:1/-1; width:100%; }
.container-component { min-width:0; background:#fff; padding:clamp(1.4rem,4vw,3.5rem); border:1px solid var(--pg-line); border-radius:6px; margin-block:3rem; }
.container-component main { width:100%; min-width:0; max-width:76ch; margin-inline:auto; }
.com-content-article .page-header h1,.com-content-article .page-header h2 { font-size:clamp(2.2rem,4.2vw,3.4rem); margin:0 0 1.7rem; }
.com-content-article__body { min-width:0; font-size:1rem; overflow-wrap:anywhere; }
.com-content-article__body p { margin:0 0 1.2rem; }
.com-content-article__body h2 { margin:2.4rem 0 1.1rem; font-size:1.9rem; }
.com-content-article__body h3 { margin:1.8rem 0 1rem; font-size:1.35rem; }
.com-content-article__body li + li { margin-top:.55rem; }
.com-content-article__body [style*="margin-bottom: 0in"] { margin-bottom:1rem !important; }
.com-content-article__body span[style*="font-size"],.com-content-article__body font { font-size:inherit !important; font-family:inherit !important; }
.com-content-article__body table { max-width:100%; border-collapse:collapse; }
.com-content-article__body table[border="1"] { width:100%; height:auto !important; margin:1.5rem 0; }
.com-content-article__body table[border="1"] td,.com-content-article__body table[border="1"] th { padding:.7rem; border-color:var(--pg-line) !important; }
.com-content-article__body pre { white-space:pre-wrap; overflow-wrap:anywhere; padding:1.3rem; background:var(--pg-warm); border-left:3px solid var(--pg-accent); }
.container-sidebar-left,.container-sidebar-right { min-width:0; margin-top:3rem; }
.container-sidebar-right .card { background:var(--pg-ink); border:0; color:#cedbd8; border-radius:6px; box-shadow:none; }
.container-sidebar-left .card { border:1px solid var(--pg-line); border-radius:6px; box-shadow:none; }
.card-header { background:transparent; border-color:#ffffff25; font-size:1.05rem; padding:1.5rem 1.5rem 1rem; letter-spacing:-.02em; }
.container-sidebar-right .card-header { color:#fff; }
.card-body { padding:1.5rem; }
.container-sidebar-right .card-body { font-size:.9rem; }
.container-sidebar-right .pg-button { background:var(--pg-copper); color:var(--pg-ink) !important; border-color:var(--pg-copper); }
.container-sidebar-left .mod-menu a { color:var(--pg-ink); }
.container-sidebar-left .mod-menu li { margin:.4rem 0; }
.pg-eyebrow { font-family:ui-monospace,"SFMono-Regular",Consolas,monospace; font-size:.7rem; text-transform:uppercase; letter-spacing:.12em; font-weight:500; color:var(--pg-accent); margin:0 0 1.2rem; }
.com-content-article__body .pg-lead { font-size:clamp(1.15rem,1.8vw,1.45rem); line-height:1.6; color:var(--pg-muted); max-width:51ch; }
.pg-actions { display:flex; flex-wrap:wrap; align-items:center; gap:1.9rem; margin-top:2rem; }
.pg-button { display:inline-flex; justify-content:space-between; align-items:center; gap:2rem; padding:.95rem 1.3rem; background:var(--pg-accent); color:#fff !important; border:1px solid var(--pg-accent); border-radius:3px; text-decoration:none; font-size:.86rem; font-weight:650; transition:background .18s,transform .18s; }
.pg-button:hover { background:#7c291c; border-color:#7c291c; transform:translateY(-2px); }
.pg-button span { font-size:1.15rem; }
.pg-text-link { color:var(--pg-ink); font-size:.88rem; font-weight:650; text-decoration:none; }
.pg-text-link:hover { color:var(--pg-accent); text-decoration:underline; }
/* Homepage: large architectural illustration and an open editorial layout. */
body:has(.pg-hero) .container-component { grid-column:1/-1; background:transparent; border:0; border-radius:0; padding:0; margin:0; }
body:has(.pg-hero) .container-component main { max-width:none; }
body:has(.pg-hero) .com-content-article__body { font-size:1rem; }
.pg-hero { display:grid; grid-template-columns:minmax(0,1.06fr) minmax(0,1fr); gap:0 2rem; align-items:center; padding:4rem 0 0; background:var(--pg-ink); color:#d3e1dc; box-shadow:0 0 0 100vmax var(--pg-ink); clip-path:inset(0 -100vmax); }
.pg-hero-copy { padding-block:1rem 3rem; position:relative; z-index:1; }
.pg-hero .pg-eyebrow { display:flex; align-items:center; gap:.65rem; color:var(--pg-copper); margin-bottom:1.7rem; }
.pg-signal { display:inline-block; width:7px; height:7px; background:var(--pg-copper); border-radius:50%; box-shadow:0 0 0 5px #ef9b7916; }
.pg-hero h1 { font-size:clamp(2.7rem,4.65vw,4.15rem); letter-spacing:-.052em; line-height:1.08; font-weight:500; margin:0 0 1.7rem; color:#fff; }
.pg-hero h1 span { color:var(--pg-copper); }
.pg-hero .pg-lead { color:#b8ceca; font-size:1.08rem; line-height:1.75; max-width:46ch; }
.pg-hero .pg-button { background:var(--pg-copper); color:var(--pg-ink) !important; border-color:var(--pg-copper); }
.pg-hero .pg-button:hover { background:#ffb18c; border-color:#ffb18c; }
.pg-hero .pg-text-link { color:#fff; }
.pg-hero-art { margin:0; min-width:0; }
.pg-hero-art img { display:block; width:100%; }
.pg-hero-foot { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; border-top:1px solid #ffffff25; padding:1.35rem 0; font-family:ui-monospace,Consolas,monospace; text-transform:uppercase; letter-spacing:.1em; font-size:.63rem; color:#a9c5bf; }
.pg-hero-foot a { color:#d6e3df; text-decoration:none; }
.pg-hero-foot a:hover { text-decoration:underline; }
.pg-hero-foot a span { margin-left:1rem; }
.pg-discipline-strip { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; padding:1.6rem 0; border-bottom:1px solid var(--pg-line); color:var(--pg-muted); font-size:.83rem; }
.pg-discipline-strip span { display:flex; align-items:center; gap:.6rem; }
.pg-discipline-strip span::before { content:"+"; color:var(--pg-accent); font-size:1.2rem; }
.pg-approach { padding:5.5rem 0; display:grid; grid-template-columns:1fr 1.65fr; gap:4rem; }
.pg-approach-heading h2 { font-size:clamp(1.9rem,2.8vw,2.7rem); margin:0 0 1.2rem; }
.pg-approach-heading > p:last-child { color:var(--pg-muted); }
.pg-approach ol { list-style:none; margin:0; padding:0; }
.pg-approach li { display:flex; gap:1.5rem; padding:1.5rem 0; border-top:1px solid var(--pg-line); margin:0 !important; }
.pg-approach li:first-child { padding-top:.3rem; border:0; }
.pg-approach li:last-child { padding-bottom:0; }
.pg-approach li > span { flex:0 0 1.5rem; color:var(--pg-accent); font-family:ui-monospace,Consolas,monospace; font-size:.72rem; padding-top:.25rem; }
.pg-approach strong { font-weight:650; font-size:1.1rem; letter-spacing:-.015em; }
.pg-approach li p { color:var(--pg-muted); line-height:1.7; font-size:.95rem; margin:.4rem 0 0; }
.pg-section { padding:5rem 0; border-top:1px solid var(--pg-line); }
.pg-section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:1.5rem; margin-bottom:2.5rem; }
.com-content-article__body .pg-section-heading h2 { margin:0; font-size:clamp(2rem,3.4vw,3.1rem); }
.pg-section-heading .pg-eyebrow { margin-bottom:.9rem; }
.pg-service-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:1rem; }
.pg-service-card { grid-column:span 2; display:flex; flex-direction:column; padding:2rem; border:1px solid var(--pg-line); border-radius:6px; background:#fff; transition:border-color .2s,transform .2s; }
.pg-service-card:nth-child(-n+2) { grid-column:span 3; }
.pg-service-card:hover { border-color:#7c9992; transform:translateY(-3px); }
.pg-service-mark { display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.pg-service-mark img { width:64px; height:64px; padding:6px; background:var(--pg-warm); border-radius:4px; }
.pg-number { font-family:ui-monospace,Consolas,monospace; font-size:.65rem; color:var(--pg-muted); letter-spacing:.07em; text-transform:uppercase; }
.com-content-article__body .pg-service-card h3 { margin:1.7rem 0 1rem; font-size:1.55rem; letter-spacing:-.035em; }
.pg-service-card h3 a { color:var(--pg-ink); text-decoration:none; }
.pg-service-card h3 a:hover { text-decoration:underline; }
.pg-service-card p { color:var(--pg-muted); font-size:.94rem; line-height:1.75; }
.pg-card-link { display:flex; justify-content:space-between; gap:1rem; margin-top:auto; padding-top:1rem; border-top:1px solid var(--pg-line); text-decoration:none; font-size:.78rem; font-weight:650; }
.pg-card-link:hover { text-decoration:underline; }
.pg-service-card-federal { background:#e7efea; }
.pg-service-card-federal .pg-service-mark img { background:#f9faf6; }
.pg-feature { display:grid; grid-template-columns:1.15fr 1fr; align-items:center; gap:3.5rem; padding:3rem; margin-block:1rem 5rem; background:#e5ece6; border:1px solid #d5dfd6; border-radius:6px; }
.pg-feature figure { margin:0; }
.pg-feature img { display:block; width:100%; }
.pg-feature-copy h2 { font-size:clamp(1.9rem,2.7vw,2.7rem); margin:0 0 1.3rem; }
.pg-feature-copy > p:not(.pg-eyebrow) { color:var(--pg-muted); font-size:.94rem; }
.pg-feature .pg-text-link { display:inline-block; margin-top:.6rem; }
.pg-company-section { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:start; }
.com-content-article__body .pg-company-section h2 { margin:0; font-size:clamp(2rem,3.1vw,3rem); }
.pg-company-art { display:block; width:100%; margin-top:1.8rem; }
.pg-company-section > div:last-child { padding-top:2.3rem; }
.pg-company-section p:not(.pg-eyebrow) { color:var(--pg-muted); }
.pg-company-section .pg-text-link { display:inline-block; margin-top:.5rem; }
.pg-contact-band { display:flex; justify-content:space-between; align-items:center; gap:3rem; padding:3.2rem; margin:1rem 0 5rem; border-radius:6px; background:var(--pg-ink); color:#b8ceca; position:relative; overflow:hidden; }
.pg-contact-band::after { content:""; width:300px; height:300px; position:absolute; right:-115px; top:-190px; border:1px solid #7eaaa450; border-radius:50%; box-shadow:0 0 0 30px #7eaaa40c,0 0 0 60px #7eaaa40a; pointer-events:none; }
.com-content-article__body .pg-contact-band h2 { font-size:clamp(1.9rem,2.8vw,2.6rem); margin:0 0 1rem; color:#fff; }
.pg-contact-band p { margin-bottom:0; font-size:.95rem; }
.pg-contact-band .pg-eyebrow { color:var(--pg-copper); margin-bottom:1rem; font-size:.7rem; }
.pg-contact-band .pg-button { background:var(--pg-copper); border-color:var(--pg-copper); color:var(--pg-ink) !important; flex-shrink:0; z-index:1; }
/* Illustrated service pages, archive articles, and contact forms. */
.pg-page-art { margin:2rem 0 2.5rem; }
.pg-page-art img { display:block; width:100%; border:1px solid var(--pg-line); border-radius:5px; }
.pg-page-art figcaption { margin:.8rem 0 0; color:var(--pg-muted); font-size:.75rem; }
.pg-service-list { margin:2.5rem 0; }
.pg-service-list > section { display:grid; grid-template-columns:56px minmax(0,1fr); gap:1.5rem; border-top:1px solid var(--pg-line); padding:2.3rem 0; }
.pg-service-list h2 { margin:0 0 1rem; }
.pg-service-list-icon { width:56px; height:56px; padding:4px; background:var(--pg-warm); border-radius:5px; }
.pg-related-links { display:flex; flex-direction:column; gap:.6rem; font-size:.92rem; }
.pg-inline-contact { padding:2rem; margin-top:3rem; background:#e9efea; border-radius:5px; border-left:3px solid var(--pg-accent); }
.pg-inline-contact h2 { margin-top:0; }
.pg-archive-note { padding:1.1rem 1.3rem; margin-bottom:2rem; background:#f8f0df; border-left:3px solid #ac813e; font-size:.9rem; }
.legacy-comments { margin-top:3rem; padding-top:1.5rem; border-top:1px solid var(--pg-line); }
.legacy-comment { padding:1rem 0; border-bottom:1px solid var(--pg-line); }
.form-control,.form-select { border-color:#aabdb8; border-radius:3px; }
.btn-primary { background:var(--pg-accent); border-color:var(--pg-accent); }
.footer { background:var(--pg-ink); color:#b8ceca; margin-top:0; border-top:1px solid #ffffff20; }
.footer .grid-child { width:100%; max-width:1336px; padding:3.5rem 28px; }
.pg-footer { display:flex; justify-content:space-between; gap:3rem; width:100%; font-size:.8rem; }
.pg-footer strong { color:#fff; font-size:1.3rem; font-weight:600; letter-spacing:-.035em; }
.pg-footer p { margin:.4rem 0; }
.pg-footer-links { display:grid; grid-template-columns:repeat(2,1fr); gap:.6rem 3rem; align-content:start; }
.footer .pg-footer a { color:#c9dbd5; text-decoration:none; }
.footer .pg-footer a:hover { color:#fff; text-decoration:underline; }
@media (min-width:992px) {
 .container-header .navbar-collapse { width:100%; }
 .container-header .metismenu.menu-horizontal { flex-direction:row; }
 .site-grid:has(.container-sidebar-right) { grid-template-columns:[main-start] minmax(0,1fr) [content-end] 250px [main-end]; }
 .site-grid:has(.container-sidebar-right) .container-component { grid-column:1; grid-row:1; }
 .site-grid:has(.container-sidebar-right) .container-sidebar-right { grid-column:2; grid-row:1; align-self:start; }
}
@media (max-width:1199.98px) {
 .container-header { grid-template-columns:28px minmax(200px,250px) minmax(0,1fr) 28px; }
 .container-header .container-nav { gap:1.25rem; }
 .container-header .metismenu .metismenu-item { margin-left:1.2rem; }
 .container-search .form-control { width:120px; }
 .pg-feature { padding:2rem; gap:2rem; }
 .pg-hero h1 { font-size:clamp(2.5rem,4.7vw,3.8rem); }
}
@media (max-width:991.98px) {
 .container-header { grid-template-columns:24px minmax(0,1fr) 24px; position:relative; }
 .container-header .container-topbar { padding-inline:24px; }
 .container-header > .grid-child:not(.container-nav) { grid-column:2; grid-row:2; width:auto; justify-self:start; padding-block:1.2rem; }
 .container-header .container-nav { grid-column:2; grid-row:2; justify-self:end; width:auto; padding-block:1.2rem; }
 .container-header nav { position:static; }
 .container-header .navbar-collapse { position:absolute; top:100%; left:0; right:0; z-index:10; padding:0 24px; background:#fff; box-shadow:0 12px 18px #102c321a; }
 .container-header .navbar-collapse.show { display:block; }
 .container-header .metismenu .metismenu-item { margin:0; padding:.75rem 0; }
 .container-header .container-search { display:none; }
 .site-grid { padding-inline:24px; }
 .pg-hero { gap:0 1rem; padding-top:3rem; }
 .pg-hero h1 { font-size:clamp(2.3rem,4.8vw,3rem); }
 .pg-hero .pg-lead { font-size:1rem; }
 .pg-hero .pg-actions { gap:1rem; }
 .pg-approach { gap:2.5rem; grid-template-columns:1fr 1.4fr; padding:4rem 0; }
 .pg-service-card { padding:1.5rem; }
 .pg-service-card,.pg-service-card:nth-child(-n+2) { grid-column:span 3; }
 .pg-service-card:last-child { grid-column:span 6; }
 .pg-feature { grid-template-columns:1fr; gap:2rem; }
 .pg-feature figure { max-width:680px; width:100%; margin-inline:auto; }
 .pg-company-section { gap:2.5rem; }
 .pg-contact-band { padding:2.3rem; align-items:flex-start; flex-direction:column; gap:1.5rem; }
 .container-sidebar-right { margin-top:0; margin-bottom:3rem; }
}
@media (max-width:767.98px) {
 .pg-hero { grid-template-columns:1fr; padding-top:3.2rem; }
 .pg-hero h1 { font-size:clamp(2.6rem,7.5vw,4rem); }
 .pg-hero-copy { padding-bottom:0; }
 .pg-hero-art { width:100%; max-width:510px; margin:-.2rem auto 0; }
 .pg-hero .pg-lead { max-width:49ch; }
 .pg-hero-foot { font-size:.57rem; gap:1rem; }
 .pg-discipline-strip { grid-template-columns:repeat(2,1fr); font-size:.75rem; padding-block:1.3rem; gap:.5rem 1rem; }
 .pg-approach { grid-template-columns:1fr; gap:1.7rem; }
 .pg-approach-heading h2 br { display:none; }
 .pg-approach li:first-child { border-top:1px solid var(--pg-line); padding-top:1.5rem; }
 .pg-section { padding:3.5rem 0; }
 .pg-section-heading { flex-direction:column; align-items:flex-start; gap:1.4rem; }
 .pg-feature { margin-bottom:3.5rem; }
 .pg-company-section { grid-template-columns:1fr; gap:1.7rem; }
 .pg-company-section > div:last-child { padding-top:0; }
 .pg-company-art { max-width:600px; }
 .pg-footer { flex-direction:column; gap:2rem; }
 .pg-footer-links { max-width:30rem; }
}
@media (max-width:575.98px) {
 .container-header { grid-template-columns:20px minmax(0,1fr) 20px; }
 .container-header .container-topbar { padding-inline:20px; font-size:.6rem; letter-spacing:.01em; }
 .container-header .navbar-brand img { width:190px; }
 .site-grid { padding-inline:20px; }
 .pg-hero h1 { font-size:clamp(2.4rem,9vw,3.3rem); }
 .pg-hero .pg-eyebrow { font-size:.63rem; }
 .pg-hero .pg-actions { gap:1.15rem; }
 .pg-hero .pg-text-link { font-size:.8rem; }
 .pg-hero .pg-button { font-size:.8rem; padding:.85rem 1rem; gap:1.2rem; }
 .pg-hero-foot { flex-wrap:wrap; row-gap:.7rem; }
 .pg-discipline-strip { font-size:.68rem; }
 .pg-approach li { gap:1rem; }
 .pg-approach strong { font-size:1rem; }
 .pg-service-grid { grid-template-columns:1fr; }
 .pg-service-card,.pg-service-card:nth-child(-n+2),.pg-service-card:last-child { grid-column:auto; padding:1.7rem; }
 .pg-feature { padding:1.4rem; }
 .pg-contact-band { padding:1.8rem; margin-bottom:3.5rem; }
 .container-component { margin-block:1.8rem; padding:1.4rem; }
 .com-content-article .page-header h1 { font-size:2.1rem; }
 .com-content-article__body h2 { font-size:1.65rem; }
 .pg-service-list > section { grid-template-columns:1fr; gap:1.2rem; }
 .pg-inline-contact { padding:1.4rem; }
 .pg-footer-links { gap:.7rem 1.5rem; }
 .com-content-article__body table[border="0"] td { display:block; width:100%; }
 .com-content-article__body table { display:block; overflow-x:auto; }
}
@media (prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto; }
 *,*::before,*::after { animation:none !important; transition:none !important; }
}
