html,body{margin:0}img{max-width:100%}[hidden]{display:none!important}
.small-print{font-size:13.5px;color:var(--muted);margin:0}
.page{padding-block:72px 96px}.page h1{font-size:clamp(30px,4vw,42px);font-weight:800;color:var(--brand);margin:14px 0 20px}
.page h2{font-size:21px;color:var(--brand);margin:34px 0 10px}.page p,.page li{max-width:44em;margin:0 0 12px}.page ul{padding-left:22px}

/* Layout: navy hero with the logo's concentric rings, then alternating pale/white bands; proposal-style section heads (round icon badge + spaced eyebrow). */
:root{
  --brand:#315393;      /* CCR navy, from the logo */
  --brand-deep:#233D6E;
  --brand-ink:#1A2B4D;
  --tint:#EEF2F9;       /* pale band */
  --line:#DCE3F0;
  --surface:#FFFFFF;
  --bg:#FFFFFF;
  --fg:#1F232B;
  --muted:#5D6575;
  --on-brand:#FFFFFF;
  --on-brand-muted:#C9D4EA;
  --ring:rgba(255,255,255,.08);
  --ok:#2E7D5B;
  --f-display:"Red Hat Display", "Segoe UI", system-ui, sans-serif;
  --f-body:"Source Sans 3", "Segoe UI", system-ui, sans-serif;
  --f-mono:"IBM Plex Mono", ui-monospace, Menlo, monospace;
  --r:10px;
  --wrap:1120px;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --brand:#7C9BD6;--brand-deep:#1B2C4E;--brand-ink:#12203B;--tint:#151C2A;--line:#2A3550;--surface:#1A2233;--bg:#0F1522;--fg:#E6EAF2;--muted:#A1AABD;--on-brand:#FFFFFF;--on-brand-muted:#B9C6E2;--ring:rgba(255,255,255,.06);--ok:#5FC195;color-scheme:dark}}
:root[data-theme="dark"]{
  --brand:#7C9BD6;--brand-deep:#1B2C4E;--brand-ink:#12203B;--tint:#151C2A;--line:#2A3550;--surface:#1A2233;--bg:#0F1522;--fg:#E6EAF2;--muted:#A1AABD;--on-brand:#FFFFFF;--on-brand-muted:#B9C6E2;--ring:rgba(255,255,255,.06);--ok:#5FC195;color-scheme:dark}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{background:var(--bg);color:var(--fg);font:400 17px/1.6 var(--f-body);-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--brand-ink)}
h1,h2,h3{font-family:var(--f-display);line-height:1.15;text-wrap:balance;margin:0}
p{margin:0}
a{color:inherit}
:focus-visible{outline:3px solid var(--brand);outline-offset:3px;border-radius:4px}
.band{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.wrap{max-width:var(--wrap);margin:0 auto}
.eyebrow{font:500 12px/1 var(--f-mono);letter-spacing:.28em;text-transform:uppercase;color:var(--brand)}
.mark{display:inline-block;background:currentColor;-webkit-mask:url("logo-mark.png") center/contain no-repeat;mask:url("logo-mark.png") center/contain no-repeat}
.ico{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}

/* header */
header{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:var(--brand-ink);color:var(--on-brand)}
header .wrap{display:flex;align-items:center;gap:24px;padding-block:12px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--on-brand)}
.brand .mark{width:36px;height:36px}
.brand b{display:block;white-space:nowrap;font:800 16px/1 var(--f-display);letter-spacing:.04em}
.brand small{display:block;font:500 9.5px/1 var(--f-mono);letter-spacing:.42em;margin-top:5px;color:var(--on-brand-muted)}
nav{display:flex;gap:22px;margin-left:auto}
nav a{text-decoration:none;font-weight:600;font-size:15px;color:var(--on-brand-muted)}
nav a:hover{color:var(--on-brand)}
.call{display:inline-flex;align-items:center;gap:8px;background:#fff;color:#1A2B4D;text-decoration:none;font:700 15px/1 var(--f-display);padding:11px 16px;border-radius:999px;white-space:nowrap}
.call .ico{width:17px;height:17px}
.call .live{width:8px;height:8px;border-radius:50%;background:#2E9B6A;box-shadow:0 0 0 3px rgba(46,155,106,.25)}
@media (max-width:860px){nav{display:none}.call{margin-left:auto}}
@media (max-width:420px){.call .num{display:none}}

/* hero */
.hero{position:relative;overflow:hidden;background:var(--brand-deep);color:var(--on-brand);background:linear-gradient(180deg,var(--brand-ink),var(--brand-deep))}
.hero::before,.hero::after{content:"";position:absolute;border-radius:50%;pointer-events:none}
.hero::before{width:760px;height:760px;right:-260px;top:-180px;border:90px solid var(--ring);box-shadow:0 0 0 70px var(--bg) inset,0 0 0 0 transparent;box-shadow:none}
.hero::after{width:460px;height:460px;right:-110px;top:-30px;border:70px solid var(--ring)}
.hero .wrap{position:relative;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:48px;padding-block:72px 80px;align-items:center}
.hero .eyebrow{color:var(--on-brand-muted)}
.hero h1{font-weight:800;font-size:clamp(34px,5.2vw,58px);letter-spacing:-.01em;margin:18px 0 20px}
.hero p.lede{font-size:19px;color:var(--on-brand-muted);max-width:34em}
.ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.btn{display:inline-flex;align-items:center;gap:10px;font:700 16px/1 var(--f-display);padding:15px 22px;border-radius:999px;text-decoration:none;border:2px solid transparent;cursor:pointer}
.btn.primary{background:#fff;color:#1A2B4D}
.btn.ghost{border-color:rgba(255,255,255,.35);color:#fff}
.btn.ghost:hover{border-color:#fff}
.glance{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);border-radius:14px;padding:26px 26px 10px;backdrop-filter:blur(4px)}
.glance .eyebrow{color:var(--on-brand-muted);display:block;margin-bottom:18px}
.glance ul{list-style:none;margin:0;padding:0;display:grid;gap:0}
.glance li{display:flex;gap:14px;align-items:center;padding:14px 0;border-top:1px solid rgba(255,255,255,.12)}
.glance .badge{width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.14);display:grid;place-items:center;flex:none}
.glance small{display:block;font:500 11px/1.2 var(--f-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--on-brand-muted)}
.glance strong{display:block;font:700 19px/1.25 var(--f-display);margin-top:3px}
@media (max-width:860px){.hero .wrap{grid-template-columns:1fr;padding-block:52px 56px;gap:36px}}

/* section heads */
section.band{padding-block:88px}
section.tint{background:var(--tint)}
.head{display:flex;gap:18px;align-items:center;margin-bottom:22px}
.head .badge{width:58px;height:58px;border-radius:50%;background:var(--brand);color:#fff;display:grid;place-items:center;flex:none}
:root[data-theme="dark"] .head .badge{color:#0F1522}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .head .badge{color:#0F1522}}
.head .badge .ico{width:26px;height:26px}
.head h2{font-size:clamp(28px,3.4vw,38px);font-weight:800;color:var(--brand);margin-top:8px}
.intro{max-width:44em;color:var(--muted);font-size:18px;margin-bottom:40px}
@media (max-width:600px){section.band{padding-block:60px}}

/* services */
.svc{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}
.svc article{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:26px;display:flex;flex-direction:column;gap:12px;min-width:0}
.svc article.feature{background:var(--brand);border-color:var(--brand);color:#fff}
:root[data-theme="dark"] .svc article.feature{color:#0F1522}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .svc article.feature{color:#0F1522}}
.svc .top{display:flex;align-items:center;gap:12px;color:var(--brand)}
.svc article.feature .top{color:inherit}
.svc h3{font-size:20px;font-weight:700}
.svc p{color:var(--muted);font-size:16px}
.svc article.feature p{color:inherit;opacity:.88}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:6px}
.tags span{font:500 12px/1 var(--f-mono);padding:7px 9px;border-radius:6px;background:var(--tint);color:var(--fg)}
.feature .tags span{background:rgba(255,255,255,.16);color:inherit}

/* why cards */
.why{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.why article{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:26px}
.why .t{display:flex;align-items:center;gap:14px;margin-bottom:12px}
.why .t span{width:46px;height:46px;border-radius:50%;background:var(--brand);color:#fff;display:grid;place-items:center;flex:none}
:root[data-theme="dark"] .why .t span{color:#0F1522}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .why .t span{color:#0F1522}}
.why h3{font-size:18px;color:var(--brand)}
.why p{font-size:16px;color:var(--muted)}
@media (max-width:900px){.why{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.why{grid-template-columns:1fr}}

/* PPM approach */
.approach{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:56px;align-items:start}
.approach .side{position:sticky;top:110px}
.approach .side p{color:var(--muted);font-size:18px}
.std{margin-top:28px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);padding:20px 22px;display:grid;gap:12px}
.std div{display:flex;justify-content:space-between;gap:14px;font-size:15px;border-bottom:1px dashed var(--line);padding-bottom:10px}
.std div:last-child{border:0;padding:0}
.std code{font:500 13px/1.4 var(--f-mono);color:var(--brand);text-align:right}
.steps{list-style:none;margin:0;padding:0;display:grid}
.steps li{display:grid;grid-template-columns:52px minmax(0,1fr);gap:18px;padding:22px 0;border-top:1px solid var(--line)}
.steps li:first-child{border-top:0;padding-top:0}
.steps .b{width:52px;height:52px;border-radius:50%;background:var(--tint);color:var(--brand);display:grid;place-items:center}
section.tint .steps .b{background:var(--surface)}
.steps h3{font-size:18px;color:var(--brand);margin-bottom:4px}
.steps p{color:var(--muted);font-size:16px}
@media (max-width:860px){.approach{grid-template-columns:1fr;gap:32px}.approach .side{position:static}}

/* remedial */
.rem{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.rem article{background:var(--surface);padding:24px}
.rem h3{font-size:17px;margin-bottom:6px;display:flex;gap:10px;align-items:center;color:var(--fg)}
.rem h3 .ico{color:var(--brand)}
.rem p{font-size:15.5px;color:var(--muted)}
@media (max-width:900px){.rem{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.rem{grid-template-columns:1fr}}
.note{margin-top:20px;color:var(--muted);font-style:italic;font-size:15.5px}

/* hours */
.hours{overflow-x:auto;border-radius:var(--r);border:1px solid var(--line)}
.hours table{width:100%;border-collapse:collapse;min-width:620px;background:var(--surface)}
.hours th{background:var(--brand);color:#fff;font:700 16px/1.3 var(--f-display);padding:16px;text-align:center}
:root[data-theme="dark"] .hours th{color:#0F1522}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .hours th{color:#0F1522}}
.hours th small{display:block;font:500 12px/1.4 var(--f-mono);opacity:.85;margin-top:4px;letter-spacing:.04em}
.hours td{padding:16px;text-align:center;border-top:1px solid var(--line);border-left:1px solid var(--line);font-size:16px;font-variant-numeric:tabular-nums}
.hours td:first-child{border-left:0}
.hours tr:nth-child(odd) td{background:var(--tint)}

/* testimonials */
.quotes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.quotes figure{margin:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:30px 30px 26px;display:flex;flex-direction:column;gap:18px}
.quotes blockquote{margin:0;font:500 22px/1.4 var(--f-display);color:var(--fg);text-wrap:pretty}
.quotes blockquote::before{content:"\201C";display:block;font:800 56px/0.6 var(--f-display);color:var(--brand);margin-bottom:10px}
.quotes figcaption{margin-top:auto;display:flex;align-items:center;gap:12px;font-size:15px;color:var(--muted)}
.quotes figcaption b{color:var(--fg)}
.av{width:40px;height:40px;border-radius:50%;background:var(--brand);color:#fff;display:grid;place-items:center;font:700 16px var(--f-display)}
:root[data-theme="dark"] .av{color:#0F1522}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .av{color:#0F1522}}
@media (max-width:760px){.quotes{grid-template-columns:1fr}}

/* about */
.about{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:56px;align-items:center}
.about p{font-size:18px;margin-bottom:16px;max-width:36em}
.about p.m{color:var(--muted)}
.facts{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.facts div{background:var(--surface);padding:22px}
.facts strong{display:block;font:800 30px/1 var(--f-display);color:var(--brand);font-variant-numeric:tabular-nums}
.facts span{display:block;margin-top:8px;font-size:14.5px;color:var(--muted)}
@media (max-width:860px){.about{grid-template-columns:1fr;gap:32px}}

/* contact */
.contact{background:linear-gradient(180deg,var(--brand-deep),var(--brand-ink));color:var(--on-brand);position:relative;overflow:hidden}
.contact::after{content:"";position:absolute;width:520px;height:520px;border-radius:50%;border:80px solid var(--ring);left:-220px;bottom:-260px;pointer-events:none}
.contact .wrap{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:56px}
.contact h2{font-size:clamp(30px,4vw,44px);font-weight:800;margin:14px 0 16px}
.contact .eyebrow{color:var(--on-brand-muted)}
.contact .lede{color:var(--on-brand-muted);font-size:18px;margin-bottom:30px}
.lines{display:grid;gap:14px}
.lines a,.lines div{display:flex;gap:14px;align-items:flex-start;text-decoration:none;color:var(--on-brand)}
.lines .badge{width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.12);display:grid;place-items:center;flex:none}
.lines small{display:block;font:500 11px/1.3 var(--f-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--on-brand-muted)}
.lines strong{display:block;font:700 18px/1.35 var(--f-display);user-select:all}
.lines .ph{border-bottom:1px dashed var(--on-brand-muted)}
form{background:var(--surface);color:var(--fg);border-radius:14px;padding:30px;display:grid;grid-template-columns:1fr 1fr;gap:16px}
form .full{grid-column:1/-1}
label{display:grid;gap:6px;font-weight:600;font-size:14.5px;min-width:0}
label i{font-style:normal;color:var(--muted);font-weight:400}
input,select,textarea{font:inherit;font-size:16px;color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:12px 13px;width:100%;min-width:0}
textarea{min-height:120px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid var(--brand);outline-offset:0;border-color:var(--brand)}
form .btn{background:var(--brand);color:#fff;justify-content:center;border:0}
:root[data-theme="dark"] form .btn{color:#0F1522}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) form .btn{color:#0F1522}}
.sent{grid-column:1/-1;font-size:15px;color:var(--ok);font-weight:600}
@media (max-width:860px){.contact .wrap{grid-template-columns:1fr;gap:40px}}
@media (max-width:520px){form{grid-template-columns:1fr;padding:22px}}

footer{background:var(--brand-ink);color:var(--on-brand-muted);font-size:14px}
footer .wrap{display:flex;flex-wrap:wrap;gap:12px 28px;justify-content:space-between;align-items:center;padding-block:26px}
footer nav{display:flex;margin:0}
footer nav a{font-size:14px;font-weight:400}
