/* One approved palette. Colour only: no layout, font, padding, margin or image changes. */
:root{--comity-blue:#3D50A1;--comity-green:#5ABA47;--comity-navy:#14243C;--comity-light-blue:#E5EBF8;--comity-light-green:#E0F1DE;--comity-dark-green:#17643A;--comity-burgundy:#962C3E;--comity-rose:#FBE7E9;--comity-white:#FFFFFF}
body:is(.comity-homepage,.comity-inner){--blue:var(--comity-blue);--green:var(--comity-green);--ink:var(--comity-navy);--muted:var(--comity-navy);--line:var(--comity-light-blue);--pale:var(--comity-light-blue);--paper:var(--comity-white);color:var(--comity-navy);background:var(--comity-white)}
body:is(.comity-homepage,.comity-inner) .site-header{background:var(--comity-white)}
/* Existing introductory regions keep their exact dimensions. */
.comity-inner .inner-intro,.comity-inner .page-header{background:var(--comity-blue);border-color:var(--comity-blue);color:var(--comity-white)}
.comity-inner .inner-intro :is(h1,p,.eyebrow,a,a:visited),.comity-inner .page-header :is(h1,p,a,a:visited){color:var(--comity-white)}
.comity-inner.comity-jobs-aligned.single-jobs .entry-header.comity-job-intro{background:var(--comity-blue);border-color:var(--comity-blue)}
.comity-inner.comity-jobs-aligned.single-jobs .entry-header.comity-job-intro>h1,.comity-inner.comity-jobs-aligned.single-jobs .comity-job-intro>div:not(.comity-job-facts),.comity-inner.comity-jobs-aligned.single-jobs .comity-job-intro>div:not(.comity-job-facts) p{color:var(--comity-white)}
.comity-inner.comity-jobs-aligned.single-jobs .entry-header.comity-job-intro>.comity-job-facts{background:var(--comity-light-blue);border-color:var(--comity-blue);color:var(--comity-navy)}
.comity-inner .comity-job-facts :is(div,span,p){color:var(--comity-navy)}
.comity-inner.single-post .entry-header{background:var(--comity-blue);box-shadow:0 0 0 100vmax var(--comity-blue);clip-path:inset(0 -100vmax)}
.comity-inner.single-post .entry-header :is(.entry-title,h1,p,a,a:visited,time){color:var(--comity-white)}
.comity-inner.single-post .comity-article-meta{color:var(--comity-navy)!important;border-color:var(--comity-light-blue)!important}
/* Keep long reading regions white; only their established typography tokens change. */
.comity-inner :is(.inner-copy,.entry-content){--tw-prose-body:var(--comity-navy);--tw-prose-headings:var(--comity-navy);--tw-prose-bold:var(--comity-navy);--tw-prose-links:var(--comity-blue);--tw-prose-counters:var(--comity-navy);--tw-prose-bullets:var(--comity-navy)}
body.comity-homepage .hero,body.comity-homepage .hero h1,body.comity-homepage .hero h1 span,body.comity-homepage .hero .eyebrow,body.comity-homepage .hero .lead{color:var(--comity-white)}
body.comity-homepage .hero{background:var(--comity-blue)}
body.comity-homepage .hero .button{background:var(--comity-white);color:var(--comity-blue);border-color:var(--comity-white)}
body.comity-homepage .hero .button:hover{background:var(--comity-light-blue);border-color:var(--comity-light-blue);color:var(--comity-blue)}
body.comity-homepage :is(.operation,.contact-section){background:var(--comity-light-green);border-color:var(--comity-dark-green)}
body.comity-homepage .insights{background:var(--comity-white)}
/* Shared services: named classes follow the service, never a person's attributes. */
body:is(.comity-homepage,.comity-inner) .service-parking{background:var(--comity-blue);border-color:var(--comity-blue);border-left-color:var(--comity-green);color:var(--comity-white)}
body:is(.comity-homepage,.comity-inner) .service-parking :is(h3,p,a,a:visited,.label,.service-icon){color:var(--comity-white)}
body:is(.comity-homepage,.comity-inner) .service-parking .service-icon{background:var(--comity-blue);border-color:var(--comity-white)}
body:is(.comity-homepage,.comity-inner) .service-care{background:var(--comity-green);border-color:var(--comity-dark-green);color:var(--comity-navy)}
body:is(.comity-homepage,.comity-inner) .service-care :is(h3,p,a,a:visited,.service-icon){color:var(--comity-navy)}
body:is(.comity-homepage,.comity-inner) .service-care .service-icon{background:var(--comity-green);border-color:var(--comity-navy)}
body:is(.comity-homepage,.comity-inner) .service-logistics{background:var(--comity-light-blue);border-color:var(--comity-blue);box-shadow:inset 0 3px 0 var(--comity-blue);color:var(--comity-navy)}
body:is(.comity-homepage,.comity-inner) .service-logistics :is(h3,a,a:visited,.service-icon){color:var(--comity-blue)}
body:is(.comity-homepage,.comity-inner) .service-logistics p{color:var(--comity-navy)}
body:is(.comity-homepage,.comity-inner) .service-logistics .service-icon{background:var(--comity-light-blue);border-color:var(--comity-blue)}
body:is(.comity-homepage,.comity-inner) .service-security{background:var(--comity-rose);border-color:var(--comity-burgundy);box-shadow:inset 0 3px 0 var(--comity-burgundy);color:var(--comity-navy)}
body:is(.comity-homepage,.comity-inner) .service-security :is(h3,a,a:visited,.service-icon){color:var(--comity-burgundy)}
body:is(.comity-homepage,.comity-inner) .service-security p{color:var(--comity-navy)}
body:is(.comity-homepage,.comity-inner) .service-security .service-icon{background:var(--comity-rose);border-color:var(--comity-burgundy)}
/* Decorative sequence follows presentation order only, never experience/status/pay. */
body:is(.comity-homepage,.comity-inner) .jobs-grid>.job-card{background:var(--comity-white);border-color:var(--comity-blue);box-shadow:inset 0 3px 0 var(--comity-blue);color:var(--comity-navy)}
body:is(.comity-homepage,.comity-inner) .jobs-grid>.job-card:nth-child(3n+1){background:var(--comity-light-blue)}
body:is(.comity-homepage,.comity-inner) .jobs-grid>.job-card:nth-child(3n+2){background:var(--comity-light-green);border-color:var(--comity-dark-green);box-shadow:inset 0 3px 0 var(--comity-dark-green)}
body:is(.comity-homepage,.comity-inner) .job-card :is(p,h2,h3,strong,small){color:var(--comity-navy)}
body:is(.comity-homepage,.comity-inner) .job-card :is(a,a:visited,.job-location){color:var(--comity-blue)}
body:is(.comity-homepage,.comity-inner) .job-card:nth-child(3n+2) :is(a,a:visited,.job-location){color:var(--comity-dark-green)}
body:is(.comity-homepage,.comity-inner) .job-card .text-link{border-color:currentColor}
body:is(.comity-homepage,.comity-inner) .job-search{background:var(--comity-light-blue);border-color:var(--comity-blue);color:var(--comity-navy)}
body:is(.comity-homepage,.comity-inner) .job-search label{color:var(--comity-navy)}
body:is(.comity-homepage,.comity-inner) .job-search input:not([type=hidden]){background:var(--comity-white);color:var(--comity-navy);border-color:var(--comity-blue)}
body:is(.comity-homepage,.comity-inner) .job-search input::placeholder{color:var(--comity-navy);opacity:1}
/* Existing article panels only; images and artwork are never tinted or filtered. */
body:is(.comity-homepage,.comity-inner) .article-card{background:var(--comity-white);border-color:var(--comity-blue)}
body:is(.comity-homepage,.comity-inner) .article-grid>.article-card>div{background:var(--comity-white)}
body:is(.comity-homepage,.comity-inner) .article-grid>.article-card:nth-child(3n+1)>div{background:var(--comity-light-blue)}
body:is(.comity-homepage,.comity-inner) .article-grid>.article-card:nth-child(3n+2)>div{background:var(--comity-light-green)}
body:is(.comity-homepage,.comity-inner) .article-card :is(h2,h3,p){color:var(--comity-navy)}
body:is(.comity-homepage,.comity-inner) .article-card :is(a,a:visited){color:var(--comity-blue)}
/* Saturated footer, including the company/navigation/copyright regions. */
body:is(.comity-homepage,.comity-inner) .comity-footer{background:var(--comity-green);color:var(--comity-navy)}
body:is(.comity-homepage,.comity-inner) .comity-footer :is(.footer-top,.footer-details,.footer-bottom){background:transparent;color:var(--comity-navy);border-color:var(--comity-navy)}
body:is(.comity-homepage,.comity-inner) .comity-footer :is(p,a,a:visited,span,summary,svg){color:var(--comity-navy)}
body:is(.comity-homepage,.comity-inner) .comity-footer .brand{background:var(--comity-white);box-shadow:0 0 0 8px var(--comity-white);border-radius:3px}
body:is(.comity-homepage,.comity-inner) .comity-footer a:not(.brand){text-decoration:underline;text-underline-offset:3px}
body:is(.comity-homepage,.comity-inner) .comity-footer a:hover,body:is(.comity-homepage,.comity-inner) .comity-footer a:focus-visible{text-decoration:underline;text-decoration-thickness:2px}
/* Component-specific states avoid changing embedded widgets or validation colours. */
body:is(.comity-homepage,.comity-inner) :is(.job-search,.job-card,.article-card,.service-card) :is(a,button,input):focus-visible{outline:3px solid var(--comity-navy);outline-offset:4px}
body:is(.comity-homepage,.comity-inner) .service-parking a:focus-visible{outline-color:var(--comity-white)}
body:is(.comity-homepage,.comity-inner) .comity-footer :is(a,summary):focus-visible{outline:3px solid var(--comity-navy);outline-offset:4px}
.comity-inner :is(.inner-intro,.page-header) a:focus-visible{outline:3px solid var(--comity-white);outline-offset:4px}
body:is(.comity-homepage,.comity-inner) .button:not(.hero .button),.comity-inner .comity-job-facts>#js-scroll-apply{background:var(--comity-blue);color:var(--comity-white);border-color:var(--comity-blue)}
body:is(.comity-homepage,.comity-inner) .button:not(.hero .button):hover,.comity-inner .comity-job-facts>#js-scroll-apply:hover{background:var(--comity-blue);color:var(--comity-white);text-decoration:underline;text-underline-offset:3px}
.comity-inner .comity-job-facts>#js-scroll-apply:focus-visible{outline:3px solid var(--comity-navy);outline-offset:4px}

/* Explicit Fluent Forms state tokens: improve contrast without changing validation or submission behaviour. */
.comity-inner .fluentform{--fluentform-danger:var(--comity-burgundy);--fluentform-success:var(--comity-dark-green)}
.comity-inner .ff-message-success{color:var(--comity-dark-green);background:var(--comity-light-green);border-color:var(--comity-dark-green)}
