/* ==========================================================================
   ICC JOBS PAGE â€” GENERATED FILE. DO NOT EDIT.

   Generated by scripts/build-plugin.ps1 from assets/css/icc.css, which is the
   single source of truth for the design system and carries the rationale for
   every token. Edit that file and rebuild; edits here are overwritten.

   WHAT THE GENERATOR DID
     - Nested every selector under .icc-jobs, the wrapper the shortcode opens
       with, so nothing here can reach the existing Elementor header, footer
       or navigation.
     - Moved the :root token block and the body typography onto .icc-jobs.
     - Dropped rules for the block theme's own chrome (.site-header, the
       mobile nav, the skip link). This build uses the site's existing header.
     - Dropped rules targeting <html>. scroll-behavior:auto is printed inline
       in wp_head by the plugin, gated on is_page('jobs'), because it must
       beat whatever sets it regardless of stylesheet order.
     - Comments were stripped during parsing. The reasoning lives in the
       source file.
   ========================================================================== */
.icc-jobs {
--icc-navy:        #262261;
  --icc-navy-deep:   #1a1745;
  --icc-navy-tint:   #3d3880;
  --icc-gold:        #fdbf1e;
  --icc-gold-deep:   #e0a400;
  --icc-red:         #e41f26;

  
  --icc-white:       #ffffff;
  --icc-n50:         #faf9f7;
  --icc-n100:        #f7f6f3;
  --icc-n200:        #ecebe7;
  --icc-n300:        #d8d6d1;
  --icc-n400:        #b4b1aa;
  --icc-n600:        #5c5a56;
  --icc-n700:        #403e3a;
  --icc-ink:         #1c1b19;

  
  --bg:              var(--icc-white);
  --bg-alt:          var(--icc-n100);
  --bg-invert:       var(--icc-navy);
  --text:            var(--icc-ink);
  --text-muted:      var(--icc-n600);
  --text-invert:     var(--icc-white);
  --rule:            var(--icc-n300);
  --rule-strong:     var(--icc-navy);

  
  --font-display: "Barlow", "Helvetica Neue", Arial, sans-serif;
  --font-body:    "Source Sans 3", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;

  
  --t-xs:   0.75rem;   
  --t-sm:   0.875rem;  
  --t-base: 1.0625rem; 
  --t-md:   1.125rem;  
  --t-lg:   clamp(1.25rem, 1.1rem + 0.6vw, 1.375rem);
  --t-xl:   clamp(1.5rem, 1.3rem + 0.9vw, 1.75rem);
  --t-2xl:  clamp(1.875rem, 1.5rem + 1.6vw, 2.25rem);
  --t-3xl:  clamp(2.25rem, 1.7rem + 2.4vw, 2.875rem);
  --t-4xl:  clamp(2.75rem, 1.9rem + 3.6vw, 3.625rem);
  --t-5xl:  clamp(3.25rem, 2rem + 5.2vw, 4.5rem);

  
  --s-1: 0.25rem; --s-2: 0.5rem;  --s-3: 0.75rem; --s-4: 1rem;
  --s-5: 1.5rem;  --s-6: 2rem;    --s-7: 2.5rem;  --s-8: 3rem;
  --s-9: 4rem;    --s-10: 5rem;   --s-11: 6rem;   --s-12: 8rem;

  
  --section-y: clamp(3.5rem, 2rem + 6vw, 8rem);

  
  --content-max: 1280px;
  --measure: 68ch;
  --gutter: clamp(1.25rem, 4vw, 3rem);

  
  --r-sm: 2px;
  --r:    4px;

  
  --header-h: 88px;
  --header-h-scrolled: 64px;

  
  --ease: cubic-bezier(0.22, 0.61, 0.36, 1);
  --dur: 320ms;
}

@media (max-width: 768px) {
.icc-jobs {
--header-h: 64px; --header-h-scrolled: 56px;
}
}

.icc-jobs *,
.icc-jobs *::before,
.icc-jobs *::after {
box-sizing: border-box;
}

.icc-jobs * {
margin: 0;
}

.icc-jobs {
font-family: var(--font-body);
  font-size: var(--t-base);
  line-height: 1.65;
  color: var(--text);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.icc-jobs img,
.icc-jobs picture,
.icc-jobs svg,
.icc-jobs video {
display: block; max-width: 100%; height: auto;
}

.icc-jobs input,
.icc-jobs button,
.icc-jobs textarea,
.icc-jobs select {
font: inherit; color: inherit;
}

.icc-jobs h1,
.icc-jobs h2,
.icc-jobs h3,
.icc-jobs h4,
.icc-jobs h5 {
font-family: var(--font-display);
  font-weight: 600;
  line-height: 1.12;
  letter-spacing: -0.015em;
  text-wrap: balance;
}

.icc-jobs p {
text-wrap: pretty;
}

.icc-jobs a {
color: var(--icc-navy); text-underline-offset: 0.2em;
}

.icc-jobs a:hover {
color: var(--icc-navy-tint);
}

.icc-jobs :focus-visible {
outline: 3px solid var(--icc-gold);
  outline-offset: 2px;
  border-radius: var(--r-sm);
}

.icc-jobs .on-navy :focus-visible {
outline-color: var(--icc-gold);
}

.icc-jobs ::selection {
background: var(--icc-gold); color: var(--icc-ink);
}

.icc-jobs .wrap {
width: 100%;
  max-width: var(--content-max);
  margin-inline: auto;
  padding-inline: var(--gutter);
}

.icc-jobs .wrap--narrow {
max-width: 860px;
}

.icc-jobs .section {
padding-block: var(--section-y);
}

.icc-jobs .section--alt {
background: var(--bg-alt);
}

.icc-jobs .section--navy {
background: var(--icc-navy); color: var(--text-invert);
}

.icc-jobs .section--tight {
padding-block: calc(var(--section-y) * 0.6);
}

.icc-jobs .grid {
display: grid; gap: var(--s-6);
}

@media (min-width: 768px) {
.icc-jobs .grid--2 {
grid-template-columns: repeat(2, 1fr);
}

.icc-jobs .grid--3 {
grid-template-columns: repeat(3, 1fr);
}

.icc-jobs .grid--4 {
grid-template-columns: repeat(2, 1fr);
}
}

@media (min-width: 1024px) {
.icc-jobs .grid--4 {
grid-template-columns: repeat(4, 1fr);
}

.icc-jobs .grid--split {
grid-template-columns: 1.05fr 0.95fr; gap: var(--s-9); align-items: center;
}
}

.icc-jobs .stack > * + * {
margin-top: var(--s-4);
}

.icc-jobs .stack-lg > * + * {
margin-top: var(--s-6);
}

.icc-jobs .display {
font-family: var(--font-display); font-size: var(--t-4xl); font-weight: 600;
}

.icc-jobs .h1 {
font-size: var(--t-4xl);
}

.icc-jobs .h2 {
font-size: var(--t-3xl);
}

.icc-jobs .h3 {
font-size: var(--t-2xl);
}

.icc-jobs .h4 {
font-size: var(--t-xl);
}

.icc-jobs .lede {
font-size: var(--t-lg); line-height: 1.5; color: var(--text-muted); max-width: var(--measure);
}

.icc-jobs .section--navy .lede {
color: rgba(255,255,255,0.82);
}

.icc-jobs .small {
font-size: var(--t-sm);
}

.icc-jobs .measure {
max-width: var(--measure);
}

.icc-jobs .eyebrow {
font-family: var(--font-display);
  font-size: var(--t-xs);
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--icc-navy);
  display: flex;
  align-items: center;
  gap: var(--s-3);
  margin-bottom: var(--s-4);
}

.icc-jobs .eyebrow::before {
content: "";
  width: 28px;
  height: 3px;
  background: var(--icc-gold);
  flex: none;
}

.icc-jobs .section--navy .eyebrow {
color: var(--icc-gold);
}

.icc-jobs .section--navy .eyebrow::before {
background: var(--icc-gold);
}

.icc-jobs .numeral {
font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--t-5xl);
  line-height: 0.86;
  letter-spacing: -0.03em;
  font-variant-numeric: tabular-nums;
  color: var(--icc-navy);
  display: block;
}

.icc-jobs .numeral--gold {
color: var(--icc-gold);
}

.icc-jobs .numeral--invert {
color: var(--icc-white);
}

.icc-jobs .stat {
border-top: 3px solid var(--icc-navy); padding-top: var(--s-4);
}

.icc-jobs .section--navy .stat {
border-top-color: var(--icc-gold);
}

.icc-jobs .stat__label {
font-family: var(--font-display);
  font-size: var(--t-sm);
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin-top: var(--s-3);
  display: block;
}

.icc-jobs .section--navy .stat__label {
color: rgba(255,255,255,0.78);
}

.icc-jobs .btn {
display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--s-2);
  min-height: 48px;
  padding: var(--s-3) var(--s-6);
  font-family: var(--font-display);
  font-size: var(--t-md);
  font-weight: 600;
  letter-spacing: 0.01em;
  text-decoration: none;
  border: 2px solid transparent;
  border-radius: var(--r);
  cursor: pointer;
  transition: background-color 150ms var(--ease), color 150ms var(--ease), border-color 150ms var(--ease);
}

.icc-jobs .btn--primary {
background: var(--icc-navy); color: var(--icc-white); border-color: var(--icc-navy);
}

.icc-jobs .btn--primary:hover {
background: var(--icc-navy-tint); border-color: var(--icc-navy-tint); color: var(--icc-white);
}

.icc-jobs .btn--apply {
background: var(--icc-gold); color: var(--icc-ink); border-color: var(--icc-gold);
}

.icc-jobs .btn--apply:hover {
background: var(--icc-gold-deep); border-color: var(--icc-gold-deep); color: var(--icc-ink);
}

.icc-jobs .btn--outline {
background: transparent; color: var(--icc-navy); border-color: var(--icc-navy);
}

.icc-jobs .btn--outline:hover {
background: var(--icc-navy); color: var(--icc-white);
}

.icc-jobs .on-navy .btn--outline {
color: var(--icc-white); border-color: rgba(255,255,255,0.6);
}

.icc-jobs .on-navy .btn--outline:hover {
background: var(--icc-white); color: var(--icc-navy); border-color: var(--icc-white);
}

.icc-jobs .btn--block {
width: 100%;
}

.icc-jobs .btn--lg {
min-height: 56px; font-size: var(--t-lg); padding-inline: var(--s-7);
}

.icc-jobs .call-link {
display: inline-flex;
  align-items: center;
  gap: var(--s-2);
  min-height: 44px;
  padding-inline: var(--s-3);
  font-family: var(--font-display);
  font-weight: 600;
  color: var(--icc-navy);
  text-decoration: none;
  border: 2px solid var(--icc-navy);
  border-radius: var(--r);
  white-space: nowrap;
}

@media (min-width: 1024px) {
.icc-jobs .call-link {
border: none; padding-inline: 0;
}
}

.icc-jobs .call-link__short {
display: none;
}

@media (max-width: 520px) {
.icc-jobs .call-link__num,
.icc-jobs .call-link__short {
display: none;
}

.icc-jobs .call-link {
min-width: 44px; justify-content: center;
}
}

.icc-jobs [id] {
scroll-margin-top: calc(var(--header-h-scrolled) + 16px);
}

.icc-jobs #quick-application {
scroll-margin-top: calc(var(--header-h) + 24px);
}

.icc-jobs .card {
background: var(--icc-white);
  border: 1px solid var(--rule);
  border-radius: var(--r);
  padding: var(--s-6);
  transition: border-color 150ms var(--ease), background-color 150ms var(--ease);
}

.icc-jobs .card:hover {
border-color: var(--icc-navy);
}

.icc-jobs .card--flush {
padding: 0; overflow: hidden;
}

.icc-jobs .card__body {
padding: var(--s-6);
}

.icc-jobs .card-link {
text-decoration: none; color: inherit; display: block;
}

.icc-jobs .card-link:hover .card__title {
color: var(--icc-navy-tint);
}

.icc-jobs .card__title {
font-family: var(--font-display); font-size: var(--t-xl); margin-bottom: var(--s-3); color: var(--icc-navy);
}

.icc-jobs .photo {
position: relative;
  
  background-color: var(--icc-n100);
  background-image:
    repeating-linear-gradient(
      45deg,
      var(--icc-n100) 0 12px,
      var(--icc-n200) 12px 24px
    );
  border: 2px dashed var(--icc-n400);
  border-radius: var(--r);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--s-5);
  overflow: hidden;
}

.icc-jobs .photo--16x9 {
aspect-ratio: 16 / 9;
}

.icc-jobs .photo--4x3 {
aspect-ratio: 4 / 3;
}

.icc-jobs .photo--1x1 {
aspect-ratio: 1 / 1;
}

.icc-jobs .photo--3x4 {
aspect-ratio: 3 / 4;
}

.icc-jobs .photo--hero {
aspect-ratio: 16 / 9; min-height: 420px;
}

.icc-jobs .photo__spec {
font-family: var(--font-display);
  font-size: var(--t-sm);
  line-height: 1.45;
  color: var(--icc-n700);
  text-align: center;
  max-width: 44ch;
}

.icc-jobs .photo__id {
display: inline-block;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--icc-white);
  background: var(--icc-navy);
  padding: 2px var(--s-2);
  border-radius: var(--r-sm);
  margin-bottom: var(--s-2);
}

.icc-jobs .photo__priority {
display: inline-block;
  margin-top: var(--s-2);
  font-size: var(--t-xs);
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 2px var(--s-2);
  border-radius: var(--r-sm);
  background: var(--icc-gold);
  color: var(--icc-ink);
}

.icc-jobs .verify {
background: #fff3cd;
  border-bottom: 2px solid var(--icc-red);
  padding: 0 3px;
  font-weight: 600;
  color: #7a4a00;
  white-space: nowrap;
}

.icc-jobs .field {
margin-bottom: var(--s-5);
}

.icc-jobs fieldset {
border: 0; padding: 0; min-inline-size: 0;
}

.icc-jobs legend {
padding: 0;
}

.icc-jobs .field__label {
display: block;
  font-family: var(--font-display);
  font-size: var(--t-md);
  font-weight: 600;
  margin-bottom: var(--s-2);
  color: var(--icc-ink);
}

.icc-jobs .field__hint {
display: block; font-size: var(--t-sm); color: var(--text-muted); font-weight: 400; margin-top: 2px;
}

.icc-jobs .field__req {
color: var(--icc-red);
}

.icc-jobs .input,
.icc-jobs .textarea,
.icc-jobs .select {
width: 100%;
  min-height: 52px;
  padding: var(--s-3) var(--s-4);
  background: var(--icc-white);
  border: 2px solid var(--icc-n300);
  border-radius: var(--r);
  font-size: var(--t-md);
  transition: border-color 150ms var(--ease);
}

.icc-jobs .input:hover,
.icc-jobs .textarea:hover,
.icc-jobs .select:hover {
border-color: var(--icc-n400);
}

.icc-jobs .input:focus,
.icc-jobs .textarea:focus,
.icc-jobs .select:focus {
border-color: var(--icc-navy); outline-offset: 1px;
}

.icc-jobs .textarea {
min-height: 110px; resize: vertical; padding-top: var(--s-3);
}

.icc-jobs .choices {
display: grid; gap: var(--s-2);
}

@media (min-width: 640px) {
.icc-jobs .choices--2 {
grid-template-columns: 1fr 1fr;
}
}

.icc-jobs .choice {
display: flex;
  align-items: flex-start;
  gap: var(--s-3);
  min-height: 48px;
  padding: var(--s-3) var(--s-4);
  border: 2px solid var(--icc-n300);
  border-radius: var(--r);
  cursor: pointer;
  transition: border-color 150ms var(--ease), background-color 150ms var(--ease);
}

.icc-jobs .choice:hover {
border-color: var(--icc-navy); background: var(--icc-n50);
}

.icc-jobs .choice input {
margin-top: 0.3em; width: 20px; height: 20px; accent-color: var(--icc-navy); flex: none;
}

.icc-jobs .choice:has(input:checked) {
border-color: var(--icc-navy); background: var(--icc-n50);
}

.icc-jobs .choice__text {
font-size: var(--t-base); line-height: 1.4;
}

.icc-jobs .choice__text strong {
display: block; font-family: var(--font-display); font-weight: 600;
}

.icc-jobs .choice__text span {
color: var(--text-muted); font-size: var(--t-sm);
}

.icc-jobs .consent {
display: flex; gap: var(--s-3); align-items: flex-start; padding: var(--s-4); background: var(--icc-n100); border-radius: var(--r);
}

.icc-jobs .consent input {
margin-top: 0.25em; width: 20px; height: 20px; accent-color: var(--icc-navy); flex: none;
}

.icc-jobs .consent label {
font-size: var(--t-sm); line-height: 1.5;
}

.icc-jobs .form-errors {
border: 2px solid var(--icc-red);
  background: #fff5f5;
  border-radius: var(--r);
  padding: var(--s-4) var(--s-5);
  margin-bottom: var(--s-6);
}

.icc-jobs .form-errors__title {
font-family: var(--font-display); font-size: var(--t-md); font-weight: 600; color: #b3161c;
}

.icc-jobs .form-errors ul {
margin: var(--s-2) 0 0; padding-left: var(--s-5);
}

.icc-jobs .form-errors li + li {
margin-top: var(--s-1);
}

.icc-jobs .form-errors a {
color: #b3161c;
}

.icc-jobs .form-success {
border: 2px solid var(--icc-navy);
  border-top: 6px solid var(--icc-gold);
  background: var(--icc-n50);
  border-radius: var(--r);
  padding: var(--s-7) var(--s-6);
}

.icc-jobs .form-success__title {
font-family: var(--font-display);
  font-size: var(--t-2xl);
  color: var(--icc-navy);
  margin-bottom: var(--s-4);
}

.icc-jobs .form-success__ref {
font-family: var(--font-display);
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.04em;
  margin-bottom: var(--s-4);
}

.icc-jobs .form-success > p {
max-width: var(--measure);
}

.icc-jobs .consent--error {
border: 2px solid var(--icc-red);
}

.icc-jobs .field--error .input,
.icc-jobs .field--error .textarea,
.icc-jobs .field--error .select {
border-color: var(--icc-red);
}

.icc-jobs .field__error {
display: flex; align-items: center; gap: var(--s-2);
  margin-top: var(--s-2); font-size: var(--t-sm); font-weight: 600; color: #b3161c;
}

.icc-jobs .field__error::before {
content: "!"; display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; border-radius: 50%; background: var(--icc-red); color: #fff; font-size: 12px; flex: none;
}

.icc-jobs .proof {
display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  background: var(--icc-navy-tint);
  border: 1px solid var(--icc-navy-tint);
  border-radius: var(--r);
  overflow: hidden;
  margin-bottom: var(--s-6);
}

@media (min-width: 900px) {
.icc-jobs .proof {
grid-template-columns: repeat(4, 1fr);
}
}

.icc-jobs .proof__item {
background: var(--icc-navy); padding: var(--s-4) var(--s-3); text-align: center;
}

.icc-jobs .proof__value {
font-family: var(--font-display);
  font-size: var(--t-xl);
  font-weight: 700;
  color: var(--icc-gold);
  line-height: 1.1;
  font-variant-numeric: tabular-nums;
}

.icc-jobs .proof__label {
font-family: var(--font-display);
  font-size: var(--t-xs);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.85);
  margin-top: var(--s-1);
}

.icc-jobs .paytable {
width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums;
}

.icc-jobs .paytable caption {
text-align: left; font-size: var(--t-sm); color: var(--text-muted); margin-bottom: var(--s-3);
}

.icc-jobs .paytable th,
.icc-jobs .paytable td {
padding: var(--s-4) var(--s-3); text-align: left; border-bottom: 1px solid var(--rule);
}

.icc-jobs .paytable thead th {
font-family: var(--font-display); font-size: var(--t-sm); font-weight: 600;
  letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-muted);
  border-bottom: 2px solid var(--icc-navy);
}

.icc-jobs .paytable td:last-child,
.icc-jobs .paytable th:last-child {
text-align: right;
}

.icc-jobs .paytable .rate {
font-family: var(--font-display); font-size: var(--t-lg); font-weight: 700; color: var(--icc-navy);
}

.icc-jobs .paytable tbody tr:hover {
background: var(--icc-n50);
}

.icc-jobs .timeline {
list-style: none; padding: 0; border-left: 3px solid var(--icc-n300);
}

.icc-jobs .timeline__item {
position: relative; padding: 0 0 var(--s-8) var(--s-6);
}

.icc-jobs .timeline__item::before {
content: ""; position: absolute; left: -9px; top: 6px;
  width: 15px; height: 15px; border-radius: 50%;
  background: var(--icc-gold); border: 3px solid var(--icc-white);
}

.icc-jobs .timeline__year {
font-family: var(--font-display); font-size: var(--t-2xl); font-weight: 700;
  color: var(--icc-navy); line-height: 1; font-variant-numeric: tabular-nums;
}

.icc-jobs .timeline__body {
margin-top: var(--s-2); max-width: 60ch;
}

.icc-jobs .site-footer {
background: var(--icc-navy-deep); color: rgba(255,255,255,0.85); padding-block: var(--s-10) var(--s-6);
}

.icc-jobs .site-footer a {
color: var(--icc-white); text-decoration: none;
}

.icc-jobs .site-footer a:hover {
text-decoration: underline; text-decoration-color: var(--icc-gold);
}

.icc-jobs .site-footer h3 {
font-size: var(--t-sm); letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--icc-gold); margin-bottom: var(--s-4);
}

.icc-jobs .site-footer ul {
list-style: none; padding: 0;
}

.icc-jobs .site-footer li + li {
margin-top: var(--s-2);
}

.icc-jobs .site-footer li a,
.icc-jobs .footer__bottom a {
display: inline-block; padding-block: var(--s-1);
}

.icc-jobs .footer__bottom {
margin-top: var(--s-8); padding-top: var(--s-5);
  border-top: 1px solid rgba(255,255,255,0.18);
  display: flex; flex-wrap: wrap; gap: var(--s-4) var(--s-6);
  justify-content: space-between; font-size: var(--t-sm);
}

.icc-jobs .nap address {
font-style: normal; line-height: 1.7;
}

.icc-jobs .crumbs {
font-size: var(--t-sm); padding-block: var(--s-4);
}

.icc-jobs .crumbs ol {
list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: var(--s-2);
}

.icc-jobs .crumbs li + li::before {
content: "/"; margin-right: var(--s-2); color: var(--icc-n400);
}

.icc-jobs .crumbs a,
.icc-jobs .crumbs [aria-current="page"] {
display: inline-block; padding-block: var(--s-1);
}

.icc-jobs .crumbs a {
color: var(--text-muted);
}

.icc-jobs .crumbs [aria-current="page"] {
color: var(--icc-ink); font-weight: 600;
}

@media (prefers-reduced-motion: no-preference) {
.icc-jobs .reveal {
opacity: 0; transform: translateY(16px); transition: opacity 400ms var(--ease), transform 400ms var(--ease);
}

.icc-jobs .reveal.is-in {
opacity: 1; transform: none;
}
}

@media (prefers-reduced-motion: reduce) {
.icc-jobs *,
.icc-jobs *::before,
.icc-jobs *::after {
animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important;
}

.icc-jobs .reveal {
opacity: 1; transform: none;
}
}

.icc-jobs .visually-hidden {
position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

.icc-jobs .text-center {
text-align: center;
}

.icc-jobs .mt-0 {
margin-top: 0;
}

.icc-jobs .divider {
height: 3px; width: 56px; background: var(--icc-gold); border: 0; margin-block: var(--s-5);
}

.icc-jobs main.wp-block-group.is-layout-constrained > .section,
.icc-jobs main.wp-block-group.is-layout-constrained > .crumbs {
max-width: none;
}

.icc-jobs .nav-toggle {
display: inline-flex;
  
  align-items: center;
  gap: var(--s-2);
  min-height: 44px;
  padding-inline: var(--s-3);
  background: transparent;
  font-family: var(--font-display);
  font-size: var(--t-md);
  font-weight: 600;
  color: var(--icc-navy);
  border: 2px solid var(--icc-navy);
  border-radius: var(--r);
  cursor: pointer;
}

.icc-jobs .nav-toggle__bars {
position: relative; width: 18px; height: 2px; background: currentColor; flex: none;
}

.icc-jobs .nav-toggle__bars::before,
.icc-jobs .nav-toggle__bars::after {
content: ""; position: absolute; left: 0; width: 18px; height: 2px; background: currentColor;
}

.icc-jobs .nav-toggle__bars::before {
top: -6px;
}

.icc-jobs .nav-toggle__bars::after {
top: 6px;
}

.icc-jobs .nav-toggle[aria-expanded="true"] .nav-toggle__bars {
background: transparent;
}

.icc-jobs .nav-toggle[aria-expanded="true"] .nav-toggle__bars::before {
top: 0; transform: rotate(45deg);
}

.icc-jobs .nav-toggle[aria-expanded="true"] .nav-toggle__bars::after {
top: 0; transform: rotate(-45deg);
}

.icc-jobs .nav-toggle[hidden] {
display: none;
}

@media (min-width: 1024px) {
.icc-jobs .nav-toggle {
display: none;
}
}

.icc-jobs .faq {
border-top: 2px solid var(--icc-navy);
}

.icc-jobs .faq__item {
border-bottom: 1px solid var(--rule);
}

.icc-jobs .faq__q {
display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-4);
  min-height: 60px;
  padding-block: var(--s-4);
  font-family: var(--font-display);
  font-size: var(--t-md);
  font-weight: 600;
  color: var(--icc-navy);
  cursor: pointer;
  list-style: none;
}

.icc-jobs .faq__q::-webkit-details-marker {
display: none;
}

.icc-jobs .faq__q::after {
content: "";
  flex: none;
  width: 14px;
  height: 14px;
  border-right: 2px solid var(--icc-navy);
  border-bottom: 2px solid var(--icc-navy);
  transform: translateY(-3px) rotate(45deg);
  transition: transform 150ms var(--ease);
}

.icc-jobs .faq__item[open] .faq__q::after {
transform: translateY(3px) rotate(-135deg);
}

.icc-jobs .faq__a {
padding-bottom: var(--s-5); max-width: var(--measure);
}

.icc-jobs .faq__a > * + * {
margin-top: var(--s-3);
}

.icc-jobs .verify--invert {
background: #6b3f00; color: #ffe9b8; border-bottom-color: var(--icc-gold);
}

/* --------------------------------------------------------------------------
   COEXISTENCE OVERRIDES
   Not part of the design system. These exist only because the page now lives
   inside an Elementor container rather than owning the document.
   -------------------------------------------------------------------------- */

/* Elementor widget containers can impose their own text alignment and
   line-height. Re-assert ours at the wrapper so inherited values from the
   surrounding page cannot leak in. */
.icc-jobs {
  text-align: left;
  box-sizing: border-box;
  width: 100%;
}

/* Headings must DECLARE their colour, not inherit it.

   The design system never sets a colour on a heading. It relies on
   `.section--navy { color: var(--text-invert) }` cascading down, which is
   correct in a document the design system owns - and is the one thing that
   cannot survive here.

   Inheritance is the weakest link in the cascade: an inherited value applies
   only when NO declaration matches the element itself. Elementor's global kit
   emits `.elementor-kit-N h1 { color: <brand primary> }`, which matches the
   h1 directly, so it beats the inherited white however low its specificity.
   ICC's Elementor primary is the same navy as the band, so the hero headline
   rendered navy-on-navy: full height, zero glyphs, a block of empty space
   exactly where the headline belongs.

   It only ever hit the headings. Every other element in that hero - eyebrow,
   lede, stat labels, outline button - already carried an explicit colour of
   its own and was never at risk. That asymmetry is what the symptom looked
   like from the outside, and it is the whole diagnosis.

   Specificity is set deliberately at 0,3,0, matching
   `.icc-jobs .section--navy .lede`, which is observed to win on the live
   staging site. Class-only, so `.card__title` - the one heading class that
   does declare its own colour - is untouched. No !important: this does not
   need to beat a competing declaration, only to exist. */
.icc-jobs .section .h1,
.icc-jobs .section .h2,
.icc-jobs .section .h3,
.icc-jobs .section .h4 {
  color: var(--text);
}

.icc-jobs .section--navy .h1,
.icc-jobs .section--navy .h2,
.icc-jobs .section--navy .h3,
.icc-jobs .section--navy .h4,
.icc-jobs .on-navy .h1,
.icc-jobs .on-navy .h2,
.icc-jobs .on-navy .h3,
.icc-jobs .on-navy .h4 {
  color: var(--text-invert);
}

/* A chosen photograph replaces the placeholder inside the SAME aspect-ratio
   box, so swapping a real photo in never reflows the page. The dashed border
   and the diagonal hatch belong to the placeholder - they are the visual
   language of "brief, not artwork" - and they go with it. */
.icc-jobs .photo--filled {
  background-image: none;
  background-color: transparent;
  border: 0;
  padding: 0;
}

/* Beats the base layer's `img { height: auto }`, which would otherwise let a
   photograph of the wrong proportion stretch its box and break the grid. */
.icc-jobs .photo--filled .photo__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: var(--r);
}

/* The editor-only warning banner for unconfirmed claims. Never seen by
   visitors - it renders for logged-in users who can edit posts. */
.icc-jobs .icc-verify-banner {
  background: #7a1f22;
  color: #fff;
  padding: 10px 16px;
  font: 600 14px/1.4 system-ui, sans-serif;
  text-align: center;
}

/* --------------------------------------------------------------------------
   CONTACT FORM 7
   Phase 2a renders ICC's existing CF7 form inside the anchor section. CF7
   emits its own markup, so the design system's field styles are mapped onto
   it here rather than the form being rebuilt. Phase 2b replaces the form and
   this block goes with it.
   -------------------------------------------------------------------------- */
.icc-jobs .wpcf7 { margin: 0; }

.icc-jobs .wpcf7-form p { margin-bottom: var(--s-5); }

.icc-jobs .wpcf7-form label {
  display: block;
  font-weight: 600;
  margin-bottom: var(--s-2);
}

.icc-jobs .wpcf7-form input[type="text"],
.icc-jobs .wpcf7-form input[type="tel"],
.icc-jobs .wpcf7-form input[type="email"],
.icc-jobs .wpcf7-form textarea {
  width: 100%;
  padding: var(--s-3) var(--s-4);
  border: 1px solid var(--rule);
  border-radius: var(--r-sm);
  background: #fff;
  font: inherit;
  color: inherit;
  min-height: 48px;
}

.icc-jobs .wpcf7-form textarea { min-height: 8rem; resize: vertical; }

.icc-jobs .wpcf7-form input:focus-visible,
.icc-jobs .wpcf7-form textarea:focus-visible {
  outline: 3px solid var(--icc-gold);
  outline-offset: 2px;
}

/* WCAG 2.2 target size. CF7 renders bare checkboxes and radios; these are the
   applicant-facing controls for role interest and preferred yard. */
.icc-jobs .wpcf7-form input[type="checkbox"],
.icc-jobs .wpcf7-form input[type="radio"] {
  width: 24px;
  height: 24px;
  min-height: 0;
  accent-color: var(--icc-navy);
  vertical-align: middle;
}

.icc-jobs .wpcf7-list-item { display: block; margin: 0 0 var(--s-3) 0; }
.icc-jobs .wpcf7-list-item-label { margin-left: var(--s-2); }

.icc-jobs .wpcf7-submit {
  width: 100%;
  min-height: 56px;
  border: 0;
  border-radius: var(--r-sm);
  background: var(--icc-gold);
  color: var(--icc-ink);
  font-weight: 700;
  font-size: 1.0625rem;
  cursor: pointer;
}
.icc-jobs .wpcf7-submit:hover { filter: brightness(0.95); }

/* CF7 identifies validation state by class. Errors must be identified by text
   as well as colour, which CF7 already does - this only makes them legible. */
.icc-jobs .wpcf7-not-valid-tip {
  color: #a3121a;
  font-weight: 600;
  font-size: 0.9375rem;
  margin-top: var(--s-2);
}

.icc-jobs .wpcf7-response-output {
  margin: var(--s-5) 0 0;
  padding: var(--s-4);
  border: 2px solid var(--rule);
  border-radius: var(--r-sm);
  font-weight: 600;
}

.icc-jobs .wpcf7 form.invalid .wpcf7-response-output,
.icc-jobs .wpcf7 form.unaccepted .wpcf7-response-output { border-color: #a3121a; }

.icc-jobs .wpcf7 form.sent .wpcf7-response-output { border-color: #1c6b3a; }

/* Fallback shown only if CF7 is inactive or the form cannot render. The
   section still carries the anchor, so a QR scan never lands on nothing. */
.icc-jobs .icc-form-fallback {
  padding: var(--s-6);
  border: 2px solid var(--icc-gold);
  border-radius: var(--r-sm);
}